Probleme mit dem Syntax in einem notify

Begonnen von heinzfo, 23 Oktober 2016, 21:47:07

Vorheriges Thema - Nächstes Thema

heinzfo

Hallo

Ich habe Probleme mit dem Syntax in einem notify.

Das hier funktioniert

define TreppeLichtEin_anruf notify Anrufe:event:.ring { my $number=(ReadingsVal("Anrufe","internal_number",99)) ;; if ($number == 12345 && ReadingsVal("SunsetNbg","aktEvent",99) eq "ss_astro" ) { fhem "set Stern on-for-timer 1" }}


Allerdings möchte ich das alle ss events erreicht werden, also diese hier "ss, ss_astro, ss_civil, ss_indoor, ss_naut, ss_weather"
mit eq "ss." oder eq "ss.*" geht es leider nicht.

Was mache ich falsch?

Beste Grüße
Heinz

CoolTux

Gar nichts. Alle übergebenden Argumente müßen beim ReadingsVal eindeutig sein. Musst also bisschen was tippen. Eventuell in eine myUtils auslagern.
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

heinzfo

Zitat von: CoolTux am 23 Oktober 2016, 21:52:08
Gar nichts. Alle übergebenden Argumente müßen beim ReadingsVal eindeutig sein. Musst also bisschen was tippen. Eventuell in eine myUtils auslagern.
Also immer mit ("ReadingsVal.....)?
Für alle möglichen ss events?

CoolTux

jepp, je nachdem was du genau prüfen willst halt mit && oder || verbinden.
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

heinzfo

Zitat von: CoolTux am 23 Oktober 2016, 21:56:36
jepp, je nachdem was du genau prüfen willst halt mit && oder || verbinden.
Okay vielen Dank!
Probiere ich morgen aus.

DeeSPe

Oder einen sinnvollen RegEx benutzen!

define TreppeLichtEin_anruf notify Anrufe:event:.ring { my $number=ReadingsVal("Anrufe","internal_number",99);; if ($number == 12345 && ReadingsVal("SunsetNbg","aktEvent",99) =~ /^ss/ ) { fhem "set Stern on-for-timer 1" }}

Damit sind alle mit beginnendem ss "erschlagen"!

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

heinzfo

Danke Euch beiden, das funktioniert prima :-)

Ich habe noch die Eingehenden Rufnummern in den Syntax aufgenommen.
Warum muss das Anrufe:external_number:.* (punkt Stern) hier stehen, damit es funktioniert?

Internals > DEF

Anrufe:external_number:.*0123|4567|8901 { my $number=(ReadingsVal("Anrufe","internal_number",99)) ;
if ($number == 123456 && ReadingsVal("SunsetNbg","aktEvent",99) =~ /^ss/ ) { fhem "set Treppenhauslicht on-for-timer 1" }


Beste Grüße
Heinz

DeeSPe

#7
Zitat von: heinzfo am 24 Oktober 2016, 19:51:59
Warum muss das Anrufe:external_number:.* (punkt Stern) hier stehen, damit es funktioniert?

Weil die Nummern meist mit 00 beginnen!
Und dann kommt noch der Ländercode.
Also in Deinem Beispiel 00123.

Gruß
Dan

EDIT: Evtl. steht auch nur ein Leerzeichen o.ä. davor!  8)
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

heinzfo


heinzfo

Zitat von: heinzfo am 24 Oktober 2016, 20:03:57
Okay, Danke!
EDIT:
Welches Modul wäre für E-Mail Empfang mit fhem am besten geeignet?

DeeSPe

Zitat von: heinzfo am 24 Oktober 2016, 20:49:19
EDIT:
Welches Modul wäre für E-Mail Empfang mit fhem am besten geeignet?

Passt zwar nicht zum Thema, aber bitte sehr...

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe