Ich möchte die zwei Werte meines Poolthermometers per HTTPMOD JSON abgreifen, verstehe aber überhaupt nichts im Wiki....nur Bahnhof.
Könnte mir einer mal Tipps dazu geben? Wie muss ich mein Device definieren, dass er mir den Wert der Garage mit 22.9 und den Wert Pool mit 20.3 ausgibt?
Ich hab es so versucht..geht aber nicht.
defmod Pooltemperatur HTTPMOD http://192.168.2.157/api 120
attr Pooltemperatur reading01JSON Garage
attr Pooltemperatur reading01Name Temperatur_Garage
attr Pooltemperatur reading02JSON Pool
attr Pooltemperatur reading02Name Temperatur_Pool
Das sind die Rohdaten:
{
"systemname": "Temperatursensor",
"secure_counter": 2124,
"firmware": "2.3.06-b",
"sensors": [
{
"name": "Garage",
"value": 22.9375,
"mean-1": {
"value": 22.95417,
"count": 60,
"period": 3600
},
"mean-24": {
"value": "NaN",
"count": 0,
"period": 86400
},
"unit": "Celsius",
"time": "Fri Aug 1 16:00:42 2025"
},
{
"name": "Pool",
"value": 20.375,
"unit": "Celsius",
"time": "Fri Aug 1 16:00:42 2025"
}
]
}
Hallo,
würd das mit JsonMod angehen und für jede Temperatur ein Device anlegen:
defmod jm_garage JsonMod http://192.168.2.157/api
attr jm_garage readingList single(jsonPath('$.sensors.0.mean-1.value'), 'temperature', -99)
setstate jm_t1 2025-08-01 17:52:55 .computedReadings temperature
setstate jm_t1 2025-08-01 17:52:55 temperature 22.95417
defmod jm_pool JsonMod http://192.168.2.157/api
attr jm_pool readingList single(jsonPath('$.sensors.1.value'), 'temperature', -99)
setstate jm_t 2025-08-01 17:24:54 .computedReadings temperature
setstate jm_t 2025-08-01 17:24:54 temperature 20.375
Sieht kompliziert aus, ist es aber gar nicht. Zum nachvollziehen kannst Dir mal alle Readings anlegen lassen, mit complete() in readingList.
defmod jm_all JsonMod http://192.168.2.157/api
attr jm_all readingList complete()
Gruß Thomas
Die defmod sind beide falsch, entweder JsonMod oder HTTPMOD.
Zitat von: TomLee am 01 August 2025, 17:35:57defmod jm_garage JsonMod HTTPMOD http://192.168.2.157/api
Und warum man dafür zwei devices brauchen soll, habe ich nicht verstanden.
Sry, kam daher das ich das selbst mit file nachvollzogen und die IP (mit HTTPMOD) aus der Definition im ersten Post kopiert und im Nachhinein in meine Definitionen eingefügt hatte.
In weiser Voraussicht dacht ich mir zwei Devices machen sich besser, sollte eine Sprachsteuerung im Einsatz sein.
Zitat von: betateilchen am 01 August 2025, 17:51:01...
Und warum man dafür zwei devices brauchen soll, habe ich nicht verstanden.
Welche Readingnamen würdest Du denn für zwei Temperaturen in einem Device wählen?
Bei mir (mein ich) sind das unabhängig von der Sprachsteuerung immer temperature-Readings.
Danke für die Hinweise und Vorschläge....aber irgendwie geht es mit meiner kuriosen Methode jetzt doch irgendwie.
defmod Pooltemperatur HTTPMOD http://192.168.2.157/api 120
attr Pooltemperatur extractAllJSON 1
attr Pooltemperatur reading01JSON Garage
attr Pooltemperatur reading01Name Temperatur_Garage
attr Pooltemperatur reading02JSON Pool
attr Pooltemperatur reading02Name Temperatur_Pool
setstate Pooltemperatur 2025-08-01 19:42:09 firmware 2.3.06-b
setstate Pooltemperatur 2025-08-01 19:42:09 secure_counter 4781
setstate Pooltemperatur 2025-08-01 19:42:09 sensors_01_mean-1_count 60
setstate Pooltemperatur 2025-08-01 19:42:09 sensors_01_mean-1_period 3600
setstate Pooltemperatur 2025-08-01 19:42:09 sensors_01_mean-1_value 25.07292
setstate Pooltemperatur 2025-08-01 19:42:09 sensors_01_mean-24_count 0
setstate Pooltemperatur 2025-08-01 19:42:09 sensors_01_mean-24_period 86400
setstate Pooltemperatur 2025-08-01 19:42:09 sensors_01_mean-24_value NaN
setstate Pooltemperatur 2025-08-01 19:42:09 sensors_01_name Garage
setstate Pooltemperatur 2025-08-01 19:42:09 sensors_01_time Fri Aug 1 19:42:07 2025
setstate Pooltemperatur 2025-08-01 19:42:09 sensors_01_unit Celsius
setstate Pooltemperatur 2025-08-01 19:42:09 sensors_01_value 25.125
setstate Pooltemperatur 2025-08-01 19:42:09 sensors_02_name Pool
setstate Pooltemperatur 2025-08-01 19:42:09 sensors_02_time Fri Aug 1 19:42:07 2025
setstate Pooltemperatur 2025-08-01 19:42:09 sensors_02_unit Celsius
setstate Pooltemperatur 2025-08-01 19:42:09 sensors_02_value 20.25
setstate Pooltemperatur 2025-08-01 19:42:09 systemname Temperatursensor
Ich werde aber die Variante von TomLee benutzen...
Zitat von: betateilchen am 01 August 2025, 17:51:01...
Und warum man dafür zwei devices brauchen soll, habe ich nicht verstanden.
Gegenargumente?
Oder gar Verbesserungsvorschläge?