Telegram /Sonoff Temperatur & Hydrowerte nur bei Änderung von Wert 1 senden

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

salamander070
Beiträge: 40
Registriert: 16. Nov 2018 15:37
Answers: 0
Wohnort: S-H

Re: Telegram /Sonoff Temperatur & Hydrowerte nur bei Änderung von Wert 1 senden

Beitrag von salamander070 »

eigentlich habe ich heute leider wenig Zeit für diese schöne Bastelarbeit, aber ich freu mich darüber, wie ihr mir dabei weiterhelft und da muss ich trotzdem mal den Rechner anschmeisen. Hatte gestern Abend zwar noch ein paar Rules umgestellt von 1 auf 0.5, aber an einem Linux MInt ging das nicht so schnell, wie mit gewohnten Programmen am W10 PC.

Heute habe ich nun mal beoachtet, was passiert.
Obwohl in einer Rule den Wert auf > 0.5 definiert ist, kommen schon Meldungen, wenn es nur 0.3 waren usw. Nicht so schlimm, die Genauigkeit der Variable ist wohl nicht genau?
Das °C oder % musst Du selbst anhängen. Wenn Du im Itemnamen jeweils identisch ein Schlüsselwort hast, mit dem die Rule erkennen kann, ob es sich um Temperatur oder Luftfeuchte handelt, kann es bei der einen Rule bleiben
meinst du damit die Zeile in der Rule?

Code: Alles auswählen

rule "Temperature"<<<<<<< diese ?
trotz sorgfälltiger Eingaben bzw. einkopieren unterlaufen noch einige Fehler und die Log zeigt mir dann, dass ich noch mal genauer schauen muss. Ist ok, aber nun habe ich in einer Rule, wo ich meine, dass ich keinen Fehler mehr finde diese LOG Infos.

Code: Alles auswählen

[WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'telegram3.rules' is either empty or cannot be parsed correctly!
die betreffende Rule ist

Code: Alles auswählen

//globale Variablen zu Beginn der Datei definieren!
var Number nKellerHSent = -99999

rule "Humidity"
when
    Item mqtt_topic_KellerHydro_KellerH changed
then
    if(Math::abs((mqtt_topic_KellerHydro_KellerH.state as Number).doubleValue - nKellerHSent) > 0.5) {
        sendTelegram("bot1","Wohnzimmer: " +mqtt_topic_KellerHydro_KellerH.state.toString)
        nhKellerHSent = (mqtt_topic_KellerHydro_KellerH.state as Number).doubleValue
    }
end
eine baugleiche Rule läuft ohne Fehlerlog.

Code: Alles auswählen

//globale Variablen zu Beginn der Datei definieren!
var Number npch2Sent = -99999

rule "Humidity"
when
    Item mqtt_topic_pch1_pch2 changed
then
    if(Math::abs((mqtt_topic_pch1_pch2.state as Number).doubleValue - npch2Sent) > 0.5) {
        sendTelegram("bot1","Heiko Hydro: " +mqtt_topic_pch1_pch2.state.toString)
        npch2Sent = (mqtt_topic_pch1_pch2.state as Number).doubleValue
    }
end
oder mache ich den Fehler die Rules alle telgram1, telegram2, usw. zu bennen.


@peter-pan
jo, freut mich auch sehr, deine Hilfe. Bindest du den Code einfach mit in die Rule ein?

wie schon geschrieben nutze ich diesen code für Sonoffs TH10/16 mit Hydrowerte und Temperatur.
so z.B.

Code: Alles auswählen

//globale Variablen zu Beginn der Datei definieren!
var Number npch2Sent = -99999

rule "Humidity"
Text item=mqtt_topic_BAD_BAD1 label="Temperatur [%.1f °C]"

when .....
ich weis, die Itemname etc. sind noch wild, aber als ich das einrichtete war es nur als Test geplant. Änderung war für mich noch nicht wichtig, es sollte erstmal lauffähig sein.

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Telegram /Sonoff Temperatur & Hydrowerte nur bei Änderung von Wert 1 senden

Beitrag von peter-pan »

...nicht in deiner Regel, sondern in der .sitemap-Datei.
Vielleicht ist das auch der Grund für die Fehlermeldung ;).

Edit:
Ach ja,
var Number nKellerHSent = -99999 und nhKellerHSent sind nicht das Gleiche :) . Entweder in die erste Variable noch ein "h" dazu oder in der zweiten das "h" weg :lol:
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten