FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: skycrack am 20 Januar 2018, 21:21:51

Titel: Ein Notify auf mehrere Geräte
Beitrag von: skycrack am 20 Januar 2018, 21:21:51
Hallo,
klare Anfängerfrage:
Ich schreib mal was rauskommen soll, da das meist Lösungsorientierter ist.
Ich habe 20 Rauchmelder, deren Alias alle mit RM_ beginnen. Mir reicht ein simples Notify was mir eine Nachricht schickt mit dem Zeitstempel und den Wert des Aliasnamen.

z.B heißt einer RM_EG_WZ_50 ect.

Wäre über kurze Hilfestellung dankbar.
Gruß Rene
Titel: Antw:Ein Notify auf mehrere Geräte
Beitrag von: CoolTux am 20 Januar 2018, 21:24:16
Der Alias hilft hier nicht. Auf Alias kann man nicht triggern. Wie sind die korrekten Devicenamen.
Titel: Antw:Ein Notify auf mehrere Geräte
Beitrag von: skycrack am 20 Januar 2018, 21:34:46
Hallo, danke für die Antwort. Ich befürchtete es schon fast. die Devicenamen sind per Autocreate angelegt. IT_1527x6be7a.
So muss ich diese wohl doch alle renamen, genau wie die Logfiles. ?
Gruß
Titel: Antw:Ein Notify auf mehrere Geräte
Beitrag von: CoolTux am 20 Januar 2018, 21:39:11
Sollte man eh machen.
Kannst aber auch alle in die RegEx setzen

(,Fgfggf|fgfgfds|fgfgdse|...)
Titel: Antw:Ein Notify auf mehrere Geräte
Beitrag von: KernSani am 20 Januar 2018, 21:42:09
Es mach m.E. generell Sinn, Devices "sprechend" zu benennen. Du wirst das noch öfter brauchen und dann bist du froh, wenn du dir den Namen merken kannst.

Titel: Antw:Ein Notify auf mehrere Geräte
Beitrag von: skycrack am 20 Januar 2018, 21:49:32
OK, danke für diesen Tip, angenommen die heissen dann alle als Devicenamen RM_Geschoss_Zimmer_Nummer , wie setzte ich dann ein Notify um benachrichtig zu werden sobald einer der Rauchmelder auslöst? notify .*RM_*:on ??
Titel: Antw:Ein Notify auf mehrere Geräte
Beitrag von: KernSani am 20 Januar 2018, 21:57:00

RM_.*:on
Titel: Antw:Ein Notify auf mehrere Geräte
Beitrag von: skycrack am 20 Januar 2018, 22:25:23
Besten Dank,

define ntfy_Rauchmelder notify RM_.*:on {fhem ("set pushmsg msg Rauchmelder $NAME wurde ausgelöst")};

funktioniert soweit. Kann ich in meine NAchricht auch noch das readingsdatum mit einfügen?
Gruß Rene
Titel: Antw:Ein Notify auf mehrere Geräte
Beitrag von: KernSani am 20 Januar 2018, 22:39:35
Hi again,

btite code tags (das # über den Smilies) verwenden.
Die Perl-Funktion ReadingsTimestamp (https://fhem.de/commandref.html#perl) hilft dir da...

Grüße,

Oli
Titel: Antw:Ein Notify auf mehrere Geräte
Beitrag von: skycrack am 20 Januar 2018, 23:16:11
Hallo,
habe ich versucht, leider ohne Erfolg.
Sieht jetzt so aus:

RM_.*:on {my $temp=ReadingsVal($NAME,"nanoCUL433_TIME","0");;
fhem ("set pushmsg msg Rauchmelder $NAME wurde $temp ausgelöst") ;; fhem DebianMail('email@email.de','Feueralarm','Rauchmelder `$NAME` wurde $temp ausgelöst')};;


Pushnachricht sieht so aus:
Rauchmelder RM_DG_SZ wurde 0 ausgelöst.
(hier zieht die $NAME variable aber das $temp geht nicht da das ReadingVal wohl auch mit der Übergabe der Variable nicht klar kommt)

Mailnachricht sieht so aus:
Rauchmelder $NAME wurde ausgelöst
( hier zieht die Variable $NAME nicht und $Temp scheint es gar nicht zu geben )

Bin eben kein Perlprofi :-/
Titel: Antw:Ein Notify auf mehrere Geräte
Beitrag von: KernSani am 20 Januar 2018, 23:43:06
Ich hatte ja auch auf ReadingsTimestamp verwiesen ;-)

Probier mal:my $temp=ReadingsTimestamp($NAME,"value","0")

das Problem mit $NAME im Email kann ich mir nur durch die "backticks" erklären. Wenn das entfernen der `nicht hilft mach's mal so:
'Rauchmelder'.$NAME.'wurde $temp ausgelöst'


Titel: Antw:Ein Notify auf mehrere Geräte
Beitrag von: skycrack am 22 Januar 2018, 18:07:09
@KernSani
Danke für den Denkanstoss, es gibt zumindest einen Teilerfolg. Ich habe die Phushmsg und das versenden der Mail mal in 2 seperate notify gesteckt. Das senden über Pushover funktioniert jetzt mit Datum und dem übergebenen Devicenamen.
RM_.*:on {my $temp=ReadingsTimestamp($NAME,"state","0") ;; fhem ("set pushmsg msg 'Rauchmelder' '$NAME wurde $temp ausgelöst' '' sound=siren priority=2 retry=30 expire=3600")};

aber per debianmail modul bekomme ich es einfach nicht hin, dass dort die Variablen eingesetzt werden.
Ich hatte da alle Möglichen Variationen ausprobiert.

RM_.*:on {my $temp=ReadingsTimestamp($NAME,"state","0") ;; fhem DebianMail('email@email.de' , 'Feueralarm' , 'Rauchmelder $NAME wurde $temp ausgelöst')};

bringt ernüchternd immer noch eine Mail mit "Rauchmelder $NAME wurde $temp ausgelöst. Ich denke es liegt irgendwie an der Übergabeeigenschaft der Argumente an das debianmail... Aber irgendwer muss dort doch schon mal Variablen reingepackt haben...?
Titel: Antw:Ein Notify auf mehrere Geräte
Beitrag von: KernSani am 22 Januar 2018, 23:25:06
was ist DebianMail eigentlich? Eine Perl sub? Dann gehört kein FHEM vorne dran.
Probier mal sowas:

my $text ="Rauchmelder $NAME wurde $temp ausgelöst";;DebianMail('email@email.de' , 'Feueralarm' , $text)}; 
Titel: Antw:Ein Notify auf mehrere Geräte
Beitrag von: skycrack am 23 Januar 2018, 08:54:27
Danke dir sehr,
debianmail ist eine sub, angelegt nach https://wiki.fhem.de/wiki/E-Mail_senden
dort stand da auch
ZitatBei allen Feldern können generell doppelte " oder einfache ' Anführungszeichen verwendet werden. Innerhalb von "" müssen Sonderzeichen wie @ aber maskiert werden, da sie sonst als Steuerzeichen interpretiert werden:
"email\@email.domain" oder 'email@email.domain'

Demnach probierte ich es nun so, was zu gewünschten Erfolg führte.
RM_.*:on {my $temp=ReadingsTimestamp($NAME,"state","0") ;; DebianMail('email@email.de' , 'Feueralarm' , "Rauchmelder $NAME wurde $temp ausgeloest" )};

Danke für die Hilfsbereitschaft. LG Rene