Neuer FHEM Befehl "msg" für Benachrichtigungen (Push,Mail,Audio,Light,Screen)

Begonnen von Loredo, 13 August 2015, 19:31:07

Vorheriges Thema - Nächstes Thema

gandy

Zitat von: Loredo am 28 Oktober 2015, 13:43:49
Weil 75_MSG ja nur Wrapper Funktionen enthält, braucht man die Datei auch nicht in contrib aufbewahren denke ich. Ich tendiere daher sie zu ersetzen. Man kann sie ohnehin nicht sinnvoll manuell zurückspielen, ohne dann wieder Überlappungen zu erzeugen.

Seh ich genauso. Du gibst dann 75_MSG den Rest? Meinen Segen hast Du :)
fhem (svn) auf i5-4210U NUC
2x HMLAN, 19x HM-SEC-RHS, 15x HM-LC-Bl1PBU-FM, etc.
ODYS Neron Tablet / Android 4.2
Samsung Galaxy Tab 2 10.1N / Android 4.1.2
Samsung Galaxy Note / Android 6.0.1

AndyMu

Nach so einer einfachen Möglichkeit hatte ich schon gesucht... super!

Hatte gerade leichte Probleme bei der Installation, da sich wohl inzwischen die Namen der Dateien geändert haben; die Links im ersten Post laufen daher ins Leere.
Bitte für weitere Neu-Nutzer anpassen und möglichst die Namen nicht mehr ändern ;)

AndyMu

Ich kapier irgendwie nicht, wie man diesen neuen Befehl benutzen kann... gibt es denn evtl. irgendwo eine Anleitung für Dummys? ;)

Loredo

#63
Mehr als in diesem Thread gibt es derzeit noch nicht.
Hast du das Grundkonzept verstanden und dir die sehr einfache Syntax angesehen? Hast du dir die notwendigen und optionalen Attribute durchgelesen? Der erste Post sollte ausreichend sein für Leute, die mit FHEM bereits arbeiten. Neulinge erlernen besser zunächst FHEM ansich ;-)
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

Zitat von: AndyMu am 01 November 2015, 11:57:36
Hatte gerade leichte Probleme bei der Installation, da sich wohl inzwischen die Namen der Dateien geändert haben; die Links im ersten Post laufen daher ins Leere.
Bitte für weitere Neu-Nutzer anpassen und möglichst die Namen nicht mehr ändern ;)


Der Befehl wird ja wieder in "msg" umbenannt und ich bin gerade dabei vorzubereiten die Dateien nach ./FHEM zu verschieben (siehe Diskussion in den vorigen Beiträgen).
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Schlimbo

Hallo Loredo,

mit dem Attribut "msgFwPrioGone<TYPE>"  kann ich ja einstellen, dass bei länger Abwesenheit mir Meldungen des angegeben TYPES über Push weiter gegeben werden. 
Gibt es auch eine Möglichkeit das Gegenteil einzustellen, dass bei längerer Abwesenheit Nachrichten nicht gepusht werden?
Ich lasse mich über einige Sachen über Push informieren z.B. "Morgen wird Restmüll abgeholt!".
Wenn ich aber länger unterwegs bin (Urlaub, Geschäftsreise) will ich diese Meldungen nicht bekommen.

Gruß Schlimbo

AndyMu

Zitat von: Loredo am 01 November 2015, 14:15:12
Neulinge erlernen besser zunächst FHEM ansich ;-)
Da ist es wieder, mein kleines Problem  ;D
Vielleicht sollte ich mich tatsächlich erstmal weiter mit den Basics befassen und dann nochmal zurückkommen, wenn ich kein Rookie mehr bin.

Loredo

#67
Zitat von: Schlimbo am 01 November 2015, 16:03:48
mit dem Attribut "msgFwPrioGone<TYPE>"  kann ich ja einstellen, dass bei länger Abwesenheit mir Meldungen des angegeben TYPES über Push weiter gegeben werden.


Das ist so nicht ganz richtig formuliert. Damit kann man die Priorität, ab der trotz längerer Abwesenheit (=Status "gone") eine Weiterleitung/Eskalation per Text erfolgt, einstellen (sofern also ein Push- oder Mail-Contact hinterlegt wurde natürlich). Standard ist bei msgFwPrioGone<TYPE> 1, also jede Nachricht mit mindestens Priorität 1.
Das wirkt, wenn der Ursprungstyp Audio, Light oder Screen war. Eine Eskalation einer Push Nachricht als Text macht ja wenig Sinn, da drehte man sich ja im Kreis :-)


Zitat von: Schlimbo am 01 November 2015, 16:03:48
Gibt es auch eine Möglichkeit das Gegenteil einzustellen, dass bei längerer Abwesenheit Nachrichten nicht gepusht werden?
Ich lasse mich über einige Sachen über Push informieren z.B. "Morgen wird Restmüll abgeholt!".
Wenn ich aber länger unterwegs bin (Urlaub, Geschäftsreise) will ich diese Meldungen nicht bekommen.


Ich habe hier das gleiche Setup, z.B. für co2 Warnung per Audio. Das ganze wird ausschließlich über die gewählte Priorität der Nachricht gesteuert. Man stellt also nicht "das Gegenteil" ein, sondern man wählt in seinem Automatisierungscode die Priorität der Nachricht entsprechend. In deinem Fall sollte die Nachrichten Priorität also nicht höher als 0 liegen. Dann werden Nachrichten bei vorübergehender Abwesenheit hinterhergeschickt (msgFwPrioAbsent<TYPE> hat 0 als Standard) und bei längerer Abwesenheit reicht die Priorität nicht aus, um hinterhergeschickt zu werden und die Nachricht bleibt aus.

Bei Push und E-Mail Nachrichten, die auch als eine solche abgesetzt werden, wird generell davon ausgegangen, dass diese immer zugestellt werden sollen (nach dem Motto "Text ist geduldig" und die Automation wird sich hier schon sicher sein, dass sie wirklich etwas mitzuteilen hat). Das würde ich an dieser Stelle auch beim msg-Kommando nicht aufweichen wollen, sonst würde es unlogisch. Du müsstest also, wenn du als Ursprung keine Audio-Nachricht hast, sondern direkt eine Push-Nachricht verschickst, das in deinem eigenen Code abfangen. Ist in DOIF aber ja ganz einfach.
Ich denke aber nochmal drüber nach, ob man das irgendwie doch auch für Text-Nachrichten sinnvoll mit einbauen kann.


Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

#68
Ich habe nun gerade die besprochene Änderung an 75_MSG.pm durchgeführt und alle Dateien, die zum msg-Kommando dazugehören nach ./FHEM/ verschoben.
Entsprechende Hinweise sind in CHANGES und HISTORY ebenfalls aufgenommen, zusätzlich habe ich hier eine Ankündigung an die noch verbliebenen Nutzer der bisherigen 75_MSG.pm als Modul platziert.

Damit beginnt ab morgen aus meiner Sicht eine erweiterte Test- und Weiterentwicklungsphase für das Kommando "msg". Die bisherige Nutzerschaft war vermutlich noch nicht so groß; ich erhoffe mir also nun mehr Feedback um zu wissen, an welchen Ecken noch gefeilt werden muss, um das ganze nutzbar zu haben. Und ja: Die Dokumentation in der Commandref steht für mich jetzt auch sehr weit oben auf meiner Todo Liste  ;)  Wahrscheinlich werde ich mich dort aber auch mehr auf die generelle Anwendung und Syntax beschränken und Beispiele eher in einem Wiki Artikel ergänzen.


Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

#69
PS: Nutzer, die bisher die Dateien manuell aus ./contrib/ runter geladen und in ./FHEM eingespielt haben, sollten diese Dateien unbedingt löschen, um Dopplungen und somit Überschneidungen zu vermeiden. Diese Dateien gilt es zu prüfen und ggf. zu löschen:


./FHEM/99_msg.pm
./FHEM/98_msg.pm
./FHEM/98_message.pm
./FHEM/99_message.pm
./FHEM/97_msgConfig.pm
./FHEM/97_messageConfig.pm
./FHEM/messageSchema.pm


Die neuen Dateien kommen ab morgen per Update und heißen nun final:


./FHEM/75_MSG.pm
./FHEM/75_msgConfig.pm
./FHEM/msgSchema.pm



Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

l2r

Wissen ist Macht.
Ich weiß nix.
Macht nix.

Ralf W.

Hallo,

kleines Problem.

Mailversand von der Konsole geht und landet auch im externen Mailkonto:
fhem@fhem:~$ which mail
/usr/bin/mail
fhem@fhem:~$ mail ralf -s "test" <./tempList.cfg


Versand über FHEM-Konsole:
fhem> msg text ralf@fhem test2 test2


ergibt:
2015.11.04 09:25:23 5: msg: typeOr total is 1                                                                                                                                                           
2015.11.04 09:25:23 5: msg: start typeOr loop for type(s) text                                                                                                                                         
2015.11.04 09:25:23 5: msg: running loop for type text                                                                                                                                                 
2015.11.04 09:25:23 5: msg: recipientOr total is 1                                                                                                                                                     
2015.11.04 09:25:23 5: msg: start recipientsOr loop for recipient(s) ralf@fhem                                                                                                                         
2015.11.04 09:25:23 5: msg: running loop for device ralf@fhem                                                                                                                                           
2015.11.04 09:25:23 5: msg ralf@fhem: Skipping loop for device type 'email' with unmatched message type 'text'


Kann mir da mal jemand auf die Sprünge helfen?

MfG
http://twitter.com/RWausD
Schon gewusst, dass Haarausfall zu einer Glatze führen kann?

FHEM: NUC7PJYH2, Ubuntu Server 22.04.2 LTS, HMCCU - RaspberryMatic, DE ConBee II, diverse Sensoren und Aktoren.

Loredo

Da fehlte noch etwas, um auch per "text" direkte E-Mails zu verschicken. Der Fix ist morgen im Update.
Derweil funktioniert natürlich der Typ "mail" statt "text" ;-)
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Ralf W.

Danke für die Info, aber Mmmmhhhh ...

fhem> msg mail ralf@fhem test2 test2

ergibt:
2015.11.04 13:06:55 5: msg: typeOr total is 1                                                                                                                                                       
2015.11.04 13:06:55 5: msg: start typeOr loop for type(s) mail                                                                                                                                       
2015.11.04 13:06:55 5: msg: running loop for type mail                                                                                                                                               
2015.11.04 13:06:55 5: msg: recipientOr total is 1                                                                                                                                                   
2015.11.04 13:06:55 5: msg: start recipientsOr loop for recipient(s) ralf@fhem                                                                                                                       
2015.11.04 13:06:55 5: msg: running loop for device ralf@fhem                                                                                                                                       
2015.11.04 13:06:55 5: msg ralf@fhem: Checking for available routes (triggered by type mail)                                                                                                         
2015.11.04 13:06:55 4: msg ralf@fhem: Available routes: screen=0 light=0 audio=0 text=0 push=0 mail=1                                                                                               
2015.11.04 13:06:55 5: msg ralf@fhem: Trying to send message via gateway globalMsg to recipient                                                                                                     
2015.11.04 13:06:55 5: msg ralf@fhem: mail route command (Perl): system("echo 'test2 test2' | /usr/bin/mail -s 'System Message' -t 'globalMsg' -a 'MIME-Version: 1.0' -a 'Content-Type: text/html; ch
arset=UTF-8'")                                                                                                                                                                                       
/usr/bin/mail: invalid option -- 't'                                                                                                                                                                 
usage: mail [-dEIinv] [-a header] [-b bcc-addr] [-c cc-addr] [-s subject] to-addr ...                                                                                                               
       mail [-dEIiNnv] -f [name]                                                                                                                                                                     
       mail [-dEIiNnv] [-u user]                                                                                                                                                                     
2015.11.04 13:06:55 3: msg ralf@fhem: ID=1446638815.31576.1 TYPE=mail ROUTE=globalMsg STATUS=OK PRIORITY=0 TITLE='System Message' MSG='test2 test2'
                                               

MfG
http://twitter.com/RWausD
Schon gewusst, dass Haarausfall zu einer Glatze führen kann?

FHEM: NUC7PJYH2, Ubuntu Server 22.04.2 LTS, HMCCU - RaspberryMatic, DE ConBee II, diverse Sensoren und Aktoren.

Ralf W.

Es gibt unterschiedliche Versionen von Mail. Habe es mit einem anderen System verglichen.

sudo apt-get install heirloom-mailx
und er kennt -t.

Dafür zickt er jetzt an anderer Stelle:
2015.11.04 13:22:06 4: msg ralf@fhem: Available routes: screen=0 light=0 audio=0 text=0 push=0 mail=1                                                                                               
2015.11.04 13:22:06 5: msg ralf@fhem: Trying to send message via gateway globalMsg to recipient                                                                                                     
2015.11.04 13:22:06 5: msg ralf@fhem: mail route command (Perl): system("echo 'test2 test2' | /usr/bin/mail -s 'System Message' -t 'globalMsg' -a 'MIME-Version: 1.0' -a 'Content-Type: text/html; ch
arset=UTF-8'")                                                                                                                                                                                       
MIME-Version: contains invalid character ':'                                                                                                                                                         
Content-Type: contains invalid character ':'                                                                                                                                                         
No recipients specified                                                                                                                                                                             
"./dead.letter" 8/208                                                                                                                                                                               
2015.11.04 13:22:06 3: msg ralf@fhem: ID=1446639726.66057.1 TYPE=mail ROUTE=globalMsg STATUS=OK PRIORITY=0 TITLE='System Message' MSG='test2 test2'   
     

MfG                                       
http://twitter.com/RWausD
Schon gewusst, dass Haarausfall zu einer Glatze führen kann?

FHEM: NUC7PJYH2, Ubuntu Server 22.04.2 LTS, HMCCU - RaspberryMatic, DE ConBee II, diverse Sensoren und Aktoren.