Benutzerdefinierter MQTT Zähler: Timeout trotz MQTT Verbindung

  • Fragen
  • Benutzerdefinierter MQTT Zähler: Timeout trotz MQTT Verbindung

Benutzerdefinierter MQTT Zähler: Timeout trotz MQTT Verbindung

0
0

Hallo zusammen,

nachdem mir das Update v2.2.0 leider einige Probleme bzgl. meiner RFID Lösung bereitete, wollte ich meine cFos Wallbox mal zurücksetzen und frisch aufsetzen. Neben der RFID Karte machte auch immer wieder mein Tasmota Smartmeter „Probleme“. Bisher hatte ich die Werte via HTTP/JSON mit einem benutzerdefinierten Zählerskript angerufen. Dies führte aber immer wieder mal zu Lesefehlern trotz sehr stabilem Netzwerk. Ich schätze der Webserver von Tasmota ist schlicht nicht der Beste.

In Tasmota Kreisen wird daher gerne auf MQTT verwiesen und so wollte ich mir einen  benutzerdefinierten MQTT Zähler schreiben. Leider konnte ich auch nach vielem Probieren keine Lösung finden. Auch hier im Forum konnte ich nichts Passendes finden, daher probiere ich es mal selbst:

Fehlerbeschreibung

Der MQTT Server funktioniert und kann ohne Probleme im Netzwerk genutzt werden – auch von der Wallbox. Definiere ich den Server in den globalen Einstellung und/oder aktiviere das Schreiben von Statuswerten, werden Informationen an den MQTT Server übermittelt.

Die Einstellungen des Tasmota Smartmeters wurden überprüft und dieses schreibt ebenfalls regelmäßig den gewünschten Wert. Aktuell alle 10 Sekunden, aber auch schnellere Aktualisierungen (jede Sekunde) machten keinen Unterschied.

Unabhängig davon wie ich das Benutzerdefinierte Skript anpasse, erhalte ich aber immer die Fehlermeldung „Last error: No update for more than 30 seconds“. Auch habe ich schon in der Definition des Zählers im cFos Interface die diversen Möglichkeiten als Serveradresse („mqtt“, volle Url mit Port, ohne Port, …) ohne Erfolg probiert.

Einstellungen wie Geräte-ID sollten wenn ich die Dokumentation richtig verstanden habe, keinen Einfluss auf das Benutzerdefnierte Skript haben, da dieses ja das Topic fest vorgibt. Oder täusche ich mich?

Zur besseren Visualisierung habe ich Skript sowie einen Screenshot von MQTT-Explorer und den probierten Settings im cFos-Interface angehängt. Vielleicht kann mir ja einer von euch weiterhelfen.

Vielen Dank!

markiert als Spam
Geschrieben von (Fragen: 1, Antworten: 1)
Gefragt am 29. August 2024 8:38
115 views

Antworten (8)

0
Private answer

Ergänzung: Der COM-Fehler wirkt sich auch auf die Eingänge aus. Wenn der Fehlerzähler sich erhöht, wird teilweise auch der Eingang auf Null gesetzt und bleibt auf Null bis zur nächsten Erhöhung.

markiert als Spam
Geschrieben von (Fragen: 3, Antworten: 15)
Beantwortet am 21. Dezember 2024 13:32
0
Private answer

Auch ich kann das Verhalten für die Version 2.4.0 bestätigen. Erschwerend kommt hinzu, dass bei einem Ausfall des publishers auch die Werte nicht sauber als nicht mehr gültig erklärt werden. Ein sicheres Lastmanagement zum Schutz der Hausanschlusssicherungen lässt sich damit nicht wirklich realisieren.

markiert als Spam
Geschrieben von (Fragen: 3, Antworten: 15)
Beantwortet am 19. Dezember 2024 20:20
0
Private answer

Meine Versuche sind bis jetzt auch alle gescheitert,

seitens cfos wurde ich hierher Zurück verwiesen, nicht befriedigend den hier diskutieren wir bereits ohne Erfolg. Es wäre hilfreich wenn irgend jemand sein funktionierendes Template und alle Einstellungen hier mal posten würde.

markiert als Spam
Geschrieben von (Fragen: 0, Antworten: 3)
Beantwortet am 13. Dezember 2024 16:41
0
Private answer

Hallo

Ich bekomme es auch nicht hin. Ich kann meinen Mosquitto wunderbar abfragen.
Version ist auf 2.4.0


mosquitto_sub -C 1 -L mqtt://admin:xxxxx@192.168.20.8:1883/stat/tasmota_4F22E6/STATUS10 | jq
{
"StatusSNS": {
"Time": "2024-12-13T11:33:08",
"Main": {
"power": 31,
"counter_pos": 5999.342,
"counter_neg": 478.885
}
}
}

Daher habe ich mir diesen Zähler gebaut


{
"rtype": 2, // 0 = modbus, 1 = http/json
"mtype": 1, // 0 = other, 1 = meter, 2 = inverter, 4 = battery


"name": "Tasmota Smartmeter MQTT", // as displayed in the config dialog
"manufacturer": "Tasmota",
"dev_type": "tasmota_powermeter_mqtt", // will be prefixed by "meter_"
"delay_accumulated": false, // false: always read accumulated value, like import_wh / export_wh when reading instantaneous values

// values used to build the model string
"type_designation": {
"address": "",
"type": "string",
"fixed": "Smartmeter"
},
"version": {
"address": "",
"type": "string",
"fixed": "1.0"
},
"firmware_version": {
"address": "",
"type": "string",
"fixed": "1.0"
},
"serial": {
"address": "",
"type": "string",
"fixed": "0"
},

"power_w": {
"address": "stat/tasmota_4F22E6/STATUS10",
"query": "StatusSNS.Main.power",
"type": "float",
"resolution": 1.0
}
}

In der URL Zeile in der cFos GUI steht dann

mqtt://admin:xxxx@192.168.20.8:1883

Aber ich bekomme immer den Fehler dass es seit 30s keine Update gab. Hab schon alles versucht. Verschiedene Formen der URL. Mit Port ohne Port. URL in der Definition. Mit und ohne führendem /. No Way!

Die Kommunikation mit dem Mosquitto an sich funktioniert aber. Ich habe den Tasmota auch als HTTP Zähler versucht direkt abzufragen und das geht. Mit quasi der gleichen Definitionsdatei. Nur rtype=1 halt. Wenn ich dann liefern der Werte nach MQTT angebe funktioniert das auch. Auch schreibt der cFOS seine Logs nach MQTT. Am Mosquitto oder der Kommunikation dorthin kann es also kaum liegen.

Vielleicht hat jemand eine Lösung oder cFOS liest hier mit.

Bye
Marcus

markiert als Spam
Geschrieben von (Fragen: 0, Antworten: 1)
Beantwortet am 13. Dezember 2024 11:50
0
Private answer

@sinuswave:

das verwirr ein wenig den unter dem link findet man ein Beispiel mit führendem „/„  , vielleicht kann hier CFOs selbst mal Stellung nehmen.

ein Gedanke der mir gerade kommt:

Bei deinem  Beispiel  verwendest du „query“ = „ power“,
meine Werte stehen jedoch direkt unter dem Topic womit die query nach meiner Auffassung unnötig ist, und ich sie deshalb entfallen lassen hab.

da ich weder mit führendem „/„ noch ohne, bis jetzt Erfolg hatte, vermute ich das Problem bei der fehlenden Query. Ich werde es testen und berichten.

Danke aber für die Klärung das es ohne führendem „/„ funktionieren sollte.

 

markiert als Spam
Geschrieben von (Fragen: 0, Antworten: 3)
Beantwortet am 1. Dezember 2024 18:21
0
Private answer

@Flecky13: Einiges hierzu ist unter https://www.cfos-emobility.de/de/cfos-charging-manager/documentation/mqtt.htm beschrieben. In meiner Zählerdefinition funktioniert der Topic ohne führendes /

Beispiel:

{ "address": "topic_xy", "query": "power" }

markiert als Spam
Geschrieben von (Fragen: 3, Antworten: 15)
Beantwortet am 1. Dezember 2024 13:23
0
Private answer

Hallo,
ich nutze die Version 2.4.0 und kann bestätigen genau die selbe Fehlermeldung zu bekommen.
der Broker läuft, die Statusmeldungen werden übertragen und sind auch unter dem Topic "cfos_mqtt" zu sehen.

mir stellen sich mehrere Fragen.
welche Adresse muss angegeben werden unter der Geräteconfiguration?
wie wird das Topic in der Zählerdefinition angegeben mit vorrausgestellen "/" oder ohne ?
Hat bereits jemand erfolgreich einen Zähler über MQTT eingebunden ?

markiert als Spam
Geschrieben von (Fragen: 0, Antworten: 3)
Beantwortet am 1. Dezember 2024 0:12
0
Private answer

Eine Abhile habe ich hierzu leider nicht. Aber ich kann das Problem auch für die Version 2.2.1 des Charging Manager bestätigen. Im meinem Fall läuft der mqtt broker auf dem gleichen host mit. Netzwerkprobleme kann man damit nahezu ausschließen.

markiert als Spam
Geschrieben von (Fragen: 3, Antworten: 15)
Beantwortet am 3. November 2024 22:46