Seite 1 von 1

Neues MQTT Topic

Verfasst: Di Feb 04, 2025 6:49 pm
von hhoefling
Das auswerten der Konfiguration, also das auslesen der benötigten ID's, ist ja bei der 2.x nicht mehr so einfach. Daher suche ich eine Möglichkeit mitzubekommen wann sich die Konfiguration ändert.
Wenn es ein Topic gäbe das z.B "TimeLastConfigChange" heist wäre das eine große Hilfe.
Ich wurde dieses Topic abonnieren und den Rest der Suche nur machen wenn's nötig wird.

Re: Neues MQTT Topic

Verfasst: Mi Feb 05, 2025 7:06 am
von mrinas
Halte das für eine gute Idee, wenngleich man eine klare Definition braucht wann sich dieser Zeitstempel ändern soll. Wie definiert man Konfiguration, welche Änderungen sollen den Zeitstempel ändern?
Relativ einfach scheint es bei neuen/entfernten Komponenten aus der Struktur (Ladepunkt, Zähler, WR/Speicher), ebenso wenn ein Fahrzeug entfernt oder hinzugefügt wurde.
Wie ist es bei anderen Konfigurationsänderungen, z.b. wenn ein anderer Anbieter für dynamische Strompreise ausgewählt wurde, der SoC-Anbieter für ein Fahrzeug geändert wurde oder die Einstellungen fürs PV Laden angepasst wurden? Kann mir vorstellen dass das schnell beliebig kompliziert wird.

Welche IDs benötigst Du denn konkret, wo musst Du suchen? Zumindest alles was sich in der Struktur findet gibts ja hier. openWB/counter/get/hierarchy - wenn dieses Topic abonniert ist bekommst Du ja aktiv Änderungen mitgeteilt, auch ganz ohne Zeitstempel. Vermutlich gibts noch weitere IDs, welche Szenarien hast Du noch im Sinn?

Re: Neues MQTT Topic

Verfasst: Mi Feb 05, 2025 7:18 am
von LutzB
Ich verstehe diese Anforderung nicht. Wenn sich die Konfiguration (was jetzt auch immer genau damit gemeint ist) ändert, wird das entsprechende Topic neu gesendet. Darauf kann dann entsprechend reagiert werden. Wozu muss man noch einen Zeitstempel mitführen?

Re: Neues MQTT Topic

Verfasst: Mi Feb 05, 2025 9:16 am
von hhoefling
Wenn man Daten via einer MQTT Komponenten in die openWB bringen will.
Sei es ein SoC, oder eine Wechselrichter oder Zähler oder.....
Braucht man die ID des Gerätes in der openWB Konfiguration.
Diese ID ist bei jeder Installation anders.
Es ist schwer dann ein Generisches Module zu schreiben das ohne manuelle Anpassung in
verschiedenen Systemen benutzt werden kann.
Es ist aber auch unverhältnismäßig alle 10 Sekunden (Regelinterwall) die MQTT Struktuir der openWB zu scannen
um dieses ID's raus zu suchen. Mann muss ja regelrecht "rumstochern" und mit Timeout arbeiten um in einer unbekannten openWB konfiguration die ID's zu finden, (falls es überhaupt MQTT Geräte dort gibt)

Mit diesem MQTT Topic konnte man es sich sparen und nur bei Bedarf durchführen.
Damit ist ein "Autokonfig" der Daten zutragenen MQTT-Sender möglich.

Re: Neues MQTT Topic

Verfasst: Mi Feb 05, 2025 9:36 am
von LutzB
Dazu musst Du doch nur folgende Topics subscriben: openWB/system/device/+/component/+/config
Wenn sich etwas ändert, werden die neu gepublished, dann sollte Dein externes Modul darauf reagieren und eventuelle IDs anpassen.
Ganz ohne Timeout, "rumstochern", "scannen" oder was auch immer.

Re: Neues MQTT Topic

Verfasst: Mi Feb 05, 2025 10:59 am
von hhoefling
Ok. Ich möchte aus einem Script heraus mit mosquitto_sub das ganze abfragen.
Das Script wird periodisch aufgerufen. Entweder von openWB selbst oder von einem Cron-Job
Auf viele Messages muss ich dann warten? (entweder mit -C n oder mit Timeout)
Es ist nicht bekannt wieviele Componenten vorhanden sind, und ob nicht der dritte dann die gesuchte MQTT Componente ist?
Es gibt ja keinen Component-Counter.

Das eine neue Topic, das auch garantiert existiert, kann ich mit "-C 1" abfragen mit meinem gespeicherten letzten Wert vergleichen und weiterschlafen wenn's nix neues gibt.
Bei Änderungen wird dann einmalig die eigenen Konfiguratiosdatei aktualisiert (autokonfig)

Ich habe keinen Daemon vorgesehen, nur um die Konfiguration zu überwachen.
Daher das "rumstochern", "scannen" oder was auch immer.

Re: Neues MQTT Topic

Verfasst: Mi Feb 05, 2025 12:39 pm
von LutzB
hhoefling hat geschrieben: Mi Feb 05, 2025 10:59 am Ok. Ich möchte aus einem Script heraus mit mosquitto_sub das ganze abfragen.
Das Script wird periodisch aufgerufen. Entweder von openWB selbst oder von einem Cron-Job
Dann würde ich das nochmal überdenken.
hhoefling hat geschrieben: Mi Feb 05, 2025 10:59 am Auf viele Messages muss ich dann warten? (entweder mit -C n oder mit Timeout)
Es ist nicht bekannt wieviele Componenten vorhanden sind, und ob nicht der dritte dann die gesuchte MQTT Componente ist?
Es gibt ja keinen Component-Counter.
Richtig, es ist eine variable Anzahl Komponenten. "-C n" macht also keinen Sinn, eher ein Timeout, um alle Topics zu bekommen.
hhoefling hat geschrieben: Mi Feb 05, 2025 10:59 am Das eine neue Topic, das auch garantiert existiert, kann ich mit "-C 1" abfragen mit meinem gespeicherten letzten Wert vergleichen und weiterschlafen wenn's nix neues gibt.
Bei Änderungen wird dann einmalig die eigenen Konfiguratiosdatei aktualisiert (autokonfig)
Ist etwas aufwändig, aber Du kannst die Ausgabe von mosquitto_sub sortieren und mit den vorher abgerufenen Topics vergleichen.
hhoefling hat geschrieben: Mi Feb 05, 2025 10:59 am Ich habe keinen Daemon vorgesehen, nur um die Konfiguration zu überwachen.
Daher das "rumstochern", "scannen" oder was auch immer.
Wie oben geschrieben wäre das aber definitiv der bessere Weg. Pollen des Brokers ist nicht das, wofür MQTT gemacht wurde.