FHEM - Hausautomations-Systeme > Unterstützende Dienste

Neues Modul: Signalbot (Integration für den Signal Messenger) via signal-cli

(1/100) > >>

Adimarantis:
Hallo,

Signalbot ist eine Neuentwicklung eines Signal Messenger Moduls sehr ähnlich zu SiSi. Es ist parallel dazu entstanden und verfolgt intern ein paar andere Implementierungsansätze, verwendet aber letztendlich die selbe Kommunikationsschnittstelle (über DBus nach signal-cli).
Inzwischen habe ich auch einiges an Code und Ideen von SiSi und Telegrambot (danke die jeweiligen Autoren) übernommen und es gibt eine direkte Integration mit Babble.
Es gibt auch ein Installationsscript für Ubuntu and Raspbian, was Einsteigern die Verwendung erleichtern soll (die Installation von signal-cli hat seine Tücken).

Da es inzwischen eine detaillierte Wiki Seite unter https://wiki.fhem.de/wiki/Signalbot dazu gibt. Kürze ich diesen Post auf das nötigste und werde hier hauptsächlich die neusten Versionen und Ankündigungen Verfügung stellen.

Update 7.2.2021:
- Verbesserte Handhabung von Anhängen, Umlauten
- Babble Unterstützung: Babble device wird sofern vorhanden automatisch gefunden, mehrere babblePeer Einträge möglich
- Installer V1.1: Zusätzlicher Test (aus Perl) im install script, Docker support
- Installer V1.2: Test auf SVG Perl Paket, "remove" Funktion verbessert und mit Archivierung der Konfiguration erweitert
Update 8.2.2021:
- Module V1.1: Mehrzeilige Nachrichten mit "\n", Englische inline Dokumentation vervollständigt, Bugfix im Errorhandling
Update 11.2:2021:
- Installer V1.3:
- Verwendet $PHONE aus environment (mit export $PHONE=... , sudo -E ...) oder als zweites Argument womit man das Script normalerweise nicht mehr editieren muss
- Ein paar Änderung in Vorbereitung meines Dockerscripts (noch WIP) - nicht relevant bei normaler Nutzung
- Bessere Benutzerführung und Info bei Registrierung/Link Device, SMS sollte jetzt gehen
- native Raspberry lib.so wird jetzt im .jar ersetzt statt nach /usr/lib kopiert
- WantedBy Parameter im signal.service für zuverlässigeren Start nach Reboot
Update 14.2.2021:
- Module V1.2: Neue Funktionen: createGroup, updateGroup, invite, block, unblock (Ddetails siehe inline Doku/Post) , Attribute: babbleExclude
- Installer V1.4: Update auf signal-cli 0.8.0 , Raspberry libraries werden im .jar upgedated (nicht mehr /usr/lib) und von svn.fhem.de geholt
Update 16.2.2021:
- Installer V1.5: "link" device verbessert. Wenn der Installer aus einem xterm (mit korrekt gesetzter DISPLAY variable und jpg viewer vorhanden) gestartet wird, dann wird der qrcode automatisch angezeigt (Variable VIEWER ggf. im Script anpassen - default "eog")
Update 22.2.2021:
- Installer V1.6: Fehler in "name" Option behoben und setzen eines Namens wird jetzt automatisch nach der Registrierung angestoßen, da sonst V2 Gruppen nicht funktionieren
Update 22.3.2021:
- Installer V2.1: Änderung des Dbus package von Net:DBus zu Protocol::DBus, Unterstützung signal-cli 0.8.1
- Signalbot V2.1: Änderung des Dbus package von Net:DBus zu Protocol::DBus, Unterstützung signal-cli 0.8.1 , neue "set" Befehle: quitGroup, joinGroup, updateProfile, neue "get" Befehle contacts, groups, experimentelle Unterstützung mehrerer Accounts (in verschiedenen Instanzen), Optimierung von Speicherverbrauch und Performance, bugfixes .....
Update 13.5.2021:
- Installer V2.2: Update auf signal-cli 0.8.3 und Protocol::DBus 0.17 (hauptsächlich Bugfixes - siehe Herstellerseiten)
Update 10.6.2021:
- Signalbot V2.2: Umlautanzeige Empfang/groupmessage korrigiert. Fehler beim autoJoin und quitGroup korrigiert.
Update 27.9.2021:
- Signalbot V3.0: Umstellung auf signal-cli 0.9.0 und Verlagerung der Registrierung in FHEM statt über Script. Offizielles Release, daher wird der Link hier entfernt. Bitte über FHEM UPDATE installieren. Installations script wird vom Modul nach www/signal geladen bzw. ist im Modul verlinkt.

Gruß,
Jörg

enno:
Moin Jörg,

bei einen Neustart kommt FHEM bei mir nicht mehr hoch. Es bricht mit dieser Zeile ab:


--- Code: ---Can't use string ("") as a HASH ref while "strict refs" in use at ./FHEM/50_Signalbot.pm line 463.
--- Ende Code ---

Wenn ich in der fhem.cfg das Device auskommentiere, starte FHEM wieder. Wenn ich das Device dann mit
--- Code: ---defmod SIGNAL Signalbot
attr SIGNAL DbLogExclude .*
attr SIGNAL defaultPeer #Smarthome
attr SIGNAL devStateIcon .*Connected:ios-on-green .*Disconnected:ios-NACK
attr SIGNAL group 00 Adapter
attr SIGNAL room 75 SIGNAL,SYSTEM

setstate SIGNAL Connected
--- Ende Code ---
anlege läuft FHEM normal und alles ist gut. Wenn ich neu starte hängt es wieder. Hast du eine Idee, woran das liegen könnte?

Gruss
  Enno

Adimarantis:
Hallo Enno,

Den Effekt kann ich bei mir nicht nachvollziehen. Eventuell eine race condition weil dein System schneller ist.
Ich habe jetzt noch einen Test eingebaut der verhindert, dass die entsprechende Funktion aufgerufen wird, falls FHEM noch nicht vollständig oben ist (wobei das eigentlich gar nicht passieren sollte). Probier mal das update im ersten Post.

Jörg

Adimarantis:
Habs gefunden. Mich hatte irritiert dass der Fehler bei dir beim Startup kam. Du scheinst da sofort eine Gruppen Message rauszuballern.
Das Problem trat auf wenn eine Gruppennachricht an eine unbekannte Gruppe (nach einem Neustart erstmal alle) verschickt wird.
Update oben.

Gruß,
Jörg

Adimarantis:
Ich hatte gestern noch ein wenig mit Babble herumexperimentiert und mal testweise einen direkten Support dafür eingebaut.

Vorgehensweise:
Attribut babblePeer: Nur wenn die Message von diesem Sender kam wird Babble angeworfen
Attribut babbleDev: Der Name der definierten babble Device (nicht babbleDevice, weil es sonst einen Konflikt mit dem Babble Attribut gibt) - Todo: da es normalerweise nur ein Device gibt, könnte Signalbot das evtl. sogar selbst finden

Beispiel Config:
Device "out_temp" mit babbleDevice="Temperatur", room="Draußen", verb="Sagen", Ziel="Status", Aktion="set SignalBot send @$PARM0 Die Temperatur draußen ist [out_temp:temperature] Grad"

Frage: "Wie ist die Temperatur Draußen"
Antwort: "Die Temperatur draußen ist 1.0 Grad"

Die Antwort (in $PARM0) geht wahrscheinlich immer an den babblePeer (eigentlich an den Absender in der Prio Gruppe,Sender,babblePeer , aber das dürfte am Ende immer der babblePeer sein).
Damit Gruppen und Kontakte hier redundant verwendet werden können, akzeptiert Signalbot jetzt auch @#Gruppe als Gruppenamen (also wie bei SiSi). Ein einzelnes "#" geht natürlich immer noch.
Bekannte Probleme: Sonderzeichen (hier das "ß" gehen auf dem Weg über Babble irgendwie kaputt. Das ist evtl. noch eine Umwandlung notwendig.

Viel Spass bei Testen. Anregungen von erfahrenen Babble Nutzern willkommen.

Jörg

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln