Seite 1 von 1

Notifikation anhand der Temperatur eines Sonoff Temperatursensors

Verfasst: 18. Apr 2025 22:46
von rcaspar
Hi all

Bin am verzweifeln ...

Ich habe einen Sonoff Temperatursensor (Zigbee) welcher einwandfrei funktioniert und Temperaturwerte sendet.

Nun möchte ich eine Aktion auslösen (Notifikation mit Telegram senden - der Teil funktioniert) sobald die Temperatur einen Wert überschreitet und umgekehrt.
Da liegt mein Problem - Der ausgegebene Wert ist immer höher als 10, auch wenn der Sensor 6.4 ausgibt. Wahrscheinlich liegt es daran, dass der ausgegebene Wert kein effektiver Wert ist, sondern als Text erkannt wird. DIes zu konvertieren habe ich aber nicht gescgafft.

Kann mir da jemand unter die Arme greifen?

Danke schon mal ;)
R

Re: Notifikation anhand der Temperatur eines Sonoff Temperatursensors

Verfasst: 19. Apr 2025 01:42
von udo1toni
Herzlich willkommen im openHAB Forum!

Zeig doch mal Deine Konfiguration des Things (Code als Text kopieren und hier im Forum - als Code markiert - einfügen)
Grundsätzlich müssen Werte immer im korrekten Format in openHAB landen, aber gerade mit Zigbee sollte das überhaupt kein Problem sein.

Re: Notifikation anhand der Temperatur eines Sonoff Temperatursensors

Verfasst: 19. Apr 2025 10:32
von rcaspar
Sebstversändlich mach ich doch gerne

Hier der Sensor:

------

Code: Alles auswählen

UID: zigbee:device:0d78cff157:0ceff6fffe3f850a
label: Sensor 003
thingTypeUID: zigbee:device
configuration:
  zigbee_macaddress: 0CEFF6FFFE3F850A
bridgeUID: zigbee:coordinator_ember:0d78cff157
channels:
  - id: 0CEFF6FFFE3F850A_1_batterylevel
    channelTypeUID: system:battery-level
    label: Battery Level
    configuration:
      zigbee_reporting_polling: 7200
  - id: 0CEFF6FFFE3F850A_1_temperature
    channelTypeUID: zigbee:measurement_temperature
    label: Temperature
    configuration:
      zigbee_reporting_polling: 7200
  - id: 0CEFF6FFFE3F850A_1_batteryalarm
    channelTypeUID: zigbee:battery_alarm
    label: Battery Alarm
    configuration:
      zigbee_reporting_polling: 7200
  - id: 0CEFF6FFFE3F850A_1_humidity
    channelTypeUID: zigbee:measurement_relativehumidity
    label: Humidity
    configuration:
      zigbee_reporting_polling: 7200
------

und hier meine Rule

------

Code: Alles auswählen

var State_Fridge;

var things = Java.type('org.openhab.core.model.script.actions.Things');


if (State_Fridge == null) {
  State_Fridge = 'Kühlschrank OK';
} else if (items.getItem('Sensor_003_Temperature').state < Quantity('10 °C') && State_Fridge == 'Kühlschrank OK') {
  State_Fridge = 'Kühlschrank OK';
} else if (items.getItem('Sensor_003_Temperature').state >= Quantity('10 °C') && State_Fridge == 'Kühlschrank OK') {
  things.getActions('telegram', 'telegram:telegramBot:TelegramBot').sendTelegram('Kühlschrank zu warm');
} else if (items.getItem('Sensor_003_Temperature').state >= Quantity('10 °C') && State_Fridge == 'Kühlschrank zu warm') {
  State_Fridge = 'Kühlschrank zu warm';
} else if (items.getItem('Sensor_003_Temperature').state < Quantity('10 °C') && State_Fridge == 'Kühlschrank zu warm') {
  things.getActions('telegram', 'telegram:telegramBot:TelegramBot').sendTelegram('Kühlschrank wieder OK');
  State_Fridge = 'Kühlschrank OK';
}

-----

Von der Rule trifft immer der folgende Teil zu:

Code: Alles auswählen

} else if (items.getItem('Sensor_003_Temperature').state >= Quantity('10 °C') && State_Fridge == 'Kühlschrank OK') {
  things.getActions('telegram', 'telegram:telegramBot:TelegramBot').sendTelegram('Kühlschrank zu warm');
AKtuell misst der Sensor 8.2 °C

R

Re: Notifikation anhand der Temperatur eines Sonoff Temperatursensors

Verfasst: 19. Apr 2025 10:42
von rcaspar
... habe noch vergessen....

auch folgenden Vergleich habe ich schon versucht:

...(items.getItem('Sensor_003_Temperature').state >= '10' && S...

identisch

Re: Notifikation anhand der Temperatur eines Sonoff Temperatursensors

Verfasst: 19. Apr 2025 12:19
von Harka
Moin,

du solltest bei Messwerten UoM mit UoM (hier aber mit der hierfür vorgesehenen Methode) oder aber Nummer mit Nummer vergleichen.

Das das ganze wie mit Blockly erzeugt aussieht -> https://www.openhab.org/docs/configurat ... asurements . Bei UoM entweder den State in Qty-Block oder gleich get_quantity_state_of_Item und für den Vergleich den Qty_=<>_Block nutzen.

Faule Leute (wie ich) nutzen nur den numeric_state für den Vergleich mit einer Zahl.

Re: Notifikation anhand der Temperatur eines Sonoff Temperatursensors

Verfasst: 20. Apr 2025 13:45
von rcaspar
Hey Harka

Danke für den Tipp, hat mich "auf den richtigen Weg" gebracht und nun funktioniert es.

Frohe Ostern

R