Wie verbinde ich die cFos Wallbox per mqtt mit Home Assistant?

  • Fragen
  • [Gelöst] Wie verbinde ich die cFos Wallbox per mqtt mit Home Assistant?

Wie verbinde ich die cFos Wallbox per mqtt mit Home Assistant?

0
0

Abgetrenntes Thema von hier:
https://www.cfos-emobility.de/network/antworten/integration-in-home-assistant/#answer-2812

Ich habe in Home Assistant das mqtt-Addon installiert. Aber beim Anlegen einer Automation kann ich keinen Dienst „mqtt veröffentlichen“  auswählen. Muß ich zuvor noch etwas tun, damit der Dienst aktiviert wird und ausgewählt werden kann?

Gelöst
markiert als Spam
Geschrieben von Top Networker (Fragen: 14, Antworten: 87)
Gefragt am 23. Oktober 2024 15:17
145 views

Antworten (19)

1
Private answer

Ein guter Hinweis. Ich hatte in der 30'-Automation das Topic falsch, das führte zu dem 2. Eintrag.

Damit ist hier erst mal alles rund.

Vielen Dank für die Unterstützung!

 

markiert als Spam
Geschrieben von Top Networker (Fragen: 14, Antworten: 87)
Beantwortet am 27. Oktober 2024 21:01
0
Private answer

Im MQTT-Explorer kannst du auch Topics / Nachrichten löschen. - Ggf. hilft dir das?

Mir scheint, dass du bei denen Topics einen Drehwurm drin hast. Einmal lautet es cfos_mqtt/set/M12 und einmal  cfos_mqtt/M12/soc.

Kanns du das falsche (cfos_mqtt/M12/soc) mal im MQTT-Explorer löschen. - Bleibt es dann weg? Wenn nein, hast du ggf. im Zähler auf der cFos PowerBrain aktiviert, dass dieser seine Werte per MQTT veröffentlicht? (Das würde nicht viel Sinn machen, da du hier nur eine Schleife erzeugst.) Ansonsten hast du ggf. noch eine Automatisierung im HA, die dorthin etwas veröffentlicht.

Der HTTP-Zähler steht auf getrennt, da er zu wenig Aktualisierungen erhält. Ich schicke meiner Hausbatterie jede Sekunde ein Update, damit habe ich das Problem nicht. - Ggf. müsstest du alle paar Sekunden ein Update senden (notfalls mit einem Lastwert, der sich regelmäßig ändert).

markiert als Spam
Geschrieben von Top Networker (Fragen: 12, Antworten: 50)
Beantwortet am 27. Oktober 2024 20:44
0
Private answer

Dann werde ich mal bezüglich des SoC vom Fahrzeug eine neue Frage aufmachen. Es muß ja irgendwie möglich sein.

Für dieses Thema hier habe ich noch 2 Fragen:
Ich hatte anfangs in der Payload { 10 } eingetragen, inzwischen aber längst ersetzt. Jetzt sehe ich im mqtt-Explorer  anfangs immer diesen Ausdruck { 10 }, bevor er irgendwann auf den richtigen Wert wechselt.
Der http-Zähler zeigt zudem inzwischen fast permanent das „Disconnect“-Symbol, sh. Anhang. Ist das normal? Wenn ich „TCP-Verbindung halten“ aktiviere, wechselt die Anzeige hier ebenfalls auf { 10 }

Da das Ereignis „SoC ändert sich“ relativ selten auftritt, habe inzwischen eine 2. Automatisierung eingebaut, die zweimal pro Minute den SoC veröffentlicht. Das hilft aber auch nichts. Aktuell sehe diesen Wert schon die ganze Zeit. Wenn ich in der Automatisierung manuell auf „Ausführen“ gehe, wird überall alles aktualisiert. Das ist mir noch ein wenig suspekt. Und gerade jetzt fällt mir auf, daß ich im mqtt-Explorer den Wert 2x sehe. Der 2. Ist sofort richtig und der unter SET ist erst mal wieder falsch, wenn ich mich mit dem mqtt-broker verbinde. Aber vielleicht ist das auch ein Explorer-Problem und gehört nicht hierher.

 

Anhänge:
markiert als Spam
Geschrieben von Top Networker (Fragen: 14, Antworten: 87)
Beantwortet am 27. Oktober 2024 19:53
0
Private answer

Letztendlich sind das ja auch nur vordefinierte Variablen oder Formeln, die hier zu Grunde liegen. Ich weiß leider nicht, welche Variable er hier nutzt. - Vielleicht müsste dein Zähler, in den du gerade per MQTT den SoC schreibst, die Rolle 'Verbrauch E-Auto' haben und an die Wallbox angeheftet sein? (Ist jedoch nur eine unbestätigte Vermutung.)  Da jedoch nur ein Zähler angeheftet werden kann und das bei dir vermutlich der S0-Zähler ist, könnte es sein, dass das so nicht geht.

Ich arbeite mit diesen Vorbelegungen kaum, sondern definiere es meist als eigene Formel.

Ggf. kann dir noch jemand anderes einen Tipp geben, der da tiefer drin ist. - Ansonsten den Support mal anfragen.

markiert als Spam
Geschrieben von Top Networker (Fragen: 12, Antworten: 50)
Beantwortet am 27. Oktober 2024 8:55
0
Private answer

Im Anhang ein Screenshot einer Regel mit dem SoC. Dass es nicht der SoC der Hausbatterie ist, habe ich bereits festgestellt. Und in der Doku steht (Der Link zu den Laderegeln):
SoC: Die Bedingung ist erfüllt, wenn der Ladestand (state of charge) des Autos (sofern der cFos Charging Manager diesen Wert kennt) oder des Batteriespeichers größer (oder gleich) ist als der vorgegebene Wert oder die Formel.
Und in diese Variable möchte ich meinen Wert schreiben, weiß aber nicht, wie es geht.

 

 

Anhänge:
markiert als Spam
Geschrieben von Top Networker (Fragen: 14, Antworten: 87)
Beantwortet am 26. Oktober 2024 23:30
0
Private answer

Ganz verstehe ich es noch nicht.

E1 ist doch die Wallbox - Die hat doch keinen SoC. Auch deren angehefteter Zähler kann doch keinen SoC haben; beide haben schließlich keine Batterie. SoC kann doch nur eine Batterie haben, die du als Zähler separat anlegst. (Ich habe so z. B. meine Hausbatterie angelegt, du die Autobatterie.)

Meines Erachtens kanns du über den hier skizzierten Weg nur Werte von Zählern des Typs 'HTTP' bearbeiten.  Diesen Zähler kannst du auch als Kachel auf der Hauptseite einblenden lassen und eben auch in den Formeln damit arbeiten. Ob du einen Zähler von einem anderen Typ per MQTT bearbeiten kannst, habe ich nie probiert - bezweifle das aber.

Wo gibt es in den Regeln die Bedingung bzgl. SoC? - Meines Erachtens musst du die als Formel selber bauen. Und dabei kannst du eben mit Werten anderer Zähler (eben des manuell angelegten HTTP-Zählers, der per MQTT befüllt wird) oder mit Lastmanagement-Variablen (auch die kannst du per MQTT bearbeiten) arbeiten. Bei mir funktioniert das einwandfrei. (Ich habe jedoch einen Teil der Regeln im Home Assistant drin und schicke teilweise nur fertige Werte an die cFos, da wenngleich ich mehr als 20 Regeln in der cFos PowerBrain habe, manches auf HA deutlich leichter fällt.)

Bzgl. meiner Payload-Definition: ja, da hast du recht - da war ich unsauber. Es funktioniert jedoch beides.

markiert als Spam
Geschrieben von Top Networker (Fragen: 12, Antworten: 50)
Beantwortet am 26. Oktober 2024 17:27
0
Private answer

Ich habe noch eine Frage:

Warum ist in Deiner Payload-Definition "power_w" in Anführungszeichen und soc nicht?

markiert als Spam
Geschrieben von Top Networker (Fragen: 14, Antworten: 87)
Beantwortet am 26. Oktober 2024 11:18
0
Private answer

Grundsätzlich hast Du damit recht. Man kann jetzt mit dem M12.soc in Formeln arbeiten. Es ist jetzt nur noch Kosmetik, um es sauber gerade zu ziehen.
Meine Suche hatte ursprünglich damit angefangen, daß ich in einer Regel die Bedingung SoC >= …verwenden wollte, was nicht funktioniert hatte. Geotec hatte mich damals wieder auf den Boden der Tatsachen zurückgeholt, indem er mich fragte, woher ich denn den SoC habe und hatte den Home Assistant erwähnt. Also habe ich einen Raspberry Pi genommen, das System installiert und nun bin ich hier angekommen und sage mir, wenn es in den Regeln die Bedingung SoC >= gibt, die Wallbox den SoC aber nicht selbst auslesen kann, dann muß es doch eine Möglichkeit geben, die Variable zu beschreiben. Ich habe aber noch keine Möglichkeit dafür gefunden.
Und zudem hätte das Ganze den netten Nebeneffekt, dass ich dann den http Zähler im Dashboard  ausblenden kann und den SoC an der Stelle ablesen kann, wo er logischerweise hingehört.

 

markiert als Spam
Geschrieben von Top Networker (Fragen: 14, Antworten: 87)
Beantwortet am 26. Oktober 2024 11:09
0
Private answer

Top - das war das Ziel. Die Testfunktion ist an dieser Stelle nicht relevant.

Warum willst du das nach E1.Soc bekommen? - Was genau hast du vor?

Du kannst doch mit der Variable nun Regeln bauen, etc.

markiert als Spam
Geschrieben von Top Networker (Fragen: 12, Antworten: 50)
Beantwortet am 25. Oktober 2024 13:09
0
Private answer

Die Neugier auf die Lösung war doch stärker...

Es geht jetzt, die Testfunktion des HTTP-Zählers zeigt mit zwar nichts an, aber ich habe jetzt die Variable M12.soc, in welcher der Wert steht.

Bekomme ich diesen Wert jetzt noch irgendwie in die Variable E1.soc?

markiert als Spam
Geschrieben von Top Networker (Fragen: 14, Antworten: 87)
Beantwortet am 25. Oktober 2024 12:51
0
Private answer

Ich habe dir mal einen Screenshot von mir angehängt. Packe das Ganze mal bei Payload nicht bei Payload_template rein (siehe Bild). Payload_template löscht du ganz raus.

 

Dann erstmal in 8 Minuten Happy birthday - genieße deinen Ehrentag.

 

 

Anhänge:
markiert als Spam
Geschrieben von Top Networker (Fragen: 12, Antworten: 50)
Beantwortet am 24. Oktober 2024 23:52
0
Private answer

Wenn ich den dynamischen Ausdruck in die Payload schreibe, bekomme ich die Meckerei im Anhang, deshalb hatte ich es ins Template geschrieben.

Auch das { soc:10} kommt nicht im mqtt Explorer an.

Für heute mache ich erst mal Schluss und morgen weiß ich noch nicht, ob ich zu etwas komme. Werde wieder mal ein Jahr älter. Melde mich spätestens Samstag wieder.

 

Anhänge:
markiert als Spam
Geschrieben von Top Networker (Fragen: 14, Antworten: 87)
Beantwortet am 24. Oktober 2024 23:46
0
Private answer

Wir sind noch nicht ganz am Ziel, aber auf gutem Wege ;-)

Erste Aufgabe, die wir lösen müssen: Im MQTT Explorer muss unter cfos/set/Mx ein passender Payload vorhanden sein. Diesen schreibst du mit deiner Automatisierung dorthin. Gerne auch zum Testen am Anfang in den Payload der Automatisierung einen fixen Wert eintragen: z. B. { soc: 10 }
Kommt das am MQTT Explorer an? Wenn ja, sollte es auch an der cFos ankommen.

Nun ersetzen wir den Payload in der Automatisierung durch eine dynamischen Wert { soc: {{float(states('sensor.battery_state_of_charge')|float(0))}} }

'sensor.battery_state_of_charge' heißt der Sensor bei mir - wie heißt er bei dir? - ggf. in den Entwicklerwerkzeugen nachsehen.

Ich glaube in einer gemeinsamen Remote-Session hätten wir das in wenigen Minuten gefixt ;-)

markiert als Spam
Geschrieben von Top Networker (Fragen: 12, Antworten: 50)
Beantwortet am 24. Oktober 2024 23:30
0
Private answer

Habe das jetzt wie im Anhang ausgefüllt. Bei cFos kommen aber nur wieder

Voltage: 230, 230, 230
Current: 0.000000, 0.000000, 0.000000 A
Power: 0 W, 0 VA
Import/Export: 0 Wh, 0 Wh
an.
Als Datentyp reicht auch ein Integer,
es gibt nur ganzzahlige Werte von Null bis 100.
Passt das dann so:?
{ soc:
{{integer(states('sensor.battery_state_of_charge')|integer(0))}}
}

 

 

 

Anhänge:
markiert als Spam
Geschrieben von Top Networker (Fragen: 14, Antworten: 87)
Beantwortet am 24. Oktober 2024 23:20
0
Private answer

Hey, das sieht doch schon gut aus - top, der Connect steht.

Nun legst du erstmal in der Wallbox einen Zähler vom Typ 'HTTP-Input' an und gibst ihm erstmal die Rolle 'Anzeige'.

Anschließend ändert du in der HA-Automatisierung das Ziel-Topic in cfos/set/M4 (statt M4 nimmst du deine Zählernummer - wird dir bei der Anlage ganz oben angezeigt, vermutlich M7).

Auch den Payload änderst du - so wie in meinem Screenshot im anderen Thread: 1729686777926_Screenshot-2024-10-23-143109.png (1620×1221) (cfos-emobility.de)

Damit schreibst du diese Daten in den Zähler Mx. Die dorthin gesendeten Daten solltest du dann auf dem Webinterface der cFos sehen.

markiert als Spam
Geschrieben von Top Networker (Fragen: 12, Antworten: 50)
Beantwortet am 24. Oktober 2024 21:28
0
Private answer

OK, den mqtt-Broker habe ich jetzt angelegt. Dazu noch den mqtt Explorer, hier sehe ich die Daten der Wallbox, wenn ich sie über mqtt veröffentlichen lasse. Aber das soll erst später kommen.

Jetzt versuche ich in einer Automatisierung, den Ladezustand der Autobatterie zu veröffentlichen. Ich wähle die Entität „Zustand“ --> Zoe Charge state.

Dann wähle ich als Aktion den Dienst mqtt veröffentlichen. Jetzt muss ich ein Topic und die Payload auswählen. Hier irritiert mich, dass beides Freitexteingaben sind. Kann ich das Topic willkürlich festlegen? Dann wäre das z. B. „Zoe/sensors/Energieänderungen“

Anhang Zoe% – Home Assistant – Mozilla Firefox.png

Bei Payload habe ich „Zoe Charge state“ eingetragen. Bin mir da aber überhaupt nicht sicher. Hier muß doch sicher etwas hin, das eindeutig auf den Ladezustand der Batterie zeigt.

Jetzt sehe ich einen entsprechenden Eintrag im mqtt-Explorer, aber keinen Wert. Also bin ich hier noch nicht am Ziel.

Anhang 2024-10-24 18_12_59-MQTT Explorer – Home Assistant – Mozilla Firefox.png

 

 

Anhänge:
markiert als Spam
Geschrieben von Top Networker (Fragen: 14, Antworten: 87)
Beantwortet am 24. Oktober 2024 18:29
0
Private answer

Nein, das Gerät im HA ist erstmal der MQTT-Broker. - Den musst du erstmal anlegen.

Schaue mal hier MQTT Beginner Leitfaden & Installation in Home Assistant (youtube.com) ab Minute 4:50.

Anhänge:
markiert als Spam
Geschrieben von Top Networker (Fragen: 12, Antworten: 50)
Beantwortet am 23. Oktober 2024 15:52
0
Private answer

Das "Gerät" wäre dann das Fahrzeug, von dort aus habe ich die Automatisierung aufgerufen...sh. Anhang

Also müßte ich einen entsprechenden Eintrag dafür in die mqtt.yaml vornehmen?

Anhänge:
markiert als Spam
Geschrieben von Top Networker (Fragen: 14, Antworten: 87)
Beantwortet am 23. Oktober 2024 15:49
0
Private answer

Das Add-On ist das eine, jedoch musst du auch ein Gerät hinzufügen und darüber den MQTT-Broker HA bekannt machen. - Ist das schon erfolgt?

markiert als Spam
Geschrieben von Top Networker (Fragen: 12, Antworten: 50)
Beantwortet am 23. Oktober 2024 15:39