Wie HTTP Input Zähler per MQTT

  • Fragen
  • [Gelöst] Wie HTTP Input Zähler per MQTT

Wie HTTP Input Zähler per MQTT

0
0

Hallo zusammen,

ich würde gern meine definierten HTTP Input Zähler per MQTT mit Daten versorgen. Laut Dokumentation können HTTP Input Zähler „auch auf MQTT hören“. Allerdings fehlt leider ein Beispiel, laut Doku abonnieren die Zähler das Topic „cfos_mqtt/set/<Geräte-ID>„. Ein Publish auf dieses Topic mit dem passenden JSON String führt aber nicht dazu, dass der HTTP Input Zähler Daten erhält.

Folgender Teil der Doku wird das Problem sein, bzw. wird mir das fehlen: „Geben Sie als Geräte-Adresse mqtt oder eine MQTT-Broker URL ein.“ Wo soll ich denn eine Adresse angeben? Beim Anlegen eines Zählers vom Typ HTTP Input gibt es kein „Adresse“ Feld.

Oder muss dafür eine eigene Zählerdefinition erstellt werden, in der „MQTT“ als Adresse steht? Das würde aber nicht der Doku entsprechen, da es dafür einen komplett eigenen Abschnitt gibt und dann das MQTT Topic frei wählbar ist.

Kann mir hier jemand helfen? An meinem JSON String sollte es nicht liegen, das ist der gleiche wie ich ihn für HTTP verwende, und da funktioniert er.

 

Gruß

Hendrik

Gelöst
markiert als Spam
Geschrieben von (Fragen: 4, Antworten: 12)
Gefragt am 3. April 2023 20:37
606 views

Antworten (15)

0
Private answer

Danke für die Info.

Ich habe jetzt auch erst einmal mit MQTT aufgegeben. Mit der Doku und den Logausgaben komme ich nicht weiter. Mal sehen, wann der Support sich meldet.

Für den Moment muss es auch erst einmal per HTTP Request gehen. Jetzt fehlt mir nur noch eine nachvollziehbare Anleitung für Überschussladen. Da macht die Wallbox auch das was sie will. Aber nicht das was ich will. Wird dann aber ein neues Thema.

markiert als Spam
Geschrieben von (Fragen: 2, Antworten: 6)
Beantwortet am 15. August 2023 18:34
0
Private answer

Ich habe es inzwischen rudimentär zum Laufen bekommen - leider aber nicht zuverlässig. Wenn es mal funktioniert, geht es meistens schon nicht mehr, wenn ich zum beispiel in irgendeinem Zähler Menü auf "Speichern" drücke. Dann werden plötzlich keine Daten mehr angenommen, und ich muss entweder die Wallbox oder meinen MQTT Broker neu starten. Und auch wenn es mal geht, kann ich mich nicht drauf verlassen, dass es so bleibt. Freitag Nachmittag hörte bei mir mal wieder die Datenannahme per MQTT auf, ohne das ich es gemerkt habe - und damit war dann natürlich das ganze Wochenende auch nichts mit Überschussladen (waren nicht zu Hause, deshalb ist es nicht rechtzeitig aufgefallen). Habe jetzt wieder auf Datenlieferung per HTTP umgestellt, weil das wenigstens zuverlässig funktioniert. cFos kann meine Probleme anscheinend nicht reproduzieren, deshalb unternehmen sie da nichts. Bin ja froh, dass ich wenigstens nicht der Einzige bin. Hier aber mal ein JSON String, mit dem es prinzipiell bei mir geht (gerade eben direkt aus MQTT mitgeschnitten, gepublished unter cfos_mqtt/set/M4):

{
"dev_id": "M4",
"is_evse": false,
"import": 1957000,
"export": 1976100,
"power_w": 598,
"current": [866.67, 866.67, 866.67],
"model": "HTTP input"
}

markiert als Spam
Geschrieben von (Fragen: 4, Antworten: 12)
Beantwortet am 14. August 2023 21:21
0
Private answer

Stehe vor demselben Problem. Versuche einen Zähler per MQTT mit Daten zu versorgen. Konfiguration des Zählers habe ich als Screenshot angehangen.

Sende ich die Daten per HTTP Request mit curl, werden die Werte direkt übernommen.
curl -i -X POST -H 'Content-Type: application/json' -d '{ "model": "PV-excess", "import_wh": 0, "export_wh": 19400, "power_w": 5700, "voltage": [233, 236, 239], "current": [7300, 7300, 7400] }' --user admin:PASSWORD 'http://HOST-IP/cnf?cmd=set_ajax_meter&dev_id=M4'

 


Funktioniert. Zähler wird mit den gesendeten Werten aktualisiert.


mosquitto_pub -h HOST -t cfos_mqtt/set/M4 -m '{ "model": "PV-excess", "power_w": 1200, "import_wh": 0, "export_wh": 29400, "voltage": [231, 232, 233], "current": [1001, 1002, 1001] }'

Funktioniert nicht. Schon alle Formatierungen und Varianten probiert. Die Daten werden vom Zähler nicht übernommen.
MQTT an sich funktioniert. Die Daten des Zähler werden zum Broker gesendet. Aber er übernimmt keine Werte von dort.

Was kann ich da noch probieren?
Danke.

Anhänge:
markiert als Spam
Geschrieben von (Fragen: 2, Antworten: 6)
Beantwortet am 14. August 2023 20:57
0
Private answer

Hat sich seit Version 1.20 erledigt - seitdem funktioniert es endlich. Steht etwas kryptisch auch in den Release Notes.

markiert als Spam
Geschrieben von (Fragen: 4, Antworten: 12)
Beantwortet am 30. Mai 2023 17:02
0
Private answer

Hi,

leider bin ich nicht zum testen gekommen. Aber, mein Nachbar hat das am WE bei sich erfolgreich eingebunden.

Ich habe im einen Link zu diesem Thread geschickt. Vielleicht kann er dir ein Code-Beispiel posten.

markiert als Spam
Geschrieben von Top Networker (Fragen: 0, Antworten: 998)
Beantwortet am 30. Mai 2023 16:58
0
Private answer

@geotec - konntest du eventuell schon mal testen? In der aktuellen Beta ist zumindest das "Adresse" Feld für HTTP Input Zähler sichtbar, in das man die Broker URL eintragen kann.
Aber entweder bin ich der Einzige, der MQTT nutzen will und es funktioniert nicht, oder ich habe irgendwo einen Fehler drin. Ich habe auch schon bei cFos nach einem ganz konkreten Beispiel für eine erfolgreiche MQTT Ansteuerung eines HTTP Input Zählers gefragt - aber leider bisher noch nichts bekommen.

markiert als Spam
Geschrieben von (Fragen: 4, Antworten: 12)
Beantwortet am 17. Mai 2023 8:10
0
Private answer

Leider bringt auch die aktuelle Beta keine Besserung - allerdings stand in den Release Notes auch nichts bezüglich MQTT. Der Support will sich bei den Entwicklern erkundigen, wie da der Stand ist.

markiert als Spam
Geschrieben von (Fragen: 4, Antworten: 12)
Beantwortet am 17. April 2023 9:10
0
Private answer

Kurzes Update: hatte deshalb auch an den Support geschrieben. Vorhin kam eine Antwort:

"Unsere Entwickler haben sich das Verhalten im Detail angeschaut und noch ein Problem gefixt.

Der Fix wird in der kommenden Version eingebaut sein. Sobald also die nächste Beta Version online verfügbar ist, sollten sie diese testen.
Bis dahin MQTT erstmal deaktivieren"

Brauchst also erstmal nicht testen. ;) Übrigens führen Tests mit MQTT bei mir sogar dazu, dass der Controller ständig abstürzt.

markiert als Spam
Geschrieben von (Fragen: 4, Antworten: 12)
Beantwortet am 6. April 2023 17:49
0
Private answer

Das wäre super! Zum Testen nutze ich MQTT.fx - oder den MQTT Client von ioBroker, vom Ergebnis her macht es keinen Unterschied.

markiert als Spam
Geschrieben von (Fragen: 4, Antworten: 12)
Beantwortet am 6. April 2023 8:01
0
Private answer

Wie bzw. womit schickst du die Daten an den mqtt-Broker? Vielleicht schaffe ich es am WE auch mal zu testen.

markiert als Spam
Geschrieben von Top Networker (Fragen: 0, Antworten: 998)
Beantwortet am 6. April 2023 7:59
0
Private answer

Nachtrag, falls das noch jemand liest:

Ich kann es nicht in jedem Fall reproduzieren, aber sobald ich versuche, Daten per MQTT an einen Zähler zu übermitteln, stürzt mir ständig der PowerBrain Controller ab. Uptime in "Konfiguration" ist dann immer wieder "0 Stunden 0 Minuten". Auch der Restart counter erhöht sich entsprechend.

Ohne MQTT Experimente läuft er durch.

Ich nutze mosquitto mit Authentifizierung, habe es aber auch schon mit anonymen Zugriff versucht (um das als Fehlerquelle auszuschließen). Und publishen der Daten der cFos funktioniert ja ohne Probleme.

Gibt es niemanden hier, der MQTT einsetzt um auf die HTTP Requests in Zukunft verzichten zu können?

markiert als Spam
Geschrieben von (Fragen: 4, Antworten: 12)
Beantwortet am 6. April 2023 6:50
0
Private answer

Hi martin,

 

danke für die Antwort! Ich liefere aktuell zum Beispiel per HTTP POST folgendes Jason an

/cnf?cmd=set_ajax_meter&dev_id=M8

{
"power_va": ${Leistung},
"export_wh": ${ExportEnergy},
"import_wh": ${ImportEnergy},
"current": [${Strom}, ${Strom}, ${Strom}],
"voltage": [${v1}, ${v2}, ${v3}],
"is_va": false
}

(die Variablen sind natürlich mit Werten gefüllt).

Wenn ich exakt den gleichen String per MQTT nach cfos_mqtt/set/M8 publishe, kommt allerdings nichts an (subscribe ich das Topic an einem anderen Client, sehe ich die Daten auch korrekt). Was mache ich da falsch?

Das Publishen zum Beispiel dieses Zählers nach MQTT liefert korrekt Daten über das Topic cfos_mqtt/get/M8.

markiert als Spam
Geschrieben von (Fragen: 4, Antworten: 12)
Beantwortet am 4. April 2023 8:21
0
Private answer

MQTT via HTTP Input Zähler geht indem jemand via MQTT Zählerdaten postet, die in dem Format des HTTP Input Zählers vorliegen. Das Format ist genau, wie in unseren curl Beispielen beschrieben. Du musst also einen Teilnehmer des MQTT brokers so konfigurieren, dass er die gewünschten Daten so liefert.

markiert als Spam
Geschrieben von cFos (Fragen: 2, Antworten: 129)
Beantwortet am 4. April 2023 8:08
0
Private answer

Liest hier eigentlich jemand von cFos mit, der solche Sachen definitiv beantworten kann? So schön ich das ganze Prinzip finde, ist die Doku leider oftmals eher unzureichend.

Und ja, das mit dem ioBroker MQTT Broker hatte ich gelesen - ich verwende allerdings Mosquitto. Der MQTT Adapter von ioBroker hat bei mir eine reine Client Funktion. Ich kann die Nachrichten die ich da für den Zähler publishe auch in anderen Clients abonnieren, das sollte also so weit passen. Kann natürlich sein das Format ist nicht korrekt, aber da habe ich auch schon viel experimentiert.

So sind ja zum Beispiel die Parameternamen und -Formate im HTTP Request anders als die, die man im Status des Gerätes per MQTT bekommt. Deshalb wäre eine ausführlichere Doku mit Beispiel (und separater Zähler-Config falls nötig) wirklich schön.

Da ich leider nicht vernünftig nachprüfen kann was da im Hintergrund im Powerbrain passiert, werde ich es wohl erstmal aufgeben - wäre jetzt nur weiteres Rumprobieren.

Eigentlich habe auch noch ein viel wichtigeres Problem mit meinem ständig abbrechenden PV Überschussladen, obwohl ausreichend Überschuss da ist. Auch da wäre schön, wenn man mehr sehen könnte (zum Beispiel welche Laderegel gerade greift).

Ich bin eigentlich kurz davor, auf die Intelligenz der Wallbox zu verzichten, und die Ladeströme - so wie vorher mit meiner alten Wallbox - ganz stupide von außen manuell per eigenem Script vorzugeben.

markiert als Spam
Geschrieben von (Fragen: 4, Antworten: 12)
Beantwortet am 3. April 2023 22:56
0
Private answer

Moin, die Frage mit der IP-Adresse kann ich dir leider auch nicht beantworten. Vielleicht ist die Doku da auch nicht ganz aktuell. (Warum sollte man den mqtt-Broker an mehreren Stellen eintragen. Es wird ja vermutlich nur einen geben...)

Hast du gelesen das der mqtt-Broker in ioBroker sich nicht Standardkonform verhält? Vielleicht daher das Problem!

markiert als Spam
Geschrieben von Top Networker (Fragen: 0, Antworten: 998)
Beantwortet am 3. April 2023 22:40