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

honkmasta

Hallo Gunther, ganz kurz als Anstoss:

Zitat1. Frage:
Kann ich über den msg-Befehl das Gleiche hinbekommen (inkl. "Nachrichten-Schaltern" zum aktivieren/deaktivieren, die ich mir z. B. über Tablet UI einbauen kann)?

Ja, ich habe die gleiche Historie wie Du. Meldungen und Bedingungen zu deren Versand verteilt über unzählige DOIFs.
Das war ein riesiger Aufwand zur Pflege. Nachdem ich MSG fand habe ich die ganzen Bedingungen zentral und gebe
im jeweiligen DOIF nur noch den generellen Aufruf ab.

Das sieht dann z.B. so aus
([Waschmaschine.Status:"done"])
{
  fhem("msg audio,screen 1 |Waschkeller| Waschmaschine ist fertig!");
}
DOELSE


Eine Beispielbedingung im zentralen MSG device (Attribut "msgCmdAudio") könnte dann so aussehen:

IF ([KNX.FIDS.Aktiv] eq "off" and [KNX.ZENTRAL.DoNotDisturb.SW] eq "off")(set %DEVICE% speak 'Achtung Achtung %MSG%')


Zur Frage:
Zitateine Testnachricht auf mein sonst funktionierendes Pushdevice zu bringen. Leider bekomme ich folgende Meldung

Meine Definition im MSG device für Push (Attribut "msgCmdPush") sieht so aus
set %DEVICE% msg title='%TITLE%' device='%RECIPIENT%:%TERMINAL%' priority=%PRIORITY% url_title="%URLTITLE%" message='%MSG%'


Gruß

Gunther

Danke für Deine Unterstützung.
Was sind
KNX.FIDS.Aktiv und KNX.ZENTRAL.DoNotDisturb.SW bei Dir?
Dummy-Devices?

FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

honkmasta

Moin Gunther,

Das sind devices (KNX) die den Zustand des Hauses abbilden und damit bestimmen ob z.B. Eine Audio Message gesendet werden soll oder nicht. So oder ähnlich könntest du die Zustände deiner Tablets abfragen.

Gruß


Gesendet von iPhone mit Tapatalk Pro

Gunther

Auch eine Eule...  :)

Damit könnte ich ja nur generell (in Deinem Fall) Audio an oder abschalten und nicht abhängig vom Vorgang (also je DOIF), richtig?
Sehe den Vorteil noch nicht so richtig... Sollte vielleicht mal ins Bett. ;-)
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

honkmasta

Moin Gunther,

Eule und Vogel ...  :D

Ja und Nein. Prinzipiell trennt man mit MSG Ereignis und Benachrichtigungsvorgang (-Eskalation).

Ich erzeuge generell in der Ereignisbehandlung (Waschmaschine fertig, Fenster offen usw.) eine Nachricht (optional mit Prio und Empfängern).
Und im MSG wird dann zentral entschieden ob die Nachricht über ein Tablet ausgegeben wird (weil jemand anwesend ist), ob sie auf dem Bildschirm angezeigt werden soll (weil ein SAT Receiver an ist) oder ob die Nachricht doch noch auf ein Handy gepusht werden soll.

Man verliert etwas an Flexibilität (wenn die Nachrichtenweitergabe nur bei einem bestimmten Event genau auf eine Art erfolgen soll). Dafür spare ich mir in jedem Ereignis-DOIF den ganzen Rattenschwanz aus gib Audio aus, sende Text an Receiver und pushe Text an Handy (den Du auch hast). Denn die Waschmaschine war der Anfang und dann kam noch ein weiteres Wandtablet im Keller dazu und dann noch die Fenster-Offen-Erkennung usw. ...

So ganz steige ich durch Dein DOIF noch nicht durch ...
(IF (([haus_Status:state] eq 1) and [ttsMsg_waschmaschine_eg_fl_Tablet10Zoll] eq "an")(set eg_fl_Tablet10Zoll volume [ttsMsg_waschmaschine_lautstaerke]))
(IF (([haus_Status:state] eq 1) and [ttsMsg_waschmaschine_eg_fl_Tablet10Zoll] eq "an")(set eg_fl_Tablet10Zoll ttsMsg Die Waschmaschine ist fertig))
...
(IF (([pushover_waschmaschine_gunther:state] eq "an")) (set Pushover msg title="Waschmaschine" "Die Wäsche ist fertig" device='IPhone7GB'))
(IF (([pushover_waschmaschine_hilke:state] eq "an")) (set Pushover msg title="Waschmaschine" "Die Wäsche ist fertig" device='IPhone8Hilke'))


Die Abfragen ob Audiodevice an ist und Lautstärke setzen lässt sich ganz einfach zentral im MSG durchführen. Unabhängig vom Event und Ausgabedevice. Zusätzlich hast Du noch die Optionen dem Ereignis eine Priorität mitzugeben und die Ausgabe im MSG davon abhängig zu steuern. Und Du kannst das ganze noch mit Residents verknüpfen.

pushover_waschmaschine_gunther
pushover_waschmaschine_hilke
ttsMsg_waschmaschine_eg_fl_Tablet10Zoll

Ich vermute das sind Dummies und steuern welche Audioausgabe wo erfolgen soll?
Ich verstehe noch nicht ganz wie und wann die gesetzt werden? Nur wenn man diese vom eigentlichen Ereignis trennen kann und man mehrere Ereignisse und Benachrichtigungsdevices verwalten muss macht MSG aus meiner Sicht wirklich Sinn.

Gruß   

patlabor

Hallo zusammen,

ich habe vor ein paar Tagen angefangen mich mit dem msg Befehl auseinanderzusetzen, und bin eigentlich recht begeistert davon, leider ist das ganze etwas unübersichtlich, und die Dokumentation lässt noch etwas zu wünschen übrig. Daher frage ich einfach mal hier, vielleicht kann ja jemand Licht ins Dunkel bringen.

Ich habe hier sowohl Google Home Lautsprecher als auch Sonos Lautsprecher im Einsatz. Die Sonos Lautsprecher funktionieren ohne Probleme, die Google Home Lautsprecher bekomme ich momentan nicht zum Laufen, weis aber das ich sie schonmal erfolgreich zur Sprachausgabe eingesetzt habe, daher frage ich auch hier, anstatt es selbst einfach auszuprobieren. Ich möchte einfach vermeiden, Tage damit zu verbringen, das Googlecast Device ins Laufen zu bringen nur um dann festzustellen das ich mit msg nur entweder Sonos ODER Googlecast verwenden kann.

Soweit ich das verstanden habe, unterstützt msg von Haus aus einige "Dienste" wenn etwas nicht dabei ist, lässt sich das ganze über die msgCmd Attribute selbst einstellen.
So habe ich es auch für msg screen gemacht. Hier benutze ich NotifyAndroidTV, um Benachrichtigungen auf allen TVs anzuzeigen. Da ich hier auch keine anderen Screens habe, reicht mir das auch aus.

Wie sieht das jetzt aber bei Audio aus? Die Sonos Lautsprecher werden von hause aus unterstützt. Googlecast so wie ich das verstanden habe nicht, hier müsste ich mir dann über das entsprechende Attribut den Befehl selbst basteln. Soweit so gut, aber was passiert dann mit den Sonos Geräten? Wird der voreingestellte Befehl dann durch das Attribut überschrieben und msg versucht alle Audio Benachrichtigungen mit dem neuen Befehl zu versenden, oder erkennt das Modul, ob es sich um ein Sonos Gerät oder etwas anderes handelt?

Was passiert eigentlich, wenn ich in Zukunft noch einen dritten Audio-Weg benötige? Ich habe doch nur ein Attribut msgCmdAudio. Wie definiere ich hier jetzt mehrere verschiedene Wege, und woran erkennt fhem im Zweifelsfall welchen der selbst definierten Befehle verwendet wird?


DS_Starter

@Loredo, ich habe seit einiger Zeit das Modul SSChatBot zur Integration des Synology Chat Servers im Angebot. Ein User fragte bereits ob du das Modul in deinem msg mit implementieren könntest.

Forum: https://forum.fhem.de/index.php/topic,105714.msg1062901.html#msg1062901
Wiki: https://wiki.fhem.de/wiki/SSChatBot_-_Integration_des_Synology_Chat_Servers

VG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

balli1187

Hallo,
ich nutze zum Versand von Push-Nachrichten eine Funktion in der 99_myutils, um die Nachrichten über meine Nextcloud an die Endgeräte zu schicken.
Rufe ich die Funktion direkt auf, funktioniert es bisher tadellos. über das msg-Modul kommt es regelmäßig vor, dass doch nicht gepusht wird und stattdessen eine Mail geschickt wird. Im globalMsg-Device findet sich jedoch kein Hinweis.
Wie kann ich das debuggen bzw. wie kann ich es der perl-Funktion heraus eine Rückmeldung an das Modul schicken?

VG, Stephan
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

TWART016

Hallo,

leider verstehe ich das Modul noch nicht ganz. Ich habe msg grundlegend eingerichtet und versende per Telegram und Residents bereits Nachrichten:
Internals:
   CFGFN     
   FUUID      5f8628aa-f33f-50ef-85d7-a4e61f51686ab251
   FVERSION   75_msgConfig.pm:0.189950/2019-03-22
   NAME       globalMsg
   NOTIFYDEV  TYPE=(Jabber|TelegramBot|yowsup)
   NR         352756
   NTFY_ORDER 50-globalMsg
   STATE      0
   TYPE       msgConfig
   READINGS:
     2020-10-16 01:07:57   fhemMsgMail     Normal Titel message
     2020-10-16 01:07:57   fhemMsgMailPrio 0
     2020-10-16 01:07:57   fhemMsgMailState 0
     2020-10-16 01:07:57   fhemMsgMailTitle -
     2020-10-14 00:26:42   fhemMsgPush     test
     2020-10-14 00:26:42   fhemMsgPushGw    Telegram:OK
     2020-10-14 00:26:42   fhemMsgPushPrio 0
     2020-10-14 00:26:42   fhemMsgPushState 1
     2020-10-14 00:26:42   fhemMsgPushTitle -
     2020-10-16 01:07:57   fhemMsgState    0
     2020-10-16 01:07:57   fhemMsgStateTypes mail:0 forwards:text>mail
Attributes:
   comment    FHEM Global Configuration for command 'msg'
   event-on-change-reading .*
   group      Global
   msgContactPush Telegram
   msgType    text
   room       91_WebDevices
   stateFormat fhemMsgState
   verbose    1



Mein Ziel ist es nun, für manche Events E-Mails zu versenden.

Bisher versende ich E-Mail über ssmtp:
sub SendMail($$$) {
    my ($subject, $message, $recipient) = @_;

    system("echo \"$message\" | mail -s \"$subject\" $recipient");

{SendMail('Betreff', 'Nachricht', 'Empfänger')}
}

Kann ich das dafür verwenden, oder gibt es besseres?

kjmEjfu

Hi zusammen,

wenn man Sonos auf MQTT umstellt (https://wiki.fhem.de/wiki/Sonos2mqtt), dann mag msg nicht mehr.

Sonos_Wohnzimmer: Unknown command schema for gateway device type MQTT2_DEVICE. Use manual definition by userattr msgCmd*

Kann mir jemand sagen (oder einen Link verraten), wie/wo ich so ein Schema anlegen kann und was dort rein muss?

Edit:
Wichtig wäre dabei, dass ich im Schema nach "model=sonos2mqtt_speaker" filtern kann. Der Device Type "MQTT2_DEVICE" alleine wäre unpassend.

Danke schon mal
Migriere derzeit zu Home Assistant

FunkOdyssey

Schön, dass du fragst. Vor diesem Problem stehe ich auch gerade und wollte mich in Kürze einarbeiten.

Irgendwie müsste man die Datei msgSchema.pm erweitern.

kjmEjfu

Zitat von: FunkOdyssey am 21 Oktober 2020, 14:15:47
Irgendwie müsste man die Datei msgSchema.pm erweitern.

die scheint aber nur auf den Type vom Device zu gehen.
Kann sein, dass wir (übergangsweise) das Attribut msgCmdAudio im msgConfig-Device nutzen müssen.
Migriere derzeit zu Home Assistant

kaihs

Die Audioausgabe auf ein FULLY Device funktioniert m. E. nicht korrekt. Es wird nur das erste Wort eines Satzes ausgegeben.
Das liegt daran, dass FULLY den auszugebenden String wohl mit Quotes erwartet.

Ich habe daher den entsprechenden Abschnitt in msgSchema wie folgt geändert:

       'FULLY' => {
            'Normal'        => 'set %DEVICE% speak "%MSGSHRT%"',
            'ShortPrio'     => 'set %DEVICE% speak "%SHOUTOUT%"',
            'Short'         => 'set %DEVICE% speak "%SHOUTOUT%"',
            'defaultValues' => {
                'ShortPrio' => {
                    'SHOUTOUT' => 'Achtung!',
                },
                'Short' => {
                    'SHOUTOUT' => 'Hinweis!',
                },
            },
        },


Damit funktioniert das wie erwartet.
Wäre schön wenn die Anpassung übernommen würde.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

Carsten K.

Hallo zusammen,

aktuell versende ich WebCam-Bilder an TelegramBot und wechsele gerade zu SiSi (Signal). Die einzelnen Module können das auch recht gut.
In diesem Thread konnte ich keine Details zum Versenden von Dateien finden.

Gibt es spezielle Parameter, die ich übersehen habe oder ist es evtl. gar nicht vorgesehen?

Grüße, Carsten
NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

balli1187

Hallo,

mit meinem Problem bei Push-Nachrichten bin ich leider bisher nicht weiter gekommen...
Hinzu kommt nun ein neues Problem:

Ich nutze das Echo-Device-Modul für Audio-Ausgaben über meine Alexa-Geräte.
zuletzt hat das Modul bei mir etwas gestreikt und ich habe es vorübergehend deaktiviert (disable 1).

Dies hat dazu geführt, dass Nachrichten per msg-Befehl zwar wie vorgesehen auf push/mail umgeleitet wurden aber FHEM in der Zwischenzeit scheinbar blockiert wurde. Ein notify, welches als erstes eine Nachricht abspielt und anschließend einige Geräte schaltet, wurde mit mehreren Sekunden Verzögerung abgearbeitete.

Lässt sich dies umgehen / abfangen?

Grüße, Stephan
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