FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Master_Nick am 09 Juni 2017, 10:58:41

Titel: [gelöst] Simples RegEx notify soll auf on-for-timer und alles mt on..
Beitrag von: Master_Nick am 09 Juni 2017, 10:58:41
Tjaja... ob ich jemals aus der Anfängerecke raus komme...  :-X

Ich habe ein notify, dass vorher nur auf on reagierte... nun nutze ich aber automatisiert on-for-timer und es soll bitteschön dann auf alles mit on am Anfang reagieren.

Mein Versuch klappt nicht:

Roomba {
if (Value("Roomba") eq "on.+") {fhem("set harmony_44808168 PowerToggle duration=2")}
}


Wahrscheinlich muss ich es anders als in " " setzen oder? So würde er nun reagieren wenn der state on.+ ist denke ich mal.
Titel: Antw:Simples RegEx notify soll auf on-for-timer und on bzw alles mit on reagieren...
Beitrag von: dev0 am 09 Juni 2017, 11:09:12
if (Value("Roomba") =~  m/^on/) {...}
Titel: Antw:Simples RegEx notify soll auf on-for-timer und on bzw alles mit on reagieren...
Beitrag von: DeeSPe am 09 Juni 2017, 11:11:43
Zitat von: Master_Nick am 09 Juni 2017, 10:58:41
Tjaja... ob ich jemals aus der Anfängerecke raus komme...  :-X

Ich habe ein notify, dass vorher nur auf on reagierte... nun nutze ich aber automatisiert on-for-timer und es soll bitteschön dann auf alles mit on am Anfang reagieren.

Mein Versuch klappt nicht:

Roomba {
if (Value("Roomba") eq "on.+") {fhem("set harmony_44808168 PowerToggle duration=2")}
}


Wahrscheinlich muss ich es anders als in " " setzen oder? So würde er nun reagieren wenn der state on.+ ist denke ich mal.

Ich würde das so lösen:
Roomba {
if ($EVENT =~ /^on/) {fhem("set harmony_44808168 PowerToggle duration=2")}
}


Gruß
Dan
Titel: Antw:Simples RegEx notify soll auf on-for-timer und on bzw alles mit on reagieren...
Beitrag von: dev0 am 09 Juni 2017, 11:19:20
Oder ohne perl:
Roomba:on.* set harmony_44808168 PowerToggle duration=2
Titel: Antw:Simples RegEx notify soll auf on-for-timer und on bzw alles mit on reagieren...
Beitrag von: Master_Nick am 09 Juni 2017, 14:02:17
Danke euch beiden! ;-)
Titel: Antw:Simples RegEx notify soll auf on-for-timer und on bzw alles mit on reagieren...
Beitrag von: Master_Nick am 09 Juni 2017, 20:28:37
Mhhh  habe es nun nochmal spezifisch getestet - es sah so funktionierend aus - nun scheint mir aber das harmony Modul einen Strich durch die Rechnung zu machen - oder etwas anderes.

so geht es jeweils nicht:

Roomba:on.* set harmony_44808168 PowerToggle duration=2

Fehler im Log
Zitat2017.06.09 20:21:16 3: Roomba.Schaltung return value: duration musst be numeric

Roomba:on.* {fhem("set harmony_44808168 PowerToggle duration=2")}

Fehler im Log
Zitat2017.06.09 20:24:36 3: Roomba.Schaltung return value: Unknown command {fhem("set, try help.

Die Lösung ohne Perl wäre eigentlich die eleganteste....

Laufen tut es nun erst mal mit dem hier :):
Zitat von: dev0 am 09 Juni 2017, 11:09:12
if (Value("Roomba") =~  m/^on/) {...}

Aber auch mit dem von DeeSPe geht es! :-)

Seltsam nur, dass die simpelste Geschichte da diese 2 nicht als numerisch hin nimmt.
Titel: Antw:Simples RegEx notify soll auf on-for-timer und on bzw alles mit on reagieren...
Beitrag von: KernSani am 10 Juni 2017, 00:09:23
dann können wir das auf [Gelöst] setzen?
Titel: Antw:Simples RegEx notify soll auf on-for-timer und on bzw alles mit on reagieren...
Beitrag von: Master_Nick am 10 Juni 2017, 10:11:19
Najaaaa - Funktion gegeben aber die eine Art und Weise geht ja nicht.

Warum es bei direkter Eingabe von set harmony_44808168 PowerToggle duration=2 funktioniert und bei verwendung in einem notify, Roomba:on.* set harmony_44808168 PowerToggle duration=2, meckert über
ZitatRoomba.Schaltung return value: duration musst be numeric
ist ja schon verwunderlich.


8)*EDIT* Gelöst!  update check und danach update all gestern gemacht schon geht es heute....
Titel: Antw:Simples RegEx notify soll auf on-for-timer und on bzw alles mit on reagieren...
Beitrag von: dev0 am 10 Juni 2017, 11:46:57
Zitat von: Master_Nick am 10 Juni 2017, 10:11:19
8)*EDIT* Gelöst!  update check und danach update all gestern gemacht schon geht es heute....
Sehr unwahrscheintlich, dass ein Update _dieses_ Problem gelöst hast, vmtl. war es eher der Neustart und ein vermurkstes System. Ähnlich wie hier (https://forum.fhem.de/index.php/topic,14163.msg646222.html#msg646222).
Titel: Antw:Simples RegEx notify soll auf on-for-timer und on bzw alles mit on reagieren...
Beitrag von: Master_Nick am 10 Juni 2017, 12:01:55
 ;) Das ist exakt die gleiche Geschichte - hatte es dort auch geschrieben nachdem die Art wie ich das Event abfangen kann klar war. Und dann eine Meldung wegen der neu eingebauten duration im Log stand - die hatte justme1968 für mich in das harmony Modul gebaut. Hier ging es ja in erster Linie um das RegEx und die Lösung ohne Perl fand ich sehr schön.

Es kann natürlich auch das update des Raspian gewesen sein - update, upgrade und dist-upgrade haben gestern echt lange gebraucht und viel getan.

Zitat von: dev0 am 10 Juni 2017, 11:46:57
Sehr unwahrscheintlich, dass ein Update _dieses_ Problem gelöst hast, vmtl. war es eher der Neustart und ein vermurkstes System. Ähnlich wie hier (https://forum.fhem.de/index.php/topic,14163.msg646222.html#msg646222).