Neues Modul: 70_Jabber.pm

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

Vorheriges Thema - Nächstes Thema

Ralf W.

Hallo BioS,

ich kann morgen Mal CPAN versuchen. Ist eine bestimmte Reihenfolge einzuhalten? Ich arbeite lieber mit den .deb-Paketen.

MfG

Gesendet von meinem Lenovo B6000-H mit Tapatalk

http://twitter.com/RWausD
Schon gewusst, dass Haarausfall zu einer Glatze führen kann?

FHEM: NUC7PJYH2, Ubuntu Server 22.04.2 LTS, HMCCU - RaspberryMatic, DE ConBee II, diverse Sensoren und Aktoren.

hexenmeister

Wenn ich etwas installiere, führe ich (meistens ;) ) einen Protokoll. Laut diesen habe ich lediglich folgendes gemacht:
sudo cpan Net::Jabber

Ich hänge die Ausgabe von cpan -l an, vielleicht kann es was nutzen...
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Ralf W.

#92
Hallo BioS, hallo Hexenmeistr,

"Connected to jabber.de"

Ich habe mittels apt folgenden Stand erstellt:
+++-================================-=====================-=====================-======================================================================
un  libdigest-sha-perl               <none>                                      (no description available)
ii  libnet-ssleay-perl               1.48-1+b1             armhf                 Perl module for Secure Sockets Layer (SSL)


Danach mit cpan die erforderlichen Module installiert. System reboot. Bei "define myJabber ..." ist FHEM sofort abgeschmiert. In der Fehlermeldung stand, dass er die Zertifikate nicht finden kann. Recherche im Web ergab aber keine brauchbaren Ergebnisse.

Also Module wieder mittels cpanp entfernt und mit apt auf folgenden Stand:
||/ Name                Version        Architecture   Description
+++-===================-==============-==============-===========================================
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


Bei den vorgenannten Aktionen muss aber etwas verändert worden sei, da jetzt "define myJabber ..." ohne Probleme funktionierte und die Verbindung sofort hergestellt wurde. Klappt auch nach reboot.

Etwas unbefriedigend, da nicht klar ist, wo jetzt die Fehlerursache war. Aber keine Lust und Zeit weiter danach zu suchen.

Vielen Dank für die Unterstützung.

MfG 
http://twitter.com/RWausD
Schon gewusst, dass Haarausfall zu einer Glatze führen kann?

FHEM: NUC7PJYH2, Ubuntu Server 22.04.2 LTS, HMCCU - RaspberryMatic, DE ConBee II, diverse Sensoren und Aktoren.

hexenmeister

Hm...
hatte heute mehrfach nacheinander den Fehler von oben.
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


Watchdog hat fleißig neugestartet, bis das irgendwann gapsst hat ???
Könnte es sein, dass das durch Probleme beim der Gegenseite (also bei mit bei jabber.de) verursacht wird? Mein Handy konnte sich mit dem Server zu dieser Zeit auch nicht connecten...

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

BioS

So hallo die Herren,

also Perl hat schon so seine Eigenheiten :)
zu dem Problem von dir @hexenmeister:
da scheinen die Perl Module irgendwas nicht ordentlich verarbeiten zu können bezüglich Verbindungsaufbau / Verbindung halten.
Ich hab das mit allen möglichen Mitteln versucht nachzustellen, TCP Verbindung killen, IPTables DROP / Reject auf client wie auf Jabber seite, Proxy redirects, "leider" ohne Erfolg. Die Verbindung ist immer wieder ordentlich zustande gekommen.

Aber egal - diesem Process() Call, wegen dem FHEM aussteigt, habe ich noch mal eine extra Fehlerbehandlung spendiert und er *sollte* das jetzt abhaben können.

Zu deinem Problem @Weisswurstverkäufer (hast du deinen Beitrag gelöscht?):
Die neueste XML::Stream Version aus dem CPAN hat Standardmäßig ssl_verify eingeschaltet, das war in den Vorversionen nicht so.
Ich schalte das nun manuell runter.

Die neue Version des Moduls sollte heute Abend mit dem normalen FHEM Updatezyklus kommen.

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

Weisswurstverkäufer

Hallo BioS,

ja, ich habe den Beitrag gelöscht, da ich mir eigentlich sicher war, dass es ein Konfigurationsproblem auf meiner (Perl)Seite ist.

ssl_verify generell auszuschalten halte ich irgendwie für keine gute Idee. Wenn es geht soll es ja schon gemacht werden. Wie wäre es mit einem weiteren Parameter für das define?

Gruß

hexenmeister

Vielen Dank! :)
Wie gesagt, mein Problem ist nur einmalig für weniger als 15 Minuten aufgetreten. Und ich nutze das Modul täglich und auch schon länger. Und dank neuer Absicherung wird wohl auch der Watchdog nicht mehr aufwachen müssen ;)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

BioS

Hi Weisswurstverkäufer!

Ich hab das quasi nur auf den Zustand der Vorversion von XML::Stream gestellt.
Im define selber kann ich das nicht mit hinzufügen weil es bei der Vorversionen diese Parameter gar nicht gibt, und damit das Modul für alle anderen nicht mehr funzen würde.

Eventuell kannst du es mal testen ob es nun geht, dann kann ich evtl. ein Attribut mit hinzufügen, in dem man die Verifikation anschalten kann und gleichzeitig die CA Kette in Dateiform mitangeben kann, denn deshalb steigt bei dir FHEM aus, weil es diese nicht gibt.

BTW: TLS ist die neuere Methode bei Jabber sich sicher zu verbinden, weil es eben viele Probleme mit einem reinen SSL Socket gab.
Vielleicht kannst du das ja mal bei deinem Jabber server anschalten, denn reines SSL wird als best practise nicht empfohlen, weil wohl zu alt.

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

BioS

Zitat von: hexenmeister am 09 Januar 2015, 13:46:36
Wie gesagt, mein Problem ist nur einmalig für weniger als 15 Minuten aufgetreten. Und ich nutze das Modul täglich und auch schon länger. Und dank neuer Absicherung wird wohl auch der Watchdog nicht mehr aufwachen müssen ;)

Was hast du da für einen "watchdog"? und welche Absicherungen?
Bei mir steigt FHEM nämlich auch immer mal wieder wegen dem Mailcheck und manchmal wegen Hue aus, das merke ich dann daran, dass meine Frau sagt dass die Schalter mal wieder nicht gehen ;)

So ein watchdog wäre für meinen WAF ganz praktikabel :))
FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

Weisswurstverkäufer

Zitat von: BioS am 09 Januar 2015, 13:52:17
Eventuell kannst du es mal testen ob es nun geht

Ich gebe bescheid sobald ich es testen konnte.

Zitat von: BioS am 09 Januar 2015, 13:52:17
BTW: TLS ist die neuere Methode bei Jabber sich sicher zu verbinden, weil es eben viele Probleme mit einem reinen SSL Socket gab.
Vielleicht kannst du das ja mal bei deinem Jabber server anschalten, denn reines SSL wird als best practise nicht empfohlen, weil wohl zu alt.

Mein Jabberserver erlaubt tatsächlich nur TLS. SSL (das geht ja eh über einen anderen Port) ist explizit ausgeschlossen.

hexenmeister

Zitat von: BioS am 09 Januar 2015, 13:59:25
Was hast du da für einen "watchdog"? und welche Absicherungen?

Das ist ein relativ einfaches aber wirkungsvolles System. Hat sich schon sehr oft bewährt ;)
Parallel zum FHEM läuft ein kleines Batch, das die Alive-Meldungen von FHEM auswertet und ggf. dafür sorgt, dass 'hängendes' FHEM abgeschossen und fehlendes Prozess neugestartet wird (und sich beim Start per Jabber bei mir meldet ;) ).
Ich habe das mal hier beschrieben:
http://s6z.de/cms/index.php/homeautomation/fhem/23-fhem-watchdog

Wenn Du weitere Fragen dazu hast - immer her damit ;)

Grüße,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Weisswurstverkäufer

Hallo,

also das 'define' läuft jetzt durch. Allerdings ist es dann so:

CONNINFO Jabber authentication error:

(nichts hinter dem Doppelpunkt).

Ich habe ein paar Seiten vorher gelesen, dass jemand Probleme hatte, wenn er den Usernamen mit "@domain" angibt. Jetzt stellt sich mir die Frage ob das wirklich so sein muss. Falls ja wäre das eigentlich nicht ganz richtig. Ich habe gesehen, das Argument für "Server" nicht über den DNS SRV Record (unter _xmpp-client._tcp.domain) aufgelöst wird, sondern direkt der A-Eintrag des Domain verwendet wird. Demnach muss man den Server direkt angeben (in meinem Fall jabber.domain.de, im Zweifelsfall sogar eine IP). Damit würde der Username aber "user@jabber.domain.de" lauten (oder eben "user@ip") und nicht mehr "user@domain.de". Dadurch kommt es dann evtl. zu dem authentication error.

Kann es sein, dass das mein Problem ist?

Gruß


BioS

Ahoi,

Zitat von: Weisswurstverkäufer am 10 Januar 2015, 09:55:06
Ich habe gesehen, das Argument für "Server" nicht über den DNS SRV Record (unter _xmpp-client._tcp.domain) aufgelöst wird, sondern direkt der A-Eintrag des Domain verwendet wird. Demnach muss man den Server direkt angeben (in meinem Fall jabber.domain.de, im Zweifelsfall sogar eine IP). Damit würde der Username aber "user@jabber.domain.de" lauten (oder eben "user@ip") und nicht mehr "user@domain.de". Dadurch kommt es dann evtl. zu dem authentication error.

Die Auflösung des Namens ist Sache von Net::Jabber (respektive Net::XMPP) , anhand von den Logs löst er schon die "_xmpp-client._tcp" auf, sonst würde das bei mir auch nicht funktionieren, da Domain A-Record und Jabber Server IP unterschiedlich sind.

Das define des Usernames sollte ohne @domain passieren, da hatte ich einen brainloop als ich das behauptet hab :)

Mach nochmal Debug an und schick mir die Logs als PM, dann können wir mal schauen was da dein Problem ist.

Grüße


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

BioS

So,
das Teil sollte nun auch bei Weisswurstverkäufer funzen.

So ein mist die Perl Libararies, machen keine DNS SRV Abfrage nach dem Jabber Standard, ich frag mich ob die das Ding jemals getestet haben ;)

Mit 2 kleinen hacks behoben, d.h. wenn nun jemand von euch sonst noch den Jabber Server nicht gleich dem Domainnamen hat (bei eigenen Servern) geht das FHEM Modul nun auch und ich hab wieder gelernt das man alles selber machen muss damit es gut ist ;D
FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

Bernhard

Hallo,
gab es gestern Probleme mit jabber.de ?
auf 2 Installationen (Raspi) legten jabber-Definitonen FHEM praktisch lahm, Connect nicht erfolgreich.
Heute scheinbar wieder ok.

Das Attribut "dummy" ist nicht wirksam - nicht verwendet? - Vielleicht aktivieren.


Gruß
Bernhard