Seite 1 von 1
Regel erstellen - Alarm bei Temperaturüberschreitung
Verfasst: 4. Sep 2020 16:55
von hollar
Hallo,
ich habe folgenden Xiaomi Sensor:
Mijia Temperature and Humidity Sensor
Dieser ist als Item definiert und ich möchte gerne eine Pushbenachrichtigung, wenn eine bestimmte Schwelle überschritten wird.
Dazu habe ich die folgende Regel aufgestellt>
Code: Alles auswählen
rule "Kühlschrank Temperatur2"
when
Item OU_Melder1 changed
then
if ((deconz:temperaturesensor:xxxxxxx.state as Number) < 11)
{
logInfo("notifications", "Sending notification via app.")
sendNotification("mailadresse",
"Kühlschrank Tür ist offen")
Send_via_App_Switch.postUpdate(OFF)
end
Ich vermute der Code ist völlig falsch, hat da jemand eine Idee?
Danke euch
VG
Re: Regel erstellen - Alarm bei Temperaturüberschreitung
Verfasst: 4. Sep 2020 18:13
von Heavy-Dee
Code: Alles auswählen
rule "Kühlschrank Temperatur2"
when
Item OU_Melder1 changedN
then
if ((OU_Melder1.state as Number) < 11) {
sendNotification("mailadresse", "Kühlschrank Tür ist offen)
}
end
brauchst aber oH CloudConnector und die registriert oH-App
Re: Regel erstellen - Alarm bei Temperaturüberschreitung
Verfasst: 4. Sep 2020 19:48
von hollar
Ah super die Benachrichtigungen funktionieren (CloudConnector/App war bereits eingerichtet).
Aber leider mathematisch absolut nicht korrekt:
Code: Alles auswählen
rule "Gefrierschrank Temperatur"
when
Item AT_Kitchen_Xiaomi_TempGefrier changed
then
if ((AT_Kitchen_Xiaomi_TempGefrier.state as Number) > -1) {
sendNotification("xxxx.de", "Gefrierschrank Tür ist offen")
}
end
Gibt eine Meldung aus, wenn die Temperatur bpsw. bei -2 Grad ist - ändere ich das ganze in ein kleiner Zeichen, so bekomme ich keine Meldung mehr, wenn die Temperatur über -1 Grad ist.
Kann sein das hier mit Minuswerten nicht umgegangen werden kann? Und kann die Mitteilung auf alle 5 Minuten beschränkt werden?
Re: Regel erstellen - Alarm bei Temperaturüberschreitung
Verfasst: 5. Sep 2020 00:39
von udo1toni
Wie ist das Item AT_Kitchen_Xiaomi_TempGefrier denn definiert? Kann es sein, dass es sich um ein UoM Item handelt, welches eine Einheit mitbringt? Dann musst Du entweder explizit die Einheit entfernen:
Code: Alles auswählen
if ((AT_Kitchen_Xiaomi_TempGefrier.state as Number).floatValue > -1) {
oder aber die Einheit für den Vergleich hinzufügen:
Code: Alles auswählen
if ((AT_Kitchen_Xiaomi_TempGefrier.state as Number) > -1 | "°C") {
Re: Regel erstellen - Alarm bei Temperaturüberschreitung
Verfasst: 5. Sep 2020 18:18
von hollar
Auf die schnelle nur per Smartphone Zugriff - das Item ist folgendermaßen konfiguriert:
Code: Alles auswählen
//Sensoren Küche
Group gXiaomi_AT_Kitchen_Gefrierschrank "Gefrierschrank Sensor Xiaomi" <light> (AT_Kit$Number:Temperature AT_Kitchen_Xiaomi_TempGefrier <temperature> {channel="deconz:temperatu$DateTime AT_Kitchen_Xiaomi_UpdateGefrier <datetime> {channel="deconz:temperaturesensor:cb$
Re: Regel erstellen - Alarm bei Temperaturüberschreitung
Verfasst: 5. Sep 2020 20:17
von udo1toni
Die Itemdefinition kann nicht stimmen...
Re: Regel erstellen - Alarm bei Temperaturüberschreitung
Verfasst: 6. Sep 2020 08:36
von hollar
So jetzt nochmal
Muss aktuell vom Smartphone unterwegs per SSH zugreifen, ist ein wenig umständlich und beim Kopieren hat es den Code verhauen.
Code: Alles auswählen
Number:Temperature AT_Kitchen_Xiaomi_TempGefrier <temperature> {channel="deconz:temperaturesensor:xxxxxxxx:xxxxxd00045bdaa1010402:temperature"}
DateTime AT_Kitchen_Xiaomi_UpdateGefrier <datetime> {channel="deconz:temperaturesensor:xxxxxx:xxxxxd00045bdaa1010402:last_updated
Re: Regel erstellen - Alarm bei Temperaturüberschreitung
Verfasst: 6. Sep 2020 17:49
von udo1toni
Wie ich mir schon gedacht habe

Es handelt sich um ein UoM (Units of Measurement) Item. Damit kommt also immer die Einheit mit dem Messwert mit. Vergleiche können naturgemäß nur zwischen "kompatiblen" Werten erfolgreich verlaufen. Die Lösung von oben sollte also passen (eine der beiden Varianten, es funktionieren beide...)