[SOLVED] JSON und kein Ende

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Evil74
Beiträge: 11
Registriert: 15. Nov 2020 10:58
Answers: 0

[SOLVED] JSON und kein Ende

Beitrag von Evil74 »

Hallo zusammen

Ich glaube ich bekomme langsam einen lockdown Koller.... egal
Ich habe heute eine Sonoff ZBBridge mit Tasmota geflasht
learnings:
- in vielen Anleitungen fehlt dass man Z_RST auch auf Ground setzten muss
- wenn man es mit USB versorgt reicht das Einstecken am Rechner nicht. Das Ding braucht mehr Strom --> sonst kein WLAN

Dann habe ich mein Sensor gepaart. alles nett.
Jetzt bekomme ich natürlich mehere Einträge im MQTT und benötige den Contact

Code: Alles auswählen

tele/EG_Garage_Tor_Status/SENSOR = {"ZbReceived":{"0xB3D8":{"Device":"0xB3D8","Name":" GaragentorStatus","0500<00":"000000000000","ZoneStatusChange":0,"Contact":0,"Endpoint":1,"LinkQuality":123}}}
Jetzt habe ich mir hier die ganzen MQTT Themen angeschaut und auch viel versucht und bin zu diesem Definition gekommen.

Thing:

Code: Alles auswählen

Thing topic EG_Garage_Tor_Status "Garagentorstatus" 
  {
    Channels:
      Type contact : EG_Garage_Tor_Status "Garagentorstatus"[stateTobic="tele/EG_Garage_Tor_Status/STATE",transformationPattern="JSONPATH:$.ZbReceived.*.Contact", open="1",close="0"]
      
  }
und Item:

Code: Alles auswählen

Contact EG_Garage_Tor_Status "Garagentorstatus" {channel="mqtt:topic:mosquitto:EG_Garage_Tor_Status:EG_Garage_Tor_Status"}

Wo mache ich den Fehler? Er setzt den Contact immer auf NULL
Ich würde mich echt über eine Rückmeldung freuen.
Viele Grüße

Tobias
Zuletzt geändert von Evil74 am 10. Jan 2021 12:55, insgesamt 1-mal geändert.

Pepe1907
Beiträge: 167
Registriert: 1. Jun 2020 17:29
Answers: 2

Re: JSON und kein Ende

Beitrag von Pepe1907 »

Hast du schonmal versucht das Garagentor zu fahren dass man eine Rückmeldung vom Item bekommt?

Gesendet von meinem SM-G981B mit Tapatalk


Evil74
Beiträge: 11
Registriert: 15. Nov 2020 10:58
Answers: 0

Re: JSON und kein Ende

Beitrag von Evil74 »

Ja das habe ich gemacht. Der Sensor ist ja noch nicht verbaut. Das gab aber keine Änderung. Ich sehe wie sich der Wert im MQTT ändert aber ich bekomme Ihn nicht ins item

scapin
Beiträge: 6
Registriert: 20. Apr 2020 20:23
Answers: 0

Re: JSON und kein Ende

Beitrag von scapin »

Schreib doch bitte stateTopic richtig.

Evil74
Beiträge: 11
Registriert: 15. Nov 2020 10:58
Answers: 0

Re: JSON und kein Ende

Beitrag von Evil74 »

mea culpa. Aber das war es leider nicht. Habt Ihr ein Tip wo ich nachschauen kann, was da intern übergeben wird?

Benutzeravatar
udo1toni
Beiträge: 15248
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: JSON und kein Ende

Beitrag von udo1toni »

Dein JSONPATH Ausdruck ist falsch. Es muss so aussehen:

Code: Alles auswählen

JSONPATH:$.ZbReceived["0xB3D8"].Contact
Ich hab keine Ahnung, wie Du auf den * kommst. Tipp: Wenn Du VSCode verwendest, installiere Dir das Plugin JSONPath StatusBar. Richte Dir eine Datei für JSON ein (ich hab meine einfach mit in das Conf-Verzeichnis gepackt und sie test.json genannt). Die Datei bleibt leer. Wenn Du nun ein JSON Objekt hast, von dem Du einen bestimmten Wert haben möchtest, lädst Du das Objekt in die Datei und setzt anschließend den Cursor auf den gesuchten Wert. Nun gibt es unten rechts in der Statuszeile des Editors eine Anzeige des passenden JSONPATH.
Mit einem zusätzlichen Plugin (z.B. Beautify JSON oder auch Prettier+) kannst Du über die Befehlspalette das JSON Objekt lesbarer formatieren lassen, dann sieht des z.B. so aus:

Code: Alles auswählen

{
    "ZbReceived": {
        "0xB3D8": {
            "Device": "0xB3D8",
            "Name": " GaragentorStatus",
            "0500<00": "000000000000",
            "ZoneStatusChange": 0,
            "Contact": 0,
            "Endpoint": 1,
            "LinkQuality": 123
        }
    }
}
Beim Schließen der Datei speicherst Du den Inhalt nicht ab, dann kann es nicht zu irgendwelchen Kompllikationen kommen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Evil74
Beiträge: 11
Registriert: 15. Nov 2020 10:58
Answers: 0

Re: JSON und kein Ende

Beitrag von Evil74 »

Einen schönen guten Morgen

Das hilft schon mal extrem. Ich habe zu Testzwecken jetzt erst mal auf String umgestellt

Code: Alles auswählen

      Type string : EG_Garage_Tor_Status "Garagentorstatus:[%s]"[stateTopic="tele/EG_Garage_Tor_Status/SENSOR", transformationPattern="JSONPATH:$.ZbReceived["0xB3D8"].Contact"]
Das mit dem Json Path hat super geklappt. Allerdings gibt es da noch ein Thema.

10:10:43.979 [WARN ] [del.core.internal.ModelRepositoryImpl] - Configuration model 'mqtt.things' has errors, therefore ignoring it: [35,159]: mismatched input '0xB3D8' expecting ']'
[39,1]: extraneous input '}' expecting EOF

Hier noch mal der Topic Inhalt

Code: Alles auswählen

{"ZbReceived":{"0xB3D8":{"Device":"0xB3D8","Name":" GaragentorStatus","0500<00":"010000000000","ZoneStatusChange":1,"Contact":1,"Endpoint":1,"LinkQuality":113}}}
Ich vermute mal das es es irgendwie an den zwei geschweifen Klammern liegt. Hat jemand eine Idee?

Benutzeravatar
udo1toni
Beiträge: 15248
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

JSON und kein Ende

Beitrag von udo1toni »

Nein, das hat nichts mit dem Payload zu tun. Du hast einen Konfigurationsfehler in der Datei mqtt.things, in der Nähe der Zeile 35.

Das Problem sind in diesem Fall die Anführungszeichen rund um den Node, also der Ausdruck vom JSONPATH. Du musst die doppelten Anführungszeichen vermutlich durch einfache ersetzen.

Gesendet von iPad mit Tapatalk
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Evil74
Beiträge: 11
Registriert: 15. Nov 2020 10:58
Answers: 0

Re: JSON und kein Ende

Beitrag von Evil74 »

Erst mal super vielen Dank für die Hilfe.

Ich habe es rausbekommen. Es waren die Anführungszeichen.
Der Sensorname muss in einfache Anführungszeichen.

Code: Alles auswählen

transformationPattern="JSONPATH:$.ZbReceived['0xB3D8'].Contact"

HABuserJM
Beiträge: 102
Registriert: 18. Apr 2021 11:30
Answers: 0
Wohnort: Berlin

Re: [SOLVED] JSON und kein Ende

Beitrag von HABuserJM »

Bewirken die eckigen Klammern in ZbReceived eine Vorfilterung, wenn es mehrere Sensoren gibt?
Bei mir sieht es so aus :

Code: Alles auswählen

transformationPattern: REGEX:(*.ZbReceived.0xB4D6.*)∩JSONPATH:$.ZbReceived.0xB4D6.Occupancy
Wobei ich RegEx davor gepackt um zu filtern und nicht weiss, ob das richtig ist oder es auch mit den eckigen Klammern geht.

Die Frage zum heutigen Zeitpunkt ist auch, ist das für openhab 3 gültig oder von einer vorherigen Version. Das kann ich leider in den Beiträgen meist nicht herauslesen.

Antworten