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

l2r

das log ist ja in der Regel so aufgebaut, dass erst  DatumZeit kommt, dann loglevel , dann das Modul, dann das Deivice und dann der Logeintrag

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

Amenophis86

Das ist korrekt, mich hat nur das msg vor rr_Etienne abgelenkt, dass ich quasi nach diesem "Device" gesucht habe wohl wissend, dass es sich dabei um einen Befehl handelt.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

darkness

Hallo,

ich versuche gerade per MSG eine Nachricht über AMAD2 zu senden.

Befehl:
msg audio @rr_ICH Test

Beim Absenden erhalte ich folgenden Fehler:

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

Wenn ich mir die Routen im  msgConfig anschaue, steht dort folgendes:

AMAD
    Priority Normal:
      set %DEVICE% ttsMsg %MSG%
    Priority ShortPrio:
      set %DEVICE% ttsMsg %MSGSHRT%
      Default Values:
        MSGSH = Achtung!
    Priority Short:
      set %DEVICE% ttsMsg %MSGSHRT%
      Default Values:
        MSGSH = Hinweis!



AMADDevice
    Priority Normal:

      Default Values:
    Priority ShortPrio:

    Priority Short:


Beim Resident rr_ICH habe ich folgendes Attribut

msgContactAudio MeinHandy

Müssten die Einträge vom AMAD nicht beim AMADDevice stehen? Natürlich kann ich userattr msgCmd* noch setzten. Aber ich dachte die FHEM-Module sollte "Out of the Box" unterstützt werden?
Oder liegt der Fehler bei mir?

l2r

du hast Recht.

Die msgSchema ist noch auf das alte AMAD-Modul gemappt. Entweder du passt die msgSchema an und schließt die dann vom Update aus (So mache ich das) oder Loredo müsste diese aktualisieren. Da Loredo im Moment aber nicht aktiv ist, würde ich dir zu ersterem Raten.

Eine Beispielconfig hab ich weiter oben mal gepostet.

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

darkness

Hallo,

danke für die Antwort.

Die entsprechenden Teile über AMAD hatte ich übersehen  ???


igami

Ich habe noch ein kleines Problem damit, wie der Titel von einer Nachricht gefunden wird.
Bei Telegram würde ich mir gerne ein mehrspaltigey Keyboard senden. Der Aufruf dafür lautet:

msg push @MichaelP (5|10|15|20|25) Welche Wert soll ich einstellen?

Empfangen tue ich aber

5\n\n15\n\n25

Ich vermute, dass es was damit zu tun hat, dass der Titel normalerweise zwischen zwei pipe Zeichen angegeben wird.
Mein Vorschlag: Den Titel nur suchen, wenn sich vor, bzw. hinter, dem pipe Zeichen ein Leerzeichen befindet.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Loredo

Zitat von: l2r am 25 September 2017, 10:20:53
Eine Beispielconfig hab ich weiter oben mal gepostet.


Habe gerade ein Update des Schemas eingecheckt. Allerdings habe ich kein Beispiel von dir dafür gefunden und habe es daher so eingecheckt, wie es sich für mich aus der CommandRef ergab :-)
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: igami am 28 September 2017, 19:36:05
Ich habe noch ein kleines Problem damit, wie der Titel von einer Nachricht gefunden wird.
Bei Telegram würde ich mir gerne ein mehrspaltigey Keyboard senden. Der Aufruf dafür lautet:

msg push @MichaelP (5|10|15|20|25) Welche Wert soll ich einstellen?

Empfangen tue ich aber

5\n\n15\n\n25

Ich vermute, dass es was damit zu tun hat, dass der Titel normalerweise zwischen zwei pipe Zeichen angegeben wird.
Mein Vorschlag: Den Titel nur suchen, wenn sich vor, bzw. hinter, dem pipe Zeichen ein Leerzeichen befindet.


Daran liegt es nicht, denn das ist schon der Fall. Es wird dieser Regex verwendet:




    elsif ( $msg =~ s/^[\s\t ]*\|(.*?)\|[\s\t ]*// ) {
        Log3 $globalDevName, 5, "msg: found title=$1"
          unless ( defined($testMode) && $testMode eq "1" );


        $title = $1;
    }



Es liegt vielmehr an der speziellen Unterstützung für das SONOSPLAYER Modul aus dem Text alle Sound Files ( |filename| ) herauszufiltern in der Annahme, dass andere Module damit nichts anfangen können und es z.B. bei Sprachausgaben dann zu unerwünschten Texten kommt. Dies dient dazu, dass man SONOS und Nicht-SONOS Geräte bei der Sprachausgabe theoretisch mischen kann. Wenn die anderen Module diesen Filter direkt selbst hätten, bräuchte es den Hack hier nicht dafür. Um das zu lösen bedarf es also einer Vereinheitlichung in der Syntax der Module, die mit Sprachausgabe umgehen.
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

Zitat von: Loredo am 01 Oktober 2017, 13:49:24

Habe gerade ein Update des Schemas eingecheckt. Allerdings habe ich kein Beispiel von dir dafür gefunden und habe es daher so eingecheckt, wie es sich für mich aus der CommandRef ergab :-)

Besten Dank!! ja das mit dem Beispiel war vllt. ein bisschen weit ausgelegt;-)

Aber so wie du es umgesetzt hattest, hatte ich das bei mir auch editiert;-)

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


darkness

Ich habe noch eine kleine Frage zum Verständnis.

Du hast für AMAD jetzt folgenden Befehl

set %DEVICE% ttsMsg &%LANG%; %MSGSHRT%

Woher kommt denn das &%LANG%?
Der eigentliche Befehl ist doch:  set %DEVICE% ttsMsg %MSGSHRT%

Bin etwas verwirrt...


l2r

Auszug aus der Commandref für AmadDevice:

ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird (um die Sprache für diese eine Durchsage zu ändern setze vor Deinem eigentlichen Text &en; oder &de;)

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

drhirn

Kann ich mittels msg auch MUC-Nachrichten an Jabber versenden (set msgmuc)? Also Nachrichten an einen Raum?

Danke!
Stefan

Loredo

Zitat von: darkness am 02 Oktober 2017, 09:57:04
Ich habe noch eine kleine Frage zum Verständnis.

Du hast für AMAD jetzt folgenden Befehl

set %DEVICE% ttsMsg &%LANG%; %MSGSHRT%

Woher kommt denn das &%LANG%?
Der eigentliche Befehl ist doch:  set %DEVICE% ttsMsg %MSGSHRT%


Da hast du dir deine Frage eigentlich schon selbst beantwortet :-)
Da hat l2r deine Frage eigentlich schon beantwortet :-)
Über den msg-Befehl wird die Sprache ja außerhalb des Nutztextes angegeben und muss dann bei der Übersetzung in die jeweilige Notation eines jeden Moduls entsprechend umgesetzt werden, sofern das Modul dies beherrscht. In der CommandRef steht, dass AMAD das über &en; bzw. &de; macht. Nachdem man in &%LANG%; also das %LANG% ausgetauscht hat, steht genau das dann auch dort im Set Befehl.


Zitat von: drhirn am 02 Oktober 2017, 11:53:32
Kann ich mittels msg auch MUC-Nachrichten an Jabber versenden (set msgmuc)? Also Nachrichten an einen Raum?



Ja, indem du als Parameter Jabber_MTYPE=muc mit angibst.
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

darkness

Ja, danke. Habe ich bisher nicht gesehen  :o

Bekomme bei der Spracheausgabe nur immer "und de" angesagt. Muss nachher noch mal gucken.