Regex in DOIF - was mache ich falsch?

Begonnen von Master_Nick, 12 März 2018, 14:41:23

Vorheriges Thema - Nächstes Thema

Damian

define di_temp DOIF (([08:00-20:00]) and [?#"_Sensor_":humidity: $_ > 54] != 0)

Euch ist bewusst, dass hier nur um 08:00 Uhr etwas Sinnvolles herauskommen kann?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

CoolTux

#16
Naja Damian wir testen ja noch,  ;D



([#"_Sensor_":humidity: $_ > 54] != 0)
(set GoogleCloudMessages send Homeland|Information|Luftfeuchtigkeit im [@"_Sensor_":humidity: $_ > 54,"keine"] seit über 45 Minuten bei - bitte lüften)

DOELSE
()

do         always
state      In folgenden Zimmern ist zu feucht: [@"_Sensor_":humidity: $_ > 54,"keine"])


So geht es erstmal irgendwie bei mir
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Jetzt musst Du nur noch schauen was Du als trigger nimmst oder lässt. So wie ich es jetzt gemacht habe triggert es immer wenn bei einem humidity sich ändert. Du bekommst also ständig eine Nachricht bis alle Sensoren unter 54 sind
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Also das mit dem Raum bekomme ich nicht hin. Kann Dir leider nicht sagen wie man den Raum raus findet. Da muß bitte Damian einmal ein Beispiel geben.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Master_Nick

#19
Danke schon mal für deine investierte Zeit  ;D
Muss ich wohl mal bald einen 6er springen lassen bei deiner Menge an Hilfe in letzter Zeit :-)

Klar dein Beispiel würde ich auch  adaptieren und mit einem wait arbeiten plus einer maximalen Anzahl an Benachrichtigungen die sich selber beim unterschreiten des Wertes wieder zurücksetzt (ein reading würde ich dafür missbrauchen). Außer mir kommt dabei noch eine andere Idee ;-)
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

Damian

Zitat von: CoolTux am 12 März 2018, 18:41:46
Also das mit dem Raum bekomme ich nicht hin. Kann Dir leider nicht sagen wie man den Raum raus findet. Da muß bitte Damian einmal ein Beispiel geben.

$room kann man natürlich auch nur in der Aggregationsbedingung abfragen wie das Beispiel in der Commandref:


[@"rooms$":temperature:$_ > 20 and $room eq "livingroom"]

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Master_Nick

#21
Perfekt Danke :-)

Und wie kann ich es in der "ausführenden" nutzen? Also das er die Räume oder den Raum angibt?

Das hier [@"^Rooms":humidity:$_ > 54,"keine"]  oder $room ging nicht.

Muss ich es vorher in eine eigene Variable übergeben?


Autsch :-D Ich sehe gerade erst, dass er nur das Commandref zitiert hat.  ::) *schäm* :-D
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

CoolTux

Zitat von: Master_Nick am 12 März 2018, 19:31:50
Perfekt Danke :-)

Und wie kann ich es in der "ausführenden" nutzen? Also das er die Räume oder den Raum angibt?

Das hier [@"^Rooms":humidity:$_ > 54,"keine"]  oder $room ging nicht.

Muss ich es vorher in eine eigene Variable übergeben?

Wollte ich auch gerade Fragen  ;D
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Master_Nick

#23
 ;)

Haha die Art die er seine Antwort gegeben hat war schon mal sehr gut an dieser Stelle, denn es war keine Lösung sondern ein Beispiel um es zu verstehen. Vor allem aber hat es geklappt :D

Ich habe nun gerafft, wie man sich schon mal die devices ausgeben lassen kann:

[@"_Sensor_":humidity:$_ > 20,"keine"]

Das funktioniert auch im ausführenden Zweig.
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

CoolTux

Zitat von: Master_Nick am 12 März 2018, 20:02:44
;)

Haha die Art die er seine Antwort gegeben hat war schon mal sehr gut an dieser Stelle, denn es war keine Lösung sondern ein Beispiel um es zu verstehen. Vor allem aber hat es geklappt :D

Ich habe nun gerafft, wie man sich schon mal die devices ausgeben lassen kann:

[@"_Sensor_":humidity:$_ > 20,"keine"]

Das funktioniert auch im ausführenden Zweig.

Ich weiß, das hat ja schon mein Beispiel gemacht  :)
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Master_Nick

#25
Oops stimmt! :-D

Also eigentlich muss ja das was du vorhin genommen hast, um Räume auszugeben, auch gehen. Laut dem Beispiel aus der Commandref (da fehlt übrins eins 'es' im Beispiel ;)):

ZitatRaumtemperatur-Überwachung:

define di_temp DOIF (([08:00] or [20:00]) and [?#"^Rooms":temperature: $_ < 20] != 0)
(push "In folgenden Zimmern ist zu kalt [@"^Rooms":temperature:$_ < 20,"keine"]")
DOELSE
(push "alle Zimmmer sind warm")

Würde ich sagen muss zu:
[@"^Rooms":humidity:$_ < 20,"keine" and $room ne "Badezimmer" and ne "Messungen"]
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

Damian

Zitat von: Master_Nick am 12 März 2018, 20:14:58
Oops stimmt! :-D

Also eigentlich muss ja das was du vorhin genommen hast, um Räume auszugeben, auch gehen. Laut dem Beispiel aus der Commandref (da fehlt übrins eins 'es' im Beispiel ;)):

Würde ich sagen muss zu:
[@"^Rooms":humidity:$_ < 20,"keine" and $room ne "Badezimmer" and ne "Messungen"]

ja, abgesehen vom fehlenden "es" (in meiner Muttersprache kann man es tatsächlich weglassen ;) )

ist in dem Beispiel Trigger-Regex vom Device zufällig als "Rooms" angegeben und hat nichts mit der Variablen $room zu tun. Bei dir könnte es z. B. so aussehen:

[@"_Sensor_":humidity:$_ < 20 and $room =~ "Badezimmer|Messung","keine"]

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Master_Nick

#27
=~  Bedeutung ist in Liste, richtig?

Dann würde ich  !~ nutzen. Ist nicht in Liste

Aber beides bringt mir noch keine Räume in z. B. dem state oder die Nachricht selber.  :o
Ich möchte nicht den Devicenamen sondern den Namen des Raumes in dem sich das Device befindet.

state In folgenden Zimmern ist es zu feucht: [@"_Sensor_":humidity:$_ < 20 and $room !~ "Badezimmer|Messungen|Echo","keinem"]

Ergebnis:
ZitatIn folgenden Zimmern ist es zu feucht: keinem

Dabei wäre es in genügend über 20% Luftfeuchtigkeit ;-)
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

Damian

Zitat von: Master_Nick am 12 März 2018, 21:10:16
=~  Bedeutung ist in Liste, richtig?

Dann würde ich  !~ nutzen. Ist nicht in Liste

Aber beides bringt mir noch keine Räume in z. B. dem state oder die Nachricht selber.  :o
Ich möchte nicht den Devicenamen sondern den Namen des Raumes in dem sich das Device befindet.

state In folgenden Zimmern ist zu feucht: [@"_Sensor_":humidity:$_ < 20 and $room !~ "Badezimmer|Messungen|Echo","keinem"]

Ergebnis:
Dabei wäre es in genügend über 20% Luftfeuchtigkeit ;-)

über ist nicht unter (<)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Master_Nick

#29
Absolut richtig Sorry! :-D Der Fehler schlich sich durch fieses Copy Paste ein ....

Aber dennoch bringt es mir Devicenamen und nicht die Namen der Räume von den Devices :-)

Und vom Gefühl her macht =~ auch nicht so wirklich was an der stelle zumindest nicht als negation ;-) eher als inklusion denn sonst würde der Sensor im Badezimmer nicht auftauchen dürfen.

state In folgenden Zimmern ist es zu feucht: [@"_Sensor_":humidity:$_ > 20 and $room =~ "Badezimmer|Messungen|Echo","keinem"]

ZitatIn folgenden Zimmern ist es zu feucht: Arbeitszimmer_Sensor_3,Badezimmer_Sensor_1,Balkon_Sensor_6,Kinderzimmer_Sensor_2,Schlafzimmer_Sensor_4,Wohnzimmer_Sensor_5


Ich würde aber gerne haben, dass dort die Namen der Räume stehen in denen sich der jeweilige Device befindet  ;D



Edit auch ein konkreter Ausschluss eines devices scheint nicht zu wirken:

state In folgenden Zimmern ist es zu feucht: [@"_Sensor_":humidity:$_ > 20 and $device ne "Badezimmer_Sensor_1","keinem"]

ZitatIn folgenden Zimmern ist es zu feucht: Arbeitszimmer_Sensor_3,Badezimmer_Sensor_1,Balkon_Sensor_6,Kinderzimmer_Sensor_2,Schlafzimmer_Sensor_4,Wohnzimmer_Sensor_5
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)