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

kjmEjfu

Hi,

ist durch den Umbau zum Doppelpunkt bei Pushover eventuell etwas kaputt gegangen?

Meine Message:

msg rr_xyz: ID=xxxxx TYPE=push ROUTE=pushmsg RECIPIENT=iPhone STATUS=OK PRIORITY=0 TITLE='Parkplatz für abc' MSG='Das Auto wurde hier geparkt [{"URLTITLE":"'In Google Maps öffnen'","ACTION":"'comgooglemapsurl://maps.google.com/?q=[rr_xyz:locationLat],[rr_xyz:locationLong]'","RETRY":0,"EXPIRE":0}]'

funktioniert seit ein paar Tagen (quasi nach dem letzten Update von msg) nicht mehr richtig.

a) wird die Nachricht nicht nur auf dem Gerät iPhone angezeigt, sondern auf allen für diesen Pushover-Account registrierten
b) wird die eigentliche Nachricht nicht mehr richtig umgewandelt. so steht jetzt im Title:
Parkplatz für abc' 'Das Auto wurde hier geparkt [{"URLTITLE":"'In Google Maps öffnen
und im Body ,"ACTION":
Migriere derzeit zu Home Assistant

Loredo

muss ich mir ansehen, geht aktuell leider nicht. Habe es auf die Todo Liste gepackt.
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

outhouse

Zitat von: l2r am 26 August 2015, 17:35:36
sry... tut doch:

Person_Anwesend:present.* {
my $AnwesendePersonen = "";

if(Value("iPhone6") eq "present") {$AnwesendePersonen = "-Michael-"};

if(Value("iPhone6") eq "present") {
fhem("msg push -1 |ANWESENHEIT| Personen Anwesend!$AnwesendePersonen");}
}


Hi. Funktioniert bei mir leider nicht.
(
  my $devType=InternalVal([rgr_Residents:lastActivityByDev],"TYPE","NONE");
  my $lastState=ReadingsVal([rgr_Residents:lastActivityByDev],"lastState","none");
  my $fensterOffen=statusFensterOffen();
  [rgr_Residents:?lastActivity] and
  [?rgr_Residents:lastActivity] eq "absent" and
  $devType eq "ROOMMATE" and
  $lastState eq "home" and
  [?rgr_Residents:state] eq "absent" and
  $fensterOffen ne ""
)
(
   (msg push @[rgr_Residents:lastActivityByDev] 2|Türen und Fenster|Die $fensterOffen sind nicht geschlossen O[{"RETRY":60,"EXPIRE":300,"Pushover_SOUND":"siren"}])
)


Statt, anstelle der offenen Fenster, wird der Text wie angegeben per Push übertrage.

Gruss

Chris
Raspberry 4 B mit Raspberry Pi OS und FHEM-Image 6.3 von fhem.de
Cul CC 1101 V4 als CUL_HM
Cul V3.4 + V3.4 als RFR
enocean-pi

FunkOdyssey

Ich fange gerade an, mich in deine Lösung einzuarbeiten und stolpere über eine Kleinigkeit:

Ich habe u.a. folgende Titel über die Attribute konfiguriert:

   msgCmdMail {DebianMail('%DEVICE%','%TITLE%','%MSG%')}
   msgCmdMailHigh {DebianMail('%DEVICE%','%TITLE%','%MSG%')}
   msgCmdMailLow {DebianMail('%DEVICE%','%TITLE%','%MSG%')}
   msgTitleMail Hausautomation - Info
   msgTitleMailHigh Hausautomation - Warnung
   msgTitleMailLow Hausautomation - Hinweis


Wenn ich nun
msg mail 0 HalloWeltPrio0
oder
msg mail 1 HalloWeltPrio1
ausführe, so wird in beiden Fällen der Titel aus dem Attribut "msgTitleMail" genommen.

Habe ich da einen Denkfehler oder ist im Code irgendwo ein Dreher? :-)

Danke.

Buwe

Ich bräuchte mal einen "Stupser":

Ich nutze das Squeezebox Modul, dass soweit tadellos funktioniert.

set sb_kueche talk |fahrradklingel.mp3| Fenster noch offen
funktioniert unabhäng davon ob der Player im Status on oder off ist.

msg audio @res.home_XXX |fahrradklingel.mp3| Fenster noch offen
Funktioniert nur bei eingeschaltetem Player.

Log bei Erfolg/eingeschaltetem Player:
2017.01.16 20:40:04 3: msg res.home_XXX: ID=1484595604.62001.1 TYPE=audio ROUTE=sb_kueche STATUS=OK PRIORITY=0 TITLE='fahrradklingel.mp3' MSG='Fenster noch offen'


Bei ausgeschaltetem Player:
2017.01.16 20:41:47 3: msg res.home_XXX: ID=1484595707.24917.1 TYPE=audio ROUTE=sb_kueche STATUS=UNAVAILABLE PRIORITY=0 TITLE='fahrradklingel.mp3' 'Fenster noch offen'

Wenn ich unter routecmd schaue, wird doch genau der Befehl verwendet, den ich auch direkt oben eingebe?
Habs auch schon mit/ohne Title versucht, etc.

Loredo

Was erwartest du, wie ein ausgeschaltetes Gerät etwas abspielen soll? :)


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

Buwe

Gegenfrage: Warum soll msg bei ausgeschalteten Player die Sprache nicht ausgeben?

get globalmsg routeCmd audio
sagt mir:
SB_PLAYER
    Priority Normal:
      set %DEVICE% talk |%TITLE%| %MSG%
      ...


Der Syntax ist m.E. identisch zu:
set sb_kueche talk |fahrradklingel.mp3| Fenster noch offen
Dieser Befehl, direkt in fhem eingegeben, bringt die gewünschte Sprachausgabe. Unabhängig davon ob der Player ein- oder aus-geschaltet ist!

Loredo

Entschuldige, jetzt habe ich glaube ich verstanden was du meinst. Ich habe zunächst gedacht mit ausgeschaltet sei gemeint das Gerät sei auch tatsächlich nicht erreichbar.
Ich habe gerade einen Patch eingecheckt, der das Verhalten an dieser Stelle korrigiert.
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

kjmEjfu

Zitat von: outhouse am 17 Dezember 2016, 13:12:37
Statt, anstelle der offenen Fenster, wird der Text wie angegeben per Push übertrage.

konntest du das Problem zwischenzeitlich lösen?
Migriere derzeit zu Home Assistant

AndreasR

Hallo zusammen,

irgendwie stehe ich mit dem msg zuweilen auf Kriegsfuß .. oder eher auf dem Schlauch ...

Mein Problem ist das ich bei dem Befehl
msg push @[MBW_HS:lastActivityByDev] |Anwesenheit| [MBW_HS:lastActivityBy] abgemeldet.

gerne hätte das die Meldung via Telegram an den zuletzt aktiven Benutzer geht. 
Dazu habe ich bei jedem Benutzer das Attribut
msgContactPush Telegram
msgRecipientPush @SeinTelegramName

gesetzt.

Irgendwie geht das nicht - die Meldungen gehen an den "defaultPeer" und werden dort toll zugestellt ... aber gerade wenn die anderen gehen sollen sie ja die Nachrichten bekommen um dann zurückzugehen und die Fenster zu schliessen ..


Danke schon mal Vorweg.

Andreas



Buwe

@Loredo:
Ich habe heute Abend das Update gemacht.
Der Squeezeplayer gibt jetzt bei ausgeschalteten Player den Text aus.
Aber nicht mehr bei eingeschalteten Player.
Schlimmer noch, ein mal versucht den Text bei eingeschalteten Player Sprache auszugeben, geht erst mal gar keine Sprachausgabe mehr.
Selbst über den set talk Befehl des Squeezeplayer nicht mehr.

Ich habe noch kein Muster gefunden wann oder wie der Player sich wieder berappelt.
Der Player stürzt auch nicht ab, Musik (Radio) starten/stoppen geht trotzdem.

Laut logs behauptet msg der Befehl war erfolgreich. Auch laut den logs des Squeezeplayers wird Google angeblich erfolgreich für TTS aufgerufen.

Ich komme aber frühestens am Wochenende dazu weiter zu suchen  :(

Muss ja auch nicht unbedingt an msg liegen.

AndreasR

Zitat von: Prof. Dr. Peter Henning am 18 Januar 2017, 20:39:46
@ -> \@


Hallo,

war das die Lösung für mein Problem?

Habe es bei den Attributen \@TelegramBenutzerName versucht sowie im DoIf  code  msg push \@[MBW_HS:lastActivityByDev] ..  leider in beiden Fällen erfolglos .. 

Ist es denke nicht .. 

im Logfile sieht es ohne den Backslash so aus: 

2017.01.18 20:59:11 2: ROOMMATE set rr_Andreas absent
2017.01.18 20:59:12 3: msg rr_Andreas: ID=123456789.98765.1 TYPE=push ROUTE=Telegram STATUS=OK PRIORITY=0 TITLE='Anwesenheit' MSG='Andreas abgemeldet. 1 Bewohner verblieben: Paul'


Gruß Andreas


EDIT: Fehler korrigiert.

FunkOdyssey

Ich stehe gerade irgendwie auf dem Schlauch oder sehe den Wald vor läuter Bäumen nicht.

Ich habe sowohl ein Residents wie auch diverse Roommates-Geräte.

Wie kann ich aber eine Push-Nachricht nur an die Personen senden, die gerade daheim sind?
Oder muss ich das selber abfragen? Das wäre kein Problem. So ist das auch bisher. Aber ich dachte, dass könnte ich mir sparen.


msg push,screen @rr_Person1,@rr_Person2 Anruf von [FbCallMonitor:external_name] [FbCallMonitor:external_number] O[{"Pushover_SOUND":"bike"}]

AndreasR


Hallo

die anwesenden Roommates stehen in residentsHomeDevs
in https://forum.fhem.de/index.php/topic,19040.msg359145.html#msg359145 ist ein DoIf das mir beim aufknoten diverser Fragen in diesem Zusammenhang geholfen hat;

Gruß

Andreas