Support: MQTT

Alles rund um SoC (Ladezustand des Fahrzeuges). Probleme, Fragen, Fehlfunktionen gehören hier hin
Benutzeravatar
R.Albrecht
Beiträge: 26
Registriert: Mi Mär 22, 2023 8:35 am

Re: Support: MQTT

Beitrag von R.Albrecht »

Über die Entwickler Konsole im Browser. Da hat Lutz mal im forum hier eine kurze Anleitung geschrieben.
Danke!
SMA HM 2.0, STP 10.0SE, BYD HVS10.2, PV 10,22kWp (1/2 Süd, 1/4 Ost, 1/4 West), OpenWB Standard+ S/W 2.1, Opel Corsa-e, SAE.
:D
Hoffsn
Beiträge: 4
Registriert: Sa Dez 07, 2024 11:17 pm

Re: Support: MQTT

Beitrag von Hoffsn »

shesse hat geschrieben: Mi Apr 24, 2024 1:08 pm
openWB hat geschrieben: Mi Apr 24, 2024 8:31 am Ich hoffe doch, ansonsten hast du ja alle HA Topics in der openWB.
Eigentlich gibt es "mosquitto_pub" mit dem einen Wert irgendwohin publishen kannst. Eine Bridge dafür wäre völliger Overkill.
Aktuell habe ich es so wie in https://forum.openwb.de/viewtopic.php?p=108051#p108051 beschrieben mit einer Bridge gelöst.
Ich habe mal im HA Forum nachgefragt, wie man ein Topic auf einen remote MQTT Broker aus einer Automation heraus publishen kann. So stelle ich mir das vor:

Code: Alles auswählen

mosquitto_pub -h openwb.fritz.box -p 1883 -t openWB/set/vehicle/1/get/soc -q 1 -m "{{ states('sensor.platenumber_e_state_of_charge') }}"
Eventuell geht das ja und ich kann mir den ganzen Bridge-Aufwand sparen.

Gruß,
Stefan
Hi,

ich stehe genau vor dem gleichen Problem. Hat du es geschafft über mosquitto_pub in Home Assistant etwas an die openWB zu veröffentlichen?

Viele Grüße
shesse
Beiträge: 288
Registriert: Di Jun 23, 2020 12:21 pm
Has thanked: 1 time
Been thanked: 1 time

Re: Support: MQTT

Beitrag von shesse »

Leider nein, ich habe nach vielen Versuchen aufgegeben.
Eigentlich würde ich es jetzt auch eher mit dem HTTP-API Zugriff machen wollen, aber ich hab noch keine Zeit gefunden mich damit zu beschäftigen.

Falls jemand eine Beispiel-Automatisierung hat, wäre ich sehr interessiert daran. Dann könnte ich mir den ganzen Mosquitto und Broker-Aufwand sparen und einfach per HTTP publishen. Das hört sich für mich nach viel weniger Aufwand an, aber ich habe das mit dem Zertifikat und JSON noch nicht verstanden :-(

Update:
Ich habe das jetzt zum Anlass genommen und mich noch mal damit beschäftigt. Ich schaffe es jetzt am Terminal von Home Assistant mittels Befehl

Code: Alles auswählen

curl -k -s -X POST --data '{"topic": "openWB/set/vehicle/1/get/soc", "message": 42}' https://192.168.1.8:8443/v1/ | jq
den SoC auf z.B. 42 zu setzen. Soweit so gut.

Was mir fehlt ist:
1. Wie kann ich den SoC auf einen Wert setzen, den ich aus dem Sensor "sensor.x_xx_1234_e_state_of_charge" der MercedesME Integration auslese?
2. Wie kann ich dann diesen curl-Befehl in einer Automatisierung nutzen? Hier vermute ich muss ich das in der configuration.yaml als "Shell Command" definieren, oder?
Hat das schon jemand umgesetzt?
2x openWB series2 standard+, PV 7,23 kWp mit WR SolarEdge SE8K und EVU SolarEdge A-V-400Y-3MTR-S, BEV Mercedes EQA 350 4MATIC (07/2023)
Hoffsn
Beiträge: 4
Registriert: Sa Dez 07, 2024 11:17 pm

Re: Support: MQTT

Beitrag von Hoffsn »

Das wollte ich auch zuerst machen, aber HTTP und API ist mit Home Assistant auch nicht so einfach, aufgrund der Authentifizierung und das die OpenWB ne einfache URL mit dem int Wert benötigt. Die REST-API gibt glaube ich bei HA nur Json Format aus. Über einen Curl Befehl mit Token müsste das wie folgt funktionieren:

Code: Alles auswählen

curl \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  http://HA-IP-Adresse:8123/api/states/sensor.state_of_charge
Aber wie man daraus dann eine URL bekommt die openWB abfragen kann, keine Ahnung.

Zu 1.: Das müsste ja eigentlich mit dem Payload (also statt der 42 aus deinem Code) funktionieren:

Code: Alles auswählen

{{ states('sensor.x_xx_1234_e_state_of_charge') }}
aling
Beiträge: 66
Registriert: So Sep 13, 2020 2:51 pm
Been thanked: 1 time

Re: Support: MQTT

Beitrag von aling »

Hallo,
ich haben in Home Assistant eine Automation zum senden erstellt:
Bildschirmfoto 2024-12-08 um 17.12.31.png
(334.11 KiB) Noch nie heruntergeladen
Bildschirmfoto 2024-12-08 um 17.13.32.png
(205.97 KiB) Noch nie heruntergeladen
Bildschirmfoto 2024-12-08 um 17.14.12.png
(263.01 KiB) Noch nie heruntergeladen
Vielleicht hilft das ja irgend jemand weiter.
Hoffsn
Beiträge: 4
Registriert: Sa Dez 07, 2024 11:17 pm

Re: Support: MQTT

Beitrag von Hoffsn »

Die Automation zu erstellen ist in HA nicht das Problem. Das Problem ist, dass mit dem mqtt.publish service nur das Topic angegeben werden kann. Ohne IP der openWB oder sonstige Zuordnung läuft das ins leere da der Broker HA die openWB nicht als Client sieht. Zumindest bei mir nicht. Da wäre ein String wie bei mqtt_pub sehr hilfreich.
aling hat geschrieben: So Dez 08, 2024 4:21 pm Hallo,
ich haben in Home Assistant eine Automation zum senden erstellt:

Bildschirmfoto 2024-12-08 um 17.12.31.png
Bildschirmfoto 2024-12-08 um 17.13.32.png
Bildschirmfoto 2024-12-08 um 17.14.12.png

Vielleicht hilft das ja irgend jemand weiter.


Was hast du denn gemacht damit Home Assistant die Werte vom SoC mit der Automation an die openWB sendet?
shesse
Beiträge: 288
Registriert: Di Jun 23, 2020 12:21 pm
Has thanked: 1 time
Been thanked: 1 time

Re: Support: MQTT

Beitrag von shesse »

Ich kann einen Erfolg vermelden. Ich habe es mit Hilfe von Rene (Entwickler der MercedesMe Integration) hinbekommen den SoC und Range vom Home Assistant an die openWB zu senden und das ganz ohne einen MQTT-Broker und Brücke.
Hier meine Lösung zum nachbauen. Es muss nur die IP-Adresse 192.168.1.8 durch die IP-Adresse Eurer openWB-Box ersetzt werden und der Sensor mit dem Kennzeichen Eures Fahrzeuges (hier im Beipiel mit "x_xx_1234") muss angepasst werden. Weiterhin müsst Ihr prüfen, ob Ihr auch den SoC für das Fahrzeug "1" setzen wollt, sonst natürlich den Pfad hinter "topic" ebenfalls anpassen.

Hinzufügen zur configuration.yaml:

Code: Alles auswählen

# Senden des SoC und Range an das Fahrzeug
rest_command:
  send_vehicle_soc:
    url: "https://192.168.1.8:8443/v1/"
    method: POST
    verify_ssl: false
    content_type: "application/json"
    payload: >
      {
        "topic": "openWB/set/vehicle/1/get/soc",
        "message": {{ states('sensor.x_xx_1234_e_state_of_charge') }}
      }
  send_vehicle_range:
    url: "https://192.168.1.8:8443/v1/"
    method: POST
    verify_ssl: false
    content_type: "application/json"
    payload: >
      {
        "topic": "openWB/set/vehicle/1/get/range",
        "message": {{ states('sensor.x_xx_1234_e_range_electric') }}
      }
Hier dann noch meine Automation auch als Yaml:

Code: Alles auswählen

alias: State of Charge an openWB senden
description: ""
triggers:
  - entity_id:
      - sensor.x_xx_1234_e_state_of_charge
    trigger: state
conditions: []
actions:
  - action: rest_command.send_vehicle_soc
    data: {}
  - action: rest_command.send_vehicle_range
    data: {}
mode: single
Damit sollte dann bei Veränderung des SoC-Wertes sowohl der SoC als auch der Range-Wert in die openWB geschrieben werden.
Danke nochmals an alle, die mir Hilfestellung gegeben haben, besonders an Rene, der mir diese Lösung fast fertig gebaut hat.
Zuletzt geändert von shesse am Di Dez 10, 2024 11:46 am, insgesamt 4-mal geändert.
2x openWB series2 standard+, PV 7,23 kWp mit WR SolarEdge SE8K und EVU SolarEdge A-V-400Y-3MTR-S, BEV Mercedes EQA 350 4MATIC (07/2023)
aling
Beiträge: 66
Registriert: So Sep 13, 2020 2:51 pm
Been thanked: 1 time

Re: Support: MQTT

Beitrag von aling »

Hallo,

add-on mosquitto broker installiert und im mosquitto config dir (share/mosquitto) eine Datei (openWB2.conf) mit folgendem Inhalt für die Bridge:

Code: Alles auswählen

#
# bridge to openWB Wallbox
#
connection openwb2
local_clientid openwb2.mosquitto

#TODO: Replace IP address
address 000.000.000.000:1883

#Sensors Controller
topic openWB/system/ip_address in
topic openWB/system/version in
topic openWB/system/lastlivevaluesJson in

#Sensors per Chargepoint
#TODO: Replace 2 by your chargepoint ID
topic openWB/chargepoint/2/get/# in
topic openWB/chargepoint/2/config in

#Send to openWB
topic openWB/set/# out
Hoffsn
Beiträge: 4
Registriert: Sa Dez 07, 2024 11:17 pm

Re: Support: MQTT

Beitrag von Hoffsn »

shesse hat geschrieben: So Dez 08, 2024 9:41 pm Ich kann einen Erfolg vermelden. Ich habe es mit Hilfe von Rene (Entwickler der MercedesMe Integration) hinbekommen den SoC und Range vom Home Assistant an die openWB zu senden und das ganz ohne einen MQTT-Broker und Brücke.
Hier meine Lösung zum nachbauen. Es muss nur die IP-Adresse 192.168.1.8 durch die IP-Adresse Eurer openWB-Box ersetzt werden und der Teil "x_xx_1234" im Sensornamen durch Euer Kennzeichen.
Sehr cool, vielen Dank für die Info :) Weißt du zufällig welche Anpassungen für eine Abfrage unter Version 1.9 notwendig sind? Das Topic muss wahrscheinlich openWB/set/lp/1/%Soc lauten.
aling hat geschrieben: Mo Dez 09, 2024 1:10 pm add-on mosquitto broker installiert und im mosquitto config dir (share/mosquitto) eine Datei (openWB2.conf) mit folgendem Inhalt für die Bridge
Auch dir vielen Dank für die Info :) ich dachte vielleicht es wäre eine Lösung ohne Bridge, in Beiträgen vorher wurde ja erwähnt das dies nicht unbedingt nötig ist.

Dann hab ich ja schon zwei Möglichkeiten zum testen
shesse
Beiträge: 288
Registriert: Di Jun 23, 2020 12:21 pm
Has thanked: 1 time
Been thanked: 1 time

Re: Support: MQTT

Beitrag von shesse »

Das Topic muss mit Sicherheit angepasst werden und ich meine die HTTP-API gab es auch unter der 1.9, aber ob die genau gleich funktioniert weiß ich nicht.
2x openWB series2 standard+, PV 7,23 kWp mit WR SolarEdge SE8K und EVU SolarEdge A-V-400Y-3MTR-S, BEV Mercedes EQA 350 4MATIC (07/2023)
Antworten