[gelöst] ein DOIF für mehrere Devices benutzen

Begonnen von meier81, 24 April 2019, 22:24:05

Vorheriges Thema - Nächstes Thema

meier81

Hallo und guten Abend,

ich habe mal folgende Frage: Ich habe mir ein DOIF zusammengestellt mit dem ich eine Lüftungsempfehlung anhand verschiedener Werte mache. Hier mal meine Definition:

## Muss gelüftet werden
(([Fuehler_ELW_Schlafzimmer:dewpoint] - [Wetterstation:dewpoint]) > 3 and [Fuehler_ELW_Schlafzimmer:humidity] > 60)
   (set dy_Lueften mandatory)
## Kann gelüftet werden
DOELSEIF (([Fuehler_ELW_Schlafzimmer:dewpoint] - [Wetterstation:dewpoint]) > 3)
   (set dy_Lueften allowed)
## Darf nicht gelüftet werden
DOELSEIF (([Fuehler_ELW_Schlafzimmer:dewpoint] - [Wetterstation:dewpoint]) < 2)
   (set dy_Lueften not_allowed)


Jetzt meine Frage: Ist es möglich das ich dem DOIF verschiedene dewpoint-Werte bzw. humidity-Werte zuweisen kann bzw. dann auf verschiedene dummy-Variablen schreibe (z.B. nimmt er den dewpoint vom Schlafzimmer, den humidity vom Schlafzimmer und schreibt auf den dummy vom Schlafzimmer)? Falls ja könnt ihr mir mal einen Tipp geben wie ich das anstellen könnte, wäre falls möglich eleganter als 15 DOIF´s zu schreiben.

Gruß Markus
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices

Damian

#1
Zitat von: meier81 am 24 April 2019, 22:24:05
Hallo und guten Abend,

ich habe mal folgende Frage: Ich habe mir ein DOIF zusammengestellt mit dem ich eine Lüftungsempfehlung anhand verschiedener Werte mache. Hier mal meine Definition:

## Muss gelüftet werden
(([Fuehler_ELW_Schlafzimmer:dewpoint] - [Wetterstation:dewpoint]) > 3 and [Fuehler_ELW_Schlafzimmer:humidity] > 60)
   (set dy_Lueften mandatory)
## Kann gelüftet werden
DOELSEIF (([Fuehler_ELW_Schlafzimmer:dewpoint] - [Wetterstation:dewpoint]) > 3)
   (set dy_Lueften allowed)
## Darf nicht gelüftet werden
DOELSEIF (([Fuehler_ELW_Schlafzimmer:dewpoint] - [Wetterstation:dewpoint]) < 2)
   (set dy_Lueften not_allowed)


Jetzt meine Frage: Ist es möglich das ich dem DOIF verschiedene dewpoint-Werte bzw. humidity-Werte zuweisen kann bzw. dann auf verschiedene dummy-Variablen schreibe (z.B. nimmt er den dewpoint vom Schlafzimmer, den humidity vom Schlafzimmer und schreibt auf den dummy vom Schlafzimmer)? Falls ja könnt ihr mir mal einen Tipp geben wie ich das anstellen könnte, wäre falls möglich eleganter als 15 DOIF´s zu schreiben.

Gruß Markus

Als Denkanstoß, ein DOIF für alle Zimmer:

DOIF (["^Fuehler_ELW:dewpoint"] and ([$DEVICE:dewpoint] - [?Wetterstation:dewpoint]) > 3 and [$DEVICE:humidity] > 60)
   (set dy_Lueften mandatory)
...


Du kannst auch für jedes Device einen eigenen Grenzwert per setreading festlegen (z. B. dp und hum) und dann in deinem DOIF abfragen:

DOIF (["^Fuehler_ELW:dewpoint"] and ([$DEVICE:dewpoint] - [?Wetterstation:dewpoint]) > [$DEVICE:dp] and [$DEVICE:humidity] > [$DEVICE:hum])
   (set dy_Lueften mandatory)
...


In den Beispielen müssen die zu triggernden Devices mit "Fuehler_ELW" beginnen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Per

Allerdings braucht es dann auch für jedes Zimmer einen "Dummy":
(set $DEVICE Lueften xxx)
Hier wird in den jeweiligen Fühler eine Uservariable mit dem Namen Lueften angelegt bzw. geändert. Die Werte können wie oben übernommen werden.

meier81

Super, dann werde ich mich gleich mal an die Umsetzung machen, werde dann berichten ob es geklappt hat.
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices

meier81

Hab´s eben mal probiert, funktioniert soweit mal super.

Nur zu Vollständigkeit hier, falls jemand anderes das zur Anregung benutzt, man muss das Attribut do always noch setzen beim doif, zudem ging es bei mir nicht mit
(set $DEVICE Lueften xxx)

sondern mit
(setreading $DEVICE Lueften xxx)

Gruß Markus
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices

Per

Zitat von: meier81 am 25 April 2019, 14:36:38sondern mit
(setreading $DEVICE Lueften xxx)
Ist natürlich richtig, wollte nur deine Aufmerksamkeit testen :D