Wie verbinde ich die cFos Wallbox per mqtt mit Home Assistant?
♥ 0 |
Abgetrenntes Thema von hier: 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
|
Antworten (19)
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
|
|
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
|
|
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: 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.
markiert als Spam
|
|
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
|
|
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):
markiert als Spam
|
|
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
|
|
Private answer
Ich habe noch eine Frage: Warum ist in Deiner Payload-Definition "power_w" in Anführungszeichen und soc nicht? markiert als Spam
|
|
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.
markiert als Spam
|
|
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
|
|
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
|
|
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.
markiert als Spam
|
|
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.
markiert als Spam
|
|
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 } 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
|
|
Private answer
Habe das jetzt wie im Anhang ausgefüllt. Bei cFos kommen aber nur wieder Voltage: 230, 230, 230
markiert als Spam
|
|
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
|
|
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
markiert als Spam
|
|
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. markiert als Spam
|
|
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? markiert als Spam
|
|
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
|