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

Adimarantis

Hallo Loredo,

Für mein Modul "Signalbot" (quasi der Nachfolger von SiSi, welches ja nicht mehr aktiv maintained wird) habe ich eine Anfrage dies mit deinem msg Modul zu verknüpfen:
https://forum.fhem.de/index.php/topic,118370.msg1136305.html#msg1136305

Wenn ich das richtig verstanden habe, brauche ich dafür in mein Modul eigentlich gar nichts zu integrieren, aber eine Default config wie sie für SiSi bereits existiert bei dir könnte Sinn machen.
Letztendlich ist meine Syntax kompatibel zu SiSi, ich biete aber vereinfacht nur die Methode "send" für alle Arten von Nachrichten an.

Lass mich wissen, wenn es sinnvoll wäre auch auf meiner Seite etwas anzupassen,

Gruß,
Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Dr. Boris Neubert

Zitat von: Adimarantis am 01 März 2021, 08:46:49
Für mein Modul "Signalbot" (quasi der Nachfolger von SiSi, welches ja nicht mehr aktiv maintained wird) habe ich eine Anfrage dies mit deinem msg Modul zu verknüpfen:
https://forum.fhem.de/index.php/topic,118370.msg1136305.html#msg1136305

Ich schließe mich dem Wunsch an. Signal steigt ja gerade enorm in der Popularität!
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

CoolTux

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

Dr. Boris Neubert

Zitat von: CoolTux am 02 Juni 2021, 19:39:00
Du kannst unter github.com/fhem ein PR für das msg Modul einreichen.

Ich habe leider nichts, was gepullt werden könnte. Ich hoffe im Moment noch darauf, dass Julian Signalbot integriert, bevor ich mich selbst in den Code einarbeite (mein Leidensdruck im Verhältnis zu meiner Freizeit ist noch nicht hoch genug).
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

balli1187

Zitat von: Dr. Boris Neubert am 03 Juni 2021, 13:18:02
Ich habe leider nichts, was gepullt werden könnte. Ich hoffe im Moment noch darauf, dass Julian Signalbot integriert, bevor ich mich selbst in den Code einarbeite (mein Leidensdruck im Verhältnis zu meiner Freizeit ist noch nicht hoch genug).
Auch auf die Gefahr hin, dass ich hier etwas nicht richtig verstehe aber das msg-Midul bietet doch schon auf der Benutzer-Ebene die Möglichkeit es zu erweitern, wie man möchte.
Sprich, alles was in einem anderen Modul (hier "Signalbot") oder in einer 99_myUtils-Fubktion in FHEM ausgeführt werden kann, sollte auch im msg-Modul anleg bar sein, sodass der Entwickler nicht jedes Mal aktiv werden muss....
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Dr. Boris Neubert

Zitat von: balli1187 am 03 Juni 2021, 15:41:34
Auch auf die Gefahr hin, dass ich hier etwas nicht richtig verstehe aber das msg-Midul bietet doch schon auf der Benutzer-Ebene die Möglichkeit es zu erweitern, wie man möchte.
Sprich, alles was in einem anderen Modul (hier "Signalbot") oder in einer 99_myUtils-Fubktion in FHEM ausgeführt werden kann, sollte auch im msg-Modul anleg bar sein, sodass der Entwickler nicht jedes Mal aktiv werden muss....

Das ist richtig. Jedoch ist die Doku für mich nicht ausreichend gewesen, das auch zu realisieren. Ein Anwender hat mich darauf hingewiesen, dass im Wiki zum veralteten SiSi ein Beispiel steht, mit dem ich dann wohl zurechtkomme.

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

kjmEjfu

Interessant bzgl. Doku wäre für mich (und andere Sonos2mqtt'ler) auch noch, wie man ein Schema anlegen kann, bei man mit Model (=sonos2mqtt_speaker) und nicht Device Type (MQTT2_DEVICE macht keinen Sinn) arbeitet.
Migriere derzeit zu Home Assistant

Uli

Bitte steinigt mich nicht, aber ich benutze bisher pushnotifier um Nachrichten von FHEM auf verschiedene iPhones zu schicken. Jetzt möchte ich pushnotifier gerne in mit msg benutzen, finde aber leider keinerlei Dokumentation dazu. Im Wiki steht nichts von Pushnotifier und hier im Forum finde ich lediglich den Hinweis, dass Pushnotifier parseParams nicht ünterstützt.
Kann mir jemand von Euch auf die Sprünge helfen oder geht msg nicht mit Pushnotifier?
Gruß

Uli

seit 01/2023 kein FHEM mehr. Bin nur noch aus historischen Gründen hier

balli1187

Zitat von: Uli am 30 Juni 2021, 16:46:04
Bitte steinigt mich nicht, aber ich benutze bisher pushnotifier um Nachrichten von FHEM auf verschiedene iPhones zu schicken. Jetzt möchte ich pushnotifier gerne in mit msg benutzen, finde aber leider keinerlei Dokumentation dazu. Im Wiki steht nichts von Pushnotifier und hier im Forum finde ich lediglich den Hinweis, dass Pushnotifier parseParams nicht ünterstützt.
Kann mir jemand von Euch auf die Sprünge helfen oder geht msg nicht mit Pushnotifier?
Ich nutze zwar kein pushnotifier aber das sollte eigentlich kein Problem sein:

Im msg-Modul kannst du beliebige Methoden zusätzlich zu den von Haus aus definierten erstellen.
Für pushnotifier wirst du ja ein FHEM-Modul haben und kannst dessen Set-Befehle als Template in das msg-Modul eintragen. Da musst du nur mal genau schauen welche Platzhalter du dabei brauchst. Das steht im Wiki-Artikel oder/und im ersten Post dieses Threads (weis ich nicht mehr genau).

Ich habe damit das echodevice eine zeitlang für push-Nachrichten missbraucht und aktuell nehme ich meine Nextcloud.
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Uli

Zitat von: balli1187 am 30 Juni 2021, 17:21:26
Ich nutze zwar kein pushnotifier aber das sollte eigentlich kein Problem sein:

Im msg-Modul kannst du beliebige Methoden zusätzlich zu den von Haus aus definierten erstellen.
Für pushnotifier wirst du ja ein FHEM-Modul haben und kannst dessen Set-Befehle als Template in das msg-Modul eintragen. Da musst du nur mal genau schauen welche Platzhalter du dabei brauchst. Das steht im Wiki-Artikel oder/und im ersten Post dieses Threads (weis ich nicht mehr genau).

Ich habe damit das echodevice eine zeitlang für push-Nachrichten missbraucht und aktuell nehme ich meine Nextcloud.
Ich hatte gestern einen Knoten im Gehirn, sorry. Funktioniert genau so, wie es sollte. Danke für den Weckruf...
Gruß

Uli

seit 01/2023 kein FHEM mehr. Bin nur noch aus historischen Gründen hier

Rudibarani

Hallo Julian,

ich nutze bei mir zu Hause nur Push für die Benachrichtigung und wollte mich erkundigen, ob es inzwischen auch eine zentral zu steuernde Lösung gibt, dass die Push-Nachrichten mit niedriger Priorität im Urlaub nicht nachgesendet werden. Ich hatte vermutet, dass es hierfür ein

msgFwPrioGonePush

geben müsste, habe das aber nicht gefunden.

Zitat von: Loredo am 02 November 2015, 10:12:41
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.

Danke für Tipps und Ideen!
Phillip

Flachzange

Zitat von: Adimarantis am 01 März 2021, 08:46:49
Hallo Loredo,

Für mein Modul "Signalbot" (quasi der Nachfolger von SiSi, welches ja nicht mehr aktiv maintained wird) habe ich eine Anfrage dies mit deinem msg Modul zu verknüpfen:
https://forum.fhem.de/index.php/topic,118370.msg1136305.html#msg1136305

Wenn ich das richtig verstanden habe, brauche ich dafür in mein Modul eigentlich gar nichts zu integrieren, aber eine Default config wie sie für SiSi bereits existiert bei dir könnte Sinn machen.
Letztendlich ist meine Syntax kompatibel zu SiSi, ich biete aber vereinfacht nur die Methode "send" für alle Arten von Nachrichten an.

Lass mich wissen, wenn es sinnvoll wäre auch auf meiner Seite etwas anzupassen,

Gruß,
Jörg

Der Impuls kam vermutlich von mir. Grundsätzlich funktioniert msg mit signalbot. Ich würde jedoch gerne msgContactPush sowohl für Einzelkontakte (bei signalbot mit @ adressiert) als auch für Gruppen nutzen (bei signalbot mit # adressiert). So kann ich zum Beispiel in Kombination mit RESIDENTS diese über eine Gruppe erreichen.

Damit das funktioniert fehlt gefühlt nur wenig.

globalMSG:

msgCmdPush set %DEVICE% send %RECIPIENT% %MSG%
msgContactPush Signalbot:@+49175XXXXXX


=> So erreiche ich den hinterlegten Einzelempfänger.

Naheliegend wäre jetzt ein

msgContactPush Signalbot:#Gruppe


Das wird aber nicht wie gewünscht richtig geparsed und dann auch nicht an Signalbot gegeben. Liegt es vielleicht an der Raute?

Das Log sieht dann wie folgt aus:
2021.09.19 11:56:48 3: msg globalMsg: ID=1632045408.28048.1 TYPE=push ROUTE=Signalbot:#Gruppe STATUS=UNDEFINED PRIORITY=0 TITLE='' 'Testnachricht'

Gruß
Chris

Edit: Vielleicht wäre es auch ein Option Signalbot anzupassen, so dass auch Gruppen mit @angesprochen werden, d.h. set signalbot send @#Gruppe. Klingt auf den ersten Blick sogar sauberer

Adimarantis

ZitatEdit: Vielleicht wäre es auch ein Option Signalbot anzupassen, so dass auch Gruppen mit @angesprochen werden, d.h. set signalbot send @#Gruppe. Klingt auf den ersten Blick sogar sauberer
Das geht schon  (ist sogar dokumentiert):
For compatibility reasons @# can also be used to mark group names

Gruß,
Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Flachzange

Zitat von: Adimarantis am 19 September 2021, 13:01:16
Das geht schon  (ist sogar dokumentiert):
For compatibility reasons @# can also be used to mark group names
Top, danke und verzeihe mir, dass ich es überlesen habe.

Ich habe mir gerade den Code von MSG angeschaut. Man muss nur in Zeile 1248 die Raute als valides Zeichen in der Regex ergänzen. Dann läuft es (ohne, dass ich Seiteneffekte beurteilen kann).

Aeroschmelz

Hallo,

ich bekomme es irgendwie nicht mit dem Signalbot hin. Bei Email klappt es. Aber beim Singalbot kommt beim Aufruf:


msg push |FHEM| Test


immer die Meldung: STATUS=UNAVAILABLE im Log und ich habe das Gefühl, das der Aufruf Signalbot gar nicht erreicht.


2023.01.13 20:07:44 5: msg: found types=push
2023.01.13 20:07:44 5: msg: found title=FHEM
2023.01.13 20:07:44 5: msg globalMsg: Checking for available routes (triggered by type push)
2023.01.13 20:07:44 5: msg globalMsg: screen route check result: ROUTE_UNAVAILABLE
2023.01.13 20:07:44 5: msg globalMsg: light route check result: ROUTE_UNAVAILABLE
2023.01.13 20:07:44 5: msg globalMsg: audio route check result: ROUTE_UNAVAILABLE
2023.01.13 20:07:44 5: msg globalMsg: push route check result: ROUTE_AVAILABLE
2023.01.13 20:07:44 5: msg globalMsg: mail route check result: ROUTE_UNAVAILABLE
2023.01.13 20:07:44 4: msg globalMsg: Available routes: screen=0 light=0 audio=0 text=1 push=1 mail=0
2023.01.13 20:07:44 5: msg globalMsg: Trying to send message via gateway Signalbot to recipient @+49XXXXXXXX
2023.01.13 20:07:44 5: msg globalMsg: Determined default title:
2023.01.13 20:07:44 5: msg globalMsg: msgSchema: replacing %RECIPIENT% and $RECIPIENT by ''
2023.01.13 20:07:44 5: msg globalMsg: msgSchema: replacing %Signalbot_MTYPE% and $Signalbot_MTYPE by 'send'
2023.01.13 20:07:44 3: msg globalMsg: ID=1673636864.9654.1 TYPE=push ROUTE=Signalbot RECIPIENT=@+49XXXXXXXX STATUS=UNAVAILABLE PRIORITY=0 TITLE='FHEM' 'Test'
2023.01.13 20:07:44 5: msgConfig globalMsg: called function msgConfig_Set()


Der direkte Aufruf in Signalbot mit

set Signalbot send @+49XXXXXXXX Test


funktioniert.

Das MSG-Device sieht folgendermaßen aus:


define globalMsg msgConfig
attr globalMsg userattr msgDialog_evalSpecials:textField-long msgDialog_msgCommand:textField
attr globalMsg comment FHEM Global Configuration for command 'msg'
attr globalMsg group Global
attr globalMsg msgCmdMail { my $d='%DEVICE%';; my $title='%TITLE%';; my $msg='%MSG%';; DebianMail($d,$title,$msg)}
attr globalMsg msgCmdPush set %DEVICE% %Signalbot_MTYPE% %RECIPIENT% %MSG%
attr globalMsg msgContactPush Signalbot:@+49XXXXXXXX
attr globalMsg msgResidentsDev rgr_Bewohner
attr globalMsg msgType text
attr globalMsg room System
attr globalMsg stateFormat fhemMsgState
attr globalMsg verbose 5
#   .FhemMetaInternals 1
#   FUUID      63bab526-f33f-0756-6ccf-420731ddad0bbd4e
#   FVERSION   75_msgConfig.pm:0.269650/2023-01-05
#   NAME       globalMsg
#   NOTIFYDEV  TYPE=(Jabber|TelegramBot|yowsup|Signalbot)
#   NR         55
#   NTFY_ORDER 50-globalMsg
#   STATE      0
#   TYPE       msgConfig
#   eventCount 4
#   .attraggr:
#   .attrminint:
#   Helper:
#     DBLOG:
#       fhemMsgPush:
#         myDbLog:
#           TIME       1673636864.98384
#           VALUE      Test
#       fhemMsgPushGw:
#         myDbLog:
#           TIME       1673636864.98384
#           VALUE       Signalbot:UNAVAILABLE
#       fhemMsgPushPrio:
#         myDbLog:
#           TIME       1673636864.98384
#           VALUE      0
#       fhemMsgPushState:
#         myDbLog:
#           TIME       1673636864.98384
#           VALUE      0
#       fhemMsgPushTitle:
#         myDbLog:
#           TIME       1673636864.98384
#           VALUE      FHEM
#       fhemMsgState:
#         myDbLog:
#           TIME       1673636864.98384
#           VALUE      0
#       fhemMsgStateTypes:
#         myDbLog:
#           TIME       1673636864.98384
#           VALUE      push:0
#   READINGS:
#     2023-01-13 20:07:44   fhemMsgPush     Test
#     2023-01-13 20:07:44   fhemMsgPushGw    Signalbot:UNAVAILABLE
#     2023-01-13 20:07:44   fhemMsgPushPrio 0
#     2023-01-13 20:07:44   fhemMsgPushState 0
#     2023-01-13 20:07:44   fhemMsgPushTitle FHEM
#     2023-01-13 20:07:44   fhemMsgState    0
#     2023-01-13 20:07:44   fhemMsgStateTypes push:0
#
setstate globalMsg 0
setstate globalMsg 2023-01-13 20:07:44 fhemMsgPush Test
setstate globalMsg 2023-01-13 20:07:44 fhemMsgPushGw  Signalbot:UNAVAILABLE
setstate globalMsg 2023-01-13 20:07:44 fhemMsgPushPrio 0
setstate globalMsg 2023-01-13 20:07:44 fhemMsgPushState 0
setstate globalMsg 2023-01-13 20:07:44 fhemMsgPushTitle FHEM
setstate globalMsg 2023-01-13 20:07:44 fhemMsgState 0
setstate globalMsg 2023-01-13 20:07:44 fhemMsgStateTypes push:0


Ich habe auch schon bei msgCmdPush das gleiche eingegeben, wie für die direkte Eingabe des Signalbots, aber auch hier kommt Status=Unavailable

Grüsse
Marcus