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

cwagner

Oh, wie einfach und  letzendlich doch logisch.
Funzt!
Danke vielmals für die schnelle Hilfe

Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

SouzA

Zitat von: cwagner am 11 Februar 2022, 22:35:59
Oh, wie einfach und  letzendlich doch logisch.
Funzt!
Danke vielmals für die schnelle Hilfe

Christian
Oder
(
[Temp_Kuehlfach:temperature] >= 8
or
[Temp_Gefrierfach:temperature] >= -10
)
(set Signalbot send @XX $DEVICE wird zu warm oder ist ausgefallen! [$DEVICE:temperature]°C )
DOELSE


Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

cwagner

Richtig, die ganze Bandbreite auch von $EVENTS oder $EVENT kann man benutzen, da kann man sehr schöne Überwachungen stricken und vor allem: die ganze Warn-DOIFs in eins zusammenfassen.

Diese Vereinfachung ohne Anführung scheint mir aber nicht im DOIF-Perlmodus zu funktionieren.

Vielen Dank für den weiteren Tipp

Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

SouzA

Zitat von: cwagner am 12 Februar 2022, 22:53:43
Richtig, die ganze Bandbreite auch von $EVENTS oder $EVENT kann man benutzen, da kann man sehr schöne Überwachungen stricken und vor allem: die ganze Warn-DOIFs in eins zusammenfassen.

Diese Vereinfachung ohne Anführung scheint mir aber nicht im DOIF-Perlmodus zu funktionieren.

Vielen Dank für den weiteren Tipp

Christian
Keine Ahnung, was du mit DOIF-Perlmodus meinst...
Bei mir verschickt fhem so Nachrichten.

Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

cwagner

Deine Schreibweise ist das klassische DOIF "define Test DOIF (Bedingung/Ereignis) (Aktion(en))". Beim Betrieb wird dies in Perl übersetzt.

Der Perlmodus von DOIF ist eine Variante, bei der nach Definition der Code direkt in Perl übersetzt wird, was Geschwindigkeitsvorteile bringt: define Test_Perl DOIF {if (Bedingung/Ereignis) {Aktion(en)}}

Herzliche Grüße

Christian
PI 2B+/5 Raspbian 12, Perl 5.36.0, FHEM 6.3: 295 Module in ConfigDB: Steuerung Heizkessel, FBH, Solarthermie, kontr. Lüftung mit WRG. Smarthome u.a. HMCUL, 1-Wire (FT232RL ; DS2480B), EnOcean (TCM EPS3), MQTT2. DOIF, PID20, Threshold, OWX; Micropelt IRTV, Volkszähler, SolarForecast; MariaDB

SouzA

Zitat von: cwagner am 13 Februar 2022, 14:52:20
Deine Schreibweise ist das klassische DOIF "define Test DOIF (Bedingung/Ereignis) (Aktion(en))". Beim Betrieb wird dies in Perl übersetzt.

Der Perlmodus von DOIF ist eine Variante, bei der nach Definition der Code direkt in Perl übersetzt wird, was Geschwindigkeitsvorteile bringt: define Test_Perl DOIF {if (Bedingung/Ereignis) {Aktion(en)}}

Herzliche Grüße

Christian
Um was für Geschwindigkeitsvorteile sprechen wir da? 0,1s 0,5s..?
Ich schreib meine Doifs immer so... Aus dem einfachen Grund, weil Perl gruselig ist... (für mich! 😁). Hätte es das DOIF in fhem so nicht gegeben, hätte ich mich mit was anderem beschäftigt.
Sorry, das müsste jetzt aber ein anderes Thema sein.

Aber danke für deine Erklärung. War mit so nicht bewußt, dass es das in Doif gibt, weil es dadurch schneller geht.

Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

TomHB

Hallo Zusammen,

hier nur die Info das ich seit neustem eine Meldung von dem Modul beim Starten von FHEM im Log finde:


PERL WARNING: binmode() on unopened filehandle LOG at ./FHEM/50_Signalbot.pm line 939

Adimarantis

Danke für den Hinweis. Stellt kein Problem dar. Da sich gerade ohnehin was mit dem Unicode Handling in FHEM tut, nehm ich die Zeile wahrscheinlich sowieso wieder raus.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Tsadan

Hallo Zusammen,

auf die Gefahr hin, mich komplett zum Deppen zu machen, jedoch aus Verzweiflung, möchte ich mich nun doch mit einer Frage an Euch wenden:

Ich habe den Signalbot prima zum Laufen bekommen und kann problemlos Nachrichten von FHEM versenden.
Ich möchte mit dem SignalBot gern die Telegram-Anbindung ersetzen. Was mir nun überhaupt nicht gelingt, ist FHEM-Befehle vom Handy an das FHEM zu senden.
Natürlich kommen die Nachrichten im FHEM an, sie stehen im Reading msgText. Allerdings ist das auch alles, was passiert, ein im Text enthaltener FHEM Befehl wird nicht ausgeführt.
Muss man dafür noch etwas spezielles einstellen ?
Ich hatte die Doku so verstanden, dass man ein "AllowedPeer" setzen sollte, weil sonst jeder Nachrichten an das FHEM senden kann, also habe ich das getan.

Ein GoogleAuth-Device habe ich nicht eingerichtet. Ich habe zwar gelesen, dass das geht, allerdings nicht erkennen können, das die Verwendung zwingend ist.

Hat da jemand eventuell einen kleinen Tipp, was ich übersehe ?

Eine eingehende Nachricht sieht im Event Monitor so aus:


2022-03-28 16:08:45 Signalbot SignalBot msgAttachment:
2022-03-28 16:08:45 Signalbot SignalBot msgTimestamp: 28-03-2022 16:08:45
2022-03-28 16:08:45 Signalbot SignalBot msgText: set EG_SD_Flur toggle
2022-03-28 16:08:45 Signalbot SignalBot msgSender: Markus
2022-03-28 16:08:45 Signalbot SignalBot msgGroupName:
2022-03-28 16:08:45 Signalbot SignalBot msgAuth: 0


Vielen Dank schon mal, viele Grüße
Markus

Adimarantis

Zum einen brauchst du trotzdem immer ein cmdKeyword.
Da es allerdings sehr riskant ist, ohne Authentifizierung Kommandos auszuführen, gibt es dafür nur zwei Möglichkeiten:

1.) Du baust ein notify/DOIF welches auf das Event mit dem msgText wartet und dann entsprechend Befehle ausführt
2.) Du definierst Favoriten die mit "-" als "braucht keine Authentifzierung" markiert sind. Dies benötigt trotzdem eine authDevice - auch wenn du sie nicht verwendest.

Aus Sicherheitsgründen werden keine beliebigen Kommandos ohne Authentifizierung durchgereicht.

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Tsadan

Guten Morgen,

danke Jörg, nun habe ich es verstanden.
Und natürlich hast du Recht damit, dass es sehr riskant ist, einfach alles von jedem auszuführen.

Viele Grüße
Markus

tomcat.x

Erst mal: Vielen Dank für das Modul. Bisher habe ich es nicht gebraucht, jetzt schon. Das Thema hier verfolge ich von Anfang an, bisher gab es aber keinen Grund den "Aufwand" in den Umstieg von SiSi zu stecken. Ich wollte auch schon mal schreiben, wieso hat jemand mit einer Hand voll Beiträgen im Forum schon ein eigenes Modul  ;), aber dafür ist es jetzt auch viel zu spät.

Vor ein paar Tagen ist mir aufgefallen, dass ich über SiSi schon länger keine Nachrichten mehr versenden konnte (empfangen ging noch). Da war dann klar, da keine Zeit mehr rein zu stecken, sondern das neue Modul zu verwenden. Das lange Warten hat sich aber dadurch ausgezahlt, dass das Skript alles ohne Probleme erledigt, daher der Aufwand oben in Anführungszeichen.

Mein einziges Problem war, dass die Registrierung meiner Nummer nicht übernommen wurde. Ich war mir nicht ganz sicher, was man aus dem Abschnitt "Umstieg von SiSi" im Wiki alles machen muss, wenn man erst mal parallel installieren will oder wie ich direkt komplett umsteigen. Beispielsweise soll im Skript SIGNALVAR=/opt/fhem/.local/share gesetzt werden, 3 Zeilen weiter wird aber das enthaltene Unterverzeichnis signal-cli verschoben. Also ich denke, da habe ich was falsch gemacht.

Aber egal, auch die erneute Registrierung ist durch das Skript einfach. Ich musste nur die Registry-Anpassung für Windows übernehmen, vorher ist immer die Signal-App beim Öffnen der Capcha-Seite aufgegangen.
FHEM: 6.3 auf Raspi 4B, Raspbian (noch Buster), Perl v5.28.1
Sender/Empfänger: 2 x CULv3, Duofern Stick, HM-MOD-RPI-PCB
Gateways: FRITZ!Box 6591 (OS: 8.10), Trädfri, ConBee 2,  piVCCU, OpenMQTTGateway
Sensoren/Aktoren: FRITZ!DECT, FS20, FHT, HMS, HomeMatic, Trädfri, DuoFern, NetAtmo

Adimarantis

Da SiSi auf einer inzwischen sehr alten signal-cli version basiert, denke ich, dass die signal-cli "registry" einfach nicht mehr abwärts-kompatibel ist und daher eine erneute Registrierung jetzt umumgänglich wird. Werde den Hinweis ins Wiki aufnehmen.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

KarlHeinz2000

Ich musste meine SD Karte am Raspi ersetzen. Hier kurz meine Erfahrung bei Neuinstallation. Ich habe das Raspi OS neu aufgesetzt und ein FHEM backup eingespielt, bei dem Signal schon lief. Dann das signal_install.sh laufen lassen.

Die 64Bit Bullseye geht nicht. Bibliotheken passen nicht.
Das Protocol::DBus wurde nicht automatisch installiert.
Manuell habe ich
cpan install -f Protocol::DBus
zwei mal ausgeführt, bis es installiert war. Beim ersten mal lief signal_install.sh wieder nicht durch. (beim damaligen Umstieg von SiSi war es auch mehrfach nötig)
Dann die Nummer registrieren. Dabei kam kein Captcha in der Firefox Console. Habe dann wie https://forum.fhem.de/index.php/topic,118370.msg1128941.html#msg1128941 die Captcha Seite aufgerufen und raus kopiert.

Danach lief es!  :)

Vielleicht hilft die Info jemandem bei der Installation.

Freue mich, dass es das Modul gibt!

Adimarantis

Ja, für 64-Bit bräuchte man extra libraries. Mangels Umgebung kann ich die aktuell nicht anbieten. Die Platformabhängigkeit von signal-cli ist hier etwas lästig.
Wenn jemand eine Idee hat, wie man abfragt ob das OS 32 oder 64 bit ist, kann ich da zumindest einen Test/Hinweis einbauen.
Mit der Protocol::DBus installation hatte ich noch nie Probleme. Wäre interessant ob da irgendwelche Fehlermeldungen gekommen sind.
Bezüglich der Captcha Seite gibt es bei signal-cli inzwischen den Hinweis, dass man alternativ diese nehmen sollte:
https://signalcaptchas.org/challenge/generate.html
Da es aber dann manuell mit der original Seite doch geklappt hat (vielleicht auch weil mehrfach versucht?), war es das wohl eher nicht.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU)/RfxTrx433XL/Zigbee
Module: 50_Signalbot, 48_HomeConnect, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)