[gelöst]: mehrere Readings abfragen. Wenn nur eins zutrifft, cmd ausführen

Begonnen von mark79, 29 Januar 2018, 22:26:25

Vorheriges Thema - Nächstes Thema

mark79

Hallo,

ich versuche gerade ein DOIF zu erstellen, der meinem Xiaomi Staubsaugrobotor (Staubi) ausschaltet.
Das Problem was ich habe, ist das es viele state Readings (14 Stück) gibt die ich abfragen möchte und wenn dabei nur eins zutrifft, soll das cmd ausgelöst werden.
Dazu muss erst eine Sonoff Steckdose (WZ_Sonoff_Staubi) abgeschaltet werden und danach ein ESP8266 (WZ_ESP_Staubi_Shutdown) der einen Tastendruck simuliert. Das funktioniert auch alles...

Was ich suche ist eine Optimierung, sonst wird das DOIF ziemlich groß.

So funktioniert es leider nicht, ich denke das liegt daran, das alle Bedienungen auf einmal zutreffen müssen:
defmod Staubi_Shutdown DOIF ([Staubi:state] eq "Docked|Charging|Sleeping" and [Staubi:batteryLevel] > "90") (set WZ_Sonoff_Staubi OFF) (set WZ_ESP_Staubi_Shutdown on) DOELSE (set WZ_ESP_Staubi_Shutdown off)
attr Staubi_Shutdown room DOIF
attr Staubi_Shutdown wait 5,5


Gibt es da irgendwie eine Abkürzung, oder muss ich es wirklich so umsetzen:

defmod Staubi_Shutdown DOIF ([Staubi:state] eq "Docked") or ([Staubi:state] eq "Charging") or ([Staubi:state] eq "Sleeping" and [Staubi:batteryLevel] > "90") (set WZ_Sonoff_Staubi OFF) (set WZ_ESP_Staubi_Shutdown on) DOELSE (set WZ_ESP_Staubi_Shutdown off)
attr Staubi_Shutdown room DOIF
attr Staubi_Shutdown wait 5,5


Vielen Dank!
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Damian

Regex mit =~ abfragen (das hatten wir heute hier schon mal ;) )

DOIF ([Staubi:state] =~ "Docked|Charging|Sleeping" and [Staubi:batteryLevel] > "90")
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

mark79

Das funktioniert, vielen lieben Dank für den Tipp! :) Wieder was dazu gelernt.  ;)
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten