Neues Modul für "(Si)gnal - (Si)cherer Messenger" [32_SiSi.pm]

Begonnen von Quantum, 26 Februar 2018, 14:32:42

Vorheriges Thema - Nächstes Thema

Ralf Kruppa

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  :-*

Ralf Kruppa

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

reibuehl

Normalerweise nicht. Ist dein FHEM aktuell? Evtl. mal ein update all und dann ein shutdown reload in FHEM machen...?
Reiner.

reibuehl

Reiner.

Ralf Kruppa

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

reibuehl

Nein, Net::DBus ist ein Perl Modul. Das wird mit

sudo apt-get install libnet-dbus-perl

installiert.
Reiner.

Ralf Kruppa

Hallo, das Perl Module ist installiert.   Auch nach der Aktualiesoeeunh vom FHEM hat sich nichts geändert.

Gruss Ralf

reibuehl

Reiner.

Ralf Kruppa

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

reibuehl

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.
Reiner.

Ralf Kruppa

#55
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

Ralf Kruppa

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

Ralf Kruppa

Hallo, so jetzt geht auch der Empfang.

vielen danke für die Unterstützung.

Gruß Ralf

takaze

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
RPi 3B, Add-On Board mit 1.8" TFT LCD, FHEM V5.8, CULFW v1.65 RPIAddOn_CSM, Jeelink v3, Selbstbau CUL433 MHz (signalduino), z-Wave (Fibaro), 8'' WIN10 Wand-Infoboard mit FTUI

Ralf Kruppa

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