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

andies

Zitat von: fettgu am 04 Januar 2022, 21:48:42
ich habe das Problem gefunden bei Nutzung der configdb.

Wenn man ' statt " benutzt, funktioniert das Schicken vom Filesystem, aber nicht von der configdb.
Ich habe ein ähnlich gelagertes Problem. Ich habe ein Bild
Internals:
   DEF        DbLog:SVG_DbLog_Wasserzaehler_1:CURRENT
   FUUID      5f64e557-f33f-1115-4639-875d9eb9fbaf5acd
   FVERSION   98_SVG.pm:0.258760/2022-03-23
   GPLOTFILE  SVG_DbLog_Wasserzaehler_1
   LOGDEVICE  DbLog
   LOGFILE    CURRENT
   NAME       WasserPlot
   NR         387
   STATE      initialized
   TYPE       SVG
Attributes:

das ich aber nicht per SignalBot versenden kann. Ich habe probiert

&({plotAsPng("Wasserplot")})     => File not found: Bareword "Wasserplot" not allowed while "strict subs" in use at (eval 17977) line 1.
&({plotAsPng('Wasserplot')})      => keine Reaktion
&({plotAsPng(\"Wasserplot\")})   => keine Reaktion
&({plotAsPng(\'Wasserplot\')})    => auch hier kommt nichts an

Was mache ich falsch?
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Adimarantis

probier mal einfach
send @Empfänger &Wasserplot

Nachdem das mit dem "Escapen" immer wieder zu Verwirrung geführt hat, hatte ich vor einer Weile eingebaut, dass er bei & SVG und DOIF Devices erkennt und automatisch die entsprechende Chart sendet. Es gibt noch optionale Parameter dazu - siehe dazu im Wiki: https://wiki.fhem.de/wiki/Signalbot#Details_zum_Versenden_von_Plots:
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

andies

Super, das klappt! Jetzt habe ich noch ein Problem, das schon in
https://forum.fhem.de/index.php/topic,116138.15.html
diskutiert wurde. Fehlende Farben, siehe Anhang.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Adimarantis

Update 3.9:

-Installer (und pre-compiled libs) auf signal-cli 0.10.9 angepasst - ein update von signal-cli ist aber nicht zwingend erforderlich
-Installer: Verbesserte Erkennung von eigener Java17 Installation in /opt/java
-Signalbot: Bug behoben, der Kontakte bei Neustart nicht synchroniert hat

Gerade ins SVN eingecheckt, ab morgen per update

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

holoarts

Vorerst vielen Dank für das neue Modul und auch für die Installationsscripte - insbesondere für die Docker-Installation.
Ich habe es auf einem nackten Raspy-Testsystem probiert und bin leider einige Male über die eigenen Füße gestolpert.
Daher hier etwas feedback.

In fhem_signal_docker_install.sh Zeile 308-317 scheint mir der else-Zweig zu fehlen. Ohne einer bestehenden FHEM Installation wird auch keine neue installiert und man hat nachher gar kein FHEM.

Die erstellte entry.sh wird in fhem_signal_docker_install.sh Zeile 351 an ihren richtigen Platz kopiert. Ich sehe aber keine Stelle wo sie executeable gemarkt wird. Der Start des Containers geht bei mir daher mit permission denied schief.

Der Automatismus für die Captcha Eingabe ist genial, hat aber 2 Stolperfallen im Registry-Hack.
Unter Docker wird mir die nichterreichbare interne Dockeradresse (z.b. 192.168.48.2 - also Rechner-IP und nicht die IP der Anfrage-URL) im Hack eingetragen.
Der Registry-Hack funktioniert wegen der CSRF Absicherung nur für die laufende FHEM Session, muss also nach einem FHEM Neustart wieder neu geholt und in die Registry eingetragen werden. Da wäre vlt ein Hinweis 'immer neu durchführen' hilfreich.

LG Michael
FHEM Nutzer seit 2007

Adimarantis

Hallo Michael,

Die Docker Installation wird von mir mangels eigener Nutzung leider nicht so aktiv gewartet.  Teilweise aus Zeitmangel (läuft ja doch eine Weile), teils weil ich mich mit Docker im Detail nicht so gut auskenne.

Du darfst aber gerne unter github.com/bublath einen Pull Request für Verbesserungen machen. Wenns gut ausschaut übernehme ich sie dann auch ins FHEM SVN.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

holoarts

ok, schau ich mir an.
Hat es einen Grund, warum du den Docker selbst baust und nicht den aktuellen fhem/fhem vom gitprojekt nimmst? Mit dem scheint signal_docker_install.sh auf wenige Zeilen zu schrumpfen. Bin mit dem Test noch nicht durch, da es im signal_install.sh auch noch ein Docker Problem gibt, das mich wirft.

LG Michael
FHEM Nutzer seit 2007

Adimarantis

Keinen besonderen Grund.
War halt mehr ein Übungsprojekt um mal einen Container von Grund auf zu bauen.
Mein Ansatz war signal-cli als eigenständigen Container zu bauen. Also unabhängig von FHEM.
Eine Integration in den FHEM Container könnte evtl. auch die Dbus Kommunikation vereinfachen.
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)

holoarts

Ich habe jetzt (vorerst nur für den raspberry) eine Extension für den original fhem-docker auf github gestellt (https://github.com/holoarts/fhem-signal-docker.git). Das sind nur 6 kleine Files und mit einem docker-compose up -d hat man nach etwas Wartezeit  :) ein laufendes fhem mit deinem signalbot. Mit allen Vorteilen des original Docker images.

Wäre fein, wenn das der eine oder die andere aus der Community testen könnte.

LG Michael
FHEM Nutzer seit 2007

pcjogi

Hallo zusammen,

ich habe SIGNAL auf eine RasPi 3 installiert und kann es mit einer Festnetznummer problemlos nutzen.
Ich möchte auf einem 2. RasPi zu der gleichen Festnetznummer einen Signal link erstellen. Geht so etwas überhaupt?

Warum möchte ich das: Ich habe eine Festnetznummer die ich für Signal benutzen will, aber es soll auf 2 FHEM Instanzen gesendet und empfangen werden. Oder brauche ich dazu eine 2. Festnetznummer?

Danke
Haupt-Fhem (Docker auf Synology), Sub-Fhem (433Mhz und 833Mhz) auf RasPi, Sub-Fhem (Heizungssteuerung) auf RasPi, Sub_Fhem (System) auf RasPi, IoBroker zur Darstellung (Docker auf Synology), alles verbunden über einen MQTT Broker, insgesamt ca. 100 Sensoren/Aktoren

Adimarantis

Rein technisch wäre das machbar. Ist nur nicht implementiert. Man kann ja per link Funktion ein bestehendes Handy Account verknüpfen.
Es fehlt jetzt nur die Funktion einen entsprechenden qr code ( oder eher eine ASCII version davon) mit der anderen FHEM Instanz einzulesen.
Möglicherweise ein interessantes Feature,  müsste ich mir bei Gelegenheit ansehen.

Ich habe das bei mir so gelöst, dass die zweite FHEM Instanz per FHEM2FHEM verbunden ist. Dann kann man sowohl Events mithören, als auch per cmd entsprechende set Befehle über den SignalBot auf der anderen Instanz ausführen.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

pcjogi

Das mit der 2. Instanz würde ich über MQTT lösen, aber ich fände es gut wenn die beiden Signal-Funktionen weitgehend unabhängig (sie funktionieren auch wenn die andere nicht geht) Meldungen absetzen können. Bei mir soll die eine Instanz die sein, die in Normalfall kommuniziert, und die andere soll "nur" Systemfehler melden und damit auch melden können wenn die andere nicht mehr funktioniert. Gibt es eine manuellen Weg die "ASCII Version de QR" in der anderen Instanz einzulesen?

Danke
Haupt-Fhem (Docker auf Synology), Sub-Fhem (433Mhz und 833Mhz) auf RasPi, Sub-Fhem (Heizungssteuerung) auf RasPi, Sub_Fhem (System) auf RasPi, IoBroker zur Darstellung (Docker auf Synology), alles verbunden über einen MQTT Broker, insgesamt ca. 100 Sensoren/Aktoren

pcjogi

Ich habe versucht zu verstehen wie ein Link-Device zu erstellen funktioniert. Ich komme jedoch über die cli (signal-cli) nicht wirklich ans Ziel.

Wenn ich mir auf dem fhem der linked Device werden soll den QR Code anzeigen lasse, aus diesem QR Code den Teil sgnl://linkdevice?uuid=XX=pub_key=XXXX herausnehme und dann versuche auf dem gleichen System

./signal-cli addDevice --uri "sgnl://linkdevice?uuid=XX=pub_key=XXXX"

erhalte ich die Fehlermeldung No local users found, you first need to register or link an account.

Habe ich einen Denkfehler?
Haupt-Fhem (Docker auf Synology), Sub-Fhem (433Mhz und 833Mhz) auf RasPi, Sub-Fhem (Heizungssteuerung) auf RasPi, Sub_Fhem (System) auf RasPi, IoBroker zur Darstellung (Docker auf Synology), alles verbunden über einen MQTT Broker, insgesamt ca. 100 Sensoren/Aktoren

Adimarantis

Ich hab das auch gerade mal probiert und testweise ein "addDevice" in Signalbot eingebaut.
Funktioniert dann so:
Auf dem "neuen" System (keine Nummer registriert) ein "set link" ausführen.
In meiner Testversion wird jetzt die URI für addDevice zusammen mit dem QRCode angezeigt.

Auf dem bereits registrierten System ein "addDevice" mit dieser URI durchführen.

Ein Weilchen warten, und dann ein "set reinit" auf dem neuen System. Dort sollte jetzt unter "set signalAccount" die Nummer des anderen Systems auftauchen.
Entsprechend setzen und man ist verbunden.

Leider bin ich auf zwei Probleme gestossen, die möglicherweise auch auf signal-cli Seite liegen (hab dazu auch mal ein Issue auf Github aufgemacht):
- Die gelinkte Instanz kann nur senden aber nicht empfangen
- Die gelinkte Instanz bekommt keine Gruppeninfos (wohl aber die Kontaktliste)

Dies ist ausdrücklich nur eine Testversion als "proof of concept".

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)

Flachzange

Zitat von: holoarts am 06 August 2022, 13:14:16
Ich habe jetzt (vorerst nur für den raspberry) eine Extension für den original fhem-docker auf github gestellt (https://github.com/holoarts/fhem-signal-docker.git). Das sind nur 6 kleine Files und mit einem docker-compose up -d hat man nach etwas Wartezeit  :) ein laufendes fhem mit deinem signalbot. Mit allen Vorteilen des original Docker images.

Wäre fein, wenn das der eine oder die andere aus der Community testen könnte.

LG Michael

Hi Michael,

super Timing :) Ich möchte aktuell meine FHEM-Installation von einem dedizierten Intel NUC auf einen zentralen Server mit Containern umziehen (also x86). Ich habe mich erstmal am offiziellen FHEM image orientiert, bis mir eingefallen ist, dass es da mit signal-cli einen besonderen Kandidaten gab.

Jetzt sind das praktisch auch meine ersten Gehversuche mit Containern, aber ich denke die Grundzüge verstanden zu haben. Eigene Images habe ich noch nicht erstellt. Was wäre jetzt (ganz grob) ein Best-Practice-Ansatz, um Dein Image auf x86 umzubauen und bei mir zu laden? Gerne auch per PM, falls das zu Offtopic hier wird. Mir geht es hier erstmal vor allem um den Docker-Image-Teil.

Danach muss ich dann mal schauen, wie ich das bei mir importiert bekomme. Auf meinem Server läuft ein Truenas Scale, das eigentlich nur images aus Repositories zieht.

Gruß
Chris


Edit: Habe mich da heute Abend mal reingelesen und das Image für x64 gebaut. Startet und sieht erstmal gut aus. Teste in den nächsten Tagen mal weiter.