HTTPMOD JSON Zuweisungsproblem

Begonnen von sucht, 23 Juni 2017, 18:54:18

Vorheriges Thema - Nächstes Thema

sucht

Hallo zusammen

ich habe ein Thermometer wo ich mehrere Fühler per http json werte geliefert bekomme in der Form

{"system":{"time":"1498243366","utc":1,"soc":75,"charge":false,"rssi":-69,"unit":"C"},"channel":[{"number":1,"name":"Kanal 1","typ":1,"temp":26.10,"min":10.00,"max":35.00,"alarm":false,"color":"#0C4C88"},{"number":2,"name":"Kanal 2","typ":1,"temp":26.80,"min":10.00,"max":35.00,"alarm":false,"color":"#22B14C"},{"number":3,"name":"Kanal 3","typ":0,"temp":999.00,"min":10.00,"max":35.00,"alarm":false,"color":"#EF562D"},{"number":4,"name":"Kanal 4","typ":0,"temp":999.00,"min":10.00,"max":35.00,"alarm":false,"color":"#FFC100"},{"number":5,"name":"Kanal 5","typ":0,"temp":999.00,"min":10.00,"max":35.00,"alarm":false,"color":"#A349A4"},{"number":6,"name":"Kanal 6","typ":0,"temp":999.00,"min":10.00,"max":35.00,"alarm":false,"color":"#804000"},{"number":7,"name":"Kanal 7","typ":0,"temp":999.00,"min":10.00,"max":35.00,"alarm":false,"color":"#5587A2"},{"number":8,"name":"Kanal 8","typ":0,"temp":999.00,"min":10.00,"max":35.00,"alarm":false,"color":"#5C7148"}],"pitmaster":{"channel":0,"pid":0,"value":0.00,"set":10.00,"active":false,"manuel":

mit welchen Attributen komme ich an temp Werte

Danke und Gruß Michael

amenomade

Dein JSON scheint nicht vollständig zu sein. Ich hoffe es ist in der Wahrheit nicht der Fall.

Mit dem Array in channel bin ich nicht sicher. Das ist kein "strict" JSON. Ich würde folgendes probieren:
attr <device> reading01Name Temp1
attr <device> reading01JSON channel[0]_temp

attr <device> reading02Name Temp2
attr <device> reading02JSON channel[1]_temp


Wenn das nicht geht, dann kann man immer mit Regex
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Oder
attr <device> reading01Name Temp1
attr <device> reading01JSON channel_01_temp

attr <device> reading02Name Temp2
attr <device> reading02JSON channel_02_temp

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

fireball

Hi,

könnte man hier auch sowas auslesen?!
attr <device> reading01Name device_id
attr <device> reading01JSON Device_[*]_id
attr <device> reading01RecombineExpr join ",", @matchlist

und das Ergebnis in eine Liste schreiben?!

Laut Log sieht das bei mir so aus, es kommt aber kein Reading raus:
2024.01.27 20:21:42 5: WiserHub: JSON Flatter called : prefix Device_, ref is ARRAY(0x55bf00ea78)
2024.01.27 20:21:42 5: WiserHub: JSON Flatter called : prefix Device_01_, ref is HASH(0x55bd8ba9d8)
2024.01.27 20:21:42 5: WiserHub: JSON Flatter in hash while, key = ReceptionOfController, value = HASH(0x55c0ca3eb8)
2024.01.27 20:21:42 5: WiserHub: JSON Flatter doing recursion because value is a HASH
2024.01.27 20:21:42 5: WiserHub: JSON Flatter called : prefix Device_01_ReceptionOfController_, ref is HASH(0x55c0ca3eb8)
2024.01.27 20:21:42 5: WiserHub: JSON Flatter in hash while, key = Rssi, value = -53
2024.01.27 20:21:42 5: WiserHub: JSON Flatter sets Device_01_ReceptionOfController_Rssi to -53
2024.01.27 20:21:42 5: WiserHub: JSON Flatter in hash while, key = ModelIdentifier, value = WT704R1B30S4
2024.01.27 20:21:42 5: WiserHub: JSON Flatter sets Device_01_ModelIdentifier to WT704R1B30S4
2024.01.27 20:21:42 5: WiserHub: JSON Flatter in hash while, key = id, value = 0
2024.01.27 20:21:42 5: WiserHub: JSON Flatter sets Device_01_id to 0


Ich bekomme leider kein Reading angelegt... auch nicht wenn ich als reading01JSON Device_01_id angebe.

Danke
VG
René

betateilchen

Einen 7 Jahre alten Thread auszugraben, ist selten sinnvoll.

Warum verwendest Du nicht einfach JsonMod anstatt HTTPMOD?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

fireball

Hi,

ich hab mittlerweile jsonmod am laufen, dank deiner Hilfe und wollte jetzt die Werte in nem httpmod als Parameter verwenden, dann bin ich in der Doku nochmal über ein paar Dinge gestolpert, die ich nochmal ausprobierten wollte.

Den Thread hab ich nochmal genommen um nicht x neue Threads aufzumachen und er einigermaßen gepasst hat.

Aber wenn ich deine Antwort richtig interpretierte, heißt das nein... Sonst hättest sicherlich auf meine Frage geantwortet?!

Vg und danke

betateilchen

Zitat von: fireball am 27 Januar 2024, 20:51:50Aber wenn ich deine Antwort richtig interpretierte, heißt das nein... Sonst hättest sicherlich auf meine Frage geantwortet

Deine Frage kann ich Dir nicht beantworten. Grundsätzlich käme ich nicht auf die Idee, HTTPMOD für die Verarbeitung von json Daten zu verwenden.

Wenn ich einen Brief schreiben möchte, verwende ich ja auch nicht Excel, sondern Word.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!