FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: CoolTux am 27 August 2016, 10:42:12

Titel: Bedingung (DEVICE1:temp+DEVICE2:temp)/2 > DEVICE3:temp
Beitrag von: CoolTux am 27 August 2016, 10:42:12
Eigentlich eine ganz einfache Sache. Das DOIF soll cmd1 erst aktivieren wenn folgende Bedingung erfüllt ist

(DEVICE1:temp + DEVICE2:temp + DEVICE3:temp) / 3 soll größer sein wie DEVICE3:temp

Also

(
    ([TempFeuchtSensorKinZimSteven:temperature] + [TempFeuchtSensorKinZimIsabel:temperature] + [WandThermostatWohnzimmer_Weather:temperature] / 3) > [TempFeuchtSensorAussen:temperature]
)
(set pushmsg msg 'Wohnungstemperatur Kritisch!!!' 'Die Temperatur in der Wohnung ist höher wie die Aussentemperatur. Bitte Fenster schließen und zuziehen!!!' 'nexus5-marko' 0 '')

DOELSE ()


Leider hat er cmd1 bereits bei der ersten Aktuallisierung eines Devices aktiviert. Geht es doch nicht so einfach wie ich dachte?
Meine zweite Überlegung wäre alle Devices einzeln und dann die Berechnung als and Verknüpfung


(
    (
        ([TempFeuchtSensorKinZimSteven:temperature] or [TempFeuchtSensorKinZimIsabel:temperature] or [WandThermostatWohnzimmer_Weather:temperature] or [TempFeuchtSensorAussen:temperature])
    and
       (([?TempFeuchtSensorKinZimSteven:temperature] + [?TempFeuchtSensorKinZimIsabel:temperature] + [?WandThermostatWohnzimmer_Weather:temperature]) / 3) > [?TempFeuchtSensorAussen:temperature]
    )
)
(set pushmsg msg 'Wohnungstemperatur Kritisch!!!' 'Die Temperatur in der Wohnung ist höher wie die Aussentemperatur. Bitte Fenster schließen und zuziehen!!!' 'nexus5-marko' 0 '')

DOELSE ()


Ich habe mal versucht das zweite Beispiel Klammertechnisch übersichtlich zu gestallten. Die Anzahl der Klammern sollte jedenfalls stimmen.
Aber es geht bestimmt total einfach, oder?
Titel: Antw:Bedingung (DEVICE1:temp+DEVICE2:temp)/2 > DEVICE3:temp
Beitrag von: CoolTux am 27 August 2016, 10:59:21
Also zu mindestens die zweite Variante scheint zu funktionieren. cmd2 wird ausgeführt was den Werten entsprechend wäre. Aber muß das echt so komplex gemacht werden? Dann kann ich ja auch eine myUtils bauen.  :-\
Titel: Antw:Bedingung (DEVICE1:temp+DEVICE2:temp)/2 > DEVICE3:temp
Beitrag von: stromer-12 am 27 August 2016, 11:20:46
beim ersten hast du glaube ich eine klammer vergessen
Titel: Antw:Bedingung (DEVICE1:temp+DEVICE2:temp)/2 > DEVICE3:temp
Beitrag von: CoolTux am 27 August 2016, 11:25:41
Hast Recht. Ich schaue mal ob es nun besser geht. Denke aber eher mal nicht.
Titel: Antw:Bedingung (DEVICE1:temp+DEVICE2:temp)/2 > DEVICE3:temp
Beitrag von: CoolTux am 27 August 2016, 11:29:17
Ok ich korrigiere mich. Es scheint in der Tat doch so zu funktionieren. Zu mindest geht die Version 1 mit den korrekten Klammern nun in den richtigen cmd