Seite 1 von 1
OH 2.5 mqtt Werte werden nicht angezeit
Verfasst: 15. Jan 2023 12:28
von ms1978
Hallo,
ich lese per MQTT Werte aus, die möchte ich in der UI anzeigen.
in der Log:
2023-01-15 12:17:48.656 [vent.ChannelTriggeredEvent] - mqtt:systemBroker:ccgx:01 triggered {"value": 53.02}
Code in Items-Datei
Code: Alles auswählen
Number PV_battery_voltage "Akkuspannung [%.2f Volt]" (gPower) {channel="mqtt:systemBroker:ccgx:01"}
Leider wird in der UI nur das Label und kein Wert angezeigt - wo liegt mein Fehler
Danke, Martin
Re: OH 2.5 mqtt Werte werden nicht angezeit
Verfasst: 15. Jan 2023 17:25
von udo1toni
Frage eins: Welche Version von openHAB nutzt Du denn? Den Systembroker gibt es in openHAB3 jedenfalls nicht mehr.
Dein eigentliches Problem wird aber sein, dass Du versuchst, ein JSON Objekt einem Number Item zuzuweisen, das geht nicht. Du musst in der Channeldefinition ein transformationPattern eintragen, welches mit JSONPATH den Wert selektiert (hier wäre es $.value).
Die jsonpath Transformation muss installiert sein.
Wahlweise kannst Du die Transformation auch über ein Profile vornehmen, kommt etwas auf das Drumherum an, ob das sinnvoll ist.
Re: OH 2.5 mqtt Werte werden nicht angezeit
Verfasst: 16. Jan 2023 22:55
von ms1978
Hallo, ich habe es gelöst, Openhab 2.5.1
nach langem suchen, habe ich mal ein generic MQTT Thing angelegt, dort konnte ich in der PaperUI dann den Channel formatieren mit JSONPATH - jetzt klappt es - danke für die Tips.
Re: OH 2.5 mqtt Werte werden nicht angezeit
Verfasst: 5. Feb 2023 13:25
von ms1978
das obige funktioniert einwandfrei, leider hat sich openhab wohl eine Abfrage eines mqtt Topic irgendwo gemerkt, dort bekomme ich ein Fehler im LOG - ist halt kosmetisches Problem - diese Abfrage des MQTT Topic taucht weder in den Items, noch in den Thing-Channels auf.
Speichert Openhab die MQTT Topics noch irgendwo im Dateisystem - wenn ja, wo?
Re: OH 2.5 mqtt Werte werden nicht angezeit
Verfasst: 5. Feb 2023 16:19
von udo1toni
Nein. Es kann natürlich sein, dass irgendwo was hängen geblieben ist. Du kannst in den json Dateien, in denen die Konfiguration aus Paper UI gespeichert wird schauen, ob Du dort das Topic findest. Allerdings ist es so eine Sache, diese Dateien händisch zu bearbeiten. Letztlich ist es eine Operation am offenen Herzen. openHAB muss dazu beendet sein. Zum Prüfen reicht aber lesender Zugriff auf die Dateien, da wird eher nichts passieren.
Von der GNU/Linux Shell aus:
Code: Alles auswählen
find $OPENHAB_USERDATA/ -exec grep -i 'Suchstring' /dev/null {} \;
sollte Dir alle Vorkommen des Suchstrings liefern. Wenn Du den Übeltäter identifiziert hast und es sich um eine Datei im Verzeichnis
$OPENHAB_USERDATA/jsondb/ handelt, kannst Du openHAB beenden, die Datei kopieren und anschließend das Original öffnen und die betreffende Stelle reparieren. Du musst aber aufpassen, die Datenstruktur nicht zu beschädigen

. Schau Dir an, wie die Daten drum herum strukturiert sind.
Re: OH 2.5 mqtt Werte werden nicht angezeigt
Verfasst: 6. Feb 2023 20:55
von ms1978
Hallo, vielen Dank, ich habe im 1. Schritt den Abschnitt gelöscht, das hat er nach dem Start gemerkt, und ein JSONDB Backup zurückgespielt.
Dann habe ich alles mit mqtt über die Paperui entfernt. Danach in der "org.eclipse.smarthome.core.thing.Thing.json" alle abschnitte mit mqtt gelöscht, und den Inhalt des JSONDB Backupordner gelöscht - danach startet das Openhab einwandfrei.
Den Broker hab ich dann manuell neu angelegt - jetzt läuft es sauber.
Ein Problem scheint das 2.5er mit Mqtt zu haben, wenn man unter Things einen Channel in der Paperui anlegt, und aus versehen eine vorhandene Channelnummer angibt, kommt das System durcheinander und wechselt zwischen den beiden Werten hin und her - der Channel kann zwar gelöscht werden - die Werte werden aber bei mir trotzdem weiterhin abgefragt - Neustart etc. hilft auch nicht, dann einfach einen neuen Channel anlegen, der eindeutig ist, und benutzen - oder das obige Prozedere wiederholen - geht auch.
Re: OH 2.5 mqtt Werte werden nicht angezeit
Verfasst: 7. Feb 2023 00:11
von udo1toni
Keine Ahnung, was Du mit Channelnummer meinst.
Gewöhnlich legt man Things an, unter jedem Thing legt man Channel an. Innerhalb eines Things müssen alle Channel eine eindeutige ID haben.
Innerhalb einer Bridge müssen alle untergeordneten Things eine eindeutige ID haben.
Innerhalb eines Bindings müssen alle Bridges (oder falls Binding ohne Bridge alle Things) eine eindeutige ID haben.
Code: Alles auswählen
Brdge mqtt:broker:bridge [...] {
Thing topic topic1 [...] {
Type switch : ch1 ...
Type switch : ch2 ...
Type switch : ch3 ...
}
Thing topic topic2 [...] {
Type switch : ch1 ...
Type switch : ch2 ...
Type switch : ch3 ...
}
}
Vollkommen korrekt, obwohl drei Channelpaare jeweils eine identische ID haben, aber sie unterscheiden sich im Thing.
Die UID als Ganzes (hier z.B.
mqtt:topic:bridge:topic1:ch3) muss eindeutig sein, nicht mehr und nicht weniger.
Re: OH 2.5 mqtt Werte werden nicht angezeit
Verfasst: 7. Feb 2023 06:47
von ms1978
textbasiert ist das richtig, aber wenn man das über die Paperui macht, im Thing ein Channel anlegen 01,02,03 gab es diese Probleme!
Re: OH 2.5 mqtt Werte werden nicht angezeit
Verfasst: 7. Feb 2023 11:53
von udo1toni
Namen (IDs) dürfen nicht mit Zahlen anfangen und durften das noch nie. In openHAB3.4 wird das auch durchgesetzt, vorher aber nicht.
Re: OH 2.5 mqtt Werte werden nicht angezeit
Verfasst: 12. Feb 2023 23:20
von ms1978
ok, das war mir neu - dann setz ich halt nen "a" davor oder so.
Läuft jetzt alles - vielen Dank.