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

Begonnen von Adimarantis, 31 Januar 2021, 19:16:19

Vorheriges Thema - Nächstes Thema

binford6000

Zitat von: Adimarantis am 03 März 2021, 10:24:05
Signalbot V2 Beta Test, Update zu signal-cli 0.8.1


Der Fehler: "Error in getContactName:Error Executing Method org.asamk.Signal.getContactName: null" kann ignoriert werden. Er tritt auf wenn mit Profilen ohne Namen (bei Kommunikationspartnern) gearbeitet wird. Ein Fix wird es wohl erst mit der nächsten signal-cli Version geben. Am Besten dafür sorgen dass alle Kontakte auch in ihrem Profil (das ist nicht setContact!) einen Namen gesetzt haben.

Gruß,
Jörg

Hallo Jörg,
hier auch soweit alles bene. Musste allerdings neu registrieren. Und hab demzufolge auch den o.g. Fehler bekommen.
Aber sonst alles OK.

Um den Hinweis von Jamo aufzunehmen: Du könntest auch die Version von 50_Signalbot.pm als INTERNAL zur
Verfügung stellen. Dann hast du wirklich alles Infos wenn es mal bei jemandem hakt.

VG Sebastian

Sany

Hallo Jörg,

habe auch gleich mal die Beta2 probiert, installer läuft ohne Probleme durch (habe NICHT neu registriert)....(ok, nachdem ich die TelNr. im Script geändert hatte gings dann. Muss ich mich dran gewöhnen...)

Ich habe jetzt gerade den Bilderversand getestet, aber das klappt nicht. Es kommt gar nichts an, im lastError Reading steht:
Error in sendMessage:/tmp/signalbot1614874881.61289.jpg: /tmp/signalbot1614874881.61289.jpg (No such file or directory)

und mit verbose5 steht das im Log:
2021.03.04 17:21:21.612 3: mySignalBot: Before parse:@S &/opt/fhem/www/snapshots/CamEinfahrt_snapshot.jpg:

2021.03.04 17:21:21.616 4: mySignalBot: sendMessage called for S:/tmp/signalbot1614874881.61289.jpg:
2021.03.04 17:21:21.617 5: mySignalBot: ASync Dbus Call: sendMessage Args:,ARRAY(0x5559addc1a58),ARRAY(0x5559acc1a098)
2021.03.04 17:21:21.623 4: mySignalBot: ASync Error for: sendMessage


Sieht nach Deiner Fehlerbeschreibung
ZitatDen ersten Bug habe ich schon selber gefunden  :)
Durch den asynchronen Mechanismus hatte ich Bilder schneller gelöscht als verschickt.
Update im oberen Post.
aus,
ich nutze die neuesete SignalBot.pm (55190bytes, Mar 3 12:45) und Neustart ist gemacht.

Gruß

Sany
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Adimarantis

@Sany: Das mit dem Bilder muss eigentlich gehen. Ich habe jetzt die Version im Post mit derjenigen ersetzt die Versionsnummern anzeigt. Bitte nochmal aktualisieren.
Im internal Reading VERSION muss dann 2.0.1-beta stehen. (ich mach jetzt mal Unterschritte in der Hoffnung das die 2.1 dann Release wird).

@binford: Neuregistrierung sollte eigentlich nicht nötig sein. Die Fehlermeldung kommt übrigens dann, wenn ANDERE in Signal keinen Profilnamen gesetzt haben, sollte aber weg sein, wenn man diesem Anwender mit setContact einen eigenen Kontaktnamen gibt.

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Sany

@Jörg,

Bild schicken klappt jetzt wieder. Und vielen Dank für die VERSION-Anzeige:
VERSION Signalbot:2.0.1-beta signal-cli:0.8.1 Protocol::DBus:0.16

macht es übersichtlicher :)

Viele Grüße

Sany
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Ralli

Und noch eine Bitte:

Bitte die aktuellen Versionen immer im ersten Beitrag verlinken, nicht mittendrin - mittendrin am besten überall raus holen.
Gruß,
Ralli

Proxmox 8.2 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.7.20240420) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

binford6000

Zitat von: Adimarantis am 04 März 2021, 18:05:25
@binford: Neuregistrierung sollte eigentlich nicht nötig sein. Die Fehlermeldung kommt übrigens dann, wenn ANDERE in Signal keinen Profilnamen gesetzt haben, sollte aber weg sein, wenn man diesem Anwender mit setContact einen eigenen Kontaktnamen gibt.

Moin Jörg,
doch ich musste neu registrieren. Komisch...  :o

Heute morgen habe ich die letzte Version eingespielt:
VERSION
Signalbot:2.0.1-beta signal-cli:0.8.1 Protocol::DBus:0.16


Danach eine Nachricht an mich:
sentMsg hallo 2021-03-05 08:20:13

Und kurze Zeit später wieder der Fehler:
lastError Error in getContactName:Error Executing Method org.asamk.Signal.getContactName: null
2021-03-05 08:21:03


Die Nachricht geht ganz normal durch und der Peer ist bekannt und hat einen Namen und alles...
Was mir noch aufgefallen ist: In der Signal App hatte ich nur meinen  Vornamen + ein Emoji gesetzt.
Der Nachname war leer. Vielleicht liegts daran...

Jetzt muss ich nur noch meine nextcloud Two-Factor App auf Signal umstellen und dann kann Telegram
in Rente gehen  ;)

VG Sebastian

Adimarantis

Hi Sebastian,

Zitat von: binford6000 am 05 März 2021, 08:32:33
Der Nachname war leer. Vielleicht liegts daran...
Der Fall ist eigentlich explizit in signal-cli abgebildet... wobei gestest hab ichs nicht.

Wenn du verbose 5 machst, dann solltest du bei einem "get contacts all" folgende Zeilen im Logfile sehen:
2021.03.02 22:23:59 5: SignalBot: Sync Dbus Call: getContactName Args:+49xxxxxxxx
2021.03.02 22:23:59 4: SignalBot: Sync Error for: getContactName

Jeweils die Zeile vor dem "Sync Error" sollte dir sagen, welche Nummer Probleme macht. Wenn du dann ein setContact machst um der Nummer einen Namen zu geben, sollte das Problem eigentlich weg sein.

Ich diskutiere mit dem signal-cli Author gerade einen Fix für das Problem, aber wir sind uns noch nicht einig :) Hilft aber unmittelbar eh nichts, weil es dann erst in die 0.8.2 kommen würde.

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

binford6000

Hier die Ausgabe:
2021.03.05 13:17:14 5:  signalbot: Sync Dbus Call: listNumbers Args:empty
2021.03.05 13:17:14 5:  signalbot: Sync Dbus Call: isContactBlocked Args:+49...
2021.03.05 13:17:14 5:  signalbot: Sync Dbus Call: isContactBlocked Args:+49...
2021.03.05 13:17:19 5:  signalbot: Sync Dbus Call: getGroupIds Args:empty
2021.03.05 13:17:19 5:  signalbot: Sync Dbus Call: getGroupName Args:ARRAY(0x563c26fe1690)
2021.03.05 13:17:19 5:  found group Tigers
2021.03.05 13:17:19 5:  signalbot: Sync Dbus Call: isMember Args:ARRAY(0x563c26fe1690)
2021.03.05 13:17:19 5:  signalbot: Sync Dbus Call: isGroupBlocked Args:ARRAY(0x563c26fe1690)
2021.03.05 13:17:19 5:  signalbot: Sync Dbus Call: getGroupMembers Args:ARRAY(0x563c27605db0)
2021.03.05 13:17:19 5:  signalbot: Sync Dbus Call: getContactName Args:+49...
2021.03.05 13:17:19 4:  signalbot: Sync Error for: getContactName


Und die passende Fehlermeldung:
lastError Error in getContactName:Error Executing Method org.asamk.Signal.getContactName: null 2021-03-05 13:17:19

Weder die Kontakte noch die Gruppe ist natürlich blocked...
Wie gesagt funktioniert auch alles soweit.

weini

Hallo Jörg!

Bin immer mehr beindruckt von deiner Geschwindigkeit und Qualität!
Ich habe auf die Beta-2 mit signal-cli 0.8.1 umgestellt. Bei der Intallation (sudo signal_install.sh system) wurde bei mir das "Protocol dBus" Perl Modul nicht installiert. Bin mir nicht sicher, ob das hätte passieren sollen. Die Fehlermeldung im FHEM Modul ist aber sehr klar, insofern war die Nachinstallation kein Problem.

1000 Dank dir für das generelle Refactoring, so dass auch Commands jetzt die Readings aktualisieren und vor allem grundsätzlich der allowedPeer geprüft wird.
Ich habe ein generisches notify aufgebaut, dass die Differenzierung von authorisierten und nicht-authorisierten Commands abbildet und zusätzlich eine Favoritendefinition erlaubt. Dazu nutze ich user-defined Attribute auf dem signalblot Device.
Ich kann den Code neben einer Beschreibung entweder hier posten oder im Wiki-Artikel als ergänzenden Use Case mit aufnehmen. Wäre dir letzteres recht?

VG,
weini

Adimarantis

Zitat von: weini am 06 März 2021, 11:07:26
Bin immer mehr beindruckt von deiner Geschwindigkeit und Qualität!
Danke für die Blumen.

Zitat
Ich kann den Code neben einer Beschreibung entweder hier posten oder im Wiki-Artikel als ergänzenden Use Case mit aufnehmen. Wäre dir letzteres recht?
Da können wir gerne ein Kapitel im Wiki machen - alles was längerfristig interessant ist, sollte dort landen - im Thread findet man hinterher nichts mehr.

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

weini

Hi Jörg!

Habe den Wiki Eintrag ergänzt. Bitte gerne um Feedback, wenn etwas überarbeitet werden soll.

VG,
weini

Sany

Hallo Jörg,

die Beta läuft bei mir stabil, nichts dran auszusetzen, alle Messages kommen wie gewünscht. (Manchmal auf dem Handy etwas später, vermute das liegt am Powermanagement (Android), muss ich noch ergründen.
Was mir noch aufgefallen ist sind Zeilenumbrüche:
Wenn ich direkt im Signabot-Device oder z.B. aus einem DOIF heraus ein
set signalBot send Zeile1\nZeile2\nZeile3\nZeile4 sende wird nur der erste Zeilenumbruch durchgeführt, bei allen danach steht dann ein n mit im Text.
Wenn ich z.B. in einem DOIF erst einer Variablen den Text zuweise und dann sende kommt alles wie gewünscht in mehreren Zeilen. Irgendwo geht da der Escape-backslash verloren.

Ansonsten: tolles Modul, kommt sicher bald ins fhem-update ;)

Viele Grüße :)

Sany
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Adimarantis

Kleines Update 2.02-beta im Original Post : https://forum.fhem.de/index.php/topic,118370.msg1136873.html#msg1136873


  • Mehrere \n im send sollten jetzt korrekt funktionieren
  • Verbesserung der Formatierung vom getGroup (lange Gruppennamen werden abgeschnitten, lange Memberlisten umgebrochen)
  • Experimenteller Support für mehrere Accounts
  • Kleinere Fixes

Anmerkung zu den Multi-Accounts:
Wenn man mehrere Nummern unter signal-cli definiert und beim Start des Daemons den -u Parameter weglässt, dann werden alle Accounts unter speziellen DBus-Pfaden aktiv. Achtung: Der Standard-Pfad funktioniert dann aber gar nicht mehr und damit ging bisher Signalbot auch nicht.
Jetzt kann man für diesen Fall die Telefonnummer an das "define" anhängen und sogar mehrere Instanzen erzeugen die auf unterschiedliche Nummern hören.

Ich hoffe das ich da noch Änderungen in signal-cli einbringen kann, die das Verhalten etwas deterministischer machen (z.B. dann eine Master Instanz, die zwar nicht verbunden ist, aber gewisse Grundfunktionalität wieder Auflistung der Accounts und möglichst sogar die Registrierung anbietet).

Gruß,
Jörg


Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Sany

kurze Rückmeldung zu 2.02beta:
- installer läuft problemlos durch
- mehrere zeilenumbrüche funktionieren wie gewünscht.
die anderen Änderungen treffen für mich nicht zu.

Viele Grüße und vielen Dank

Sany
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

Mad-at

Hallo!

Finde ich ganz klasse, hat gleich mal Pushbullet ersetzt! Viel schneller&zuverlässiger&einfacher - wenns einmal installiert ist. Das Script ist auch gut, aber bei mir wollte es ein Captcha - vermutlich weil österreichische IP aber deutsche Telefonnummer. Reine Spekulation natürlich.

Aaber: seit ich die Beta 2.0.1 installiert habe ist der Speicherverbrauch auch von fhem selber (also nicht nur die knapp 400 mb durch die cli) deutlich gestiegen. Hat meinen Raspi 3 mit den standard 100Mb Swap File verlässlich in den Tod getrieben (zwischen 13-15 Minuten nach Reboot). Mit 1024 Mb Swap war es viel besser, hat ca 3h durchgehalten. Dann ist mir der Geduldsfaden gerissen und ich hab 8GB Swap angelegt, seither ist Ruhe...

Nur so als Feedback und potentielle Hilfe für andere

Lg
Matthias