Notifikation anhand der Temperatur eines Sonoff Temperatursensors

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
rcaspar
Beiträge: 4
Registriert: 18. Apr 2025 22:15
Answers: 0

Notifikation anhand der Temperatur eines Sonoff Temperatursensors

Beitrag 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

Benutzeravatar
udo1toni
Beiträge: 15240
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Notifikation anhand der Temperatur eines Sonoff Temperatursensors

Beitrag 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.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

rcaspar
Beiträge: 4
Registriert: 18. Apr 2025 22:15
Answers: 0

Re: Notifikation anhand der Temperatur eines Sonoff Temperatursensors

Beitrag 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
Zuletzt geändert von rcaspar am 19. Apr 2025 11:16, insgesamt 1-mal geändert.

rcaspar
Beiträge: 4
Registriert: 18. Apr 2025 22:15
Answers: 0

Re: Notifikation anhand der Temperatur eines Sonoff Temperatursensors

Beitrag von rcaspar »

... habe noch vergessen....

auch folgenden Vergleich habe ich schon versucht:

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

identisch

Harka
Beiträge: 487
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: Notifikation anhand der Temperatur eines Sonoff Temperatursensors

Beitrag 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.

rcaspar
Beiträge: 4
Registriert: 18. Apr 2025 22:15
Answers: 0

Re: Notifikation anhand der Temperatur eines Sonoff Temperatursensors

Beitrag von rcaspar »

Hey Harka

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

Frohe Ostern

R

Antworten