Hallo,
folgendes nachweihnachtliches - für mich nicht lösbares - Problem:
Via HTTPMOD hole ich eine Liste mit den Zuständen meiner Lupusec-Sensoren und lese sie mit Regex aus:
defmod Lupusecstat HTTPMOD http://xxx:xxx/action/deviceListGet 21600
attr Lupusecstat reading01Name LupusBattStat
attr Lupusecstat reading01RegOpt g
attr Lupusecstat reading01Regex battery_ok": \"([^,]*)"
attr Lupusecstat reading02Name LupusName
attr Lupusecstat reading02RegOpt g
attr Lupusecstat reading02Regex name": \"([^,]*)"
Das funktioniert. Das Reading sieht dann allerdings aus wie in der Anlage, dh Klarname (zB CO-Melder Tresorraum) und Zustand ("1" für i.O.) sind getrennt.
Meine Fragen dazu:
a) Kann man es hinbekommen, dass Klarname und Zustand nebeneinander stehen, also zB "CO-Melder Tresorraum 1"?
Auf das Aktualisierungsdatum kann ich gut verzichten.
b) Wie kann man die "1" durch zB "OK" bzw. die "0" durch "nOK" ersetzen?
Jemand eine Idee/einen Tipp?
Vielen Dank,
Ingo
PS: Die Liste sieht aus wie folgt (Ausschnitt):
{"area": 1, "zone": 27, "type": 13, "type_f": "{D_TYPE_13}", "name": "CO-Melder Tresorraum",
"tag": "",
"cond": "", "cond_ok": "1", "battery": "", "battery_ok": "1",
"tamper": "", "tamper_ok": "1", "bypass": 0, "rssi": "{WEB_MSG_STRONG} 9",
"resp_mode": [0,5,5,5,5,0], "ammeter": "0", "ver": "",
"bypass_tamper": 0,
"sid": "RF:0010b540", "su": 1, "alarm_status": "", "status_ex": "0", "hue": "-1", "sat": "-1", "ctemp": "-1", "hue_cmode": "-1", "hue_cie_x": "-1", "hue_cie_y": "-1", "hue_color_cap": "0", "nuki": "-1", "shutter_turn": 0,"status": ""},
Hat niemand eine Idee?
Doch, ein direktere Weg? Ist ev. einfacher?
https://fhem.de/commandref.html#JsonMod
Danke, Otto,
aber mit Json komme ich einfach nicht zurecht. Hab da schon diverse Versuche unternommen, nie mit dem gewünschten Resultat.
LG
Laut commanref kann das Ergebnis mit einem attr umgesetzt werden. B:
attr PM reading02-3OMap 0:NOKt, 1:OK
Hi jkriegl,
danke... Habs versucht und bekomme einen Fehler. Stimmt die Syntax? Gehört das "3O" zu "Map"?
Und woher kommt das "t" hinter "NOK"?
LG Ingo
probier mal 01-72OMap
t ist ein typo
Zitat von: is2late am 28 Dezember 2021, 16:37:19
Danke, Otto,
aber mit Json komme ich einfach nicht zurecht. Hab da schon diverse Versuche unternommen, nie mit dem gewünschten Resultat.
LG
Aber das was Du hast ist doch json - wozu das jetzt fremd zerlegen / lesen ::)
Wie Otto geschrieben hat - JSON direkt nutzen.
Das geht bei HTTPMOD geht das automatisch, wenn duattr Lupusecstat enforceGoodReadingNames 1
eingibst.
Die speziell gewünschten Readings kannst du mitattr Lupusecstat LupusName {ReadingsVal($NAME,"name","Fehler")." ".ReadingsVal($NAME,"area","Fehler")}
anlegen lassen.
Gruß Jens
Vielen Dank, ich probiere es....
Am Beispiel des o.g. Ausschnitts aus dem HTTPMOD also
attr CO-Melder Tresorraum Lupusecstat LupusName {ReadingsVal($NAME,"name","Fehler")." ".ReadingsVal($NAME,"area","Fehler")}
richtig? Klappt nicht, also muss ich wahrscheinlich noch etwas in Jens` Beispielcode anpassen, oder? Was hat es mit "Fehler" auf sich? Ich will doch auf die Batterie hinaus... :'(
LG