MSG für Nutzung von Signalbot mit msgDialog anpassen (Code dabei)

Begonnen von laberlaib, 05 Juli 2022, 08:50:23

Vorheriges Thema - Nächstes Thema

laberlaib

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
--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)

Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

binford6000

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

Beta-User

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
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Dr. Boris Neubert

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.

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

Beta-User

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?).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Dr. Boris Neubert

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.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

laberlaib

#7
@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.
--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)

Dr. Boris Neubert

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...
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

laberlaib

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.

--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)

Beta-User

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...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Dr. Boris Neubert

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. 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

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

Beta-User

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).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Beta-User

#14
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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files