FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: Quantum am 26 Februar 2018, 14:32:42

Titel: Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 26 Februar 2018, 14:32:42
Hallo FHEM-Gemeinde

da es noch kein Modul für den quelloffenen Messenger "Signal" gibt,

Android: https://play.google.com/store/apps/details?id=org.thoughtcrime.securesms&hl=de
iOS: https://itunes.apple.com/de/app/signal-private-messenger/id874139669?mt=8

habe ich versucht, etwas dafür zu schreiben.
Das Modul setzt auf die Kommandozeilenschnittstelle signal-cli: https://github.com/AsamK/signal-cli
und ist nur für Linux verfügbar !

Der Vorteil gegenüber WhatsApp/Telegram ist die Quellofenheit sowohl der Clienten, als auch des !!Servers!!.
Auch das zugrundeliegende Verschlüsselungsprotokoll zur E2E-Verschlüsselung ist durchgehnd einsehbar.
Es können auch ohne Probleme Festnetznummern registriert werden, ohne Gefahr zu laufen, dass diese wieder gelöscht werden.

Den Code und eine zusätzliche Beschreibung zur Einrichtung und Bedienung findet ihr unter:
https://github.com/Quantum1337/32_SiSi.pm
!! Das Modul Net::DBus >= 1.1.0 muss für die Funktion installiert sein !!

Die Entwicklung befindet sich in einem frühen Stadium. Fehlverhalten ist deshalb nicht ausgeschlossen.

Was sollte es können ;):
Empfangen von Nachrichten jeglicher Art
Senden von Nachrichten an einen oder mehrerer Empfänger, wahlweise mit Anhang
Senden von Gruppennachrichten

Was kann es noch nicht:
Vieles :)
.
.

Probleme bitte direkt auf GitHub melden !

Anregungen und konstruktive Kritik gern gesehen !

Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ma_Bo am 26 Februar 2018, 17:28:06
Hallo Quantum,
werde es die Tage mal testen, klingt aber recht interessant...

Arbeitet das Modul komplett nonBlocking...?

Grüße Marcel
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 26 Februar 2018, 17:52:19
Hallo Marcel,

ja das war mein Hauptanliegen.
Um dies zu erreichen wird der FHEM-Prozess geforkt. Der Kindsprozess hört dann auf entsprechende D-Bus-Signale.
Der Kindsprozess wartet des Weiteren auf Events des Vaterprozesses und gibt dies an eine DBus-Methode weiter. Zum Beispiel das senden einer Nachricht durch den Benutzer.
Um keine DBus Signale zu verpassen bleibt der Kindsprozess nach dem enable dauerhaft am Leben.

Wäre dankbar wenn es der eine oder andere Testen könnte. Bis jetzt lief es nur bei mir und man selber bedient sein "Kind" immer anders als andere :)

Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ma_Bo am 26 Februar 2018, 17:54:52
Klingt gut...
Gibt es eine Übersicht, was mit dem Messanger möglich ist, z.B. Nachrichten mit einem bestimmten Klingelton versehen oder komplett ohne Ton, Kursivschrift usw...?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: klausw am 27 Februar 2018, 00:12:44
im Moment scheitere ich noch an dbus selbst  :-\
signal-cli in Version 0.5.6 läuft, einen Nummer ist registriert und ich kann Nachrichten senden und empfangen.
libunixsocket-java habe ich auf dem Raspian Jessie installiert.
signal-cli -u USERNAME daemon bringt den Fehler:
org.freedesktop.dbus.exceptions.DBusException: Cannot Resolve Session Bus Address
        at org.freedesktop.dbus.DBusConnection.getConnection(DBusConnection.java:244)
        at org.asamk.signal.Main.handleCommands(Main.java:625)
        at org.asamk.signal.Main.main(Main.java:80)

was habe ich übersehen?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 27 Februar 2018, 10:31:34
@Marcel: Ich kann dich bzgl des Funktionsumfanges nur auf die offizielle Seite weiterleiten: https://signal.org/ Oder auf die AppStore links verweisen, die ich gepostet habe.
Signal ist aber noch nicht so umfangreich wie vergleichbare Dienste. Was nicht ist, kann aber noch werden :)

@klausw:
Hast du diese Schritte unter dem Kapitel "System Bus" erledigt ?
https://github.com/AsamK/signal-cli/wiki/DBus-service

Wenn hier alles korrekt eingerichtet wurde kann mit
dbus-send --system --type=method_call --print-reply --dest="org.asamk.Signal" /org/asamk/Signal org.asamk.Signal.sendMessage string:MessageText array:string: string:RECIPIENT
das senden einer Nachricht getriggert werden. Dabei startet DBus automatisch den entsprechenden systemd Service, wenn er noch nicht gestartet wurde, und springt die Methode "sendMessage" an. RECIPIENT entsprechend mit +49XXXXX ersetzen

Wichtig zu erwähnen sind vielleicht noch folgende Dinge, die in diesem Text etwas untergehen:

Die Dateien die du dafür benötigst findest du unter: https://github.com/AsamK/signal-cli/tree/master/data

Durch den Schritt
sed -i -e "s|%dir%|<INSERT_INSTALL_PATH>|" -e "s|%number%|<INSERT_YOUR_NUMBER>|" /etc/systemd/system/signal.service
werden Installationspfad des signal-cli und USERNAME/NUMBER in der systemd service datei gesetzt. Dies ist notwendig, damit systemd den daemon richtig starten kann.

Es muss der user signal-cli existieren. Wenn nicht entsprechend anlegen.

und ganz wichtig!!
wenn du schon eine nummer registriert hast findest du bei dem entsprechenden Nutzer im Homeverzeichnis unter ~/.config/signal einen Ordner "data". Dierser Ordner enthält die Schlüssel des Benutzers. Der Ordner "data" muss dann rekursiv nach /var/lib/signal-cli/ kopiert werden. Danach mit root die Rechten den Ordner rekursiv auf den Nutzer "signal-cli" anpassen.
sudo chown -R signal-cli:signal-cli /var/lib/signal-cli/data

Danach sollte es klappen :)

Freundliche Grüße
Quantum

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 27 Februar 2018, 12:18:28
mir ist noch was aufgefallen:

Du benutzst mit

signal-cli -u USERNAME daemon

den "Session Bus"  von DBus. Dieser ist auf headless systemen meistens nicht gestartet (wird normalerweise vom Grafischen Loginmanger gestartet). Um dennoch zu Testzwecken den signal-cli in diesem Modus zu starten muss also der "Session Bus" für den angemeldeten Benutzer erst gestartet werden. Hierfür einfach zuerst
dbus-launch
eintippen und es sollte funktionieren. Dann kann mit
dbus-send --session --type=method_call --print-reply --dest="org.asamk.Signal" /org/asamk/Signal org.asamk.Signal.sendMessage string:MessageText array:string: string:RECIPIENT
überprüft werden ob das senden einer Nachricht funktioniert. Man beachte den Unterschied session/system !

Der "System Bus" muss trotzdem eingerichtet werden, da das Modul bis jetzt nur "System Bus" adressen anspringt.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: klausw am 27 Februar 2018, 23:07:27
Danke Quantum,

/var/lib/signal-cli hatte ich nicht angelegt. Das ganze ist meiner Meinung nach etwas irreführend beschrieben.
Das Programm dbus-launch ist bei dem Paket fürs Raspbian gar nicht mit dabei. Aber es geht ja auch ohne.

Senden und empfangen klappt mit Deinem Modul super. signal-cli hatte ich bisher nicht in der näheren Auswahl, weil alles so ewig dauert. Aber als Daemon passt die Geschwindigkeit.

Ein paar Anregungen hätte ich  ;)

Wenn Du im sub SiSi_Initialize($) die benötigten Module über eval lädst kannst du fehlende Module direkt abfangen. Andernfalls kann es passieren das FHEM abschmiert wenn ein Modul fehlt. So z.B.:
eval "use Net::DBus;";
return "please install Net::DBus" if($@);


Eventuell würde es Sinn machen, soweit es geht, die Readings und sets wie im Modul TelegramBot zu benennen.
Das würde Parallelnutzung/Umstieg vereinfachen. Z.B. beim benutzen von eigenen Scripten zur Steureung von FHEM über die Messenger.

Attribut für Standard Empänger in welchem Nummern abgelegt werden können, an die gesendet wird wenn r= nicht angegeben wird.

Attribut für Nummern die man Empfangen möchte. (wenn gesetzt werden alle anderen ignoriert)

Grüße
Klaus
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: klausw am 28 Februar 2018, 17:18:34
Hallo Quantum,

gibt es für das senden von Dateien spezielle Vorgaben?

set signal sendMessage r=+49171234567 m="test" a="/opt/fhem/www/images/default/weather/partly_cloudy.png"

geht bei mir nicht raus, es gibt auch nix im Log (verbose 5)

wenn ich Parameter a weglasse geht es:
set signal sendMessage r=+49171234567 m="test"
2018.02.28 17:15:37 3: SiSi signal - Trying to send message to DBus method 'sendMessage' on service org.asamk.Signal
2018.02.28 17:15:38 3: SiSi signal - The message: 'test' with attachment(s): 'NONE' was sended to recipient(s): '+49171234567'
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 28 Februar 2018, 17:43:30
Hallo klausw,

schön das es zunächst mal mit der Einrichtung geklappt hat. Und danke für die Anregungen hab Sie aufgenommen.

Zitatgibt es für das senden von Dateien spezielle Vorgaben?

Was ich mir vorstellen könnte sind Berechtigungsprobleme. Kann der Nutzer "signal-cli" auf die Datei zugreifen ?

EDIT:
ok hab es jetzt mal selbst ausprobiert. Sowohl mit keinen Berechtigungen als auch wenn die Datei nicht vorhanden ist.
Die Fehler sollten im Log erscheinen. Das Modul initiiert dann einen reconnect. Das sollte so nicht sein, werde das gleich beheben.

Wird beim senden mit Anhang im Log garnichts angezeigt ? Nicht mal

ZitatTrying to send message to DBus method 'sendMessage' on service org.asamk.Signal
?

Hast du die neueste Modulversion ? Hab gestern noch ein bisschen war dran gemacht, da mir selber noch sachen aufgefallen sind.

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: klausw am 01 März 2018, 00:23:45
Hallo Quantum,

Die Datei kann von allen geleden werden.
Es erscheint gar nix im Log wenn a=".." mit übergeben wird
Stimmt, ich hatte es mit der alten Version versucht.
Habe gerade die neue aufgespielt. Leider funktioniert es jetzt gar nicht mehr  :-\
2018.03.01 00:11:25 4: SiSi signal - Connected to DBus' System Bus.
2018.03.01 00:11:25 5: SiSi signal - Setting DBus Timeout to 60s.
2018.03.01 00:11:25 3: SiSi signal - An unexpected error occured. Closing connection to DBus service org.asamk.Signal Can't locate object method "timeout" via package "Net::DBus" at ./FHEM/32_SiSi.pm line 386.
2018.03.01 00:11:25 3: SiSi signal - Reconnect to DBus service org.asamk.Signal.
2018.03.01 00:11:25 4: SiSi signal - Closing connection to DBus service org.asamk.Signal.
2018.03.01 00:11:25 4: SiSi signal - Trying to kill PID '30515'.
2018.03.01 00:11:25 4: SiSi signal - Killing PID '30515' failed. Maybe the process crashed due to an error?.
2018.03.01 00:11:25 3: SiSi signal - Connection to DBus service org.asamk.Signal closed.
2018.03.01 00:11:25 3: SiSi signal - Trying to connect to DBus' System Bus.
2018.03.01 00:11:25 4: SiSi signal - Connected to DBus' System Bus.
2018.03.01 00:11:25 5: SiSi signal - Setting DBus Timeout to 60s.
2018.03.01 00:11:25 3: SiSi signal - An unexpected error occured. Closing connection to DBus service org.asamk.Signal Can't locate object method "timeout" via package "Net::DBus" at ./FHEM/32_SiSi.pm line 386.
2018.03.01 00:11:25 3: SiSi signal - Reconnect to DBus service org.asamk.Signal.
2018.03.01 00:11:25 4: SiSi signal - Closing connection to DBus service org.asamk.Signal.
2018.03.01 00:11:25 4: SiSi signal - Trying to kill PID '30516'.
2018.03.01 00:11:25 4: SiSi signal - PID '30516' killed.
2018.03.01 00:11:25 3: SiSi signal - Connection to DBus service org.asamk.Signal closed.
2018.03.01 00:11:25 3: SiSi signal - Trying to connect to DBus' System Bus.


Grüße
Klaus
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 01 März 2018, 00:54:38
mhm ok. Welche Modul Version von Net::DBus hast du ?
Einfach mal:
Zitatperl -MNet::DBus -le 'print $Net::DBus::VERSION'
eintippen.

Habe gerade die Änderungen von heute (gestern) gepushed. Bitte nochmal aktualisieren.

EDIT: Hab gerade nochmal auf cpan.org geschaut.
Du hast bestimmt eine Modulversion < 1.1.0. Die Timeoutfunktion kam nämlich erst mit 1.1.0 hinzu.
Ich mach das ganze auf ArchLinuxARM die liefern die neuste Version aus. Debian liefert hier ne ältere Version aus.
Besteht die Möglichkeit diese auf die neuste Version zu aktualisieren, evtl direkt mittels cpan ?

Danke&
Viele Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: klausw am 01 März 2018, 12:26:37
du hast recht, es ist die 1.0.0 drauf
Über cpan schlug fehl, da die installierter DBus Version zu alt.

nach
sudo aptitude install -y libapparmor1
export VERSION="1.13.0-1"
wget http://ftp.fr.debian.org/debian/pool/main/d/dbus/libdbus-1-3_$VERSION_armhf.deb
sudo dpkg --auto-deconfigure -i libdbus-1-3_$VERSION_armhf.deb
wget http://ftp.fr.debian.org/debian/pool/main/d/dbus/dbus_$VERSION_armhf.deb
sudo dpkg -i dbus_$VERSION_armhf.deb
wget http://ftp.fr.debian.org/debian/pool/main/d/dbus/libdbus-1-dev_$VERSION_armhf.deb
sudo dpkg --auto-deconfigure -i libdbus-1-dev_$VERSION_armhf.deb
sudo perl -MCPAN -e 'install Net::DBus'
sudo reboot

sollte es passen:
pi@drham:~ $ dpkg -l dbus
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
         Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name                                 Version                 Architektur             Beschreibung
+++-====================================-=======================-=======================-==============================================================================
ii  dbus                                 1.13.0-1                armhf                   simple interprocess messaging system (daemon and utilities)
pi@drham:~ $ perl -MNet::DBus -le 'print $Net::DBus::VERSION'
1.1.0


Neuste Version deines Moduls funktioniert jetzt, incl. senden von Anhängen
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 01 März 2018, 12:36:14
sehr gut :) Freut mich zu hören
Hab nun einen Modul und Versionscheck implementiert. Werd ich heute abend dann pushen.

Ersetz mal --session durch --system. Dann sollte es gehen :)

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: klausw am 01 März 2018, 12:58:15
Zitat von: Quantum am 01 März 2018, 12:36:14
Hab nun einen Modul und Versionscheck implementiert. Werd ich heute abend dann pushen.
sehr schön, ich werde zeitnah testen

Zitat von: Quantum am 01 März 2018, 12:36:14
Ersetz mal --session durch --system. Dann sollte es gehen :)
auch gerade gemerkt  ::)
ich meine es funktionierte vorher mit session
Kannst du mir sagen wann was verwendet wird?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 01 März 2018, 13:16:55
ZitatKannst du mir sagen wann was verwendet wird?

Session
Ist auf den Benutzer begrenzt. Auf grafischen Oberflächen dient der Session Bus beispielsweise dazu Nutzerprogramme untereinander zu verbinden.
Bsp: Pidgin->newMessage => Session-Bus => Notify-Dienst->show

System
Nutzübergreifender Bus. Wird vorallem von Systemkomponenten verwendet. Nicht Nutzerspezifisch. Und genau das machen wir hier.
signal-cli (user:signal-cli)->newMessage => System-Bus => FHEM-Modul (user:fhem)->show

Zitatich meine es funktionierte vorher mit session

Ich denke durch dein sudo reboot hast du vorigere expermiente am Session Bus wieder zurückgesetzt.
Der session Bus wird auf headless Systemen normalerweise nicht automatisch gestartet.

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 02 März 2018, 00:53:52
war nun ein bisschen fleißig:

Neue Features:
-> Anzeige der letzten und der vorigen Nachricht (Die Namen der readings wurden an TelegramBot angelehnt)
-> Neues Attribut. defaultRecipient
-> neue Set-Kommandos für das senden von Nachrichten (angelehnt an TelegramBot)
-> Modul und Versionscheck

für weitere Änderungen und nähere Beschreibung siehe GitHub Repo https://github.com/Quantum1337/32_SiSi.pm

Es wurde viel internes verändert. Wenn aktualisiert wird und ein bestehendes Modul vorhanden ist. Am besten löschen und neu einbinden.

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: malted am 04 März 2018, 14:55:10
Zitat von: Quantum am 26 Februar 2018, 14:32:42
da es noch kein Modul für den quelloffenen Messenger "Signal" gibt,

Ich sag nicht, dass die Lösung besser ist. Aber sicherheitshalber... das kennst? https://forum.fhem.de/index.php?topic=30745.0

Bei mir funktioniert das seit über drei Jahren ohne Probleme.

Ich habe unlängst mal auf den Fork geupdatet, damit die Attachments wieder gehen.
https://github.com/aebruno/textsecure

Braucht zumindest kein DBUS etc..
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 04 März 2018, 21:10:58
Hallo malted,

klar hab auch ein Beitag in deinem Thread hinterlassen.
Viele wege führen nach Rom. Und DBus ist bei meisten Distributionen im Standard
installiert. Wenn der signal-cli hierfür auch noch eine Schnittstelle bietet... Wieso nicht nutzen ?
Wenn es bei dir so funktioniert ist doch alles ok :)

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 08 März 2018, 22:04:47
hab gerade die Änderungen der letzten Tage gepushed

Neue Features:
-> Senden von Gruppennachrichten
-> Es werden Internals über den Status und den Inhalt der letzten Nachricht gesetzt.

Änderungen:
-> die Bedienung der set Kommandos send|msg|_msg|message wurde verändert. Verhält sich nun ähnlich wie TelegramBot

Bugfixes:
-> GruppenIds werden nun richtig angezeigt

Für nähere Informationen siehe: https://github.com/Quantum1337/32_SiSi.pm

Weitere Wünsche und konstruktive Kritik gerne gesehen !

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: klausw am 09 März 2018, 16:32:42
Hallo Quantum,

getestet und für gut befunden  8)

Gruppennachrichten funktionieren (wusste bis dahin gar nicht, das sowas existiert)
defaultRecipient auch

Für mich kann dein Modul derzeit alles was ich benötige und läuft stabil.
Hast du vor das Modul dem FHEM Repository hinzuzufügen?

Grüße
Klaus

PS: Das telegram Modul hat noch einige nette Funktionen, die ich selbst nicht nutze bzw. anderweitig umgesetzt habe. Aber vielleicht ist da was dabei das du auch sinnvoll findest
- FHEM Befehle direkt über ein Hotword absetzen (auch limitierbar nach Client und Befehl).
- Standard Antworten an nicht autorisierte User oder die Möglichkeit die NAchrichten von diesen an einen Definierten Client weiterzuleiten.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 10 März 2018, 12:06:42
Hallo klausw,

super, dass es bei dir funktioniert :)

Ja, es gibt allerdings noch ein paar interne Baustellen die ich hier notiert habe. Danach könnte man es sich überlegen, das Modul dem Repo hinzuzufügen.
Was ich auf jedenfall noch machen werde, ist, dass nur noch definierte Nummern durchgelassen werden. Und Standardantworten bzw. Weiterleiten an einen definieten Nutzer.

Beim Thema FHEM Befehle direkt über das Modul abzusetzen, hab ich den Vorteil, der sich dadurch ergibt noch nicht wirklich erkannt.
Ich bin ein Freund des KISS (Keep it simple, stupid) Prinzips und des Leitsatzes "Do one thing, but do it well". Und so wie ich das erkenne, kann das ganze über Notifys etc. erledigt werden.
So mach ich das... Oder erkenne ich da etwas nicht ?

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: klausw am 10 März 2018, 17:22:20
Hallo Quantum,

Zitat von: Quantum am 10 März 2018, 12:06:42
Beim Thema FHEM Befehle direkt über das Modul abzusetzen, hab ich den Vorteil, der sich dadurch ergibt noch nicht wirklich erkannt.
...
So mach ich das... Oder erkenne ich da etwas nicht ?

Letztendlich lassen sich auch Standardantworten mit notifys lösen.
Der Vorteil einer direkten Implementierung ist ein geringerer Konfigurationsaufwand.
Aber dein Modul deine Entscheidung  8)
Mit der aktuellen Funktionalität bin ich mehr als zufrieden.
Ich hatte nur ein paar Funktionen aufgezählt die mir beim Telegram Modul aufgefallen waren.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: subseven am 19 April 2018, 16:16:47
Hallo,

gerade habe Signal auf meinem FHEM-System(Arch-Linux) in Betrieb genommen.
Es funktioniert soweit echt Super. Um das bestehende Telegram abzulösen zu können benötige ich allerdings Gruppenchats (also eine Gruppe als DefaultRecipient). Wie ist das möglich?
Bei der Ausgabe meiner notfiys habe ich nämlich zZ das Problem, dass es nicht mehr komplett ankommt.
Beispiel:
.*:[Hh]umidity:.* { if($EVTPART1 > 70 ) {if($TYPE =~ m/LaCrosse/) {{ fhem ("set fhemsignal send @#SHxxxxxxxxKmuJ+w== Feuchtigkeitswarnung:\n$NAME $EVENT:\nLuftfeuchte zu hoch!"); Log 3, "$NAME: Feuchtigkeitswarnung $EVENT";}}}}

Hier kommt nur noch "Feuchtigkeitswarnung:" an der Zeilenumbruch und die Variable wird nicht mit ausgegeben.
Nutze ich das selbe mit Telegram funktioniert es. Das ist dann so:
.*:[Hh]umidity:.* { if($EVTPART1 > 70 ) {if($TYPE =~ m/LaCrosse/) {{ fhem ("set fhemcallebot message Feuchtigkeitswarnung:\n$NAME $EVENT:\nLuftfeuchte zu hoch!"); Log 3, "$NAME: Feuchtigkeitswarnung $EVENT";}}}}

Edit: Scheint an dem Zeilenumbruch zu liegen. Ohne geht es. Eine Gruppe als DefaultRecipient wäre aber trotzdem ganz praktisch.

Grüße und vielen Dank für die Arbeit bisher! ;)
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 19 April 2018, 22:33:32
Hallo subseven,

den newline Fehler hab ich behoben. Da hat sich ein "\" zuviel eingenistet :).
DefaultGroup gibt es zZ noch nicht. Werde es angehen sobald ich wieder etwas Zeit finde.

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: subseven am 20 April 2018, 13:23:55
Zeilenumbrüche funktionieren nun.  8)
Für den DefaultRecipient wäre es am einfachsten, wenn wie bei Telegramm anstelle einer Nummer auch eine Gruppe angegeben werden kann. Dein Modul müsste es verarbeiten, dass entweder eine Nummer oder eben die GruppenID angegeben wird. Dann entsprechend den Parameter von signal-cli setzen.
Denn so ist ohne Einschränkungen das
set <NAME> message
verwendebar und man muss nicht auf
set <NAME> send @#SHxxxxxxxxKmuJ+w==
zurückgreifen.

Danke für die schnelle Umsetzung der Zeilenumbrüche!
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 25 Mai 2018, 11:03:22
Hallo, ich bin gerade dabei bei meinem FHEM dem MEssanger Dienst Signal mit einzubauen, habe aber Probleme dieses hinzubekommen.
Ich habe folgendes System
Raspberry PI3 auf dem FHEM läuft seit einigen Jahren Problemlos, mit Tablet UI als Oberfläche.
Ich habe signal-cli installiert mit Java und ich kann über

/signal-cli -u +49xxxxxxxxx send -m "Hallo Handy" +49xxxxxxxxx

Machrichten schicken.
Ich habe dbbus installiert

perl -MNet::DBus -le 'print $Net::DBus::VERSION'
1.1.0

Schicken einer Nachricht über dbus-send geht nicht

sudo dbus-send --system --type=method_call --print-reply --dest="org.asamk.Signal" /org/asamk/Signal org.asamk.Signal.sendMessage string:MessageText array:string: string:+49xxxxxxxx

es kommt die Fehlermeldung:

Error org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

Den Benutzer habe ich hinzugefügt:

sudo adduser signal-cli

Als passwort habe ich auch signal-cli genutzt. Muß ich mit dem Benutzer noch irgend was machen ?

Vielen Dank für die Hilfe
Gruß Ralf

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: reibuehl am 25 Mai 2018, 11:41:07
Hast Du die in https://github.com/AsamK/signal-cli/wiki/DBus-service beschriebenen Schritte (als User root) gemacht?

Schau mal, ob die Dateien
  /etc/dbus-1/system.d/org.asamk.Signal.conf
  /usr/share/dbus-1/system-services/org.asamk.Signal.service
  /etc/systemd/system/signal.service
existieren und das der Pfad zu signal-cli in /etc/systemd/system/signal.service stimmt. Dann mal mit
  systemctl status signal.service
  systemctl status dbus.service
checken, ob beide Services laufen.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 25 Mai 2018, 12:05:57
Hallo,

der signal.service läuft nicht.

* signal.service - Send secure messages to Signal clients
   Loaded: loaded (/etc/systemd/system/signal.service; enabled)
   Active: failed (Result: exit-code) since Fr 2018-05-25 11:00:59 CEST; 1h 2min ago
Main PID: 6468 (code=exited, status=203/EXEC)

Mai 25 11:00:59 xxxxx.xx systemd[1]: signal.service: main process exited, code=exited, status=203/EXEC
Mai 25 11:00:59 xxxxx.xx systemd[1]: Failed to start Send secure messages to Signal clients.
Mai 25 11:00:59 xxxxx.xx systemd[1]: Unit signal.service entered failed state.

In der Datei signal.service ist unter User der signal-cli eingetragen.

Muss ich den noch auf dateien oder Verzeichnisse berechtigen ? könte das das Problem sein ?

Gruß Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: reibuehl am 25 Mai 2018, 12:15:27
Also bei mir hat der user signal-cli das Homeverzeichnis /var/lib/signal-cli in dem das data Verzeichnis mit der Konfiguration liegt. /var/lib/signal-cli und alles darunter gehört bei mir dem User signal-cli.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 25 Mai 2018, 12:35:53
Hi, bei mir gehören die Ganzen Datein und Verzeichnisse dem root.
Wenn ich in der Datei signal.servie den User auf root setze und neu starte (den ganz Pi neu boote) bekomme ich folgende Meldung:

sudo systemctl status signal.service -l
* signal.service - Send secure messages to Signal clients
   Loaded: loaded (/etc/systemd/system/signal.service; enabled)
   Active: inactive (dead)

Seinbar wird dieses nicht automatisch gestartet ?

Wie bekomme ich das denn jetzt ncoh hin bzw. was stimmt da denn jetzt nicht ?

Gruß Ralf

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 25 Mai 2018, 13:17:00
Hallo, bei starten von signal.service bekomme ich folgenden fehler

Failed password for root from 218.65.30.107 port 42586 ssh2

Verstehe ich das richtig das es zwingend der User signal-cli sein muss der das ganze macht ?

Gruß Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 25 Mai 2018, 13:29:38
Hi, nein es ist egal welchen USER ich bei signal.service eintrage der Fehler bleibt der gleiche.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: reibuehl am 25 Mai 2018, 14:11:26
Bist Du dir sicher, dass der ssh Password Fehler was mit dem Signal Service zu tun hat?

Ich würde mal erst die Zugriffsrechte richten. Woliegt den bei Dir das data Verzeichnis mit der Signal Konfiguration und was ist das Home Verzeichnis des Users signal-cli?

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 25 Mai 2018, 14:20:46
Hallo ,
100% kann ich das nicht sagen, aber wenn ich sudo service signal start machen bekomme ich folgendes:

Job for signal.service failed. See 'systemctl status signal.service' and 'journalctl -xn' for details.

mit sudo jornalctl -xn bekomme ich folegndes:
Failed password for root from 21
Mai 25 14:09:39 xxxx sshd[8337]: Failed password for root from 21
Mai 25 14:09:41 xxxx sshd[8337]: Failed password for root from 21
Mai 25 14:09:41 xxxx sshd[8337]: Received disconnect from 218.65.
Mai 25 14:09:41 xxxx sshd[8337]: PAM 2 more authentication failur
Mai 25 14:10:01 xxxx CRON[8374]: pam_unix(cron:session): session
Mai 25 14:10:01 xxxx CRON[8378]: (root) CMD (/home/pi/online_chec
Mai 25 14:10:02 xxxx CRON[8249]: pam_unix(cron:session): session
Mai 25 14:10:13 xxxx sudo[8409]: pi : TTY=pts/0 ; PWD=/home/pi ;
Mai 25 14:10:13 xxxx sudo[8409]: pam_unix(sudo:session): session


Das Home Verzeichnis /home/signal-cli
Das data Verzeichnis liegt  /var/lib/signal-cli/data

Hatte die Rechte wie folgt gesetzt
sudo chown -R signal-cli:signal-cli /var/lib/signal-cli/data

Gruß
Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: reibuehl am 25 Mai 2018, 15:13:53
Das sudo chown -R signal-cli:signal-cli /var/lib/signal-cli/data passt. Damit sind die Rechte in Ordnung.

Dann sollte Deine /etc/systemd/system/signal.service so aussehen:

[Unit]
Description=Send secure messages to Signal clients
Requires=dbus.socket
After=dbus.socket
Wants=network-online.target
After=network-online.target

[Service]
Type=dbus
Environment="SIGNAL_CLI_OPTS=-Xms2m"
ExecStart=/usr/bin/signal-cli -u <Signal ID> --config /var/lib/signal-cli daemon --system
User=signal-cli
BusName=org.asamk.Signal

[Install]
Alias=dbus-org.asamk.Signal.service


mit <Signal ID> gleich Deiner Signal ID, also etwa +491231234567. Stimmt das soweit auch noch und hast Du unter /var/lib/signal-cli/data eine Datei <Signal ID> und ein Unterverzeichnis <Signal ID>.d ?

Wenn ja, dann nochmal den Service starten. Ich nehme dazu nicht "sudo service signal start" sondern "sudo systemctl start signal.service".
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 25 Mai 2018, 15:25:29
Hallo meine Datei siht fast so aus der UNterschied ist der Pfad zu signal-cli


ExecStart=/opt/signal-cli-0.6.0/bin/signal-cli -u +49xxxxxxxxx --config /var/lib/signal-cli daemon --system


Unter /usr/bin habe ich keine signal-cli !


Wenn ich mit sudo systemctl start signal.service starte kommt folgende Meldung:

Job for signal.service failed. See 'systemctl status signal.service' and 'journalctl -xn' for details.

* signal.service - Send secure messages to Signal clients
   Loaded: loaded (/etc/systemd/system/signal.service; enabled)
   Active: failed (Result: exit-code) since Fr 2018-05-25 15:22:40 CEST; 2min 5s ago
  Process: 13534 ExecStart=/opt/signal-cli-0.6.0/bin/signal-cli -u +49x1x3x33xx1 --config /var/lib/signal-cli daemon --system (code=exited, status=1/FAILURE)
Main PID: 13534 (code=exited, status=1/FAILURE)

Mai 25 15:22:40 xxxx signal-cli[13534]: User is not registered.
Mai 25 15:22:40 xxxx systemd[1]: signal.service: main process exited, code=exited, status=1/FAILURE
Mai 25 15:22:40 xxxx systemd[1]: Failed to start Send secure messages to Signal clients.
Mai 25 15:22:40 xxxx systemd[1]: Unit signal.service entered failed state.





Gruß Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 25 Mai 2018, 15:34:02
Hallo , das ist komisch. In der Felhermeldung steht ja User


Mai 25 15:22:40 xxxx signal-cli[13534]: User is not registered.


Wenn ich aber direkt dieses mache mit


./signal-cli -u +49xxxxxxx send -m "Hallo Handy" +49yyyyyyyy


Funtioniert es ?!?!?

Gruß Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: reibuehl am 25 Mai 2018, 15:42:03
Dann hast Du die Konfig nicht (vollständig) nach /var/lib/signal-cli/data kopiert.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: reibuehl am 25 Mai 2018, 15:48:51
Führe mal

cp -R ~/.config/signal/data/* /var/lib/signal-cli/data

als der User aus, mit dem ./signal funktioniert.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 25 Mai 2018, 15:52:54
Hallo,

cp -R ~/.config/signal/data/* /var/lib/signal-cli/data


da habe ich nicht die Berechtigung. Kann dieses nur mit SUDO machen.

./signal-cli -u +49.... geht ohne SUDO !


In dem Verzeichnis ist nur die Datei +49xxxxxx drin.

Gruß Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 25 Mai 2018, 15:57:17
Hallo,

das Verzeichnis hat folgende Berechtigung:


$ sudo ls -lsa /var/lib/signal-cli/
insgesamt 12
4 drwx------  3 root       root       4096 Mai 25 15:45 .
4 drwxr-xr-x 40 root       root       4096 Mai 24 11:57 ..
4 drwx------  2 signal-cli signal-cli 4096 Mai 25 15:49 data



den Benutzer signal-cli habe ich nachträglich angelegt.
Da wurde ja auch nach einem Passort gefragt.
Als Passwort habe ich dann das gleiche genommen wie auch der Benutzer heißt !

Gruß Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: reibuehl am 25 Mai 2018, 16:25:30
Zitat von: Ralf Kruppa am 25 Mai 2018, 15:52:54

cp -R ~/.config/signal/data/* /var/lib/signal-cli/data


da habe ich nicht die Berechtigung. Kann dieses nur mit SUDO machen.

Dann mach mal mit sudo. Meine Vermutung ist, dass die /var/lib/signal-cli/data/+49xxxxxx nicht korrekt ist und Du unter ~/.config/signal/data/+49xxxxxx eine Version der Datei hast, die die korrekten Zugangsdaten für Signal hat.

Bei ./signal -u +49xxxxxx wird ~/.config/signal/data/+49xxxxxx verwendet. Wenn der signal Service gestartet wird, wird /var/lib/signal-cli/data/+49xxxxxx verwendet, weil --config /var/lib/signal-cli angegeben ist.

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 25 Mai 2018, 17:47:53
Hallo, habe das Verzeichnis nochmal gelöscht und neu kopiert und dann die Berechtigung mit chmod 777 gesetzt um zu sehen ob es an der Berechtigung liegt.

Nach dem neustart bekomme ich jetzt einen andere Feherl meldung


sudo systemctl status signal.service -l
* signal.service - Send secure messages to Signal clients
   Loaded: loaded (/etc/systemd/system/signal.service; enabled)
   Active: failed (Result: exit-code) since Fr 2018-05-25 17:38:09 CEST; 1min 4s ago
  Process: 24149 ExecStart=/opt/signal-cli-0.6.0/bin/signal-cli -u +49xxxxxx --config /var/lib/signal-cli daemon --system (code=exited, status=1/FAILURE)
Main PID: 24149 (code=exited, status=1/FAILURE)

Mai 25 17:38:09 xxxx signal-cli[24149]: Missing native library dependency for dbus service: no unix-java in java.library.path
Mai 25 17:38:09 xxxx systemd[1]: signal.service: main process exited, code=exited, status=1/FAILURE
Mai 25 17:38:09xxxx systemd[1]: Failed to start Send secure messages to Signal clients.
Mai 25 17:38:09 xxxx systemd[1]: Unit signal.service entered failed state.



Jetzt sieht es so aus als irgend was von Java fehlt...

Gruß Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: reibuehl am 25 Mai 2018, 17:51:56
sudo apt-get install libunixsocket-java
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 25 Mai 2018, 18:42:57
Hallo,

jetzt habe ich es ganz geschossen.
Jetzt läuft nicht mal dbus-send mehr .. das kennt er nicht mehr.

Na ja werde nächste WOche weiter sehen ob ich es zum laufen bekommen.

Bishierher erstmal danke für die tolle Unterstützung.

Gruß Ralf  :-*
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 26 Mai 2018, 12:17:56
Hallo, habe es jetzt hinbekommen das ich mit

sudo systemctl status signal.service -l


* signal.service - Send secure messages to Signal clients
   Loaded: loaded (/etc/systemd/system/signal.service; enabled)
   Active: active (running) since Sa 2018-05-26 11:52:20 CEST; 17min ago
Main PID: 16249 (java)
   CGroup: /system.slice/signal.service


Also das läuft jetzt und der dbus.service auch :


dbus.service - D-Bus System Message Bus
   Loaded: loaded (/lib/systemd/system/dbus.service; static)
   Active: active (running) since Sa 2018-05-26 11:46:04 CEST; 25min ago
     Docs: man:dbus-daemon(1)
  Process: 16019 ExecReload=/usr/bin/dbus-send --print-reply --system --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig (code=exited, status=0/SUCCESS)
Main PID: 15857 (dbus-daemon)
   CGroup: /system.slice/dbus.service



sudo dbus-send --system --type=method_call --print-reply --dest="org.asamk.Signal" /org/asamk/Signal org.asamk.Signal.sendMessage string:MessageText array:string: string:+4915758261296

geht jetzt auch ;-)

Nun geht es weiter bei FHEM.
Ich habe die Datei 32_SiSi.pm im FHEM Ordner abgelet.

Wenn ich nun

reload 32_SiSi.pm


ausführe bekomme ich folgende Fehlermeldung:#

Too many arguments for main::RemoveInternalTimer at ./FHEM/32_SiSi.pm line 63, near ""SiSi_MessageDaemonWatchdog")"
Not enough arguments for main::InternalTimer at ./FHEM/32_SiSi.pm line 69, near "$hash)"
Too many arguments for main::RemoveInternalTimer at ./FHEM/32_SiSi.pm line 84, near ""SiSi_MessageDaemonWatchdog")"
Too many arguments for main::RemoveInternalTimer at ./FHEM/32_SiSi.pm line 96, near ""SiSi_MessageDaemonWatchdog")"
Too many arguments for main::RemoveInternalTimer at ./FHEM/32_SiSi.pm line 108, near ""SiSi_MessageDaemonWatchdog")"
Not enough arguments for main::InternalTimer at ./FHEM/32_SiSi.pm line 110, near "$hash)"
Too many arguments for main::RemoveInternalTimer at ./FHEM/32_SiSi.pm line 178, near ""SiSi_MessageDaemonWatchdog")"
Not enough arguments for main::InternalTimer at ./FHEM/32_SiSi.pm line 180, near "$hash)"
Too many arguments for main::RemoveInternalTimer at ./FHEM/32_SiSi.pm line 268, near ""SiSi_MessageDaemonWatchdog")"
Not enough arguments for main::InternalTimer at ./FHEM/32_SiSi.pm line 270, near "$hash)"
./FHEM/32_SiSi.pm has too many errors.


Muss hier noch was anderes Installiert werden?

Gruß Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: reibuehl am 26 Mai 2018, 17:26:15
Normalerweise nicht. Ist dein FHEM aktuell? Evtl. mal ein update all und dann ein shutdown reload in FHEM machen...?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: reibuehl am 26 Mai 2018, 17:27:26
Net::DBus hast Du installiert?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 26 Mai 2018, 21:00:43
Hallo, mein FHEM ist nicht ganz aktuell ca. 1 Jahr alt.
Wie installiert man NET::DBUS dazu habe ich nichts weiter gefunden,  du meinst doch in FHEM.

Gruss Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: reibuehl am 26 Mai 2018, 21:51:04
Nein, Net::DBus ist ein Perl Modul. Das wird mit

sudo apt-get install libnet-dbus-perl

installiert.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 26 Mai 2018, 22:25:39
Hallo, das Perl Module ist installiert.   Auch nach der Aktualiesoeeunh vom FHEM hat sich nichts geändert.

Gruss Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: reibuehl am 26 Mai 2018, 23:02:52
Ich glaube, dann weiß ich auch nicht mehr weiter.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 27 Mai 2018, 13:34:29
Hallo,

ich habe das Problem gefunden, es lag an den Berechtigungen für den User signal-cli. Ich habe folgendes Gemacht:


sudo chown -R signal-cli: /var/lib/signal-cli
su signal-cli
cd /opt/signal-cli-0.6.0/bin/
./signal-cli --config /var/lib/signal-cli -u +49xxxxxxxx register -v
./signal-cli --config /var/lib/signal-cli -u +49xxxxxxxx verify code


So und jetzt bekomme ich bei reload 32_SiSi.pm im FHEM auch keine fehler mehr.

Wie definiere ich ich jetzt Signal in FHEM ?
Um mit


set signal sendMessage r=+49xxxxxxx m="test"

einen nachricht zu schicken ?

Gruß Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: reibuehl am 27 Mai 2018, 15:02:38
Anlegen in FHEM mit:

define signal SiSi
attr signal enable yes


Eventuell noch:

attr signal defaultRecipient +49xxxxxxx

damit Du nicht immer mit r=+49xxxxxxx den Empfänger angeben musst.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 28 Mai 2018, 07:00:54
Hallo, im FHEM konnte ich alles einrichten aber leider ist immer disconnected.

Im Lag steht folgendes:


2018.05.28 06:53:32 3: SiSi signal - Failed to connect to DBus service org.asamk.Signal: Timed out (service_start_timeout=50000ms).
2018.05.28 06:53:32 1: PERL WARNING: Use of uninitialized value $sysreadReturn in numeric lt (<) at ./FHEM/32_SiSi.pm line 175.
2018.05.28 06:53:32 3: SiSi signal - Error while reading data from child.
2018.05.28 06:53:32 3: SiSi signal - Connection to DBus service org.asamk.Signal closed.
2018.05.28 06:53:37 3: SiSi signal - Reconnect to DBus service org.asamk.Signal.
2018.05.28 06:53:37 3: SiSi signal - Trying to connect to DBus' System Bus.
2018.05.28 06:54:28 3: SiSi signal - Failed to connect to DBus service org.asamk.Signal: Timed out (service_start_timeout=50000ms).


Wenn ich mit sudo systemctl status dbus.service -l teste ob dbus läuft bekomme ich die Meldung active (running) aber auch


[system] Faild to activate service 'org.asamk.Signal': timed out (service_start_timeout=50000ms)


Gruß Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 28 Mai 2018, 07:56:00
Hallo,

so jetzt kann ich aus FHEM raus Meldungen schicken allerdings nur wie folgt :


set signal @+49xxxxxx "Message Text"


Empfangen geht leider nicht ...

Gruß Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 28 Mai 2018, 08:09:32
Hallo, so jetzt geht auch der Empfang.

vielen danke für die Unterstützung.

Gruß Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: takaze am 30 Mai 2018, 11:22:44
Hallo zusammen,

zunächst danke für das Modul, funktioniert nach ein paar Versuchen problemlos :)

Gibt es den mittlerweile die Möglichkeit Nachrichten nur von bekannten oder explizit erlaubten Nummern zu empfangen. Bin da beim querlesen des Threads darübergestolpert, konnte aber dazu keine weiteren Infos finden.

Grüße,
Florian
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 30 Mai 2018, 12:02:35
HI,

ich habe das wie folgt gelöst:

define signal_not notify signal:msgText.* {
  my $msgSender = ReadingsVal("signal","msgSender",0);
  my $msgText = ReadingsVal("signal","msgText",0);
  if ($msgSender eq "+49xxxxxx") {
    Log3 "signal","+49xxxxxx", "$msgText";
  }
}


Nur wenn die Rufnummer stimmt wird ein Log Eintrag geschrieben. Bei allen anderen Rufnummern passiert nichts.

Gruß´Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 30 Mai 2018, 21:28:43
Hallo FHEM-Gemeinde,

schön dass das Modul mittlererweile zuspruch findet.
Ich war die letzten zwei Wochen im Urlaub. Urlaub bedeutet bei mir auch digitale Abstinenz ;)
Aber wie es aussieht helft ihr euch gegenseitig :).
Da es wohl immer mehr anklang findet und ich dazu auch immer mehr Nachrichten bekomme,
werde ich demnächst daran wieder weiterentwickeln.
Features wie defaultGroup und restrictedNumbers sind auf der Liste.
Im Frühjahr und Sommer verschieben sich, naturbedingt, die Prioritäten. Deshalb ist es gerde etwas still :)

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 31 Mai 2018, 07:03:05
Hallo Quantum, klasse Modul übrigens. Weißt du zufällig ob es bei Signal die Möglichkeit gibt Nachrichten zu schicken die Links enthalten die man dann nur anklicken muss und automatisch wieder zurück geschickt werden? Bei Telegramm ist so was möglich.

Gruss Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 31 Mai 2018, 11:45:48
Hallo Ralf,

nein, das gibt es meines Wissens nicht.

Freundliche Grüße
Quantum

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: reibuehl am 31 Mai 2018, 12:05:49
Ein Commandref Eintrag für das Modul wäre schön. Vielleicht könntest Du das bei der kommenden Überarbeitung/Erweiterung ja mit rein nehmen?

Wie weit ist das Modul eigentlich mit dem Telegramm Modul kompatibel was die Kommando-Syntax angeht? Evtl. könnte man da ja von dort das Gerüst der commandref übernehmen? Ich denke mal das eine gemeinsame Syntax was Kommandos, Readings, etc angeht eh sehr gut wäre.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 31 Mai 2018, 12:29:12
Hallo reibuehl

ja, Commandref Eintrag werde ich machen. Die Syntax wurde, soweit es geht/sinnvoll ist mit Telegramm harmonisiert.
Werde auch bei neuen Funktionen darauf achten, dass die unterschiede nicht all zu groß werden.

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 14 Juni 2018, 10:20:39
Hallo,

Textnachrichten zu verschicken klappt wunderbar.
Nun wolte ich auch Bilder verschicken aber das klappt leider nicht .
ich habe es folgendemaßen versucht:


set signal msg @+49xxxxxxxx a='/home/pi/test.jpg'


dann bekomme ich die Text Nachricht : a='/home/pi/test.jpg'

Gruß Ralf
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 14 Juni 2018, 10:39:06
Hallo Ralf,

ich weis nicht wie du auf die Syntax a=Path kommst. Die Syntax hat es vor Monaten gegeben. Wurde aber schon längst ersetzt.
Um ein Bild zu versenden vor dem Pfad ein & voranstellen, also:


set signal msg @+49xxxxxxxx &PATH Sometext


Siehe auch Commandref :)

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Ralf Kruppa am 14 Juni 2018, 10:43:22
Hallo,

danke für die schnelle Antwort.

Jetzt funktioniert auch das.

Super
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Morgennebel am 05 Juli 2018, 19:03:37
Moin,


die gesamten Anleitungen für signal-cli und den DBus beziehen sich auf systemd.

Den habe ich (zum Glück) nicht auf meinem Systemen laufen und kenne mich auch nicht genügend aus.
Was müsste ich bei einem SysV-System machen, um den signal-cli korrekt zu starten (welche Parameter)?

Danke, -MN
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 06 Juli 2018, 18:35:16
Hallo Morgennebel,

zu SysVInit hab ich keinerlei Bezug. Und kann dir demach leider nicht weiterhelfen.

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: subseven am 14 August 2018, 11:03:13
Hallo,
seit April läuft das Modul bei mir Reibungslos, auch das Update auf 0.6.0 bzw. ein Update von 32_SiSi.pm waren kein Problem. Mich würde aber interessieren ob eine Integration in das msg-Modul geplant ist?
Ziel wäre dann die Verwendung von MsgDialog. Ich bin mir nicht sicher, ob das Analog Telegram funktionieren würde, aber wünschenswert wäre es.

Grüße
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 14 August 2018, 11:23:51
Hallo subseven,

bei mir läuft das Modul schon seit Monaten mit msg und msgDialog. Ohne an den Modulen direkt etwas geändert zu haben.
Wenn du wissen willst wie ich das gemacht habe, kann ich es gerne veröffentlichen.

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: darkness am 16 August 2018, 19:38:15
Hallo Quantum.

Ich habe heute dein Modul mal installiert. Läuft so weit und wird vielleicht bald jabber bei mir ablösen.
In msg konnte ich es auch einbinden. Allerdings musste ich im msgConfig noch das Attribut

msgCmdPush set SignalCLI msg @%RECIPIENT% %MSG%

setzen.

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 16 August 2018, 20:40:20
Hallo darkness,

ja das Attribut mit diesem Wert musste ich auch setzen. msgCmdPushHigh und msgCmdPushLow hab ich ebenfalls auf den gleichen Wert gesetzt. Man weiß ja nie :)

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: subseven am 10 September 2018, 15:21:10
Danke für die Infos, wenn es außer dem Attribute nichts weiter zu beachten gibt werde ich das bei mir auch so einsetzen :-).

Mir ist aufgefallen, dass (vermutlich durch Betrieb als virtuelle Maschine) der Nachrichtenversand nicht funktioniert wenn nach dem Systembot unter /dev/random nicht genug Entropy verfügbar sind. Diese mehren sich bei mir leider recht langsam, dass Java ständig das vermehren durch neue Anfragen auffrisst.

Prüfen kann man seine Entropy mit:
cat  /proc/sys/kernel/random/entropy_avail
Probleme können auftreten wenn der Wert <1000 ist

Gelöst habe ich es durch die Erweiterung haveged, welches mir den Entropy-Pool weiter füttert. Nach der Installation den dienst haveged starteten/enablen.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: klausw am 10 September 2018, 23:31:00
Hallo Quantum,

Zitat von: Quantum am 14 August 2018, 11:23:51
...
Wenn du wissen willst wie ich das gemacht habe, kann ich es gerne veröffentlichen.

bin zwar nicht angesprochen, aber es würde mich trotzdem interessieren.
besonders msgdialog.

Klaus
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 20 September 2018, 23:00:02
Hallo klausw,

ich hoffe ich krieg alles zusammen:

1) Das Modul msg und alles was dazugehört, ist eingerichtet (ROOMMATE etc..). in msgConfig mindestens dieses Attribut setzen:
attr globalMsg msgCmdPush set %DEVICE% msg @%RECIPIENT% %MSG%

2) Beim entsprechenden ROOMMATE folgendes Attribut setzen:

attr <ROOMMATE> msgContactPush <SIGNAL_DEVICENAME>:<SIGNAL_NUMBER>
Beispiel:
attr rr_Max msgContactPush Signal:+49123456789

3) Wenn die Einrichtung soweit fehlerfrei war, sollte mit
msg push @rr_Max Testnachricht
eine Nachricht an Max gesendet werden können.

4) msgDialog wie im entsprechenden Thread beschreiben einrichten. Anpassung am Gerät "msgPushReceived".
Der Code des Notify sieht bei mir wie folgt aus:


.*(msgText|queryData|(OTR)?LastMessage|message):(\n|.)* {
  my ($recipient, $recipientMask, $received);
  my $TYPE = InternalVal($NAME, "TYPE", "");

  if($TYPE eq "SiSi" && $EVENT =~ m/^msgText/){
    $recipient = ReadingsVal($NAME, "msgSender", undef);
if($recipient =~ /^\+.*$/){
$recipientMask = "\\" . $recipient;
}
    $received = ReadingsVal($NAME, "msgText", undef);
  }

  return unless($recipient && $received ne "");
 
  my @contacts = devspec2array("TYPE=(ROOMMATE|GUEST):FILTER=msgContactPush=.*$recipientMask.*");
 
  if(@contacts){
    foreach (@contacts){
      my $dev_hash = $defs{$_};

      readingsBeginUpdate($dev_hash);
      readingsBulkUpdate($dev_hash, "fhemMsgPushReceived", $received);
      readingsBulkUpdate($dev_hash, "fhemMsgPushReceivedContact", $NAME);
      readingsEndUpdate($dev_hash, 1);
    }
  }
  else{
    fhem("msg push Unbekannter Kontaktversuch über $NAME von $recipient:\n$received");
  }
}


Hauptunterschied ist, dass das + nocheinmal maskiert wird, ansonsten wird es falsch interpretiert.

Hoffe konnte helfen, bei Fragen gerne melden.

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: subseven am 21 September 2018, 09:35:20
Mir sind noch zwei Dinge in den Sinn gekommen, weil ich heute mein Handy mal neu aufgesetzt hab.
Sobald sich durch eine Neuinstallation von Signal der Fingerprint ändert, kommen Nachrichten nicht mehr an. Auf der Signal-CLI wird das auch entsprechend quittiert. Man kann nun den neuen Fingerprint hinzufügen oder mit
signal-cli -u <FHEM-NUMMER> --config /var/lib/signal-cli trust -a <Nummer mit geänderten Fingerprint>
der Nummer ohne den Fingerprint einzeln hinzuzufügen wieder vertrauen (signal-cli fügt den Fingerprint dann hinzu)

Praktisch wäre auch wenn man auf Gruppen austreten kann. Letzt endlich hab ich es dann doch nicht gebraucht, aber leider kann man bei Signal keine Teilnehmer aus Gruppen werfen, das müssen die Teilnehmer immer selbst tun.
Mit:
signal-cli -u <FHEM-NUMMER> --config /var/lib/signal-cli quitGroup -g <GroupID>

verlässt man Gruppen.
Wenn diese beiden Funktionen noch hinzukommen würden und auch die Meldungen mit dem Fingerprint vom FHEM-Modul erkannt/interpretiert würden, wäre echt toll :-)

Bei Bedarf kann ich Log und CLI-Ausgabe zur Verfügung stellen.

Grüße
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 21 September 2018, 10:04:00
Hallo subseven,

ja, auf diese Probleme bin ich selbst auch schon gestoßen. Aber: Weder der Befehl trust noch quitGroup sind Bestandteil der DBus-API.
Was diese alles kann, kann hier nachvollzogen werden: https://github.com/AsamK/signal-cli/blob/master/src/main/java/org/asamk/Signal.java

Klar kann es gelöst werden, indem das Module Systembefehle ausführt. Halte ich aber für den falschen Weg. Eher soll bestrebt werden, dass
fehlende Befehle in die DBus-API aufgenommen werden. Wenn diese dort zur Verfügung stehen, kann ich diese gerne integrieren.
Bin mit Java leider noch nicht so vertraut um hierfür Upstream Pull-Requests aufzumachen. Aber vielleicht jemand anderes ?

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: drhirn am 27 November 2018, 16:06:26
Wollte nur schnell vermelden, dass ich jetzt auch zu den glücklichen Modul-Benutzern gehöre. Und soweit keine Probleme feststellen kann. Hab's aber noch nicht wirklich ausführlich getestet. User Neubert und ich sind auch schon mit einem Wiki-Artikel beschäftigt: https://wiki.fhem.de/wiki/SiSi (https://wiki.fhem.de/wiki/SiSi)

Danke Quantum!
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 01 Dezember 2018, 18:03:24
Hallo drhirn,

der Wiki-Artikel liest sich gut. Hätte ich nicht besser hinbekommen. Danke für deine/eure Mühen!

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: enno am 02 Januar 2019, 22:30:38
Zitat von: drhirn am 27 November 2018, 16:06:26
Wollte nur schnell vermelden, dass ich jetzt auch zu den glücklichen Modul-Benutzern gehöre. Und soweit keine Probleme feststellen kann. Hab's aber noch nicht wirklich ausführlich getestet. User Neubert

Vielen Dank für Modul und Wiki. Mit dem Wiki hat es gut geklappt, bis auf den Punkt Außerdem muss unter Umständen der Pfad des FHEM-Wurzelverzeichnisses angepasst werden.

Bei mir hat sich die Datei unter folgenden Pfad "versteckt". ExecStart=/usr/local/bin/signal-cli -u +49xxxxxxxxxx --config /opt/fhem/.local/share/signal-cli daemon --system

Der Rest war dann wieder einfach :)

Gruss
  Enno
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: kunze am 05 Januar 2019, 13:09:40
Hallo,

erstmal ein Danke an den Ersteller des Moduls.
Leider funktioniert bei mir das senden an Telefonnummern nicht.

ich bekomme immer:

sentMsgError
Error Executing Method org.asamk.Signal.sendMessage: org.whispersystems.signalservice.api.push.exceptions.NotFoundException: Not found - Maybe wrong Number?
sentMsgRecipient
+4917xxxxxxxx
sentMsgResult
FAILED
sentMsgText
test


Senden an Gruppen über eine Gruppen ID und empfangen von Nachrichten funktioniert hingegen.
Senden an Telefonnummern über DBus mit dem beiden Kommandos aus dem Wiki funktioniert auch.

Wo kann ich weiter Logs finden um das Problem zu analysieren?

Einrichtung hab ich nach dem Wiki gemacht.

Danke,
Michael
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 05 Januar 2019, 15:27:12
Hallo,

da das senden von Gruppennachrichten funktioniert, hat die prinzipielle Einrichtung geklappt.
Den Fehler den du beschreibst ist eine NotFound Exception, die eigentlich nur dann auftritt, wenn dem Signal-Server die Nummer an die du senden willst, nicht bekannt ist. Dafür kann das Modul erstmal nichts.

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: kunze am 05 Januar 2019, 15:55:35
Hallo Quantum,

ich hab jetzt ein wenig weiter gesucht.
Im dbus-monitor sehe ich folgendes:

method call time=1546696417.808746 sender=:1.22 -> destination=org.asamk.Signal serial=15 path=/org/asamk/Signal; interface=org.asamk.Signal; member=sendMessage
   string "testnachricht_global"
   array [
   ]
   string "ARRAY(0x55cbef974d18)"
error time=1546696418.647312 sender=:1.14 -> destination=:1.22 error_name=org.freedesktop.dbus.exceptions.DBusExecutionException reply_serial=15
   string "Error Executing Method org.asamk.Signal.sendMessage: org.whispersystems.signalservice.api.push.exceptions.NotFoundException: Not found"


Es wird also der Empfänger nicht richtig weiter gereicht.
Ich hab dann im code in Zeile  589;
$hash->{DBUS}->{OBJECT}->sendMessage($text,\@attachment,\@recipients); 1
den \ vor @recipients entfernt. Jetzt wird der Empfänger als String übergeben und das senden funktioniert.

Schöne Grüße
Michael
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 05 Januar 2019, 18:28:34
Welche Version von signal-cli verwendest du? Evtl hat sich etwas in der DBus Api geändert.

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: kunze am 05 Januar 2019, 19:02:15
Verwende die aktuellste, 0.6.2.
Laut Interface auf GitHub erwartet die entweder einen String oder ein Array von strings.

In meinem Fall wurde aber was ganz anderes übergeben, zumindest sieht es aus wie eine Referenz auf ein Array das in einen string umgewandelt wurde.
Bin allerdings in Perl nicht wirklich gut.

string "ARRAY(0x55cbef974d18)"

So sieht es mit einem Attachment aus (nach meiner Änderung):


method call time=1546700703.486987 sender=:1.31 -> destination=org.asamk.Signal serial=12 path=/org/asamk/Signal; interface=org.asamk.Signal; member=sendMessage
   string ""
   array [
      string "/opt/fhem/www/images/default/icoKLIMA.png"
   ]
   string "+49xxxxxxxxxx"


Ohne meine Änderung hätte ich sowas erwartet:


method call time=1546700703.486987 sender=:1.31 -> destination=org.asamk.Signal serial=12 path=/org/asamk/Signal; interface=org.asamk.Signal; member=sendMessage
   string "message text"
   array [
      string "/opt/fhem/www/images/default/icoKLIMA.png"
   ]
   array [
      string "+49xxxxxxxx"
   ]
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 05 Januar 2019, 21:11:45
würdest du bei dir kurz die 0.6.0 testen und deine Änderung rückgängig machen? Und kurz schreiben wie es sich dann verhält?
Danke
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: kunze am 05 Januar 2019, 21:54:34
Die 0.6.0 startet leider nicht mit der config der 0.6.2.

Muss morgen mal schauen ob ich das ohne Neuregistierung hinbekomme.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 05 Januar 2019, 22:10:49
okay schade. Ich komm erst im Laufe der nächsten Woche dazu selbst Tests durchzuführen. Ich hab bei mir noch die 0.5.6 im Einsatz mit der ich das damals entwickelt hab. Können andere das Problem mit der 0.6.2 bestätigen?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: enno am 06 Januar 2019, 13:28:41
Bis gestern Abend lief bei mir mit 0.6.2 alles gut. Heute morgen ging es dann bei mir auch nicht mehr:

SiSi SIGNAL - Trying to send message to DBus method 'sendMessage' on service org.asamk.Signal
2019.01.06 13:25:07 3: SiSi SIGNAL - Failed to send message: Error Executing Method org.asamk.Signal.sendMessage: org.whispersystems.signalservice.api.push.exceptions.NotFoundException: Not found - Maybe wrong Number?


Gruss
  Enno

Edit: Nach einem Neustart des Servers geht es nun wieder. Ich habe Verbose auf 5 gestellt und beobachte ob zu  erkennen ist woran sich das Ganze verschluckt hat.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: kunze am 06 Januar 2019, 15:00:01
Hi Quantum,

mit der 0.6.0 erhalte ich:

Error Executing Method org.asamk.Signal.sendMessage: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext) - Maybe wrong Number?


Könnte aber an der Konfiguration liegen, da ich nur eine Zeile entfernt habe aus der Konfig der 0.6.2 damit die 0.6.0 startet.

Schöne Grüße
Michael
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 11 Januar 2019, 19:47:07
bin jetzt ebenso auf die 0.6.2 umgestiegen um hab die letzten Tage getestet. Dabei kam es zu keinen Auffälligkeiten. Kann das Problem also nicht nachvollziehen, sollten es aber weiter beobachten.

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: darkness am 29 Januar 2019, 20:22:33
Hallo,

ich versuche gerade in der myUtils eine Routine zu schreiben, welche mir ein Bild senden soll. Folgender Befehl klappt nicht:

fhem("set SignalCLI send \@+49160XXXXXX &/opt/fhem/www/snapshots/cam_01_snapshot.jpg");


Aus FHEM heraus klapt es. Nur eben in der MyUtils nicht. Ich vermute es liegt an den & und /.
Habe schon überall ein \ davor gestellt. Klappt aber auch nicht.

Fehler:
Zitat
Error Executing Method org.asamk.Signal.sendMessage: insufficient data written - Maybe wrong Number?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: darkness am 29 Januar 2019, 20:28:59
Ah jetzt geht es.

Ich war einfach zu schnell. Der Befehl für den Snapshot durch die Kamera und das versenden des Bildes waren zu schnell hintereinander. Vermutlich ist beim versenden der Schreibvorgang nicht abgeschlossen.

So geht es aber:

fhem("define at_sendeBild at +00:00:05 set SignalCLI send \@+4916XXXX \&/opt/fhem/www/snapshots/cam_01_snapshot.jpg");
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: buec65 am 30 Januar 2019, 19:51:40
Hallo, versuche gerade auch auf Signal umzustellen Versand von der Konsole funktioniert aber beim Einrichten der Kommunikation über D-Bus komme ich nicht weiter

sudo systemctl start signal.service
Failed to start signal.service: Unit signal.service failed to load: Invalid argument. See system logs and 'systemctl status signal.service' for details.

Debian 3.16.36-1+deb8u1


Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: klausw am 01 Februar 2019, 11:25:37
was bringt denn
systemctl status signal.service


bzw. was steht dazu in /var/log/syslog ?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: buec65 am 01 Februar 2019, 15:36:52
Diese Meldung erscheint

nachdem ich den Pfad in /etc/systemd/system/signal.service angepasst habe
ExecStart=/opt/fhem/signal-cli/bin/signal-cli -u +49xx --config /opt/fhem/.config/signal daemon --system

Nach kopieren der registrierten Nummer nach
/opt/fhem/.config/signal/data und setzen der Berechtigung auf fhem:dialout funktioniert das senden per DBus
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: buec65 am 04 Februar 2019, 13:33:17
Wie kann ich an eine Nachricht den Wert eines Readings anhängen?

set Signal msg Speicher_unter_30_Grad

z.B.
set Signal msg Speicher_unter_30_Grad Speichertemp=27°C
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Mikka am 04 Februar 2019, 15:07:00
Hi buec65,

Zitat von: buec65 am 04 Februar 2019, 13:33:17
Wie kann ich an eine Nachricht den Wert eines Readings anhängen?

set Signal msg Speicher_unter_30_Grad

z.B.
set Signal msg Speicher_unter_30_Grad Speichertemp=27°C

probiere mal folgendes aus:

({fhem("set Signal message 'Speicher_unter_30_Grad Speichertemp= ".ReadingsVal("TEMPAKTOR","TEMPERATUR","")." °C'")})

Mikka
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: buec65 am 05 Februar 2019, 09:45:40
@Mikka
Vielen Dank funktioniert wie gewünscht :-)
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: thorschtn am 13 Februar 2019, 09:22:12
Hallo zusammen,

hat hier jemand Schreibrechte auf das Wiki https://wiki.fhem.de/wiki/SiSi?

Augenscheinlich hat sich der standardmäßige Pfad der Konfigurationsdateien geändert (signal 0.6.2), so dass die im Wiki beschriebene Konfiguration nicht mehr funktioniert. Darüber hinaus meckert, systemctl, dass es einen absoluten Pfad haben möchte.

Mit folgender Änderung in /etc/systemd/system/signal.service funktioniert es wieder:

ExecStart=signal-cli -u +49xxxxxxxxxx --config /opt/fhem/.config/signal daemon --system
-->
ExecStart=/opt/fhem/signal-cli/bin/signal-cli -u +49xxxxxxxxxxx --config /opt/fhem/.local/share/signal-cli daemon --system

Könnte das jemand im Wiki nachziehen?

Darüber hinaus ist noch eine Inkonsistenz bei der Beschreibung der FHEM-Konfiguration:

attr sisi enable yes --> attr Signal enable yes
attr sisi defaultPeer +49170zzzzzzzz --> attr Signal defaultPeer +49170zzzzzzzz

Danke & viele Grüße

Thorsten

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: drhirn am 13 Februar 2019, 13:40:52
Michael hat den Pfad angepasst. Ich habe einen Hinweis zur Pfadänderung hinterlassen und die Inkonsistenzen behoben.
Danke für den Hinweis!
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: drhirn am 13 Februar 2019, 13:43:09
Zitat von: thorschtn am 13 Februar 2019, 09:22:12
Darüber hinaus meckert, systemctl, dass es einen absoluten Pfad haben möchte.

'signal-cli' ist ein absoluter Pfad ;)

Hast du den Symlink gesetzt?
sudo ln -sf /opt/fhem/signal-cli/bin/signal-cli /usr/local/bin/

Titel: Antw:Neues Modul für &quot;(Si)gnal - (Si)cherer Messenger&quot; [32_SiSi.pm]
Beitrag von: linuzer am 13 Februar 2019, 22:29:22
Hallo,

vielen Dank für das tolle Modul! Habe es erfolgreich installiert und funktioniert auch alles super.

Meine Frage ist, gibt es auch eine Möglichkeit eingehende Messages als Fhem-Befehle zu interpretieren und das Ergebnis zurück zu schicken? Also so ungefähr wie das mit yowsup geht?

Wäre echt cool...!
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: obi am 14 Februar 2019, 10:06:29
Hallo linuzer,

du kannst natürlich mit einem Notify oder DOIF die eingehenden Nachrichten weiter verarbeiten und darauf antworten.

z.B. müsste es folgendermaßen gehen (habe ich so jetzt aber nicht getestet):
define NOT_Signal notify Signal:msgText:.* {

my $input = (split /msgText: /, $EVENT, 2)[1]);
my $sender = ReadingsVal($NAME,'msgSender','');

#Hier könnte man noch Regex Prüfungen usw. ausführen um den fhem Befehl zu erkennen

#Perl Befehl mit eval ausführen
my $output = eval($input);

#Fhem Befehl ausführen
my $output = fhem($input);

fhem('set '.$NAME.' msg @'.$sender.' '.$output);
}
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: linuzer am 14 Februar 2019, 12:13:22
Hallo obi,

das notify funktioniert tatsächlich! Sehr cool...!  8)

Klar wäre es natürlich schön, wenn das direkt im Modul drin wäre, inklusive "allowed Sender" und "allowed Commands"...
Aber ich bin so voll auf zufrieden...!
Vielen Dank!

EDIT:
Sorry, ich hab übersehen, dass es "allowedPeer" ja schon längst gibt...!
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 16 Februar 2019, 10:07:13
Hallo linuzer,

entwder du machst es mit notifies wie von obi beschrieben, oder mit msgDialog. Wie du das mit SiSi ans laufen bekommst ist weiter vorne im Thread beschrieben.
Eine direkte Verarbeitung von Kommandos über das Modul werde ich nicht integrieren, da es nicht die Aufgabe dieses Moduls ist.

Mit freundlichen Grüßen
Quantum
Titel: Antw:Neues Modul für &quot;(Si)gnal - (Si)cherer Messenger&quot; [32_SiSi.pm]
Beitrag von: linuzer am 16 Februar 2019, 21:19:39
Hallo Quantum,

das macht nichts, ich habe es jetzt mit dem notify von obi gelöst, das funktioniert perfekt.

Ich bin voll begeistert von dem Modul, vielen Dank für die Arbeit!

VG linuzer
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: drhirn am 04 April 2019, 18:51:39
@Quantum: Ist geplant, dem Modul einen "offiziellen" Status zu geben?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Axxl am 11 April 2019, 16:32:56
Hi,

ich würde das Modul auch gerne ausprobieren und habe mir die Anleitung im Wiki (https://wiki.fhem.de/wiki/SiSi) mal durchgelesen. Frisch ans Werk dachte ich, aber bei mir läuft FHEM in einem Docker Container auf einem Intel Nuc mit debian:Stretch als Base Image.

Ich vermute die Installation von SiSi in einem Docker Container ist nicht so einfach hinzubekommen. Ich habe Probleme mit dem DBus im Container und Systemctl gibt es da auch nicht wirklich.

Hat einer von Euch , das im Docker Container laufen ? Wenn ja , wie sieht euer Dockerfile aus ? Muss ich den Dbus des Hosts an den Container sharen ?

Danke,
Axxl

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 12 April 2019, 20:57:24
Hallo drhirn,

leider fehlt mir die Zeit, das Modul offiziell zu betreuen. Sollte sich jemand bereit erklären dies zu übernehmen, hab ich nichts dagegen. Ansonsten ist dies vorerst nicht geplant.

Hallo Axxl,

ich betreibe das Modul schon seit längerem in einem Dockercontainer. Ich nutze dazu den offiziellen Container und leite meinen daraus ab. Kannst dich aus den Dateien bedienen.
Das nachfolgende tut für meine zwecke seinen Dienst. Ist eigentlich nicht für andere bestimmt. Sollte etwas nicht funktionieren, leiste ich für die Dateien keinen support!

Dockerfile:

    ARG BASE_IMAGE="fhem/fhem"
    ARG BASE_IMAGE_TAG="latest"
    FROM ${BASE_IMAGE}:${BASE_IMAGE_TAG}

    ARG L_SIGNAL_CLI="0.6.2"

    # Install base environment
    RUN DEBIAN_FRONTEND=noninteractive apt-get update \
        && DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends \
            cpanminus \
            build-essential \
            wget \
            shared-mime-info \
          dbus \
          default-jre-headless \
          libunixsocket-java \
            lirc \
            net-tools \
            hping3 \
            wakeonlan \
            \
        && cpanm \
          Net::DBus \
          Lirc::Client \
            Crypt::Cipher::AES \
        && rm -rf /root/.cpanm \
        && sed -i s,/dev/lircd,/var/run/lirc/lircd,g /usr/local/share/perl/5.24.1/Lirc/Client.pm \
        && wget https://github.com/AsamK/signal-cli/releases/download/v${L_SIGNAL_CLI}/signal-cli-${L_SIGNAL_CLI}.tar.gz \
        && tar xf signal-cli-${L_SIGNAL_CLI}.tar.gz -C /opt \
        && ln -sf /opt/signal-cli-${L_SIGNAL_CLI}/bin/signal-cli /usr/local/bin/ \
        && apt-get purge -qqy \
            build-essential \
            cpanminus \
            subversion \
        && apt-get autoremove -qqy && apt-get clean \
        && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

    COPY ./src/pre-start.sh /pre-start.sh
    COPY ./src/000_fhem-nopasswd /etc/sudoers.d/
    COPY ./src/org.asamk.Signal.service /usr/share/dbus-1/system-services/
    COPY ./src/org.asamk.Signal.conf /etc/dbus-1/system.d/
    ADD https://raw.githubusercontent.com/Quantum1337/32_SiSi.pm/master/FHEM/32_SiSi.pm /fhem/FHEM/32_SiSi.pm
    RUN mkdir /run/dbus && mkdir /run/lirc
    RUN mkdir /opt/signal-cli && mkdir /opt/lirc
    RUN chmod +x /pre-start.sh

    VOLUME [ "/opt/signal-cli" ]
    VOLUME [ "/opt/lirc" ]


pre-start.sh:

#!/bin/bash
export NUMBER="${NUMBER:-"undef"}"
export SLEEPTIME="${SLEEPTIME:-"10s"}"
export LIRC="${LIRC:-"no"}"

if [ $NUMBER != "undef" ]; then

   if [ -s /var/run/dbus/pid ]; then
      rm /var/run/dbus/pid
   fi
     
   echo "Starting DBus System Daemon"
   dbus-daemon --system --address=unix:path=/run/dbus/system_bus_socket

   echo "Starting signal-cli"
   /usr/local/bin/signal-cli -u $NUMBER --config /opt/signal-cli daemon --system &

   echo "Wait $SLEEPTIME to give signal-cli time to come up"
   sleep $SLEEPTIME
fi

if [ "$LIRC" = "yes" ]; then

   if [ ! -d "/var/run/lirc" ]; then
      mkdir "/var/run/lirc"
   fi
   echo "Starting lircd"
   /usr/sbin/lircd -O /opt/lirc/lirc_options.conf /opt/lirc/lircd.conf
fi



docker-compose:


services:
  fhem:
    image: XXX/fhem:latest
    privileged: true
    restart: always
    network_mode: "host"
    ports:
      - "7072:7072"
      - "8083:8083"
    volumes:
      - "./fhem/data:/opt/fhem/"
      - "./fhem/lirc:/opt/lirc/"
      - "./fhem/signal-cli:/opt/signal-cli"
    devices:
      - "/dev/lirc0:/dev/lirc0"
    environment:
      NUMBER: "+49XXXX
      SLEEPTIME: "5"
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Bubinator am 23 Mai 2019, 23:12:12
Hallo zusammen,
hallo Quantum!

Erst einmal vielen Dank für die Entwicklungsarbeit an dem Modul. Das ist echt klasse! Ich bin, nachdem die "manuelle" Variante aus dem bereits bekannten Thread https://forum.fhem.de/index.php/topic,30745.0/all.html (https://forum.fhem.de/index.php/topic,30745.0/all.html), lange gut bei mir lief, nun auch auf das Modul geschwenkt.

Leider erhalte ich auch die Fehlermeldung
Error Executing Method org.asamk.Signal.sendMessage: org.whispersystems.signalservice.api.push.exceptions.NotFoundException: Not found - Maybe wrong Number?.

Ich verwende Version 0.6.2 der Signal-Cli, Version 1.1.0 von Net::DBus und FHEM wurde vorgestern zuletzt aktualisiert.

Ein Senden über dbus-send funktioniert.

Da einige von Euch das Problem auch hatten, aber es offenbar nicht flächendeckend auftritt, hoffe ich, dass mir jemand von Euch einen Tipp geben kann, wie ich das Problem entweder tiefer analysieren kann oder aber direkt behebe.

Viele Grüße & Glück Auf!
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: kunze am 24 Mai 2019, 17:38:01
Hallo

Ich hatte das Problem auch. Siehe https://forum.fhem.de/index.php/topic,84996.msg881931.html#msg881931
Allerdings tritt es seit einiger Zeit nicht mehr auf und ich mussten e Codeänderung von damals rückgängig machen.

Schöne Grüße
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Bubinator am 10 Juni 2019, 22:20:58
Hallo kunze,

so ist's jetzt auch bei mir gewesen. Nun gehts...

Viele Grüße,

Bubinator
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Bubinator am 18 Juni 2019, 21:48:34
Mist, zu früh gefreut.  :(

Einmal fhem aktualisiert und den Pi gebootet und schon ist das Problem wieder da. Übrigens kam beim Update vom Raspberry Pi auch ein dbus-Update (jetzt 1.10.28-0+deb9u1) über apt mit...

Hat da jemand eine Idee (ggf. auch zum Bugtracking)?

Viele Grüße


Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: thorschtn am 13 August 2019, 07:04:19
Zitat von: Bubinator am 18 Juni 2019, 21:48:34
Einmal fhem aktualisiert und den Pi gebootet und schon ist das Problem wieder da. Übrigens kam beim Update vom Raspberry Pi auch ein dbus-Update (jetzt 1.10.28-0+deb9u1) über apt mit...
Hat da jemand eine Idee (ggf. auch zum Bugtracking)?

Codeänderung aus https://forum.fhem.de/index.php/topic,84996.msg881931.html#msg881931 wieder rückgängig machen.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: nOerkH am 23 August 2019, 12:53:50
Hallo zusammen,

ich habe hier schon viel und lange mitgelesen. Muss mich jetzt leider auch mal mit einem Problem an die community wenden.

Ich bin begeisterter Nutzer des SiSi Moduls, nach kurzen Startschwierigkeiten hat es bei mir immer toll funktioniert. Seit letzter Woche zwickt es jedoch gehörig im Getriebe.

Die Nachrichten werden erst mit einigen Stunden Verzögerung geschickt bzw. empfangen. Dabei steht das Gerät immer auf "connected".

Verbose ist nun schon auf 5 gestellt, auffällige Einträge kann ich erstmal keine entdecken.
Die Verbindung scheint korrekt aufgebaut zu werden (Connected to DBus Object /org/asamk/Signal.)
auf Empfangene Nachrichten scheint er auch hören zu wollen (Listening to DBus-signal 'MessageReceived' on service org.asamk.Signal.)

irgend eine Idee wo man spontan graben könnte?

Meiner Nummer hab ich gerade neu registriert, das hilft auch nichts.

Vielen Dank
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 25 August 2019, 15:49:51
Hallo nOerkH,

deine Zeitangabe von Stunden klingt schon sehr seltsam. Ich würde das Problem weniger am SiSi Modul festmachen. Was mir spontant einfällt wäre deine Systemlast. Gib mal "top" in die Kommandozeile ein.
Gibt es dort Prozesse, die das System zu 100% auslasten ? Ist noch genügend RAM frei etc... ?

Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: nOerkH am 28 August 2019, 01:08:38
Hallo,

durch das erneute Registrieren ist jetzt wohl etwas ganz den Bach runter gegangen

top gibt nichts auffälliges aus würde ich sagen

top - 01:05:32 up 4 days, 12:19,  1 user,  load average: 0,11, 0,08, 0,08
Tasks: 124 total,   1 running,  70 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1,0 us,  0,5 sy,  0,0 ni, 95,4 id,  3,1 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem :   948304 total,    93264 free,   453152 used,   401888 buff/cache
KiB Swap:   102396 total,   102396 free,        0 used.   397140 avail Mem


versuche ich nun per
sudo -u fhem dbus-send --system --type=method_call --print-reply --dest="org.asamk.Signal" /org/asamk/Signal org.asamk.Signal.sendMessage string:Test array:string: string:+43xxxxxx

eine Nachricht zu schicken bekomme ich
Error org.freedesktop.dbus.exceptions.DBusExecutionException: Error Executing Method org.asamk.Signal.sendMessage: Authorization failed!
zurück, die config hat sich nicht geändert und hat davor schonmal funktioniert

muss man nach der Neuregistrierung der Nummer etwas besonderes beachten?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: nOerkH am 28 August 2019, 12:20:25
so es läuft jetzt erstmal wieder (auch mit normaler Reaktionszeit)

scheinbar muss man seinen "Kontakten" nach einer neuen Registrierung der Nummer wieder vertrauen?

sudo -u fhem signal-cli -u +43xxxxxxxx listIdentities
gab folgenden Output:
+43yyyyyyyy: TRUSTED_UNVERIFIED Added: Fri Jun 21 23:04:17 CEST 2019 Fingerprint: *hex-value*  Safety Number: *hex-value*
+43zzzzzzzzz: TRUSTED_UNVERIFIED Added: Sat Jun 22 14:01:05 CEST 2019 Fingerprint: *hex-value*  Safety Number: *hex-value*


anschließend habe ich beiden Einträgen mit
sudo -u fhem signal-cli -u +43xxxxxxxx trust -v "*hex-value*" +43yyyyyyyy

wieder vertraut, jetzt läuft es wieder, ich berichte in ein paar Tagen.

Danke jedenfalls für die Rückmeldung
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: obi am 06 September 2019, 16:18:52
Hallo,
ich habe folgendes Problem mit signal-cli.
Nach einer gewissen Laufzeit hat der Signal Prozess 100% CPU Auslastung auf einem Debian System. Starte ich den Server neu ist wieder alles OK. Senden und Empfangen funktioniert zu diesem Zeitpunkt.
Hat jemand auch so was beobachtet?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Quantum am 07 September 2019, 11:31:33
Hallo obi,

welcher Prozess verursacht die 100% Auslastung? "Signal_tx" ist der Prozess, den das SiSi-Modul erzeugt um im Hintegrund arbeiten zu können. Oder ist es ein signal-cli Prozess ?
Dieser nennt sich aber zumeist "java"

Läuft deine FHEM Instanz in dieser Zeit stabil, oder stürzt sie ab und an unkontrolliert ab (Mit automatischem neustart durch einen Watchdog) ? Gibt es mehr als nur einen Signal_tx Prozess nach einiger Zeit ?

Freundliche Grüße
Quantum
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: obi am 30 September 2019, 18:07:21
Hallo Quantum,
seit lägerem hatte ich nun wieder das Problem.
Des gibt den Signal_tx Prozess mehrmals mit insgesamt 100% CPU Auslastung (siehe Screenshot).
Ich habe eine Watchdog eingerichtet. Dieser wird aber nicht aktiv. Fhem an sich läuft ohne abzustürzen. Nur mit entsprechendem Delay, da die CPU ausgelastet ist.
In den Log-Dateien usw. ist nichts zu finden. Die Funktionalität ist auch gegeben.
Irgendeinen Zusammenhang welcher zu dem Problem führt läst sich nicht erkennen.
Wenn ich den Signal_tx Dienst kille hängt sich fhem auf. Nach einem neuen Start von Fhem ist alles wieder OK.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: obi am 07 Oktober 2019, 06:35:15
Hallo,

ich hatte nun wieder mein Problem mit den mehrmals vorandenen Signal_tx Prozessen. Ich habe nun herausgefunden, dass Fhem durch meinen Watchdog neu gestartet wird (Ursache unklar, nichts im Log zu sehen). Dies führt dann dazu, dass Signal_tx entsprechend nochmal zusätzlich gestartet wird. Ich ändere nun mein Watchdog-Script, dass alle Signal Prozesse auch beendet werden. Dies sollte das Problem lösen.

@Quantum: Eventuell könntest du ja in dein Modul einbauen, dass beim Fhemstart/Modulstart noch vorhandene Prozesse beendet werden?

VG Obi
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Hausautomat am 25 Dezember 2019, 13:05:50
Muss doch auch nochmal ein Danke loswerden. @Quantum + die Wiki-Schreiber: MERCI!

Läuft wunderbar, Einrichtung hat bei aufmerksamen Lesen einwandfrei geklappt. Klasse. :)

Nur eins:
Bei mir läuft signal-cli als Daemon auf'm Raspi unter dem Benutzer fhem, soweit alles gut.
Wenn ich nun auf der command line etwa eine Nummer verifizieren möchte, geht das mit signal-cli nicht, da der daemon die config-datei blockiert.
Also erstmal als root "systemctl stop signal.service", dann als fhem das signal-cli Kommando absetzen und jetzt nicht vergessen, mit "systemctl start signal.service" als root den Daemon wieder starten.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Hausautomat am 25 Dezember 2019, 23:13:38
Zwei Anmerkungen noch:

1. Eher meiner Dusseligkeit zuzuschreiben, trotzdem, falls es jemand gebrauchen kann. Mein Raspi hatte standardmäßig IPv6 aktiviert, im Heimnetz ist es jedoch noch nicht aktiviert. Das führt bei den RR-Servern von signal.org dazu, dass erratisch die Verbindung per IPv6 versucht wird - und scheitert. Ein

echo "1" > /proc/sys/net/ipv6/conf/all/disable_ipv6

hilft.
Zu erkennen ist es daran, dass an der Fehlermeldung "java.net.ConnectException: Failed to connect to cdn.signal.org/2600:9000:21f3:1200:1d:4f32:50c0:93a1:443" (IPv6)

2. Folgenden Fehler / Warnung finde ich im syslog (nicht fhem-log):

Dec 25 19:51:55 fhempi signal-cli[3010]: Dec 25, 2019 7:51:55 PM okhttp3.internal.platform.Platform log
Dec 25 19:51:55 fhempi signal-cli[3010]: WARNING: A connection to https://cdn.signal.org/ was leaked. Did you forget to close a response body? To see where this was allocated, set the OkHttpClient logger level to FINE: Logger.getLogger(OkHttpClient.class.getName()).setLevel(Level.FINE);


Nach erster kurzer Recherche sieht es mir eher nach einem Problem in der signal-cli Implementation aus, als dem Modul. Das Modul spricht ja nur via dbus mit dem signal-cli daemon. Ist das sonst schon jemandem aufgefallen?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: enno am 16 Januar 2020, 14:43:55
Moin,

ich nutze Signal jetzt schon seit einem Jahr ohne große Probleme. Was aber noch nicht gut klappt, sind senden von mehreren Nachrichten innerhalb einer Minute. Wenn ich die erste Nachricht schicke, ist Signal etwa. 40-50 Sek blockiert. Wenn ich innerhalb dieser Zeit eine weitere Nachricht senden möchte, wird diese verschluckt und im log erscheint eine Fehlermeldung, dass Signal erst gestartet werden muss.

Hat das Problem noch jemand? Wenn ja, gibt es einen einfachen Workaround.

Gruss
  Enno
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: darkness am 16 Januar 2020, 15:07:58
Hey,

habe es gerade mal getestet. Ich kann Nachrichten direkt hintereinander senden (benutzte dazu noch das msg-modul, also msg @Empänger). Klappt ohne Probleme.

Gruß

Internals:
   FD         208
   FUUID      5c52a6d2-f33f-ed18-53c4-7410e57cac717dc0
   NAME       SignalCLI
   NR         715
   NTFY_ORDER 50-SignalCLI
   OBJECT     /org/asamk/Signal
   PID        8893
   SERVICE    org.asamk.Signal
   STATE      Connected
   TYPE       SiSi
   VERSION    1.1.1
   sentMsgRecipient +49
   sentMsgResult SUCCESS
   sentMsgText test
   READINGS:
     2019-12-26 02:00:44   msgAttachment   NONE
     2019-12-26 02:00:44   msgGroupId      NONE
     2019-12-26 02:00:44   msgGroupName    NONE
     2019-12-26 02:00:44   msgSender       +49
     2019-12-26 02:00:44   msgText         Bild
     2019-12-26 02:00:44   msgTimestamp    2019-12-26 02:00:47
     2019-12-26 02:00:44   prevMsgAttachment NONE
     2019-12-26 02:00:44   prevMsgGroupId  NONE
     2019-12-26 02:00:44   prevMsgGroupName NONE
     2019-12-26 02:00:44   prevMsgSender   +49
     2019-12-26 02:00:44   prevMsgText     TEXT
     2019-12-26 02:00:44   prevMsgTimestamp 2019-12-19 16:24:17
Attributes:
   enable     yes
   room       develop
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: drhirn am 16 Januar 2020, 15:20:01
Hier auch. Drei Nachrichten direkt hintereinander (so schnell ich halt tippen konnte ;) ). Kamen alle anstandslos in Sekundenbruchteilen an.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Hugendubel01 am 11 April 2020, 16:32:25
Guten Tag Zusammen,

ich habe die Installationsanleitung abgearbeitet. Es klapt alles bis zu dem Punkt "Anschließend wird noch die lokale CommandRef aktualisiert:"
Hier erhalte ich bei der Ausführung des Befehls mehrere Fehlermeldungen mit denen ich (Anfänger) nichts anfangen kann.
Vielleicht kann mir jemand von euch weiterhelfen?

pi@Pi4B-FHEM:/opt/fhem $ sudo /usr/bin/perl contrib/commandref_join.pl
*** EN SISPM line 543: div with attributes (apart from class) is not allowed
*** EN FHEM/70_SISPM.pm: Unbalanced div (1, last line ok: 542)
*** EN FHEM/73_UpsPico.pm: negative tagcount for td, line 1189
*** EN FHEM/73_UpsPico.pm: negative tagcount for tr, line 1190
*** EN WifiLight line 3975: table with attributes (apart from class) is not allowed
*** EN FHEM/32_WifiLight.pm: Unbalanced table (1, last line ok: 3974)
*** DE FHEM/73_UpsPico.pm: negative tagcount for td, line 1369
*** DE FHEM/73_UpsPico.pm: negative tagcount for tr, line 1370
*** DE WifiLight line 4620: table with attributes (apart from class) is not allowed
*** DE FHEM/32_WifiLight.pm: Unbalanced table (1, last line ok: 4619)
pi@Pi4B-FHEM:/opt/fhem $
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: h002 am 15 September 2020, 17:45:59
Kann man über das Modul auch SVGs versenden?

So was wie
msg &{plotAsPng('SVG_dbLog_3')}
scheint nicht so funktionieren.

Danke :-)
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: enno am 15 September 2020, 19:49:52
Moin,

Ich habe das nur über den Umweg https://wiki.fhem.de/wiki/RSS geschafft.

Gruss
  Enno
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: h002 am 16 September 2020, 08:29:49
Ich konnte es mit einer Sub lösen.


sub saveSVGToPNG(@){
my ($plotName) = @_;
open FILE, "> /opt/fhem/fhem_png_plots/$plotName.png";
binmode FILE;
print FILE plotAsPng($plotName);
close FILE;
fhem("msg \&/opt/fhem/fhem_png_plots/$plotName.png");
}


Aufruf der Sub mit dem jeweiligen SVG-Device

{saveSVGToPNG("SVG_dbLog_1")}

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: h002 am 16 September 2020, 10:40:58
Zitat von: enno am 15 September 2020, 19:49:52
Moin,

Ich habe das nur über den Umweg https://wiki.fhem.de/wiki/RSS geschafft.

Gruss
  Enno
Hast du hier das Bild ebenfalls zwischengespeichert oder die url wie z.B. http://fhem:8083/fhem/rss/rssFeed.png  versendet?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: enno am 16 September 2020, 15:46:16
Moin

da ich in Perl eher unterbelichtet bin nutze ich DOIF mit Wait und ein Script. Das Ergebnis ist aber wie bei dir, dass ich das Bild erst zwischenspeicher und dann als Anhang über Signal schicke.

Der Ausführungszweig im DOIF:
(set MYSQL commitCache)({fhem('"sh copy2file.sh"')})(set SIGNAL send @#1234 &/opt/fhem/www/images/move.png)

und die Batchdatei:
wget -bNq http://192.168.0.50:8083/fhem/rss/MyRSS.png -O /opt/fhem/www/images/move.png


Das geht vermutlich auch direkt aus FHEM ohne Batch, aber wie gesagt, in der Konsole bin ich eher zu Hause.

Gruss
  Enno
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: tomcat.x am 21 November 2020, 18:16:11
Danke für das Modul. Habe mich gestern endlich mal dran gemacht, um Telegram abzulösen. Das habe ich zuletzt nur noch für fhem genutzt und auch dafür ist mir Signal lieber. Weiß gar nicht, warum ich das solange vor mir hergeschoben habe. Klar, ist mehr als nur ein paar defines, aber mit der Anleitung im Wiki hat es sofort, ohne Probleme funktioniert.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Mikka am 14 Dezember 2020, 22:05:36
Hallo zusammen,

mir ist da etwas am Modul aufgefallen, weiß aber nicht ob es evtl. an meiner Konfiguration liegt.
Das attr allowedPeer "Comma separated list of recipient(s) and/or groupId(s), allowed to update the msg.* readings and trigger new events when receiving a new message. If the attribute is not defined, everyone is able to trigger new events!!"

Habe eine GruppenID + eine Handy Nummer eingetragen.
"ABC...,+49171xxx"


Internals:
   FD         60
   NAME       Signal
   NR         841
   NTFY_ORDER 50-Signal
   OBJECT     /org/asamk/Signal
   PID        29795
   SERVICE    org.asamk.Signal
   STATE      Connected
   TYPE       SiSi
   VERSION    1.1.1
   sentMsgGroupId ABC...
   sentMsgGroupName Test
   sentMsgResult SUCCESS
   sentMsgText FHEM
   READINGS:
     2020-12-14 21:51:16   msgAttachment   NONE
     2020-12-14 21:51:16   msgGroupId      ABC...
     2020-12-14 21:51:16   msgGroupName    Test
     2020-12-14 21:51:16   msgSender       +49171xxx
     2020-12-14 21:51:16   msgText         F
     2020-12-14 21:51:16   msgTimestamp    2020-12-14 21:51:14
     2020-12-14 21:51:16   prevMsgAttachment NONE
     2020-12-14 21:51:16   prevMsgGroupId  ABC...
     2020-12-14 21:51:16   prevMsgGroupName Test
     2020-12-14 21:51:16   prevMsgSender   +49171xxx
     2020-12-14 21:51:16   prevMsgText     Test123
     2020-12-14 21:51:16   prevMsgTimestamp 2020-12-14 21:50:08
Attributes:
   allowedPeer ABC...,+49171xxx
   defaultPeer ABC...
   enable     yes
   room       System


Mit einer weiteren Handynummer kann ich trotzdem neue events triggern. Kann das einer bestätigen?

Viele Grüße,
Mikka
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Gisbert am 14 Januar 2021, 10:27:38
Hallo Quantum,

vorab, aus Fhem heraus läuft es.
Vielen Dank für dein Modul.

Wenn ich im Fhem-Wiki beim Schritt angekommen bin:
ZitatWar die Registrierung erfolgreich, können nun Nachrichten via signal-cli versendet werden:

signal-cli -u <RegistrierteNummer> send -m "Greetings from FHEM!" <Empfängernummer>
dann erhalte ich folgende Meldung:
Zitatpi@HPT610:/usr/local/bin$ signal-cli -u +49xxxxxxxxx send -m "Greetings from FHEM!" +49xxxxxxxxx
[main] WARN org.asamk.signal.manager.Manager - Failed to resolve uuids from server, ignoring: Authorization failed!
[main] WARN org.asamk.signal.manager.Manager - Failed to get sender certificate, ignoring: Authorization failed!
Failed to send message: Authorization failed!

Diese Meldung erhalte ich auch, wenn ich die Fhem-Installation laut Wiki abgeschlossen habe und ich erfolgreich eine Nachricht von Fhem auf meine Empfängernummer (mein Handy) versendet habe.
Ist das von Bedeutung, muss ich mich drum kümmern, oder kann ich es ignorieren?

Viele Grüße Gisbert
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Carsten K. am 14 Januar 2021, 11:53:42
Hallo zusammen,

telegram ist fast vollständig abgelöst  ;)

Was mir noch fehlt, ist der Empfang von Attachments (vom Handy gesendetes Foto).
Wenn ich es richtig beobachte, geht Signal auf "disconnected", wenn ich ein Foto sende.
In /var/log/syslog konnte ich folgende Details finden:

Jan 14 11:43:06 mach42 signal-cli[15570]: Attachments:
Jan 14 11:43:06 mach42 signal-cli[15570]: - image/jpeg (Pointer)
Jan 14 11:43:06 mach42 signal-cli[15570]:   Id: 93Ncbl9LKVlzQGdnxrXU Key length: 64
Jan 14 11:43:06 mach42 signal-cli[15570]:   Filename: -
Jan 14 11:43:06 mach42 signal-cli[15570]:   Size: 316098 bytes
Jan 14 11:43:06 mach42 signal-cli[15570]:   Voice note: no
Jan 14 11:43:06 mach42 signal-cli[15570]:   Dimensions: 1920x1080
Jan 14 11:43:06 mach42 signal-cli[15570]:   Stored plaintext in: /opt/fhem/.local/share/signal-cli/data/attachments/93Ncbl9LKVlzQGdnxrXU


In fhem kommt zwar der Dateiname an, jedoch keine Dateiendung.

Muss noch etwas konfiguriert werden, damit die Attachment Daten aus FHEM verwendet werden können?

Grüße, Carsten
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Jamo am 15 Januar 2021, 09:18:20
Hallo Gisbert,
Zitatpi@HPT610:/usr/local/bin$ signal-cli -u +49xxxxxxxxx send -m "Greetings from FHEM!" +49xxxxxxxxx
[main] WARN org.asamk.signal.manager.Manager - Failed to resolve uuids from server, ignoring: Authorization failed!
[main] WARN org.asamk.signal.manager.Manager - Failed to get sender certificate, ignoring: Authorization failed!
Failed to send message: Authorization failed!
Nein, das ist nicht ok, kannst Du mal schauen ob Du in /etc/systemd/system/signal.service und  /etc/dbus-1/system.d/org.asamk.Signal.conf den user richtig gesetzt hast? Ich hatte bei der Einrichtung glaube ich die gleiche Meldung und dann habe ich in den beiden Dateien den user aendern muessen (bei mir laeuft fhem unter root).

Gruss
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Gisbert am 15 Januar 2021, 14:13:41
Hallo Jamo,

ZitatNein, das ist nicht ok, kannst Du mal schauen ob Du in /etc/systemd/system/signal.service und  /etc/dbus-1/system.d/org.asamk.Signal.conf den user richtig gesetzt hast? Ich hatte bei der Einrichtung glaube ich die gleiche Meldung und dann habe ich in den beiden Dateien den user aendern muessen (bei mir laeuft fhem unter root).

Fhem läuft bei mir auch unter root. In beiden Dateien ist user=fhem. Demnach ändere ich in beiden Dateien den user auf root, richtig?

Viele​ Grüße​ Gisbert​
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Jamo am 15 Januar 2021, 15:30:34
Ja, genau
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Gisbert am 16 Januar 2021, 10:50:25
Hallo Jamo,

ich hab's genauso umgesetzt und die Konfigurationsdatei(en) neu geladen. Dannach funktioniert das Versenden von Nachrichten aus Fhem weiterhin, aber ich erhalte nach wie vor Fehlermeldungen:
pi@HPT610:~$ signal-cli -u +49yyyyyyyyyy send -m "Greetings from FHEM!" +49xxxxxxxxxx
[main] WARN org.asamk.signal.manager.Manager - Failed to resolve uuids from server,
ignoring: Authorization failed!
[main] WARN org.asamk.signal.manager.Manager - Failed to get sender certificate, ig
noring: Authorization failed!
Failed to send message: Authorization failed!
pi@HPT610:~$


Signal war gestern abend und die ganze Nacht down, aber heute morgen läuft es wieder, also daran kann die Fehlermeldung nicht liegen.

Viele​ Grüße​ Gisbert​
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: drhirn am 16 Januar 2021, 11:46:47
Zitat von: Gisbert am 16 Januar 2021, 10:50:25Signal war gestern abend und die ganze Nacht down, aber heute morgen läuft es wieder, also daran kann die Fehlermeldung nicht liegen.

Ich würde trotzdem mit Versuchen noch warten. Nur, um Ausschließen zu können, dass es an Signal liegt. Bei mir wird immer noch angezeigt, dass es derzeit Probleme gibt.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Jamo am 16 Januar 2021, 14:33:45
Hallo Gisbert, stimmt im signal.service script der Pfad zu der config datei ?
Den musst Du auch noch anpassen, bzw von root $HOME/.local/... nach
/opt/fhem/.local/share/signal-cli/data/ kopieren, das musste ich bei mir auch machen.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Gisbert am 16 Januar 2021, 17:25:14
Zitat von: Jamo am 16 Januar 2021, 14:33:45
Hallo Gisbert, stimmt im signal.service script der Pfad zu der config datei ?
Den musst Du auch noch anpassen, bzw von root $HOME/.local/... nach
/opt/fhem/.local/share/signal-cli/data/ kopieren, das musste ich bei mir auch machen.

Hallo,

ich kopiere meinen jetztigen Stand, der anscheinend jetzt nicht funktioniert hierhin:

pi@HPT610:~$ sudo nano /etc/dbus-1/system.d/org.asamk.Signal.conf
<?xml version="1.0"?> <!--*-nxml-*-->
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
        "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">

<busconfig>
        <policy user="root">
                <allow own="org.asamk.Signal"/>
                <allow send_destination="org.asamk.Signal"/>
                <allow receive_sender="org.asamk.Signal"/>
        </policy>

        <policy context="default">
                <allow send_destination="org.asamk.Signal"/>
                <allow receive_sender="org.asamk.Signal"/>
        </policy>
</busconfig>


pi@HPT610:~$ sudo nano /etc/systemd/system/signal.service
[Unit]
Description=Send secure messages to Signal clients
Requires=dbus.socket
After=dbus.socket
Wants=network-online.target
After=network-online.target

[Service]
Type=dbus
Environment="SIGNAL_CLI_OPTS=-Xms2m"
ExecStart=/opt/fhem/signal-cli/bin/signal-cli -u +49xxxxxxxxxx --config /opt/fhem/.local/share/signal-cli/data/ daemon --system
User=root
BusName=org.asamk.Signal

[Install]
Alias=dbus-org.asamk.Signal.service


Nach Neustart des Services erhalte ich folgende Fehlermeldung:
pi@HPT610:~$ sudo systemctl daemon-reload
pi@HPT610:~$ sudo systemctl reload dbus.service
pi@HPT610:~$ sudo systemctl enable signal.service
pi@HPT610:~$ sudo systemctl restart signal.service
Job for signal.service failed because the control process exited with error code.
See "systemctl status signal.service" and "journalctl -xe" for details.
pi@HPT610:~$ sudo systemctl status signal.service
● signal.service - Send secure messages to Signal clients
   Loaded: loaded (/etc/systemd/system/signal.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2021-01-16 17:05:35 CET; 12s ago
  Process: 11652 ExecStart=/opt/fhem/signal-cli/bin/signal-cli -u +49xxxxxxxxxx --config /opt/fhem/.local/share/signal-cli/data/ daemon --system (code=exited, status=1/FAILURE)
Main PID: 11652 (code=exited, status=1/FAILURE)

Jan 16 17:05:26 HPT610 systemd[1]: Starting Send secure messages to Signal clients...
Jan 16 17:05:35 HPT610 signal-cli[11652]: User is not registered.
Jan 16 17:05:35 HPT610 systemd[1]: signal.service: Main process exited, code=exited, status=1/FAILURE
Jan 16 17:05:35 HPT610 systemd[1]: signal.service: Failed with result 'exit-code'.
Jan 16 17:05:35 HPT610 systemd[1]: Failed to start Send secure messages to Signal clients.


Die Ordner sehen wie folgt aus, mal ist die Berechtigung fhem:dialout mal root:root
root@HPT610:/opt/fhem# cd /opt/fhem/.local/share/signal-cli
root@HPT610:/opt/fhem/.local/share/signal-cli# ls -la
total 12
drwx------ 3 fhem dialout 4096 Jan 14 09:55 .
drwx------ 3 fhem dialout 4096 Jan 14 09:55 ..
drwx------ 4 fhem dialout 4096 Jan 16 17:14 data
root@HPT610:/opt/fhem/.local/share/signal-cli# cd data/
root@HPT610:/opt/fhem/.local/share/signal-cli/data# ls -la
total 40
drwx------ 4 fhem dialout  4096 Jan 16 17:14 .
drwx------ 3 fhem dialout  4096 Jan 14 09:55 ..
-rw------- 1 fhem dialout   893 Jan 14 10:03 +49yyyyyyyyyyy
-rw------- 1 fhem dialout 18743 Jan 16 15:16 +49xxxxxxxxxx
drwx------ 3 fhem dialout  4096 Jan 14 10:13 +49xxxxxxxxxx.d
drwx------ 2 root root     4096 Jan 16 16:43 data
root@HPT610:/opt/fhem/.local/share/signal-cli/data#


Viele Grüße Gisbert
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: drhirn am 16 Januar 2021, 17:32:01
Blöde Frage: Die Registrierung des Users war erfolgreich? Und mit welchem User hast du die gemacht?
Im Wiki wird die Registrierung unter dem User "fhem" gemacht. Du hast in deinen Configs aber den User "root".
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Gisbert am 16 Januar 2021, 18:02:15
Zitat von: drhirn am 16 Januar 2021, 17:32:01
Blöde Frage: Die Registrierung des Users war erfolgreich? Und mit welchem User hast du die gemacht?
Im Wiki wird die Registrierung unter dem User "fhem" gemacht. Du hast in deinen Configs aber den User "root".

Hallo drhirn,

ich bin auch etwas lost ...
Ich hab die Registrierung wie im Wiki mit "fhem" als user durchgeführt.

Das Versenden von Nachricht aus/zu Fhem funktioniert zu/von meinem Handy.

Dann bin ich hier hängengeblieben, da es bei mir mit einem Fehler beendet wird [Edit] -  da kam der Vorschlag mit user=root ins Spiel.
ZitatWar die Registrierung erfolgreich, können nun Nachrichten via signal-cli versendet werden:
signal-cli -u <RegistrierteNummer> send -m "Greetings from FHEM!" <Empfängernummer>

Ich meine mich zu erinnern, dass ich den Befehl zur Registrierung zunächst ohne --voice abgeschickt habe, da ich glaubte, mein DECT-Telefon könnte auch Nachrichten empfangen, dem ist aber nicht so.
Kann es sein, dass meine registrierte Nummer deshalb in den Ordnern mehrfach auftaucht?
Wie sehen die Ordner bei dir aus?

Kann ich Signal "deinstallieren" und alles von neuem beginnen?

Viele Grüße Gisbert
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: drhirn am 16 Januar 2021, 18:13:08
Der Nummer +49xxxx scheint korrekt registriert zu sein. Zumindest glaube ich das, weil's bei dir auch einen Ordner +49xxxxxxxxxx.d gibt.

Wenn du aber aus FHEM eh Nachrichten versenden kannst, frage ich mich gerade, wo das Problem ist?

Versuch mal:
sudo -u fhem signal-cli -u +49xxxxxxxxxx send -m "Greetings from FHEM!" +49empfänger

Eventuell musst du aber davor den D-BUS Dienst beenden
sudo systemctl stop dbus-org.asamk.Signal.service
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Gisbert am 16 Januar 2021, 18:37:34
Zitat von: drhirn am 16 Januar 2021, 18:13:08
Der Nummer +49xxxx scheint korrekt registriert zu sein. Zumindest glaube ich das, weil's bei dir auch einen Ordner +49xxxxxxxxxx.d gibt.

Wenn du aber aus FHEM eh Nachrichten versenden kannst, frage ich mich gerade, wo das Problem ist?

Versuch mal:
sudo -u fhem signal-cli -u +49xxxxxxxxxx send -m "Greetings from FHEM!" +49empfänger

Eventuell musst du aber davor den D-BUS Dienst beenden
sudo systemctl stop dbus-org.asamk.Signal.service

Hallo drhirn,

prinzipiell hast du natürlich recht, bis auf diese beiden kleinen Stolpersteinchen:

1) ExecStart=/opt/fhem/signal-cli/bin/signal-cli -u +49Sender --config /opt/fhem/.local/share/signal-cli/data daemon --system
--> mit dem Ordner "data" startet signal.service nicht - es geht nur ohne "data".
2) Die besagte Fehlermeldung nach: sudo -u fhem signal-cli -u +49Sender send -m "Greetings from FHEM!" +49Empfänger

Ich hasse es, wenn etwas nicht nach Vorgabe verläuft, dann gibt es immer ein mulmiges Gefühl.

Zitatpi@HPT610:/usr/local/bin$ sudo systemctl stop dbus-org.asamk.Signal.service
pi@HPT610:/usr/local/bin$ signal-cli -u +49Sender send -m "Greetings from FHEM!" +49Empfänger
[main] WARN org.asamk.signal.manager.Manager - Failed to resolve uuids from server, ignoring: Authorization failed!
[main] WARN org.asamk.signal.manager.Manager - Failed to get sender certificate, ignoring: Authorization failed!
Failed to send message: Authorization failed!

Trotzdem vielen Dank für deine Bereitschaft zu helfen.
Gisbert
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: drhirn am 16 Januar 2021, 18:40:55
Zwischen meinem Befehl und dem mit der Fehlermeldung ist ein Unterschied! Das sudo -u fhem nämlich. Damit rufst du den Befehl als User fhem auf, mit dem du auch die Nummer registriert hast.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Gisbert am 16 Januar 2021, 19:21:49
Hallo drhirn,

man sieht den Wald vor lauter Bäumen nicht mehr, und leider ist das Wiki an dieser Stelle nicht präzise.

Jetzt läuft es:
pi@HPT610:/usr/local/bin$udo systemctl stop dbus-org.asamk.Signal.service
pi@HPT610:/usr/local/bin$ sudo -u fhem signal-cli -u +49Sender send -m "Greetings from FHEM!" +49Empfänger
1610820988007
pi@HPT610:/usr/local/bin$


Dann ist dieser Punkt auch geklärt.
Vielen Dank
Gisbert
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: drhirn am 16 Januar 2021, 20:07:25
Ja, leider. Wundert mich, weiter unten ist's nämlich richtig. Ich hab's korrigiert.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: xl:bk am 17 Januar 2021, 13:27:00
Hallo zusammen,

vielen Dank für das super Modul und auch die schöne Beschreibung im Wiki. Genau nach dieser Schritt- für Schritt Anleitung habe ich es bei mir auch zum Laufen gebracht, obwohl ich mit Linux nicht so fit bin (Windoof Mausschubser  ;) )
Eine Frage habe ich allerdings noch: ich versuche Nachrichten mit Zeilenumbruch zu versenden. Das will irgendwie nicht klappen. Etwas weiter vorne im Thread habe ich gelesen, dass hierfür im Text ein /n verwendet werden kann.
Leider funktioniert das bei mir irgendwie überhaupt nicht (signal-cli Version 0.6.2).

Sollte das nicht so funktionieren?


set Signal send Testnachricht/nmit Zeilenumbruch


es funktioniert bei mir weder mit send, msg oder message

Hat vielleicht jemand einen Tipp für mich?

Grüße
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: drhirn am 17 Januar 2021, 14:42:55
Ich hab das nie probiert. Aber wenn, dann musst du einen Backslash (\) nehmen. Probier das mal.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: xl:bk am 17 Januar 2021, 16:51:24
Ne, hilft leider nicht.
Sehr lustig: he nachdem ob man "message, msg oder send" benutzt, kommt beim Senden von Backslash ein Slash zurück...
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: drhirn am 17 Januar 2021, 17:01:58
signal-cli kann's offenbar: https://github.com/AsamK/signal-cli/issues/105
Aber durch die Verwendung von FHEM als "frontend" klappt das leider nicht.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: xl:bk am 18 Januar 2021, 17:36:30
OK, dann trotzdem vielen Dank für Info.
Das mit der signal-cli hatte ich auch schon gefunden. Daher dachte ich erst, der Fehler sitzt vor dem Bildschirm  :D
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Init am 19 Januar 2021, 16:47:28
Zitat von: Quantum am 12 April 2019, 20:57:24
Hallo drhirn,

leider fehlt mir die Zeit, das Modul offiziell zu betreuen. Sollte sich jemand bereit erklären dies zu übernehmen, hab ich nichts dagegen. Ansonsten ist dies vorerst nicht geplant.

Hallo Axxl,

ich betreibe das Modul schon seit längerem in einem Dockercontainer. Ich nutze dazu den offiziellen Container und leite meinen daraus ab. Kannst dich aus den Dateien bedienen.
Das nachfolgende tut für meine zwecke seinen Dienst. Ist eigentlich nicht für andere bestimmt. Sollte etwas nicht funktionieren, leiste ich für die Dateien keinen support!

Dockerfile:

    ARG BASE_IMAGE="fhem/fhem"
    ARG BASE_IMAGE_TAG="latest"
    FROM ${BASE_IMAGE}:${BASE_IMAGE_TAG}

    ARG L_SIGNAL_CLI="0.6.2"

    # Install base environment
    RUN DEBIAN_FRONTEND=noninteractive apt-get update \
        && DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends \
            cpanminus \
            build-essential \
            wget \
            shared-mime-info \
          dbus \
          default-jre-headless \
          libunixsocket-java \
            lirc \
            net-tools \
            hping3 \
            wakeonlan \
            \
        && cpanm \
          Net::DBus \
          Lirc::Client \
            Crypt::Cipher::AES \
        && rm -rf /root/.cpanm \
        && sed -i s,/dev/lircd,/var/run/lirc/lircd,g /usr/local/share/perl/5.24.1/Lirc/Client.pm \
        && wget https://github.com/AsamK/signal-cli/releases/download/v${L_SIGNAL_CLI}/signal-cli-${L_SIGNAL_CLI}.tar.gz \
        && tar xf signal-cli-${L_SIGNAL_CLI}.tar.gz -C /opt \
        && ln -sf /opt/signal-cli-${L_SIGNAL_CLI}/bin/signal-cli /usr/local/bin/ \
        && apt-get purge -qqy \
            build-essential \
            cpanminus \
            subversion \
        && apt-get autoremove -qqy && apt-get clean \
        && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

    COPY ./src/pre-start.sh /pre-start.sh
    COPY ./src/000_fhem-nopasswd /etc/sudoers.d/
    COPY ./src/org.asamk.Signal.service /usr/share/dbus-1/system-services/
    COPY ./src/org.asamk.Signal.conf /etc/dbus-1/system.d/
    ADD https://raw.githubusercontent.com/Quantum1337/32_SiSi.pm/master/FHEM/32_SiSi.pm /fhem/FHEM/32_SiSi.pm
    RUN mkdir /run/dbus && mkdir /run/lirc
    RUN mkdir /opt/signal-cli && mkdir /opt/lirc
    RUN chmod +x /pre-start.sh

    VOLUME [ "/opt/signal-cli" ]
    VOLUME [ "/opt/lirc" ]


pre-start.sh:

#!/bin/bash
export NUMBER="${NUMBER:-"undef"}"
export SLEEPTIME="${SLEEPTIME:-"10s"}"
export LIRC="${LIRC:-"no"}"

if [ $NUMBER != "undef" ]; then

   if [ -s /var/run/dbus/pid ]; then
      rm /var/run/dbus/pid
   fi
     
   echo "Starting DBus System Daemon"
   dbus-daemon --system --address=unix:path=/run/dbus/system_bus_socket

   echo "Starting signal-cli"
   /usr/local/bin/signal-cli -u $NUMBER --config /opt/signal-cli daemon --system &

   echo "Wait $SLEEPTIME to give signal-cli time to come up"
   sleep $SLEEPTIME
fi

if [ "$LIRC" = "yes" ]; then

   if [ ! -d "/var/run/lirc" ]; then
      mkdir "/var/run/lirc"
   fi
   echo "Starting lircd"
   /usr/sbin/lircd -O /opt/lirc/lirc_options.conf /opt/lirc/lircd.conf
fi



docker-compose:


services:
  fhem:
    image: XXX/fhem:latest
    privileged: true
    restart: always
    network_mode: "host"
    ports:
      - "7072:7072"
      - "8083:8083"
    volumes:
      - "./fhem/data:/opt/fhem/"
      - "./fhem/lirc:/opt/lirc/"
      - "./fhem/signal-cli:/opt/signal-cli"
    devices:
      - "/dev/lirc0:/dev/lirc0"
    environment:
      NUMBER: "+49XXXX
      SLEEPTIME: "5"

Hallo zusammen,

ich versuche gerade anhand der Config von Quantum im Docker-Container "fhem/fhem" das Signal Modul zum Laufen zu bekommen.

Leider erhalte ich beim Start folgenden Fehler:
dbus-daemon --system --address=unix:path=/run/dbus/system_bus_socket
dbus[8679]: Unknown username "systemd-network" in message bus configuration file
dbus[8679]: Unknown username "systemd-resolve" in message bus configuration file
dbus[8679]: Unknown username "systemd-timesync" in message bus configuration file
dbus-daemon[8679]: Failed to start message bus: Failed to bind socket "/run/dbus/system_bus_socket": No such file or directory


Hat jemand eine Idee, woran dies liegen könnte?

Vorab vielen Dank
Grüße
Marc
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: memento_10 am 19 Januar 2021, 21:03:04
Hallo zusammen,

auch von meiner Seite ein großes Danke für das Modul!! Telegram ist mir schon länger ein Dorn im Auge und könnte hiermit abgelöst werde.

Die Einrichtung des Modules klappte dank dem tollen Wiki-Beitrag in Minuten. Das Senden von Nachrichten aus FHEM funktioniert einwandfrei.

Jetzt aber meine Frage (ich hoffe, ich habe nichts überlesen): Sollte der Empfang von Nachrichten (also vom Handy an fhem) mit der Standard-Konfig lt. Wiki bereits funktionieren?

Bei mir kommt nämlich gar nichts an.  ???

Liebe Grüße!
Simon
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Jamo am 19 Januar 2021, 21:18:15
Hi Simon, ja klar, das sollte andersrum (von Handy an FHEM) auch funktionieren. Anders machts ja auch keinen Sinn, sonst hätte man ja nur einen Push Dienst und keinen Messenger. Hast Du an die Nummer gesendet, die du für fhem registriert hast?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Jamo am 19 Januar 2021, 21:28:44
Hallo xl:bk,
ZitatSollte das nicht so funktionieren?

Code: [Auswählen]
set Signal send Testnachricht/nmit Zeilenumbruch

es funktioniert bei mir weder mit send, msg oder message
Bei mir gehts so mit Zeilenumbruch:

my $menu = "C00 = Schalter0\nC01 = Schalter1\nC02 = Schalter2\nC03 = Schalter3";
fhem('set '.$NAME.' msg @'.$sender.' '.$menu);

liefert im Signal messenger ($NAME durch den Signal device name und $sender durch deine Nummer ersetzten):
C00 = Schalter0
C01 = Schalter1
C02 = Schalter2
C03 = Schalter3
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: phoenix-anasazi am 20 Januar 2021, 07:41:34
Zitat von: memento_10 am 19 Januar 2021, 21:03:04
Hallo zusammen,

auch von meiner Seite ein großes Danke für das Modul!! Telegram ist mir schon länger ein Dorn im Auge und könnte hiermit abgelöst werde.

Die Einrichtung des Modules klappte dank dem tollen Wiki-Beitrag in Minuten. Das Senden von Nachrichten aus FHEM funktioniert einwandfrei.

Jetzt aber meine Frage (ich hoffe, ich habe nichts überlesen): Sollte der Empfang von Nachrichten (also vom Handy an fhem) mit der Standard-Konfig lt. Wiki bereits funktionieren?

Bei mir kommt nämlich gar nichts an.  ???

Liebe Grüße!
Simon

Guten Morgen du musst die Version 0.7.4 installieren. Es gab wohl einen Bug, hab mich damit gestern auch rumgeschlagen  ;)
Ich hab aber auch noch eine Frage:
Wie kann ich eine Gruppe als defaultPeer angeben?
Ich habe iene GroupId mit 43 Stellen plus =
Ich habe jetzt versucht mir vorangestellter # oder einem zusätzlichen =. Funktioniert aber alles nicht. Ich bekomme die Fehlermeldung
Invalid argument abcd567890123456789212345678901234567890123= to defaultPeer. Must be one or more valid recipient(s) or groupId(s)

Senden an die Gruppe und empfangen funktioniert problemlos. Hat sich da mit den neuen Gruppen etwas geändert?
Vielen Dank für das Modul und Grüße
Sascha
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: memento_10 am 20 Januar 2021, 07:50:31
Zitat von: phoenix-anasazi am 20 Januar 2021, 07:41:34
Guten Morgen du musst die Version 0.7.4 installieren. Es gab wohl einen Bug, hab mich damit gestern auch rumgeschlagen  ;)

Guten Morgen Sascha,

vielen Dank, da bin ich ja erleichtert.
Gibt's da so etwas wie ein Update, oder einfach die neue Version laden und die Dateien ersetzen?

LG
Simon
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: phoenix-anasazi am 20 Januar 2021, 07:53:35
Guten Morgen Simon,

ich habe die alte Version gelöscht und die neue aus dem git reinkopiert. Habe allerdings FHEM auch auf einem Raspi 4 laufen, da musste ich mir signal-cli selber bauen, dass die Unterstützung für die neuen Gruppenfunktionen funktioniert (für was auch immer die gut sind  :D ).

VG
Sascha
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: memento_10 am 20 Januar 2021, 12:42:21
Danke nochmal @Sascha!

Nach dem Wechsel auf 0.7.4 klappt auch das Empfangen wunderbar!

LG
Simon
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Kohle77 am 20 Januar 2021, 12:56:31
Hi,
mal noch eine blöde Frage. Wenn ich in der FHEM GUI eingebe
Zitatversion 32_SiSi.pm
bekomme ich keine Version angezeigt.
Soll oder ist das so?

Gruß
Christian
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: BAfH am 21 Januar 2021, 09:09:49
Guten Morgen,

ich würde auch gerne auf SiSi umsteigen, klingt gut. Mein Problem ist nur, ich nutze FHEM in Docker.
Den Forum Eintrag habe ich gefunden, nur jetzt verlassen mich die Geister, wo ich die Dateien finde.

Meine Docker
Zitat von: Quantum am 12 April 2019, 20:57:24
Hallo drhirn,

leider fehlt mir die Zeit, das Modul offiziell zu betreuen. Sollte sich jemand bereit erklären dies zu übernehmen, hab ich nichts dagegen. Ansonsten ist dies vorerst nicht geplant.

Hallo Axxl,

ich betreibe das Modul schon seit längerem in einem Dockercontainer. Ich nutze dazu den offiziellen Container und leite meinen daraus ab. Kannst dich aus den Dateien bedienen.
Das nachfolgende tut für meine zwecke seinen Dienst. Ist eigentlich nicht für andere bestimmt. Sollte etwas nicht funktionieren, leiste ich für die Dateien keinen support!

Dockerfile:

    ARG BASE_IMAGE="fhem/fhem"
    ARG BASE_IMAGE_TAG="latest"
    FROM ${BASE_IMAGE}:${BASE_IMAGE_TAG}

    ARG L_SIGNAL_CLI="0.6.2"

    # Install base environment
    RUN DEBIAN_FRONTEND=noninteractive apt-get update \
        && DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends \
            cpanminus \
            build-essential \
            wget \
            shared-mime-info \
          dbus \
          default-jre-headless \
          libunixsocket-java \
            lirc \
            net-tools \
            hping3 \
            wakeonlan \
            \
        && cpanm \
          Net::DBus \
          Lirc::Client \
            Crypt::Cipher::AES \
        && rm -rf /root/.cpanm \
        && sed -i s,/dev/lircd,/var/run/lirc/lircd,g /usr/local/share/perl/5.24.1/Lirc/Client.pm \
        && wget https://github.com/AsamK/signal-cli/releases/download/v${L_SIGNAL_CLI}/signal-cli-${L_SIGNAL_CLI}.tar.gz \
        && tar xf signal-cli-${L_SIGNAL_CLI}.tar.gz -C /opt \
        && ln -sf /opt/signal-cli-${L_SIGNAL_CLI}/bin/signal-cli /usr/local/bin/ \
        && apt-get purge -qqy \
            build-essential \
            cpanminus \
            subversion \
        && apt-get autoremove -qqy && apt-get clean \
        && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

    COPY ./src/pre-start.sh /pre-start.sh
    COPY ./src/000_fhem-nopasswd /etc/sudoers.d/
    COPY ./src/org.asamk.Signal.service /usr/share/dbus-1/system-services/
    COPY ./src/org.asamk.Signal.conf /etc/dbus-1/system.d/
    ADD https://raw.githubusercontent.com/Quantum1337/32_SiSi.pm/master/FHEM/32_SiSi.pm /fhem/FHEM/32_SiSi.pm
    RUN mkdir /run/dbus && mkdir /run/lirc
    RUN mkdir /opt/signal-cli && mkdir /opt/lirc
    RUN chmod +x /pre-start.sh

    VOLUME [ "/opt/signal-cli" ]
    VOLUME [ "/opt/lirc" ]


pre-start.sh:

#!/bin/bash
export NUMBER="${NUMBER:-"undef"}"
export SLEEPTIME="${SLEEPTIME:-"10s"}"
export LIRC="${LIRC:-"no"}"

if [ $NUMBER != "undef" ]; then

   if [ -s /var/run/dbus/pid ]; then
      rm /var/run/dbus/pid
   fi
     
   echo "Starting DBus System Daemon"
   dbus-daemon --system --address=unix:path=/run/dbus/system_bus_socket

   echo "Starting signal-cli"
   /usr/local/bin/signal-cli -u $NUMBER --config /opt/signal-cli daemon --system &

   echo "Wait $SLEEPTIME to give signal-cli time to come up"
   sleep $SLEEPTIME
fi

if [ "$LIRC" = "yes" ]; then

   if [ ! -d "/var/run/lirc" ]; then
      mkdir "/var/run/lirc"
   fi
   echo "Starting lircd"
   /usr/sbin/lircd -O /opt/lirc/lirc_options.conf /opt/lirc/lircd.conf
fi



docker-compose:


services:
  fhem:
    image: XXX/fhem:latest
    privileged: true
    restart: always
    network_mode: "host"
    ports:
      - "7072:7072"
      - "8083:8083"
    volumes:
      - "./fhem/data:/opt/fhem/"
      - "./fhem/lirc:/opt/lirc/"
      - "./fhem/signal-cli:/opt/signal-cli"
    devices:
      - "/dev/lirc0:/dev/lirc0"
    environment:
      NUMBER: "+49XXXX
      SLEEPTIME: "5"


Kann mir da jemand einen Tipp geben oder nutzt jemand SiSi in Docker. Oder wie ich wo was ändern müsste.
meine docker-compose.yml    fhem:
        image: fhem/fhem:latest
        restart: always
        ports:
            - "8083:8083"
            - "8084:8084"
            - "7072:7072"
            - "8090:8090"
        volumes:
         - /etc/localtime:/etc/localtime:ro
         - /etc/timezone:/etc/timezone:ro
         - ./fhem/core/:/opt/fhem/
        network_mode: host
#
#        networks:
#            - fhem-network
        devices:
            - "/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0:/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0"
            - "/dev/ttyUSB0:/dev/ttyUSB0"
            - "/dev/ttyUSB1:/dev/ttyUSB1"
        environment:
            FHEM_UID: 1000
            FHEM_GID: 1000
            # User root           
            #FHEM_UID: 0
            #FHEM_GID: 0
            TIMEOUT: 10
            RESTART: 1
            TELNETPORT: 7072
            TZ: Europe/Berlin
        depends_on:
            - "mysql"
            - "mqtt"

Danke und bleibt gesund
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: drhirn am 21 Januar 2021, 09:16:24
Welche Dateien?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: BAfH am 21 Januar 2021, 09:49:51
Zitat von: drhirn am 21 Januar 2021, 09:16:24
Welche Dateien?
Es geht um die dockerfile und pre-start.sh.
Wo ich diese finde bzw ändern kann.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: drhirn am 21 Januar 2021, 09:52:18
Naja, selber erstellen und den Inhalt von Quantums Post rein kopieren. Damit erstellst du dir dann aber halt ein neues FHEM-Image. Du müsstest deine docker-compose.yml somit entsprechend anpassen.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: BAfH am 21 Januar 2021, 10:15:47
Okay, Danke ich werde es mal im Testsystem durchführen.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Init am 21 Januar 2021, 14:51:29
Zitat von: BAfH am 21 Januar 2021, 09:09:49
Guten Morgen,

ich würde auch gerne auf SiSi umsteigen, klingt gut. Mein Problem ist nur, ich nutze FHEM in Docker.
Den Forum Eintrag habe ich gefunden, nur jetzt verlassen mich die Geister, wo ich die Dateien finde.

Meine Docker
Kann mir da jemand einen Tipp geben oder nutzt jemand SiSi in Docker. Oder wie ich wo was ändern müsste.
meine docker-compose.yml    fhem:
        image: fhem/fhem:latest
        restart: always
        ports:
            - "8083:8083"
            - "8084:8084"
            - "7072:7072"
            - "8090:8090"
        volumes:
         - /etc/localtime:/etc/localtime:ro
         - /etc/timezone:/etc/timezone:ro
         - ./fhem/core/:/opt/fhem/
        network_mode: host
#
#        networks:
#            - fhem-network
        devices:
            - "/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0:/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0"
            - "/dev/ttyUSB0:/dev/ttyUSB0"
            - "/dev/ttyUSB1:/dev/ttyUSB1"
        environment:
            FHEM_UID: 1000
            FHEM_GID: 1000
            # User root           
            #FHEM_UID: 0
            #FHEM_GID: 0
            TIMEOUT: 10
            RESTART: 1
            TELNETPORT: 7072
            TZ: Europe/Berlin
        depends_on:
            - "mysql"
            - "mqtt"

Danke und bleibt gesund

Hallo Thorben,

ich glaube, wir haben gerade ein ähnliches Problem.

Ich versuche auch gerade auf SiSi umzusteigen und habe hierbei div. Probleme.

Hier https://forum.fhem.de/index.php/topic,84996.msg1123368.html#msg1123368 (https://forum.fhem.de/index.php/topic,84996.msg1123368.html#msg1123368) habe ich schon diesbezüglich eine Frage gestellt, aber bislang noch keine Antwort erhalten. Es gibt zurzeit Problme mit dbus.

Und hier https://forum.fhem.de/index.php/topic,89745.msg1123349.html#msg1123349 (https://forum.fhem.de/index.php/topic,89745.msg1123349.html#msg1123349) habe ich noch eine Frage zum Docker-Image gestellt, da ich beim Erstellen des Containers Fehler beim Laden der APT packages habe. Dies ist aber nicht wirklich schlimm, da ich die Paket auch in der pre-start.sh holen kann, wenn diese noch nicht vorhanden sind.

Ich könnte dir folgende Dateien zur Verfügung stellen:

Vielleicht kommst du damit ja weiter als ich.

Mit signal-cli selbst kann ich jedenfalls Nachrichten versenden, aber es gibt halt noch dbus Probleme im Docker-Container.

VG
Marc
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: xl:bk am 21 Januar 2021, 20:54:32
Hi Jamo,

ZitatBei mir gehts so mit Zeilenumbruch:

danke dir. Das werde ich bei Gelegenheit mal ausprobieren.
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: mhill am 22 Januar 2021, 00:13:23
Zitat von: Quantum am 08 März 2018, 22:04:47
hab gerade die Änderungen der letzten Tage gepushed

Neue Features:
-> Senden von Gruppennachrichten
-> Es werden Internals über den Status und den Inhalt der letzten Nachricht gesetzt.

Änderungen:
-> die Bedienung der set Kommandos send|msg|_msg|message wurde verändert. Verhält sich nun ähnlich wie TelegramBot

Bugfixes:
-> GruppenIds werden nun richtig angezeigt

Für nähere Informationen siehe: https://github.com/Quantum1337/32_SiSi.pm

Weitere Wünsche und konstruktive Kritik gerne gesehen !

Freundliche Grüße
Quantum

Zunächst Danke für dieses Modul. Super Arbeit.
Nach den momentanen Sicherheitsbedenken bei Telegram möchte ich auf Signal umsteigen.

Das Einrichten hat mit der Anleitung im WIKI super funktioniert.
Ich habe eine Festnetznummer für FHEM eingerichtet. Damit kann ich auch einwandfrei aus FHEM an ein oder mehrere Nummern Senden, auch mit Anhang.

Jetzt habe ich mit dem Handy eine Gruppe angelegt und die Familie und FHEM eingeladen.

Und hier habe ich
--> Problem 1:  Wie kann ich in FHEM die Gruppe bestätigen? Am Handy ist das ja kein Problem.
Und
--> Problem 2: Wo finde ich die GruppenID

Hier würde ich mir eine Erweiterung des WIKI freuen.

Zum Vollständigen ablösen von Telegram brauche ich noch eine Lösung für SSCam dort können Snapshots direkt durch anlagen des
Attributes   snapTelegramTxt
tbot => teleBot, peers => , subject => Bewegung bei $CAM. Es wurde $CTIME der Schnappschuss $FILE erstellt
mit Telegram versendet werden. Kennt jemand eine Lösung um das dann mit Signal zu tun?

signal-cli ist      Version 0.7.4
32_SiSi.pm ist  Version 1.1.1

Viele Grüße und bleibt alle gesund
Markus

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: lupoo am 22 Januar 2021, 10:09:19
Hallo Thorben,

ich nutze selbst SiSi in Docker.
Ich bin zwar noch unerfahren im Forum, aber ich versuche es mal ;-)

Das Dockerfile will folgende Dateien zum Kopieren bereitgestellt bekommen:

COPY ./src/pre-start.sh /pre-start.sh
COPY ./src/000_fhem-nopasswd /etc/sudoers.d/
COPY ./src/org.asamk.Signal.service /usr/share/dbus-1/system-services/
COPY ./src/org.asamk.Signal.conf /etc/dbus-1/system.d/


Zudem ist natürlich die aktuelle Version der signal-cli anzupassen:
ARG L_SIGNAL_CLI="0.7.2"


Die Datei pre-start.sh habe ich ein wenig abgeändert, da ich kein lirc nutze:


#!/bin/bash
export NUMBER="${NUMBER:-"undef"}"
export SLEEPTIME="${SLEEPTIME:-"10s"}"

if [ $NUMBER != "undef" ]; then

   if [ -s /var/run/dbus/pid ]; then
      rm /var/run/dbus/pid
   fi

   echo "Starting DBus System Daemon"
   dbus-daemon --system --address=unix:path=/run/dbus/system_bus_socket

   echo "Starting signal-cli"
   /usr/local/bin/signal-cli -u $NUMBER --config /opt/signal-cli daemon --system &

   echo "Wait $SLEEPTIME to give signal-cli time to come up"
   sleep $SLEEPTIME
fi



Die Datei 000_fhem-nopasswd nutze ich nicht.
Ich habe sie im Dockerfile auskommentiert.


In der org.asamk.Signal.service steht:


[D-BUS Service]
Name=org.asamk.Signal
Exec=/bin/false
SystemdService=dbus-org.asamk.Signal.service
User=root



Einer meiner Fehler war, dass ich in der org.asamk.Signal.conf den user nicht auf root umgestellt hatte.


<?xml version="1.0"?> <!--*-nxml-*-->
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
        "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">

<busconfig>
        <policy user="root">
                <allow own="org.asamk.Signal"/>
                <allow send_destination="org.asamk.Signal"/>
                <allow receive_sender="org.asamk.Signal"/>
        </policy>

        <policy context="default">
                <allow send_destination="org.asamk.Signal"/>
                <allow receive_sender="org.asamk.Signal"/>
        </policy>
</busconfig>



Ein Auszug meiner docker-compose.yml

    fhem:
        container_name: fhem
        restart: always
        ports:
            - "8083:8083"
            - "7072:7072"
        build: fhem
        privileged: true
   
        volumes:
          - /dorfplatz/fhem/:/opt/fhem/
          - /dorfplatz/fhem/signal-cli:/opt/signal-cli

        networks:
            - fhem-network
        environment:
            FHEM_UID: 1000
            FHEM_GID: 1000
            TIMEOUT: 10
            RESTART: 1
            TELNETPORT: 7072
            TZ: Europe/Berlin
            NUMBER: "+49xxxxxxxxxx"
            SLEEPTIME: "5"


Hier noch mein Dockerfile:
ARG BASE_IMAGE="fhem/fhem"
ARG BASE_IMAGE_TAG="latest"
FROM ${BASE_IMAGE}:${BASE_IMAGE_TAG}

ARG L_SIGNAL_CLI="0.7.2"

# Install base environment
RUN DEBIAN_FRONTEND=noninteractive apt-get update \
    && DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends \
        cpanminus \
        build-essential \
        wget \
        shared-mime-info \
        dbus \
        default-jre-headless \
        libunixsocket-java \
        net-tools \
        hping3 \
        wakeonlan \
    && cpanm \
        Net::DBus \
        Lirc::Client \
        Crypt::Cipher::AES \
    && rm -rf /root/.cpanm \
    && wget https://github.com/AsamK/signal-cli/releases/download/v${L_SIGNAL_CLI}/signal-cli-${L_SIGNAL_CLI}.tar.gz \
    && tar xf signal-cli-${L_SIGNAL_CLI}.tar.gz -C /opt \
    && ln -sf /opt/signal-cli-${L_SIGNAL_CLI}/bin/signal-cli /usr/local/bin/ \
    && apt-get purge -qqy \
        build-essential \
        cpanminus \
        subversion \
    && apt-get autoremove -qqy && apt-get clean \
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

COPY ./src/pre-start.sh /pre-start.sh
#COPY ./src/000_fhem-nopasswd /etc/sudoers.d/
COPY ./src/org.asamk.Signal.service /usr/share/dbus-1/system-services/
COPY ./src/org.asamk.Signal.conf /etc/dbus-1/system.d/
ADD https://raw.githubusercontent.com/Quantum1337/32_SiSi.pm/master/FHEM/32_SiSi.pm /fhem/FHEM/32_SiSi.pm
RUN mkdir /run/dbus
RUN mkdir /opt/signal-cli

VOLUME [ "/opt/signal-cli" ]


Zudem ist es wichtig, dass du bei der Konfiguration der Telefonnummer und anderen "manuellen" signal-cli aufrufen, immer den Operator --config /opt/signal-cli nutzt. z.B.:

signal-cli --config /opt/signal-cli -u <Telefonnummer> verify <VerificationCode>

Ich hoffe, ich konnte dir ein wenig weiterhelfen.

Grüße
Michel
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: oelkanne am 24 Januar 2021, 16:19:25
Hallo,

Ich habe ein Problem, mein DOIF zu Sisi zu gestalten. Es gelingt mir nicht, ein Komma oder einen Zeilenumbruch zu generieren.
Habe schon versucht, das Komma zu quoten, in Klammern zu setzten, den Zeilenumbruch mir <br>, mit \n usw. aber nichts geht.
Wie generiere ich den Text am beiliegenden Beispiel?

defmod myNotifications DOIF ([07:30|Mo Di Mi Do Fr] or [08:30|Sa So])\
(set Signal msg @+49173xxxxx  texttext, text text, text zeilenumbruch text text)


Verzweiflung pur!
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: lupoo am 24 Januar 2021, 17:58:47
Zitat von: Jamo am 19 Januar 2021, 21:28:44
Hallo xl:bk,Bei mir gehts so mit Zeilenumbruch:

my $menu = "C00 = Schalter0\nC01 = Schalter1\nC02 = Schalter2\nC03 = Schalter3";
fhem('set '.$NAME.' msg @'.$sender.' '.$menu);

liefert im Signal messenger ($NAME durch den Signal device name und $sender durch deine Nummer ersetzten):
C00 = Schalter0
C01 = Schalter1
C02 = Schalter2
C03 = Schalter3


Zitatsignal-cli itself doesn't do any unescaping, you need to pass the newline directly.

https://github.com/AsamK/signal-cli/issues/105

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Adimarantis am 24 Januar 2021, 18:02:30
Hallo,

ich war schon dabei mein eigenes Modul zu schreiben, weil ich nichts gefunden hatte. Nunja - offiziell ist dies ja noch nicht und "Signal" ist leider ein ziemlich übler Suchbegriff.

Da hab ich gleich eine Anregung mitsamt Code für das Thema Gruppen. Diese kryptischen base64 Strings sind ja nicht wirklich benutzerfreundlich. Das erste was ich in meiner Version eingebaut habe, war ein decoding damit man die echten Gruppennamen verwenden kann.

Dazu hole ich mir zuerst die Liste der bekannten Gruppen in speichere diese zwischen. (Müsste man bei der Initialisierung, bei "unbekannte Gruppe" oder per "set" Befehl triggern:
sub Signalbot_Refreshgroups($@) {
    my ( $hash ) = @_;
Log3 $hash->{NAME}, 5, "Signalbot Refreshgroups called ";
my $bus = Net::DBus->system; #

my $service = $bus->get_service("org.asamk.Signal");
my $object = $service->get_object("/org/asamk/Signal");
my $grouplist="";
my $ret = $object->getGroupIds();
my @groups = @$ret;
foreach (@groups) {
my @group=@$_;
my $groupname = $object->getGroupName(\@group);
$hash->{helper}{groups}{$groupname}=join(" ",@group);
Log3 $hash->{NAME}, 5, "found group ".$groupname;
$grouplist=$grouplist." ".$groupname;
}
readingsSingleUpdate($hash, 'groups', $grouplist,0);
}


Jetzt enthält sowohl das Helperobject versteckt eine Liste der Gruppenids mit Echtnamen, sowie ein sichtbares Reading zeigt dem Anwender an in welchen Gruppen er ist. Die Liste wird als string mit Leerzeichen-separierten ints gespeichert, was ich am einfachsten zu handeln fand.

Bevor dann die eigentliche Nachricht verschickt wird, wird die Liste durchsucht ($rec enthält den Gruppennamen im Klartext):
my @arr="";
my $group=$hash->{helper}{groups}{$rec};
if (defined($group)) {
@arr=split(" ",$group);
} else {
#Automatically refresh and try again?
return "Unknown group ".$_." please check or refresh group list";
}


Dann entsprechend sendMessage mit \@arr

Und schon wird das ganze gleich viel Benutzerfreundlicher :)

Sonst bin ich mit meinem Versuch nicht signifkant über das Versenden von Nachrichten rausgekommen und beim Callback für die Receive messages steckengeblieben. Ich hatte da auch schon ein forking in Erwägung gezogen, weil es wohl ohne $reactor->run() nicht funktioniert, das aber FHEM angehalten hätte.

Ich hab übrigens gleich einen Stacktrace gekriegt, da ich den defaultPeer nicht gesetzt hab:
2021.01.24 17:32:12 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/32_SiSi.pm line 143.
2021.01.24 17:32:12 1: stacktrace:
2021.01.24 17:32:12 1:     main::__ANON__                      called by ./FHEM/32_SiSi.pm (143)
2021.01.24 17:32:12 1:     main::SiSi_Set                      called by fhem.pl (3813)
2021.01.24 17:32:12 1:     main::CallFn                        called by fhem.pl (1919)
2021.01.24 17:32:12 1:     main::DoSet                         called by fhem.pl (1951)
2021.01.24 17:32:12 1:     main::CommandSet                    called by fhem.pl (1251)
2021.01.24 17:32:12 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2721)
2021.01.24 17:32:12 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (991)
2021.01.24 17:32:12 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (596)
2021.01.24 17:32:12 1:     main::FW_Read                       called by fhem.pl (3818)
2021.01.24 17:32:12 1:     main::CallFn                        called by fhem.pl (759)


Ich hab da noch paar andere Ideen, muss mir aber erstmal in Ruhe anschauen, was so alles schon implementiert ist.

Gruß
Jörg

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: oelkanne am 24 Januar 2021, 20:22:40
@lupoo
Vielen Dank!
Funktioniert!
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Adimarantis am 24 Januar 2021, 23:13:04
Hat bei SiSi das empfangen von Message schon mal funktioniert?
Ich bekomme zumindest keine Callbacks in SiSi - der geforkte Empfangsprocess hängt einfach und wartet auf der Filehandle.
Wenn man das add_read() weglässt, dann kehrt $reactor->run() sofort zurück. Das selbe Problem hatte ich in meinem Modulversuch.

Ein blankes Perl Programm ala
my $bus = Net::DBus->system;
my $service = $bus->get_service("org.asamk.Signal");
my $object = $service->get_object("/org/asamk/Signal");

my $sig1 = $object->connect_to_signal("ReceiptReceived", \&rec_callback);
my $sig2 = $object->connect_to_signal("SyncMessageReceived", \&sync_callback);
my $sig3 = $object->connect_to_signal("MessageReceived", \&msg_callback);
my $reactor = Net::DBus::Reactor->main();
$reactor->run();


Wartet brav auf Rückmeldungen und ruft die Callbacks auf, so dass man Nachrichten empfangen kann.
Selbst wenn ich diesen Code ganz genau so in einem geforkten FHEM process laufen lassen, dann kommt run() sofort zurück und keine Callbacks werden aufgerufen. Das passiert auch direkt in FHEM ohne fork - hat also mit dem forken eher nichts zu tun.

Ist das nur bei mir so? Hat jemand Ideen?

Gruß,
Jörg
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: phoenix-anasazi am 25 Januar 2021, 06:45:24
Guten orgen,

keine Ahnung, ob dir das hilft, kenne mich damit zu wenig aus. Aber im Git zu signal-cli wird irgendwo erwähnt, dass signal-cli receive regelmäßig ausgeführt werden muss, dass die Nachrichten auch empfangen werden können.

Grüße
Sascha
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Jamo am 25 Januar 2021, 07:28:14
Hallo Adimarantis,
ZitatHat bei SiSi das empfangen von Message schon mal funktioniert?
Hast Du die signal-cli Version 0.7.4 installiert? Es gab wohl einen Bug in älteren Versionen,
https://forum.fhem.de/index.php/topic,84996.msg1123516.html#msg1123516
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Adimarantis am 25 Januar 2021, 09:20:31
Hallo,

ja ich habe die aktuelle signal-cli Version laufen und mit einem kleinen Beispielprogramm in der Kommandozeile funktioniert auch alles - nur innerhalb von FHEM eben nicht.
Mit "verbose=3" müssten dann bei Messageempfang Meldungen wie
The message: '$logText' with timestamp: '$timestamp' was received from sender: '$sender' in group: ...
kommen.
Außerdem sollten die "prev" Reading wie "prevMsgText" befüllt sein. Kann jemand bestätigen, das das bei euch klappt? Wenn ja, muss irgendwas bei mir falsch konfiguriert sein.

Danke,
Jörg
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: phoenix-anasazi am 25 Januar 2021, 09:24:33
Hallo,

ich kann empfangen (inkl. prev...), habe es allerdings nur einmal ausprobiert, da ich das eigentlich nicht brauche. Außerdem war es kurz nach ausführen des signal-cli receive (s.o.).

Grüße
Sascha
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Adimarantis am 26 Januar 2021, 20:36:05
Nach einem Neustart des Rapsi ging es plötzlich.

Ich habe just for fun, mal ein kleines Programmierprojekt gestartet und "from scratch" eine eigene Implementierung gestartet (hatte schon angefangen bevor ich SiSi gefunden hatte).
Habe weitgehend die Syntax und Namen von SiSi übernommen (und am Schluss auch etwas Code, z.B. für das parsing der "send" Zeile).
Die größten Unterschiede sind "unter der Haube", es gibt aber auch ein paar Verbesserungen:

- Callback Technik: select() Loop statt fork() (spart Speicher)
- Gruppen in Klarnamen statt kryptische base64 strings und nur mit "#" statt "#@"
- Kontakte in Klarnamen (sobald einmalig eine Nachricht gesendet/empfangen wurde - gibt leider keine Funktion das gleich aufzulösen)
- Timestamps lesbar

Nicht implementiert: Blocken von Kontakten oder Gruppen

Wer mag, darf das gerne Testen. Hat sicher noch Fehler (hoffentlich nichts gravierendes) würde mich also über Feedback freuen.

Edit: Update - es war aus Testgründen ein "reinit" nötig um den Nachrichtenempfang zu aktivieren. Wird jetzt sofort beim Start aktiviert

Jörg
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Mikka am 26 Januar 2021, 20:47:10
Zitat von: Adimarantis am 26 Januar 2021, 20:36:05
Nach einem Neustart des Rapsi ging es plötzlich.

Ich habe just for fun, mal ein kleines Programmierprojekt gestartet und "from scratch" eine eigene Implementierung gestartet (hatte schon angefangen bevor ich SiSi gefunden hatte).
Habe weitgehend die Syntax und Namen von SiSi übernommen (und am Schluss auch etwas Code, z.B. für das parsing der "send" Zeile).
Die größten Unterschiede sind "unter der Haube", es gibt aber auch ein paar Verbesserungen:

- Callback Technik: select() Loop statt fork() (spart Speicher)
- Gruppen in Klarnamen statt kryptische base64 strings und nur mit "#" statt "#@"
- Kontakte in Klarnamen (sobald einmalig eine Nachricht gesendet/empfangen wurde - gibt leider keine Funktion das gleich aufzulösen)
- Timestamps lesbar

Nicht implementiert: Blocken von Kontakten oder Gruppen

Wer mag, darf das gerne Testen. Hat sicher noch Fehler (hoffentlich nichts gravierendes) würde mich also über Feedback freuen.

Jörg

Hi Jörg,

werde ich mal testen. Ist zwar kein Fehler aber unter Ubuntu 18.04 geht es nicht auf Anhieb:

Please install Net::DBus in version 1.2.0 or higher. Your version is: 1.1.0

VG,
Mikka
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Jamo am 26 Januar 2021, 20:49:18
Hallo Jörg,
also das ersetzt dann das Modul aus dem ersten post https://github.com/Quantum1337/32_SiSi.pm ?
Gleiche Voraussetzungen uns Software installation wie im SiSi Wiki beschrieben  https://wiki.fhem.de/wiki/SiSi ?

Dann muss man das 32_SiSi.pm erstmal loeschen/renamen, und eine neue DEF machen, oder?
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Adimarantis am 26 Januar 2021, 21:13:20
Hallo Jamo,

ja ist 100% kompatibel bezüglich der Systemvorausetzungen. Aber nur mit signal-cli 0.7.4 und Net:DBus 1.2.0 getestet - kann also sein dass ich etwas von der API nutze, dass in älteren Versionen anders ist, also ggf. updaten.

Sollte sich eigentlich nichtmal mit SiSi beissen, will heissen, das man beides Parallel betreiben können sollte (ohne Gewähr) - es kriegen dann halt beide Module Messages.

Jörg
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Adimarantis am 26 Januar 2021, 22:09:50
Zitat von: Mikka am 26 Januar 2021, 20:47:10
Please install Net::DBus in version 1.2.0 or higher. Your version is: 1.1.0

Da ich ein wenig unsauber an die internas von Net::DBus muss, bestehe ich lieber auf der neusten Version.

Einfach:
sudo cpan install -f Net:DBus


Das "-f" brauche ich auf meinem Raspberry 4, weil einer der Tests mit einer ominösen Meldung fehl schlägt. Das steht auch schon als bugreport auf CPAN, aber ich befürchte das Modul wird nicht mehr so aktiv gewartet (letztes update 2019).

Jörg

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: heiko.ne am 30 Januar 2021, 16:57:50
Hallo zusammen,

ich wollte erstmal in aller Kürze mein Lob für das Modul aussprechen.
Mir gelingt gerade sehr gut der Übergang von Telegram zu Signal ...

Aber eine Frage hätte ich:
Wie kann ich mit dem Sisi-Modul direkt von einem SVG-Plot ein PNG senden lassen?
Bei Telegram hatte ich das über folgenden Befehl gemacht:

fhem("set TelegramBot cmdSend \@$sender {plotAsPng('AussenTempHum_current_day')}");


So funktionierts leider nicht, da das "plotAsPng" als Funktionalität unbekannt scheint:

fhem("set SignalBot message \@$sender \&{plotAsPng('AussenTempHum_current_day')}");


Vielen Danke für Vorschläge und Hilfe!

Gruß
Heiko
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: enno am 30 Januar 2021, 20:56:53
Moin Jörg,
da ich wegen Umzug in ein Proxmox Container mein FHEM gerade sowieso neu aufgesetzt habe, bin ich gleich auf dein Modul umgestiegen. Mit dem "Original" klapp es mit den neuen Gruppen-IDs nicht mehr. Dein Modul schluckt die neuen Gruppen IDs ohne Probleme. Soweit ich es bisher testen konnte, läuft es. Klappte sogar ohne die nicht vorhandene Dokumentation ;)

Bin mal auf die weitere Entwicklung gespannt.

Gruss
  Enno
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Adimarantis am 30 Januar 2021, 23:26:42
Guten Abend,

@heiko.ne : Die von dir gesuchte Funktion gibt es unter SiSi nicht.

Nachdem ich mit meinem "Konkurrenzprodukt Signalbot" aber gerade in Programmierlaune war, habe ich das jetzt bei mir eingebaut:

Es sind jetzt solche Konstruktionen im "send" Befehl möglich:
set SignalBot send "@({my $var=\"Joerg\";; return $var;;})" "&( {plotAsPng('SVG_Anhebung')} )" Hallo, hier kommt dein Plot

Folgendes ist zu beachten:
- Zu interpretierende Befehlsketten müssen mit runden Klammern umgeben werden.
- Sofern Leerzeichen enthalten sind muss der ganze Teil-String (inklusive der @ # und & Markierungen in Anführungszeichen (double quotes) eingebettet werden
- Enhält dieser String wiederum selbst Anführungszeichen sind diese mit mit \" zu escapen
- Für Perl Befehlsketten muss das Semikolon doppelt verwendet werden
- Die Textnachricht selbst kann, aber muss nicht in Anführungszeichen eingebettet werden, wenn sie am Ende des Befehls kommt
- Die Fehlerbehandlung und Auswertung des "send" Befehls ist ziemlich komplex geworden. Bitte um Rückmeldung über Befehle die nicht wie beschrieben funktionieren oder sonstiges seltsames Verhalten
Zur Vollständigkeit:
- Individuelle Empfänger fangen mit @ an, es sind sowohl Telefonnummer (+49...) oder auch Klarnamen möglich (sofern sie FHEM bekannt sind) - Klarnamen mit Leerzeichen habe ich nicht getestet, sollten wie oben beschrieben mit Anführungszeichen aber gehen
- Gruppen fangen mit # an und sind immer im Klarnamen. Sie werden automatisch übersetzt - Leerzeichen wieder wie oben
- Anhänge fangen mit & an und müssen einen von FHEM lesbaren Dateinamen (möglichst mit Pfad) enthalten

Neu:
- Die Kontaktliste kann aus dem internen Speicher in ein reading kopiert werden  (set .. saveContacts) und steht dann auch nach einem FHEM Neustart wieder zur Verfügung
  (Dies ist ein Workaround, da signal-cli bisher keine Möglichkeit über DBus zur Verfügung stellt die Kontaktliste abzufragen, sondern diese nur durch
   empfangende Messages befüllt werden kann - ich denke das wird sich noch ändern, da die Funktion "listcontacts" auf der Kommandozeile bereits existiert)

@enno: Danke fürs Feedback, freut mich das es bei dir gleich geklappt hat.

Gruß,
Jörg

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: heiko.ne am 31 Januar 2021, 09:15:11
Hallo Jörg,

Danke für Deine Ausführungen.
Ich habs probiert, scheitere aber leider  :( und kriege nicht raus, woran es liegt.

Zur Beschreibung, wie ich das einsetze:
In einem Per-Skript "99_mySignalBotUtils.pm" steht eine Variable "$sender" zur Verfügung, die die Telefonnummer des Absenders der Anfrage beinhaltet (z.B. +49151xxxxxxx).

In meinem "SignalBot" geschieht das Antworten mit Textnachricht nun z.B. so:


fhem("set SignalBot message \@$sender [TH_Sensor_1:temperature:r]°C ([TH_Sensor_1:humidity:r]% rel. Feuchte)");


Daher war meine Idee, Deinem Vorschlag nach das Versenden von SVGs als PNGs so umzusetzen:


fhem("set SignalBot send \@$sender \"&( {plotAsPng('SVG_Anhebung')} )\" Hallo, hier kommt dein Plot");


Ich habe dabei das Escapen der " mittels \" ergänzt, wie beschrieben.
Leider kommt als Ausgabe:
Zitat"&( {plotAsPng('AussenTempHum_current_day')} )" Hallo, hier kommt dein Plot

Vielleicht kannst Du mir noch ein hilfreichen Hinweis geben, was da nicht stimmt.

Danke und schönen Sonntag.
Gruß
Heiko
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Adimarantis am 31 Januar 2021, 10:35:04
Hallo Heiko,

Ich hab mir mal ein dummy DOIF erstellt und bei mir geht das. Grundsätzlich ist DOIF immer tricky, weil dort schon ein erstes parsing erfolgt und daher gewisse Elemente schon verschwinden bevor ich sie bekomme. Eine Methode kann dann z.B. doppeltes escapen sein also \\\" woraus dann für mich ggf. \" wird, woraus ich wieder " mache.

Aber, bist du sicher dass du mein Modul (50_Signalbot) verwendest? Und nicht das SiSi Modul from Threadersteller Quantum?
Erfordert auch ein neues "define" mit anderem Modulnamen.

Quantum war in diesem Thread schon über ein Jahr nicht mehr aktiv und hat in einem Post sogar angeregt gehabt das Modul abzugeben.
Mein Modul ist parallel dazu als Programmierübung entstanden und nachdem ich SiSi entdeckt hatte, habe ich die Syntax weitgehend an SiSi angepasst und auch ein paar Sachen mit copy&paste von SiSi und jetzt auch Telegrambot übernommen. Es ist aber trotzdem ein kompletter rewrite, der eine andere interne Methode verwendet um Nachrichten zu empfangen und ist auch mit aktellen Versionen von signal-cli (im Moment 0.7.4) getestet.

Gruß,
Jörg
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: heiko.ne am 31 Januar 2021, 11:12:08
Hallo Jörg,

nein, ich bin mir nicht sicher, das ich 50_SingalBot verwende  :) - ich hab gedacht, dass 32_Sisi das richtige wäre, lasse mich da aber gerne belehren.
Leider habe ich im Forum keine Quelle für Dein 50_SignalBot gefunden.
Kannst Du mir einen Hinweis geben, wo ich es finde?

Gruß
Heiko

Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: enno am 31 Januar 2021, 11:24:01
Moin Jörg,

dein Modul läuft ohne Auffälligkeiten, super! Frage: besteht die Möglichkeit ein Attribut allowedPeer und ein Status Reading oder ein Internal STATE zu bekommen?

Gruss
  Enno
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Adimarantis am 31 Januar 2021, 11:27:43
Zitat von: heiko.ne am 31 Januar 2021, 11:12:08
Kannst Du mir einen Hinweis geben, wo ich es finde?
Hängt doch an meinem vorigen Post

Jörg
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Adimarantis am 31 Januar 2021, 12:28:25
Zitat von: enno am 31 Januar 2021, 11:24:01
dein Modul läuft ohne Auffälligkeiten, super! Frage: besteht die Möglichkeit ein Attribut allowedPeer und ein Status Reading oder ein Internal STATE zu bekommen?

Ja, probier mal wie es geht. Größtenteils Copy&Paste von SiSi übernommen. Kann es sein das SiSi hier ein Problem hatte, wenn private Nachrichten geschickt wurden? Da scheint die Bedingung aufgrund der leeren Gruppe immer zugetroffen zu haben - kann jetzt aber auch an meiner unterschiedlichen Implementierung gelegen haben.

Wird evtl. Zeit in einen neuen Thread zu wechseln, da es schon Verwechslungen mit SiSi gab und ich nicht wie sonst üblich das Modul immer im ersten Post updaten kann.

Ich kann leider aktuell noch viele Szenarien nicht wirklich testen, da ich nur mein Festnetz (auf FHEM) und mein Handy auf Signal habe - meine Family ist noch nicht überzeugt :)
Daher fehlen mir jetzt weitgehend Tests mit mehreren Kommunikationspartnern (und daher war die Einschränkung mit allowedPeer für mich bisher auch kein Thema).

Btw. die (englische) Doku habe ich inzwischen auch etwas aufgepeppt. Auf parallel die Deutsche pflegen habe ich im aktuellen Entwicklungsstadium nicht wirklich Lust :)

Jörg
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: enno am 31 Januar 2021, 12:51:17
Zitat von: Adimarantis am 31 Januar 2021, 12:28:25
Wird evtl. Zeit in einen neuen Thread zu wechseln, da es schon Verwechslungen mit SiSi gab und ich nicht wie sonst üblich das Modul immer im ersten Post updaten kann.

Ich komme mit ;D. Wenn du jemand zum Testen brauchst, ich nutze Signal auf drei Handys, mit zwei Gruppen (eine alte und eine neue Gruppenversion) Gekoppelt habe ich das ganze mit Babble, damit ist die Trefferquote höher, wenn ich per Signal Informationen anfordere,

Gruss
  Enno
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: eurofinder am 31 Januar 2021, 13:59:41
@Adimarantis:
Würde es sehr begrüßen, wenn du für dein Modul einen gesonderten Thread eröffnest, um inhaltliche Verwechslungen zu vermeiden.

Gruß
eurofinder
Titel: Antw:Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]
Beitrag von: Adimarantis am 31 Januar 2021, 19:17:41
Ab jetzt bitte alle Fragen zu Signalbot in diesem Thread weiterführen:
https://forum.fhem.de/index.php/topic,118370.0.html

Da findet ihr auch nochmal den aktuellen Code und etwas Anleitung.

Dieser Thread sollte weiter wieder nur SiSi vorbehalten sein.

Gruß,
Jörg