Neues Modul: 70_Jabber.pm

Begonnen von BioS, 18 Januar 2014, 11:51:20

Vorheriges Thema - Nächstes Thema

dora71

Hi BioS,

ich versuch es nochmal zu beschreiben. Ich bekomme immer eine leere Meldung (eigentlich 2 Meldungen) von FHEM, wenn der Client sich wieder neu verbunden hat (nach einem DSL Reconnect). Ich schicke aber keine Nachricht vorher dahin.

Das Ganze sieht in der Jabber-Nachricht dann ungefähr so aus:

17:54:48 - FHEM:
17:54:49 - FHEM:

Also schematisch ungefähr so:

DSL Disconnect - JabberClient in FHEM offline - DSL Reconnect - JabberClient FHEM online - 2x Leermeldung

Gruß
Rainer

PS: Im Log steht nichts, habe allerdings auch nirgendwo einen Debug aktiviert. Wenn die Leermeldungen kommen, sehe ich in der FHEM-Übersicht, dass die letzte empfangene Meldung von meiner JabberID (LastMessage) leer ist.

oliverr

Hallo BioS,

habe einen eigenen Jabber Server am laufen, den ich aber mit den jetzigen Einstellmöglichkeit nicht erreiche oder es nicht richtig mache.

Die Sache ist, das die Domaine des Jabber Account nicht der Servername ist und wie in vielen Jabber Clients ich den Servernamen extra angeben müsste.

Ist das mit dem Modul schon möglich oder wäre es möglich so was noch ein zu bauen?

Gruß,
Oliver

BioS

Hi Rainer,

Zitat von: dora71 am 01 August 2014, 19:51:48

Also schematisch ungefähr so:

DSL Disconnect - JabberClient in FHEM offline - DSL Reconnect - JabberClient FHEM online - 2x Leermeldung


Ich schau mir das auf jeden Fall nochmal an, im Moment funktioniert es ja, bis auf die Leermeldungen.



Hi oliver,

Zitat von: oliverr am 02 August 2014, 21:26:06
Ist das mit dem Modul schon möglich oder wäre es möglich so was noch ein zu bauen?

Das habe ich mit Absicht nicht eingebaut - Jabber sucht laut der Spezifikation im DNS nach dem korrekten Server zu dem er sich verbinden muss.
Wenn sich das Modul nicht verbinden kann, ist es auch Wahrscheinlich dass dir andere leutze zu deinem Jabber Server keine Nachrichten schreiben können.

Ich baue dir das Feature gerne ein, würde dich aber vorher bitten mal zu versuchen die für Jabber nötigen DNS Einträge richtig zu setzen (sofern dein DNS Provider bzw. deine DNS Knowledge das natürlich zulässt :) )

Für Jabber benötigt man 2 extra DNS Einträge, die jeweils für andere Jabber Server und die Jabber Clients beschreiben wohin sich diese zu verbinden haben (Servername und Port).
Das heißt, genau für dein Problem: Wir benutzen fiktiv die Domain MeinHost.de, d.h. dir gehört die Domain MeinHost.de.
- Deine JabberID soll   oliverr@MeinHost.de  sein
- Dein Jabber Server läuft auf (fester) IP 192.168.2.90

Das sieht im DNS muss man nun folgende Einträge machen:
Alias record für die IP:
jabber.meinhost.de IN A 192.168.2.90

Jabber-Server Info (für die anderen Server):
Jabber SRV Record:
_xmpp-server._tcp.meinhost.de IN SRV 0 5269 jabber.meinhost.de
Format ist: IN SRV <prio> <port> <server-host>

Jabber-Client Info (für clients, wie z.b. FHEM, Pidgin etc.)
_xmpp-client._tcp.meinhost.de IN SRV 0 5222 jabber.meinhost.de
Format ist: IN SRV <prio> <port> <server-host>


Das wäre die korrekte Lösung für dein Problem.

Aber wie gesagt, geb mir Bescheid ob das damit geht, wenn du das aus irgendwelchen gründen nicht hinbekommst, kann ich dir da auch gerne zur Hand gehen, sofern du DNS Zugriff hast.

Grüße,
BioS



FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

oliverr

Hi Bios,

danke für die Antwort.

ZitatDas habe ich mit Absicht nicht eingebaut - Jabber sucht laut der Spezifikation im DNS nach dem korrekten Server zu dem er sich verbinden muss.
Wenn sich das Modul nicht verbinden kann, ist es auch Wahrscheinlich dass dir andere leutze zu deinem Jabber Server keine Nachrichten schreiben können.

Das ist mir schon klar.
Bin mal gespannt ob meine DNS Settings (die ich um den Client Eintrag noch ergänzt habe) bei dem großen "S" funktionieren.
Hatte den Eintrag nicht gemacht, weil ich eine automatische Konfiguration von Clients nicht wollte, denn die Clients die sich mit dem Jabber verbinden sollen, sollten die passenden Settings kennen und auch den Servernamen in der Konfig einstellen. ;-)

Grüß,
Oliver


Bernhard

Hallo,
ich versuche Jabber zu verwenden, das mag aber mich nicht  >:(
Mein System: Raspberry Pi mit
             Linux raspberrypi 3.12.34+ #1 PREEMPT Sun Dec 7 22:39:06 CET 2014 armv6l GNU/Linux

mit cpan die Module aus der Referenz installiert - scheinbar problemlos.
Die anderen Module gemäß Liste nachinstalliert - aber hier gibts Probleme:

pi@raspberrypi ~ $ sudo apt-get install libdigest-sha1-perl
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libdigest-sha1-perl


In Fhem:


           CONNINFO         Jabber connect error ()
           DEF             jabber.de 5222 xxxx@jabber.de yyyyy 1 0
           NAME                 jabber
           NR                     285
           STATE                Disconnected
           TYPE                  Jabber


bzw


           CONNINFO Jabber authentication error: error malformed-request
           DEF           jabber.de 5222 xxxx@jabber.de yyyy 1 0
           NAME        jabber
           NR            285
           STATE       Disconnected
           TYPE         Jabber


Wer hat eine Lösung dazu?

Danke im Voraus

Bernhard

BioS

Hi Bernhard, ich bin zwar gerade in der arbeit, aber probier mal das Paket "libdigest-sha-perl" zu installieren.

Hab gerade nachgesehen in der neuesten repository haben die das Paket umbenannt..

Grüße BioS
FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

Bernhard

Danke,
das Paket lässt sich installieren, ändert aber nichts am Problem.

zumindest das kommt nach wie vor: Jabber authentication error: error malformed-request   bei   tls/ssl  1 1
bzw Jabber connect error ()  bei    1 0

Zusatzfragen:

-  Könnte es etwas mit dem angegebenen Port zu tun haben?
-  Wird Jabber neu geöffnet, wenn die DEF modifiziert wird?

Bernhard

BioS

#82
Hi Bernhard,

Zitat von: Bernhard am 19 Dezember 2014, 10:01:03
Zusatzfragen:

-  Könnte es etwas mit dem angegebenen Port zu tun haben?
-  Wird Jabber neu geöffnet, wenn die DEF modifiziert wird?


Der Port muss natürlich SSL bzw. TLS authentifizierung unterstützen, wenn du dir nicht sicher bist probiere einfach mal aus beides auf 0 zu setzen.
Der "Malformed Request" error kommt teilweise wenn perl-Module fehlen (was bei dir nicht der Fall zu sein scheint) und wenn er sich dem Jabber Server gegenüber nicht ordentlich einloggen kann.

Du kannst noch folgendes testen:
- check, dass dein username auch xxx@jabber.de ist, also mit dem @jabber.de hinten dran und nicht nur der "name" vor dem @
- EDIT: obiges ist falsch, es darf kein @jabber.de mit im username sein, sondern nur der Username mit "xxx"
- wenn es bei jabber.de ein Account ist sollte es mit 1= tls, 0=ssl gehen

wenn nix hilft:

- geh dann bitte in das Modul 70_Jabber.pm rein, setze in Zeile 61 "my $debug = 1"
- restarte FHEM und
- poste mir bitte einen Auszug aus deiner fhem logfile und die daraufhin ertellte /tmp/jabberdebug.log, am besten in einer PM.

Achtung, in den Files stehen deine Daten im Klartext, also vorher passwort und username unkenntlich machen..


Grüße,
BioS
FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

Ralf W.

Hallo,

nach
define jabber Jabber jabber.de 5222 mein_user mein_kennwort 1 0
wird nach einigen Sekunden FHEM beendet
There was an error in the last call to Process that you did not check for and
handle.  You should always check the output of the Process call.  If it was
undef then there was a fatal error that you need to check.  There is an error
in your program at ./FHEM/70_Jabber.pm line 287


Die Module Net::Jabber, Net::XMPP, Authen::SASL, XML::Stream und Net::SSLeay sind installiert.

Kurz bevor FHEM abschmiert kommen die Log-Eintrage "myJabber Jabber PollMessages" und "myJabber DoProcess Call"

Auch nach Durchsicht dieses Thread komme ich nicht weiter. Wo hakt es hier?

jabberdebug.log füge ich mal bei.

MfG
Proxmox Nipogi AM16, FHEM:RaspberryMatic:DE ConBee II, diverse Sensoren und Aktoren.

BioS

Hi Ralf,

diesen Fehler hatte ich mal wenn etwas mit dem Modul Authen::SASL oder Digest::SHA1 von Perl nicht ganz in Ordnung ist, weil die Verbindung direkt nach dem Konvertieren hin zu SSL abbricht.

Auf welchem System betreibst du FHEM?
Ich frage weil das Logfile weniger Debuginfos enthält als die, die ich bisher gesehen hab.

Bei Fritzbox'en ist das ganze ungetestet weil es da wohl größere Probleme gibt die richtigen Module vom CPAN ordentlich zu installieren.
Määp, hab gerade gelesen dass du einen Cubietruck hast, läuft da debian?

FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

Ralf W.

@BioS

Hallo,

läuft auf einem Cubietruck mit Debian Wheezy (Igor-Image). libdigest-sha1-perl ist als Paket nicht vorhanden. libdigest-sha-perl ist installiert.

MfG

Proxmox Nipogi AM16, FHEM:RaspberryMatic:DE ConBee II, diverse Sensoren und Aktoren.

BioS

Hi Ralf,

ich hatte das Problem schon mal, damals war es das Problem, das Authen::SALS warum auch immer nicht funktioniert hat.
Schau die mal die installierten Pakete von deinem System an, welche Versionen die haben:
dpkg -l libauthen-sasl-perl libnet-jabber-perl libnet-ssleay-perl libnet-xmpp-perl libxml-stream-perl libdigest-sha1-perl libdigest-sha-perl

ich hab mit absicht sha1 dringelassen sollte mal jemand anders das auch nachschauen wollen.

Bei mir sieht die Ausgabe so aus:
ii  libauthen-sasl-perl     2.1500-1                Authen::SASL - SASL Authentication framework
un  libdigest-sha-perl      <none>                  (no description available)
ii  libdigest-sha1-perl     2.13-1                  NIST SHA-1 message digest algorithm
ii  libnet-jabber-perl      2.0-3.1                 Perl modules for accessing the Jabber protocol
ii  libnet-ssleay-perl      1.36-1                  Perl module for Secure Sockets Layer (SSL)
ii  libnet-xmpp-perl        1.02-1                  XMPP Perl library
ii  libxml-stream-perl      1.23-1                  module for manipulating streaming XML data

FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

Ralf W.

ii  libauthen-sasl-perl 2.1500-1       all            Authen::SASL - SASL Authentication framewor
ii  libdigest-sha-perl  5.71-2+deb7u1  armhf          Perl extension for SHA-1/224/256/384/512, S
ii  libnet-jabber-perl  2.0-5          all            Perl modules for accessing the Jabber proto
ii  libnet-ssleay-perl  1.48-1+b1      armhf          Perl module for Secure Sockets Layer (SSL)
ii  libnet-xmpp-perl    1.02-3         all            XMPP Perl library
ii  libxml-stream-perl  1.23-2         all            module for manipulating streaming XML data
dpkg-query: no packages found matching libdigest-sha1-perl


MfG
Proxmox Nipogi AM16, FHEM:RaspberryMatic:DE ConBee II, diverse Sensoren und Aktoren.

hexenmeister

Bei mir läuft FHEM auch auf Cubietruck mit Igors Image. Keinerlei Probleme mit Jabber. Dabei sind anscheinend die meisten der angesprochenen Pakete gar nicht installiert:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                             Version               Architecture          Description
+++-================================-=====================-=====================-======================================================================
un  libdigest-sha-perl               <none>                                      (no description available)
ii  libnet-ssleay-perl               1.48-1+b1             armhf                 Perl module for Secure Sockets Layer (SSL)
dpkg-query: no packages found matching libauthen-sasl-perl
dpkg-query: no packages found matching libnet-jabber-perl
dpkg-query: no packages found matching libnet-xmpp-perl
dpkg-query: no packages found matching libxml-stream-perl
dpkg-query: no packages found matching libdigest-sha1-perl



BioS

Danke, @hexenmeister, eventuell hast du die Perl Module schon durch depency anderer Module mal aus dem CPAN installiert?

Ich versuch die Tage mal das Problem in einer VMWare testbox nachzustellen, aber Weihnachten wird mir sicherlich dazwischenkommen.

Wenn du nicht warten willst, @Ralf, kannst du auch versuchen die debian packages zu deinstallieren und durch die entsprechenden Module aus dem CPAN zu ersetzen.


Grüße,
BioS

FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung