FHEM Forum

FHEM => Automatisierung => Thema gestartet von: laberlaib am 05 Juli 2022, 08:50:23

Titel: MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: laberlaib am 05 Juli 2022, 08:50:23
Hallo Loredo,
hallo alle,

ich hab einen Anpassungswunsch im Modul msgConfig:
Zwar hat Signal und der Signalbot kein stylisches "Inlinekeyboard" wie Telegramm, aber da es mein genutzer Messenger ist, möchte ich Signal für die Nutzung von msgDialog-en nutzen.

Dafür muss das msgConfig-Modul aber an den Signalbot folgendermaßen angepasst werden:
Zeile 193, original

$hash->{NOTIFYDEV} = "TYPE=(Jabber|TelegramBot|yowsup)";

angepasst

$hash->{NOTIFYDEV} = "TYPE=(Jabber|TelegramBot|yowsup|Signalbot)";


hinter Zeile 617 in der Sub "msgConfig_Notify"
#Signalbot
elsif ( $devType eq "Signalbot" ) {
       $sender = ReadingsVal( $devName, "msgSender", undef );
       $msg     = ReadingsVal( $devName, "msgText", undef );
}


@Loredo: Wenn du das einbauen könntest wäre es super.


Bei Signal steht im Reading "msgSender" der Name und zumindest ich ändere diesen in Signal ab und an, so dass keine Verknüpfung mehr zu einem msgContactPush-Attribute mehr funktioniert.
Daher muss man beim Signalbot die Namen fest vergeben, d.h. per
set <Signalbotdevice> contact add <nummer> <name>
festtackern. Dann kann man im msgContactPush-Attribut des ROOMMATE "Signalbot:name" nutzen und es klappt. Bonus: "Signalbot:nummer" im msgContactPush-Attribute im msgGlobal-Device ist für msgDialog ein anderes Senderdevice.

Bei mir klappt das alles nun.
Danke für die tollen Module und das die auch alle so leicht und gut zu verzahnen sind.

laberlaib
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Beta-User am 12 Juli 2022, 07:44:04
Hallo loredo,
Hallo laberlaib,
Hallo zusammen,

anbei das ganze in etwas abgeänderter Form sowohl als patch wie auch als vollständige Version, dazu noch 75_MSG.pm, beides mit auf aktuelle "id"-Anker (-Schreibweise) angepaßter commandref.

Da loredo in letzter Zeit wenig aktiv war, wäre es nett, wenn ihn jemand anpingt, der  Kontakt zu ihm hat.
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: binford6000 am 12 Juli 2022, 08:51:22
Hallo,
ich nutze Telegram ausschließlich für msgDialog und würde auch gerne komplett auf Signal umsteigen.
Von daher schon mal vielen Dank an laberlaib und Beta-User und im Voraus an Loredo fürs Einbauen in 75_MSG.pm und 75_msgConfig.pm!

VG Sebastian
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Beta-User am 12 Juli 2022, 10:03:08
Nachtrag noch - da msgConfig ja auch einige Attribute global verteilt:

Es gäbe jetzt die Möglichkeit, (ggf. gruppenweise*) eine Kurzbeschreibung anzuzeigen. Falls da jemand was (in en) liefert, bau' ich's noch mit ein.
*gruppenweise meint: ähnlich wie im Wiki bereits in de verfügbar, z.B. https://wiki.fhem.de/wiki/Msg#msgContact.3CTYPE.3E_.28zwingend_f.C3.BCr_Nachrichten_diesen_Typs.29
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Dr. Boris Neubert am 12 Juli 2022, 14:47:19
Hallo,

funktioniert MSG mit Signalbot mit diesen angepassten Modulen out-of-the-box? Ich hatte mich just letzte Woche daran getan, das offizielle MSG mit Signalbot gemäß der mir (vor, äh, einem Jahr) gegebenen Hinweise zum Laufen zu bringen, bin aber gescheitert ohne erkennbaren Hinweis, warum ich trotz scheinbar korrekter Konfiguration weder eine Nachricht noch eine Fehlermeldung aus MSG/Signalbot herausbekomme. Siehe https://forum.fhem.de/index.php/topic,120480.0.html (https://forum.fhem.de/index.php/topic,120480.0.html).

Viele Grüße
Boris
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Beta-User am 12 Juli 2022, 15:00:16
Na ja, was spricht gegen einen Test?

Genau kann jedenfalls ich es dir nicht sagen, weil ich selbst bisher weiter auf Telegram bin.

Der angepaßte msgConfig-Code ergänzt jedenfalls "nur" das Modul um speziellen Event-Handler-Einstellungen für SignalBot, das dürfte kaum schaden :) . Daneben gibt es eben noch ein paar Kleinigkeiten rund um die commandref, die die Einrichtung erleichtern/besser führen sollen, that's all... (Vorschläge zu dem Punkt sind wie gesagt willkommen!).

Ansonsten würde ich annehmen, dass die Hinweise von laberlaib wichtig sind (und ggf. auch in die commandref sollten?).
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Dr. Boris Neubert am 13 Juli 2022, 11:25:03
Zitat von: Beta-User am 12 Juli 2022, 15:00:16
Na ja, was spricht gegen einen Test?

Danke, das beantwortet indirekt meine Frage.

Ich bin erstaunt, dass sich Signalbot so einfach als "wohlbekanntes" Device in MSG einfügt. Ich muss es testen und ich hoffe, dass ich damit senden kann, was mir bei der Konfiguration von msgConfig "von Hand und zu Fuß" nicht gelungen ist.
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: laberlaib am 13 Juli 2022, 12:41:54
@Beta-User Danke für die Professionalisierung. Ich kann Perl nicht, finde es aber auch frech, einfach zu sagen "he, bau das mal ein." ohne zumindest eine durch-die-Brust-ins-Auge-Lösung zu präsentieren.

@ DBN
Also ich habe bei der Kombination MSG + Signalbot manchmal Verirrungen, die ich nicht strukturiert aufgearbeitet habe.
Allerdings habe ich eine funktionierendes Zusammenspiel gebaut.

msgContactPush muss iirc einfach als
<Signalbotname>:<Signalname>
oder
<Signalbotname>:<Telefonnummer>
eingetragen werden. Wenn was mit @ da drin steht, dann hats bei mir nicht funktioniert.

Und dann kann ich auch
msg <ROOMMATENAME> <Text>
machen und erhalte auf Signal meine Nachrichten

Für die Verknüpfung mit msgDialog ist dann, wie im Eingangsbeitrag beschrieben, sicherzustellen, dass der Signalbot den richtigen Sender an MSG weitergibt, den msgDialog dann als msgContactPush auch findet. Und das ist der Name und nicht die Nummer!
D.h. wenn man beim ROOMMATE
attr <ROOMMATENAME> msgContactPush <Signalbotname>:<Telefonnummer>
hat, dann klappts nicht.
attr <ROOMMATENAME> msgContactPush <Signalbotname>:<Kontaktname>
klappt und den sollte man mit dem o.g. Befehl evtl festzurren.
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Dr. Boris Neubert am 13 Juli 2022, 13:56:12
Zitat von: laberlaib am 13 Juli 2022, 12:41:54
<Signalbotname>:<Telefonnummer>
eingetragen werden. Wenn was mit @ da drin steht, dann hats bei mir nicht funktioniert.

Ahaaa! Möglicherweise funktioniert es gar nicht mit @ und mit # und es liegt gar nicht an unzureichender Konfiguration bei mir.

Ich fürchte, ich muss debuggen. Ich hatte darauf gehofft, dass der Autor das tut, aber Loredo war seit Mai nicht mehr hier.

Das ist aufwendig, weil ich zunächst noch eine Signal-Umgebung auf meinem Entwicklungsrechner hochziehen muss. Puuuuh...
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Beta-User am 13 Juli 2022, 14:14:13
Hmm, eigentlich sollte die relevante Zeile in msgConfig #637 (meine Fassung) sein:

my @contacts = devspec2array(
                "msgContact" . ucfirst($t) . "=.*$devName:[@#]*$sender.*" );


Das funktioniert nur, wenn vorher die beiden hinteren Parameter ermittelt wurde (wie in der Erweiterung von @laberlaib), aber Anhaltspunkte dafür, dass das gar nicht (mehr) funktioniert, wenn ein @ oder # da sind kann ich nicht erkennen. Mit Telegram funktioniert das jedenfalls mit einem @..., aber dieser Teil liegt dann eher auch an der Weiterverarbeitung im Zielmodul, (jedenfalls nach meinem Verständnis).

Wenn ich es richtig wahrgenommen hatte, war @Adimarantis etwas skeptisch, was die Übernahme gewisser "Standards" (eher Namenskonventionen etc.) aus anderen Messanger-Diensten angeht, vermutlich weil ihm (noch) nicht klar war, wie das ganze v.a. an dieser Stelle dann verzahnt ist. Vielleicht ist das (mittelbar) die Ursache?

Kann aber auch falsch liegen.
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: laberlaib am 13 Juli 2022, 14:23:03
Ich komm gerade nur halb mit :)

Das mit dem @/# etc bezieht sich bei mir auf das Versenden von Nachtrichten via "msg"-Befehl über den Signalbot.

Das was Beta-User da direkt über mir schreibt ist dann die Rückmeldung, so dass im MSG-Device der richtige/ein Sender ausgewiesen wird. Dies ist aber zum reinen Versenden nicht notwendig sondern wird erst relevant, wenn man daran das msgDialog-Modul anflanscht, da dieses auf das MSG-Device hört.
D.h. aus meiner Sicht muss DBN "nur" die msgContactPush-Attribute richtig (s.o.) angeben, dann kann der msg+Signal nutzen.
Anpassungen an Modulen sind hierfür nicht notwendig.
Und eigentlich auch kein Debugging und Testsysteme - das ist alles noch "am offenen Herzen" machbar.

Wenn dann noch msgDialog genutzt werden soll, dann müssen die von Beta-User hier aufbereiteten Änderungen rein.

Wenn ich heute abend daheim bin, poste ich gerne meine funktionierenden Konfig.

Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Beta-User am 13 Juli 2022, 14:55:57
Zitat von: laberlaib am 13 Juli 2022, 14:23:03
Ich komm gerade nur halb mit :)
Das ist etwas mehr als bei mir...

Ich hatte "vor Ewigkeiten" mal die Doku zu MSG überarbeitet (und auf den id-Standard hochgeholt), und das ist mir dann wieder eingefallen, als dieser Thread hier kam - da war die Gelegenheit, das dann im Gesamtzusammenhang nochmal aufzubereiten, weil die Zusammenhänge doch teils etwas diffus wirken. Vertieft beschäftigt hatte ich mich damit aber nicht wirklich, denn letztlich läuft es bei mir ja (mit Telegram)...

Anbei dann noch eine kleine Aktualisierung, die dann auch bei ROOMATE&Co. was zu den msgContact.*-Attributen einen Hilfetext anzeigt - wie gesagt: Da geht es v.a. darum, die Einrichtung zu erleichtern.

Ansonsten stimme ich @laberlaib zu: Die Ergänzungen sind minimalinvasiv, es lohnt nicht, dafür extra ein Testsystem zu bauen...
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Dr. Boris Neubert am 13 Juli 2022, 15:41:18
Hallo Beta-User von Laberlaib!

Zitat von: Beta-User am 13 Juli 2022, 14:55:57
Ansonsten stimme ich @laberlaib zu: Die Ergänzungen sind minimalinvasiv, es lohnt nicht, dafür extra ein Testsystem zu bauen...

Ich bezog mich bei dem Testsystem nicht darauf, die geringfügigen Änderungen aus dem ersten Post zu übernehmen, das würde ich sorgenfrei übernehmen, sondern nachzusehen, warum ich nicht per msg via Signalbot an #Hausbewohner senden kann, obwohl es über Signalbot direkt funktioniert, siehe https://forum.fhem.de/index.php/topic,120480.0.html (https://forum.fhem.de/index.php/topic,120480.0.html). Laberlaibs Verweis auf Probleme beim @ hatte ich dahingehend gedeutet, dass im msg-Modul was schiefgeht, wenn @ und ggf. # im Adressaten stehen.

@Laberlaib, kannst Du mit Deinen Erweiterungen vom msg-Modul eine Nachricht an eine Signal-Gruppe schicken (bei mir #Hausbewohner)?

Viele Grüße
Boris

Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Beta-User am 13 Juli 2022, 15:54:24
Bin immer noch nicht überzeugt, dass das mit dem @/# ein Problem auf der msg/msgConfig-Seite ist - mit Telegram geht das jedenfalls.

Versteht denn SignalBot zwischenzeitlich den msg-Kommand? Es gab rund um https://forum.fhem.de/index.php/topic,118370.msg1174315.html#msg1174315 mal eine Diskussion zum Einbau des "Standardkommandos" "msg" als alias. Das war mein Bezugspunkt von der Zwischenbemerkung vorhin (ich habe das ansonsten nicht weiter verfolgt).
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Beta-User am 13 Juli 2022, 16:15:32
Nachtrag:

Es gibt noch eine Datei, die da mit reinspielt. In die habe ich mal "auf Verdacht" nach dem Schema von TelegramBot auch SignalBot reingepflegt. FHEM startet damit, mehr kann ich nicht sagen...

Den letzten Commit darauf hatte CoolTux gemacht, Maintainer ist aber auch hier Loredo.
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Dr. Boris Neubert am 13 Juli 2022, 16:40:46
Zitat von: Beta-User am 13 Juli 2022, 15:54:24
Bin immer noch nicht überzeugt, dass das mit dem @/# ein Problem auf der msg/msgConfig-Seite ist - mit Telegram geht das jedenfalls.

Kann wie gesagt auch an meiner Unfähigkeit liegen, mit der Modulbeschreibung und dem im Forum gegebenen Hilfen eine funktionierende Konfiguration hinzubekommen.

Zitat
Versteht denn SignalBot zwischenzeitlich den msg-Kommand? Es gab rund um https://forum.fhem.de/index.php/topic,118370.msg1174315.html#msg1174315 mal eine Diskussion zum Einbau des "Standardkommandos" "msg" als alias. Das war mein Bezugspunkt von der Zwischenbemerkung vorhin (ich habe das ansonsten nicht weiter verfolgt).

Nope
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Beta-User am 13 Juli 2022, 17:10:18
Hmm, mal sehen, ob das mit send statt msg die Ursache war.

Leider hatte ich "SignalBot" statt "Signalbot" in die msgSchema.pm eingebaut, Korrektur anbei...
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Dr. Boris Neubert am 13 Juli 2022, 17:19:29
Habe mir die drei neusten Dateien aus diesem Thema heruntergeladen und probiere es bald aus.
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: laberlaib am 13 Juli 2022, 17:42:57
Modulversionen:
Letztes Update vor 7 Tagen, meine o.g. Änderungen, keine Dateien hier aus dem Thread.

Signalbot:
defmod Signalbot Signalbot
attr Signalbot event-on-change-reading .*
attr Signalbot room BACKOFFICE,msgDialog

globalMSG (Auszugsweise)
defmod globalMsg msgConfig
attr globalMsg userattr msgDialog_evalSpecials:textField-long msgDialog_msgCommand:textField
attr globalMsg comment msg audio |Titel| das was angesagt werdne soll LANG=de/es\
Titel wird ignoriert
attr globalMsg group Global
attr globalMsg msgCmdAudio set %DEVICE% speak %MSG%
attr globalMsg msgCmdLight { my $d='%DEVICE%';; my $state=ReadingsVal($d,"state","off");; fhem "set $d blink 3 1";; fhem "sleep 6.25;; set $d:FILTER=state!=$state $state";; }
attr globalMsg msgCmdMail {fktSendEmail('%DEVICE%','%TITLE%','%MSG%')}
attr globalMsg msgCmdPush set %DEVICE% send @%RECIPIENT% %MSG%


rr_Laib (Auszug)
defmod rr_Laib ROOMMATE rgr_FamilieStumpfDelgado
attr rr_Laib userattr rr_otpdevice
attr rr_Laib comment msgContactPush old jc_fhemServerStuDe:laibo@trashserver.net
attr rr_Laib devStateIcon .*home:user_available@green:absent .*absent:user_away@red:home .*gone:user_ext_away@red:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping@yellow:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rr_Laib event-on-change-reading state,fhemMsgRcvPush
attr rr_Laib group Laib
attr rr_Laib icon people_sensor
attr rr_Laib msgContactMail fhem@philippstumpf.de
attr rr_Laib msgContactPush Signalbot:laberlaib


Mein Kontakt wurde wie beschrieben als "laberlaib" gespeichert.
Befehlt in COmmandozeile:
msg @rr_Laib Hallo FHEM Forum
Kommt an.
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: binford6000 am 14 Juli 2022, 08:11:56
Moin,
mich würde auch mal interessieren, wie denn die Dialoge in Signal dargestellt werden?
Wäre toll, wenn @laberlaib mal bei Gelegenheit ein, zwei Screenshots erstellen könnte :)

VG Sebastian
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Dr. Boris Neubert am 14 Juli 2022, 08:44:05
Hallo Sebastian,

Zitat von: binford6000 am 14 Juli 2022, 08:11:56
mich würde auch mal interessieren, wie denn die Dialoge in Signal dargestellt werden?

was meinst Du mit Dialoge? Im vorigen Beitrag von laberlaib hing ja ein Screenshot an. Anbei noch einer von mir.
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: binford6000 am 14 Juli 2022, 09:07:04
Zitatwas meinst Du mit Dialoge?

Naja, wie laberlaib im Titel und im ersten Satz beschrieben hat: Die Nutzung von msgDialog-Devices aka Dialogen.
https://wiki.fhem.de/wiki/MsgDialog (https://wiki.fhem.de/wiki/MsgDialog)

VG Sebastian
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Dr. Boris Neubert am 14 Juli 2022, 16:45:08
Modulversionen: die neuesten aus diesem Thema (hier angefügt).

Ich habe die Situation von laberlaib nachgestellt.

Ich habe einen ROOMMATE namens rr_Boris. Der hat das Attribut

msgContactPush Signal:@Boris

Dem Signalbot namens Signal habe ich vorher mit

set Signal addContact Boris +49......

meine Telefonnummer mitgeteilt.

Am Device globalMsg sind die Attribute wie folgt hinterlegt:

msgCmdPush set %DEVICE% send %RECIPIENT% %MSG%
msgContactPush #Hausbewohner


Achtung, das msgCmdPush ist anders als bei laberlaib, da ist kein @ vor dem %RECIPIENT%.

Ich kann mit

msg @rr_Boris Hallo Boris!

Nun habe ich noch ein Device RESIDENTS namens rgr_Hausbewohner. Dieses hat das Attribut

msgContactPush Signal:#Hausbewohner

Hausbewohner ist eine Signalgruppe, in der ich drin bin.

Leider funktionieren weder

msg @rgr_Hausbewohner Hallo Hausbewohner!

noch

msg #Hausbewohner Hallo Ihr Menschen!
msg @#Hausbewohner Hallo Ihr Menschen!


Es gibt keine Fehlermeldung. Im Log steht


2022.07.14 16:34:02 3: msg rgr_Hausbewohner: ID=1657809242.71543.1 TYPE=push ROUTE=Signal:#Hausbewohner STATUS=UNDEFINED PRIORITY=0 TITLE='' 'Hallo Hausbewohner!'
2022.07.14 16:38:22 3: msg globalMsg: ID=1657809502.81387.1 TYPE=push ROUTE=#Hausbewohner STATUS=UNDEFINED PRIORITY=0 TITLE='' '#Hausbewohner Hallo Ihr Menschen!'
2022.07.14 16:42:53 3: msg globalMsg: ID=1657809773.64942.1 TYPE=push ROUTE=#Hausbewohner STATUS=UNDEFINED PRIORITY=0 TITLE='' '@#Hausbewohner Hallo ihr Bewohner!'


Zumindest der zweite und dritte Logeintrag sehen verdächtig aus, weil Signal gar nicht erwähnt wird und der Adressat hinten in der Nachricht nochmal steht.

Woran könnte es nun liegen?

Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Beta-User am 14 Juli 2022, 16:56:18
Hmm, die Diskussion geht zwar am Thread-Thema leicht vorbei, aber zum Vergleich:
Bei mir zeigt in der msgConfig-Instanz das Attribut msgContactPush auf eine Telegram-Instanz. Das entspricht auch dem, was im Wiki steht (da ist Pushover der default).

Ich nutze aber bisher keine Gruppenfunktionen.

msgCmdPush kann wohl zentral entfallen nach der Änderung von msgSchema.pm.
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Dr. Boris Neubert am 14 Juli 2022, 17:54:30
Danke, Beta-User, das hat mich aufs richtige Gleis gesetzt.

Hier eine funktionierende Lösung mit Beschreibung für die Nachwelt. Diese enthält einen Workaround, da msg anscheinend nicht mit Signal-Gruppennamen umgehen kann. Diese beginnen mit #. Außerdem habe ich noch getestet, dass es der Erweiterungen von laberlaib bedarf, damit msg in Verbindung mit Signal mit verschiedenen Empfängern umgehen kann.

Ich habe einen Signalbot namens Signal, RESIDENTS namens rgr_Hausbewohner und ROOMMATE namens rr_Boris.

Signal verlangt als Empfänger entweder @Benutzername oder #Gruppenname. Der Nachhaltigkeit wegen habe ich meinen Benutzer mit

set Signal addContact Boris +49....

im Device Signal fest verdrahtet.

in globalMsg sind die Attribute wie folgt hinterlegt:

msgCmdPush set %DEVICE% send %RECIPIENT% %MSG%
msgContactPush Signal


Dem msgCmdPush muss man also das Device, in meinem Fall das Device namens Signal, und den Empfänger, also @Benutzername oder #Gruppenname mitgeben. msgContactPush ist entweder Device:Empfänger oder nur Device. Wenn nur Device, hier also Signal angegeben ist, wird kein Empfänger an das Device Signal durchgereicht. Das Device Signal hat aber mit

attr Signal defaultPeer #Hausbewohner

einen Standardempfänger für den Fall, dass im send-Befehl der Empfänger fortgelassen wird. Das ist ein Workaround, weil ich eigentlich

attr msgContactPush globalMsg Signal:#Hausbewohner

haben möchte. Dann kommen die Nachrichten aber nicht über msg an, obwohl direktes Senden per set Signal send #Hausbewohner Nachricht funktioniert.

Am ROOMMATE rr_Boris wird

attr rr_Boris msgContactPush Signal:@Boris

und am RESIDENTS rgr_Hausbewohner wird analog zu globalMsg

attr rgr_Hausbewohner   msgContactPush Signal

festgelegt.






Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Beta-User am 15 Juli 2022, 10:25:07
Zitat von: Dr. Boris Neubert am 14 Juli 2022, 17:54:30
Danke, Beta-User, das hat mich aufs richtige Gleis gesetzt.
:)

Ein paar Anmerkungen noch zu der Beschreibung für die Nachwelt:

Zitatin globalMsg sind die Attribute wie folgt hinterlegt:
msgCmdPush set %DEVICE% send %RECIPIENT% %MSG%
msgContactPush Signal

Vermutlich braucht man die erste Zeile nicht, wenn msgSchema.pm angepaßt ist. Aus dem TYPE ergibt sich dann nach meinem Verständnis das Schema für die "Bedienung" des jeweiligen "Ausgabegeräts".
Es wäre hilfreich, wenn du testen könntest, ob diese Annahme zutreffend ist.

Zitat
Diese enthält einen Workaround, da msg anscheinend nicht mit Signal-Gruppennamen umgehen kann. Diese beginnen mit #.
Wie gesagt, nutze ich keine Gruppenfunktionen, aber das Schema für Gruppennamen in msg ist ein generisches. Wenn das nicht funktioniert, liegt es daher mAn. an irgend was anderem.

Generell meine ich verstanden zu haben, dass msg immer versucht, Anweisungen vom "großen zum kleinen" aufzulösen und dabei aber immer die Spezialitäten bis ruter zu der untersten erkannten Ebene versucht aufzulösen. Es kann daher sein, dass die RESIDENTS-Vorgaben die globalen Vorgaben überschreiben, wenn du was an ein solches Device "verschickst".

Irgendwie werde ich den Verdacht nicht los, dass deine Einstellungen zum Teil nicht auf der richtigen Ebene sind ("Hausbewohner" gehört evtl. an das RESIDENTS hin?).

Zitat
Außerdem habe ich noch getestet, dass es der Erweiterungen von laberlaib bedarf, damit msg in Verbindung mit Signal mit verschiedenen Empfängern umgehen kann.
Vermutlich gilt das nicht nur für Signal.

Generell fände ich es weiter hilfreich, wenn man für die vielen Attribute jeweils eine etwas einleuchtendere online-Hilfe bekäme. Ein Anfang ist gemacht...
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: laberlaib am 15 Juli 2022, 21:29:46
Zitat von: Dr. Boris Neubert am 13 Juli 2022, 15:41:18
@Laberlaib, kannst Du mit Deinen Erweiterungen vom msg-Modul eine Nachricht an eine Signal-Gruppe schicken (bei mir #Hausbewohner)?
Ich nutze Gruppen nicht im Zusammenhang mit FHEM - das ist dann ein Gruppenchat in Signal oder einfach eine Art Broadcast von FHEM, also mehrfach die gleiche Nachricht an unterschiedliche Kontakte?


Zitat von: binford6000 am 14 Juli 2022, 09:07:04
Naja, wie laberlaib im Titel und im ersten Satz beschrieben hat: Die Nutzung von msgDialog-Devices aka Dialogen.
https://wiki.fhem.de/wiki/MsgDialog (https://wiki.fhem.de/wiki/MsgDialog)

Da Signal kein Inlinekeyboard hat, sieht das relativ unspektakulär aus, wie ein oldschool Textmenü: also ich schreib z.B. mein Keyword für den Sauger - "Sauger" und damit die Befehle dann einfach und schnell zu tippen sind kommt halt zurück:
Was kann ich für Dich tun?
1) Wohnzimmer
2) Schlafzimmer
3) Esszimmer
4) Flur

Und im Dialog weiter zu gehen, reicht dann die Zahl einzutippen.
Das ist nicht so komfortabel wie in Telegramm, aber innerhalb meines eigenen Netzes steuer ich alles über eine HTTP-Shortcuts App. Signal brauch ich nur für die Steuerung oder eher das Info abfragen von extern - also eher selten.

Zitat von: Beta-User am 15 Juli 2022, 10:25:07
Generell fände ich es weiter hilfreich, wenn man für die vielen Attribute jeweils eine etwas einleuchtendere online-Hilfe bekäme. Ein Anfang ist gemacht...
Evtl. im 3-4 wöchigen Urlaub, jetzt in der unmittelbaren Vorbereitung komme ich eher nicht dazu.
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Dr. Boris Neubert am 16 Juli 2022, 07:43:05
Zitat von: Beta-User am 15 Juli 2022, 10:25:07
Vermutlich braucht man die erste Zeile nicht, wenn msgSchema.pm angepaßt ist. Aus dem TYPE ergibt sich dann nach meinem Verständnis das Schema für die "Bedienung" des jeweiligen "Ausgabegeräts".
Es wäre hilfreich, wenn du testen könntest, ob diese Annahme zutreffend ist.

Diese Annahme trifft zu. Ich habe das Attribut gelöscht.

Zitat
Wie gesagt, nutze ich keine Gruppenfunktionen, aber das Schema für Gruppennamen in msg ist ein generisches. Wenn das nicht funktioniert, liegt es daher mAn. an irgend was anderem.

Ich müsste es halt mal debuggen...

Zitat
Generell meine ich verstanden zu haben, dass msg immer versucht, Anweisungen vom "großen zum kleinen" aufzulösen und dabei aber immer die Spezialitäten bis ruter zu der untersten erkannten Ebene versucht aufzulösen. Es kann daher sein, dass die RESIDENTS-Vorgaben die globalen Vorgaben überschreiben, wenn du was an ein solches Device "verschickst".

Irgendwie werde ich den Verdacht nicht los, dass deine Einstellungen zum Teil nicht auf der richtigen Ebene sind ("Hausbewohner" gehört evtl. an das RESIDENTS hin?).

Ja, die Hierarchie habe ich auch so verstanden. Und der Empfänger #Hausbewohner (Signal-Gruppe, im Gegensatz zu @Boris, Signal-Einzelempfänger) sollte in diesen Überlegungen austauschbar verwendbar sein. Es funktioniert nur leider nicht.

Ich habe daher den Workaround verwendet, über den defaultPeer am Signalbot-Device an die Gruppe #Hausbewohner zu versenden, und den Empfänger bei msg fortzulassen, wenn ich eigentlich #Hausbewohner schreiben müsste.

Ich habe das gerade noch einmal ausprobiert. Am Device rr_Boris sendet msgContactPush Signal:@Boris an mich, aber msgContactPush Signal:#Hausbewohner tut nichts bzw. sendet über das zweitpriorisierte Device eine E-Mail an mich. Das deutet für mich auf ein Problem mit dem # hin.
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Beta-User am 16 Juli 2022, 08:25:19
Zitat von: Dr. Boris Neubert am 16 Juli 2022, 07:43:05
Diese Annahme trifft zu. Ich habe das Attribut gelöscht.
Klingt erst mal gut... :)

Zitat
Ja, die Hierarchie habe ich auch so verstanden. Und der Empfänger #Hausbewohner (Signal-Gruppe, im Gegensatz zu @Boris, Signal-Einzelempfänger) sollte in diesen Überlegungen austauschbar verwendbar sein. Es funktioniert nur leider nicht.
Meine Vermutung dazu:
das # ist für msg erst mal "nur" der Hinweis, dass es nach einer "Gruppe" suchen soll. Das wäre dann aber ein RESIDENTS-Device, an dem dann diese Gruppenanweisung hin müßte (zu dem rgr-Device würde dann der ROOMMATE rr_Boris gehören)?
Aber wie gesagt: ich nutze die Gruppenfunktion (derzeit noch) nicht, das ist nur eine Interpretation dessen, was ich als "interne Logik" dieser Module iVm. "msg" glaube erkannt zu haben...
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: binford6000 am 16 Juli 2022, 10:12:18
ZitatDa Signal kein Inlinekeyboard hat, sieht das relativ unspektakulär aus, wie ein oldschool Textmenü.
Und im Dialog weiter zu gehen, reicht dann die Zahl einzutippen.

OK dann ist Telegram für die schnelle Steuerung von unterwegs leider immer noch fest gesetzt.  :-\
VG Sebastian
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Dr. Boris Neubert am 16 Juli 2022, 10:50:51
Zitat von: Beta-User am 16 Juli 2022, 08:25:19
Meine Vermutung dazu:
das # ist für msg erst mal "nur" der Hinweis, dass es nach einer "Gruppe" suchen soll. Das wäre dann aber ein RESIDENTS-Device, an dem dann diese Gruppenanweisung hin müßte (zu dem rgr-Device würde dann der ROOMMATE rr_Boris gehören)?
Aber wie gesagt: ich nutze die Gruppenfunktion (derzeit noch) nicht, das ist nur eine Interpretation dessen, was ich als "interne Logik" dieser Module iVm. "msg" glaube erkannt zu haben...

Nur damit kein Missverständnis entsteht, @ und # sind die Adressierungsarten vom Signalbot, nicht von msg.

Ich habe seit meinem vorigen Posting mal in den Code geschaut. Ich kann nicht erkennen, warum Adressaten mit # anders als Adressaten mit @ behandelt werden. Ich sehe auch nicht, wo irgendwo # als Kommentarzeichen den Rest abschneidet. Ich sehe lediglich mit attr globalMsg verbose 9, dass @Boris korrekt umgesetzt wird und #Hausbewohner nicht.

Hat jemand einen guten Draht zu Loredo? Auch nach einer halben Stunde Betrachtung der Wall of Code im msg-Modul habe ich keine Idee, woher der Unterschied kommen könnte. Es wäre gut, den Entwickler als Unterstützung zu haben.

Viele Grüße
Boris
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Beta-User am 16 Juli 2022, 15:51:41
Zitat von: Dr. Boris Neubert am 16 Juli 2022, 10:50:51
Nur damit kein Missverständnis entsteht, @ und # sind die Adressierungsarten vom Signalbot, nicht von msg.
Nach meinem Verständnis müßten diese "Siegel" sowohl als Adressierungskennung für den msg-Befehl dienen, und zusätzlich noch als Adressierungsart für Signalbot. Das Problem scheint mir zu sein, dass das eben nicht auf jeder Ebene ganz genau gleichbedeutend ist und erst mal in der ersten Stufe (msg-Befehl, Adressat=ROOMMATE oder RESIDENTS etc.) aufgelöst wird, ob es eine Gruppe oder ein einzelner Adressat ist, und erst in der 2. Stufe (Adressat=push-Kontakt) wird dann ggf. nochmal das "Siegel" benötigt bzw. herangezogen.

Zitat
Hat jemand einen guten Draht zu Loredo? Auch nach einer halben Stunde Betrachtung der Wall of Code im msg-Modul habe ich keine Idee, woher der Unterschied kommen könnte. Es wäre gut, den Entwickler als Unterstützung zu haben.
Vermutlich CoolTux, evtl. auch Christoph Morrisson.

Und ja, es wäre gut, wenn man "künftigen Generationen" das Kopfzerbrechen ersparen könnte...

@laberlaib: Auch wenn es ggf. erst nach einem hoffentlich erholsamen Urlaub ist - es wäre klasse, wenn du dich damit befassen würdest :) ... Hatte ja jetzt auch lange Zeit gedauert, bis sich mal jemand überhaupt des Themas angenommen hat.
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Adimarantis am 16 Oktober 2022, 14:09:29
Hab diesen älteren Thread beim Stöbern entdeckt.
Da ich mich mit "msg" nicht so auskenne, die Frage ob ich irgendetwas seitens Signalbot tun kann, um das Zusammenspiel zu verbessern.

- Da war die Rede von einer "msg" Funktion. Ich möchte die Signalbot "set" Liste zwar nicht überfrachten, aber ein versteckter alias zu "send" ist kein Problem
- Die Markierung von Kontakten und Gruppen mit @ und # scheint nicht ganz unproblematisch zu sein - aber das ist bei Telegrambot ja auch so. Signalbot unterstützt außerdem @# für Gruppen um kompatibel mit Telegrambot (und SiSi) zu sein

Ich schaffe auch durchaus über msg etwas an Signalbot zu schicken, bin aber mit den weiteren Anwendungsfällen z.B. über Roommate etc. nicht vertraut.
Da gab in einem anderen Thread schon mal eine (unbeantwortete) Frage: https://forum.fhem.de/index.php/topic,123602.msg1181628.html#msg1181628

Es scheint aber wohl auch Arbeit am "msg" Modul selbst notwendig zu sein um das besser zu unterstützen und Loredo wohl nicht greifbar...
Wie gesagt, wenn ich irgendwas seitens Signalbot tun kann, gerne. Wenn es hauptsächlich ein Konfigurationsthema ist, nehme ich das auch gerne ins Wiki von Signalbot auf.

Jörg
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Beta-User am 16 Oktober 2022, 17:23:30
Zitat von: Adimarantis am 16 Oktober 2022, 14:09:29
Hab diesen älteren Thread beim Stöbern entdeckt.
Vorab mal sorry, dass ich dich nicht nochmal angepingt habe.

Bin in diesen Themen leider auch nicht so 100% drin und habe auch schon wieder nur noch eine vage Ahnung, wo eigentlich welches Detailproblem liegt... Vor allem kenne ich mich mit den gruppenbezogenen Aspekten des "msg"-Systems auch nicht aus.
Zitat
Da ich mich mit "msg" nicht so auskenne, die Frage ob ich irgendetwas seitens Signalbot tun kann, um das Zusammenspiel zu verbessern.

- Da war die Rede von einer "msg" Funktion. Ich möchte die Signalbot "set" Liste zwar nicht überfrachten, aber ein versteckter alias zu "send" ist kein Problem
Soweit ich mich entsinne, ist das in jedem Fall eine gute Idee.

Die Idee hinter dem "msg"-System ist (soweit ich das verstanden zu haben glaube), Nachrichten personenbezogen (oder personengruppenbezogen) zu versenden. Wer diesen Befehl nutzt, will also z.B. "die Hauptperson" informieren (den Admin), oder einem bestimmten Bewohner etwas mitteilen. Er braucht sich (vereinfacht gesagt) nicht darum zu kümmern, welchen konkreten Weg er wählt, sondern das macht dann das msg-System. Es kann also sein, dass ein und derselbe "msg"-Befehl mal eine Sprachausgabe erzeugt, mal eine Push-Message oder auch eine Email oder SMS...

Zitat
Es scheint aber wohl auch Arbeit am "msg" Modul selbst notwendig zu sein um das besser zu unterstützen und Loredo wohl nicht greifbar...
Na ja, im Zweifel müßte man halt klären, ob er wirklich nicht greifbar ist, oder ob er das einchecken kann und will.

Zitat
Wie gesagt, wenn ich irgendwas seitens Signalbot tun kann, gerne. Wenn es hauptsächlich ein Konfigurationsthema ist, nehme ich das auch gerne ins Wiki von Signalbot auf.
Für's erste wäre das mit originärer msg-Unterstützung sicher eine gute Idee, ggf. kannst du auch auf diesen Thread verweisen, wenn jemand auf der Suche nach gepatchten Versionen ist, bis entweder Loredo was dazu gesagt hat oder eben ggf. jemand anderes die Module übernommen hat.

Hoffe, das hilft irgendwie weiter?
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: CoolTux am 25 Dezember 2022, 05:30:43
Hallo,

Ich werde die Änderungen in den von Boris zu letzt angehangenen Dateien einpflegen und dann ins SVN laden.
Da Julian (Loredo) nicht mehr aktiv ist.


Grüße
Marko
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: Dr. Boris Neubert am 25 Dezember 2022, 09:24:24
Zitat von: CoolTux am 25 Dezember 2022, 05:30:43

Ich werde die Änderungen in den von Boris zu letzt angehangenen Dateien einpflegen und dann ins SVN laden.
Da Julian (Loredo) nicht mehr aktiv ist.


Danke Marko und frohe Weihnachten!
Boris
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: CoolTux am 25 Dezember 2022, 09:53:26
Danke, Euch auch frohe Weihnachten.


Grüße
Titel: Antw:MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)
Beitrag von: CoolTux am 03 Januar 2023, 16:47:30
Zitat von: Dr. Boris Neubert am 14 Juli 2022, 16:45:08
Modulversionen: die neuesten aus diesem Thema (hier angefügt).


Ich habe die Änderungen aus den Files des oben zitierten Beitrages übernommen. Kann das bitte noch jemand etwas durchtesten. Danke.

https://git.cooltux.net/FHEM/mod-msgConfig/src/branch/patch-CoolTux
https://git.cooltux.net/FHEM/mod-CmdMSG/src/branch/patch-CoolTux

Meine FHEM Repositorys werden automatisch alle 8 Stunden ins Repository der offiziellen FHEM Github Organisation gepusht.