Sensorwerte (Temperatur, Luftfeuchtigkeit) per URL auslesen

  • Moin liebe Tasmota-Gemeinde,

    ich habe schon mehrere Ansätze zu meinem Anliegen im Netz gefunden, bin trotzdem noch nicht weitergekommen und wende mich hoffnungsvoll an Euch :)

    Ich habe eine Sonoff ZBBridePro mit Tasmota 13.3.0.3 und dazu mehrere Sonoff SNZB-02D Temperatursensoren. Die Verbindung steht und in der WebUI der Bridge wird auch die Temperatur und Luftfeuchtigkeit angezeigt (im Screenshot ist nur ein Sensor angebunden):

    Für meine Zwecke müsste ich jetzt allerdings diese Werte per URL auslesen, aber unter http://[ip]/cm?cmnd=status%2010 bekomme ich nur Folgendes:

    Auch mit anderen Parametern wir Status0 etc. bekomme ich alle möglichen Infos, aber keine Sensorwerte. Habe ich etwas übersehen?

    Danke schonmal für die Antworten 😀 Viele Grüße

    NeoY

  • Zur hilfreichsten Antwort springen
  • karoCB Danke, Prinzip habe ich verstanden :) kannst Du mir sagen, wie ich die Werte in die Variable speichere?

    Edit: Var1=0x32F2#temperature gibt beim Abruf {"Var1":"0.000"} aus.. habe da sicher einen Denkfehler.

    2 Mal editiert, zuletzt von NeoY (30. August 2024 um 13:35)

  • Okay das klingt einfach :D

    15:44:20.710 CMD: teleperiod 10
    15:44:20.713 SRC: WebConsole from 192.168.178.101
    15:44:20.715 CMD: Grp 0, Cmd 'TELEPERIOD', Idx 1, Len 2, Pld 10, Data '10'
    15:44:20.718 RSL: RESULT = {"TelePeriod":10}


    Ansonsten kommt immer wieder dies:

    15:49:19.805 WIF: Checking connection...
    15:49:20.757 BRY: GC from 4367 to 3988 bytes, objects freed 1/46 (in 1 ms) - slots from 46/122 to 46/122
    15:49:20.762 RSL: STATE = {"Time":"2024-08-31T15:49:20","Uptime":"0T00:07:25","UptimeSec":445,"Heap":156,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"Berry":{"HeapUsed":3,"Objects":46},"Wifi":{"AP":1,"SSId":"FRITZ!Box 7590 LR","BSSId":"E8:DF:70:F2:FF:E0","Channel":6,"Mode":"11n","RSSI":100,"Signal":-45,"LinkCount":1,"Downtime":"0T00:00:04"}}
    15:49:30.764 BRY: GC from 4367 to 3988 bytes, objects freed 1/46 (in 0 ms) - slots from 46/122 to 46/122
    15:49:30.768 RSL: STATE = {"Time":"2024-08-31T15:49:30","Uptime":"0T00:07:35","UptimeSec":455,"Heap":157,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"Berry":{"HeapUsed":3,"Objects":46},"Wifi":{"AP":1,"SSId":"FRITZ!Box 7590 LR","BSSId":"E8:DF:70:F2:FF:E0","Channel":6,"Mode":"11n","RSSI":100,"Signal":-43,"LinkCount":1,"Downtime":"0T00:00:04"}}

    Einmal editiert, zuletzt von NeoY (31. August 2024 um 16:50)

  • hätte ich sensor=... erwartet

    dann mal in der Konsole Status 8 eingeben

    sollte so etwas kommen

    STATUS8 = {"StatusSNS":{"Time":"2024-09-01T18:32:47","Switch1":"OFF","Switch2":"OFF","ANALOG":{"Temperature":46.3},"ENERGY":{"TotalStartTime":"2021-08-14T20:41:08","Total":0.000,"Yesterday":0.000,"Today":0.000,"Power":[0,0],"ApparentPower":[0,0],"ReactivePower":[0,0],"Factor":[0.00,0.00],"Frequency":50,"Voltage":236,"Current":[0.000,0.000]},"TempUnit":"C"}}


    so das in diesem Fall der Trigger

    für die Rule1 so aussehen müsste.

    Rule1

    on ANALOG#temperature do Var1 %value% endon


    was reflektiert dein Status 8 ?

  • Es kommt leider nicht viel:

    19:02:46.158 CMD: Status 8
    19:02:46.160 SRC: WebConsole from 192.168.178.101
    19:02:46.162 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 1, Pld 8, Data '8'
    19:02:46.168 RSL: STATUS8 = {"StatusSNS":{"Time":"2024-09-01T19:02:46"}}

  • Guten Morgen☕

    Es sind 2x Sonoff SNZB-02D verbunden, beide werden auf der Startseite korrekt angezeigt.

    Hier der Auszug aus der Konsole nach Weblog4 und Status 8:

    06:20:32.575 CMD: weblog 4
    06:20:32.577 SRC: WebConsole from 192.168.178.101
    06:20:32.579 CMD: Grp 0, Cmd 'WEBLOG', Idx 1, Len 1, Pld 4, Data '4'
    06:20:32.582 RSL: RESULT = {"WebLog":4}
    06:20:38.176 CMD: Status 8
    06:20:38.178 SRC: WebConsole from 192.168.178.101
    06:20:38.180 CMD: Grp 0, Cmd 'STATUS', Idx 1, Len 1, Pld 8, Data '8'
    06:20:38.186 RSL: STATUS8 = {"StatusSNS":{"Time":"2024-09-02T06:20:38"}}

    • Hilfreichste Antwort

    den Beitrag hast du sicherlich schon gefunden

    Sonoff SNZB-02 -> Sonoff ZB Bridge (Tasmota) -> MQTT - HomeMatic-Forum / FHZ-Forum

    Konsolendaten kommen nur wenn sich Daten ändern


    Konsoleneingabe ZbBindState liefert was ?

    Rule1

    on ZbReceived#0x32F2#temperature do Var1 %value% endon

    könnte schon fast gehen


    Rule1

    on ZbReceived#?#temperature do Var1 %value% endon

    ist dann eine unbestimmte Vorstufe ohne Gerätebezug

    3 Mal editiert, zuletzt von karoCB (2. September 2024 um 14:50)

  • Es funktioniert:


    Browser:


    Vielen Dank, Du bist der/die Beste 👍👍👍
    Jetzt muss ich wohl nur noch für die Luftfeuchtigkeit und nochmal für die weiteren Sensoren entsprechende Rules laufen lassen, also in Etwa:

    Rule1 on ZbReceived#0x32F2#temperature do Var1 %value% endon
    Rule2 on ZbReceived#0x32F2#humidity do Var2 %value% endon
    Rule3 on ZbReceived#0x6401#temperature do Var3 %value% endon
    Rule4 on ZbReceived#0x6401#humidity do Var4 %value% endon
    etc...

    Oder geht das eleganter?

    Einmal editiert, zuletzt von NeoY (3. September 2024 um 15:52)

  • NeoY 3. September 2024 um 12:55

    Hat einen Beitrag als hilfreichste Antwort ausgewählt.
  • alles in eine Rule1 packen auch für die andern Sensoren

    wenn man Strom sparen möchte

    1. sleep 250 in der Konsole eingen

    2. und die Trigger mit Tele- erweitern kommt die Änderung nur zur teleperiod Zeit (10-600 s )

    on tele-zbReceived#0x32F2#temperature do Var1 %value% endon


    sonst so:

    Rule1

    on ZbReceived#0x32F2#temperature do Var1 %value% endon

    on ZbReceived#0x32F2#humidity do Var2 %value% endon
    on ZbReceived#0x6401#temperature do Var3 %value% endon

    on ZbReceived#0x6401#humidity do Var4 %value% endon