Neues Modul: 70_Jabber.pm

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

Vorheriges Thema - Nächstes Thema

nikk

Hi,
ich bekomme folgende Fehlermeldung in CONNINFO: Jabber authentication error: error malformed-request

Hier meine config:

##################
##### Jabber #####
##################

define jabber Jabber jabber.de 5222 <fhemuser> <password> 1 0
attr jabber room Jabber
attr jabber OnlineStatus available
attr jabber PollTimer 2
attr jabber RecvWhitelist <user>
attr jabber ResourceName FHEM


Habe das Paket libnet-jabber-perl unter Debian installiert.
Ich hoffe Ihr könnt mir weiterhelfen.

Grüße
Niko

martinschm

Hi nikk
Meine Definition ist identisch mit deiner bis auf den Teil mit room. Sollte eigentlich klappen, mir würde jetzt nur einfallen ob du vielleicht den Username falsch angegeben hast.
Ciao
Martin

BioS

Hi,

erstmal freut mich die response, die man hier bekommt, danke euch allen ;)

Ich muss  dringend noch ne Wiki seite erstellen, es scheint doch mehr Probleme zu geben als ich gedacht habe  :o

Zitat von: nikk am 11 April 2014, 09:29:15
ich bekomme folgende Fehlermeldung in CONNINFO: Jabber authentication error: error malformed-request

define jabber Jabber jabber.de 5222 <fhemuser> <password> 1 0
attr jabber room Jabber
attr jabber OnlineStatus available
attr jabber PollTimer 2
attr jabber RecvWhitelist <user>
attr jabber ResourceName FHEM


Habe das Paket libnet-jabber-perl unter Debian installiert.

Achte darauf dass du die < > tags nicht mit reinschreibst und dass dein Passwort sowie Username korrekt ist.
Auch deine RecvWhitelist darf keine < > enthalten, ausser das gehört zu deinem Usernamen.

Die andre möglichkeit die mir einfällt ist, dass das perl Modul Authen::SASL noch fehlt.
Unter debian heißt das libauthen-sasl-perl

Danke im übrigen, Nik, für den Hinweis auf den Fehler in der Doku :)

Ich versuche mal das Modul (auf überprüfung von Authen::SASL) und die Dokumentation anzupassen.

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

nikk

Danke für die Hinweise!

Zitat
achte darauf dass du die < > tags nicht mit reinschreibst und dass dein Passwort sowie Username korrekt ist.
Auch deine RecvWhitelist darf keine < > enthalten, ausser das gehört zu deinem Usernamen.

<> tags sind nicht eingetragen, hab hier nur die Notation aus der Commandref übernommen.

User und Passwort habe ich mit einem jabber-client verifiziert, da klappt die Anmeldung.

libauthen-sasl-perl werde ich heute Abend installieren und ausprobieren.

Habe noch eine generelle Frage:
Macht es einen Unterschied, ob ich fehlende Module als Debian-Pakete oder über cpan installiere?
Sind es im Endeffekt die gleichen Dateien, die installiert werden?

Grüße
Niko



BioS

Hi Niko,

im Grunde macht es keinen unterschied, die Module im CPAN sind wahrscheinlich neuer und werden nach dem herunterladen (sourcecode) erst mal compiliert wo es nötig ist.

Ich persönlich benutze lieber die debian Module, da ja APT die Abhängigkeiten zu den Paketen sucht und die gleich mitinstalliert.
Auch ist es (finde ich) einfacher die Pakete wieder loszuwerden oder sich mal einen überblick zu verschaffen was denn installiert ist.

CPAN benutze ich nur wenns ein Paket in der debian repository nicht gibt.


wenn du die installation über debian versuchst, kannst du gleich folgenden Befehl benutzen, da sollte dann alles notwendige mitinstalliert werden:

apt-get install libnet-jabber-perl libnet-xmpp-perl libxml-stream-perl libdigest-sha1-perl libauthen-sasl-perl libnet-ssleay-perl
FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

nikk

Hi BioS,
bei mir waren schon alle Pakete bis auf libdigest-sha-perl installiert.
Status ist immer noch disconnected und der Fehler ist noch der Gleiche.

BioS

Hey niko,

Ist der Account bei jabber.de?

Gesendet von meinem XT910 mit Tapatalk

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

nikk

Hi BioS,

Zitat
Ist der Account bei jabber.de?

ja

nikk

Es funktioniert jetzt.

Ich dachte der username bei Jabber besteht aus username@jabber.de. Nachdem ich nur username ohne "@jabber.de" verwendet habe, hat es funktioniert.

Grüße
Niko

dora71

#69
Zuerst einmal möchte auch ich mich herzlich für das tolle Jabber-Modul in FHEM bedanken ... echt gute Arbeit.

Mir bleiben eigentlich auch nur zwei Fragen:

1. Mein Jabber-Account für FHEM liegt auf jabme.de, ich kann Statusmeldungen rausschicken und ich kann auch Nachrichten an FHEM schicken. Nur bekomme ich den FHEM-Client nicht als online angezeigt, weder auf meinem Tablet mit Conversations noch in Thunderbird mit dem Chat, überall steht offline/abgemeldet.
Da ich in der Definition des JabberClient nicht speziell den OnlineStatus gesetzt habe, ich aber beim Aufruf in FHEM den OnlineStatus als available sehe, würde ich das als Fehlerquelle ausschließen ... muß ich in FHEM noch irgendetwas einstellen, damit der Online-Status an meinen Jabber-Account (der bei jabber.ccc.de liegt) richtig angezeigt wird? Man möge mir verzeihen, falls der Fehler in Richtung XMPP zu suchen ist, bin auf dem Gebiet noch neu und wollte es jetzt für FHEM nutzen.

2. Frage: Leider werden die Umlaute nicht richtig angezeigt, wo sollte ich deswegen am Besten auf die Suche gehen?

Danke fürs Lesen und Antworten.

Gruß
Rainer

BioS

Hi Rainer,

danke für die Rückmeldung, ich freu mich wenn ich was "sinnvolles" zu dem Projekt beisteuern kann ;)

Zu dem Umlaute Problem schau ich bei Gelegenheit mal was da los ist, wahrscheinlich ein Codepageproblem, mir ist das erst durch deine Frage aufgefallen und bei mir werden die Umlaute ebenfalls nicht korrekt dargestellt.
Da kannst du leider nicht viel machen, das muss ich im Code behandeln. Dürfte aber nicht all zu schwer sein bzw. zu lange dauern das zu richten ;D

Das 2. Thema gab es schon mal in ähnlicher Form - mein Modul hat da die falsche "ich bin da" Information an den Server gesendet.

Wenn man jemand im Jabber nicht online sieht, kann das grundsätzlich 2 Möglichkeiten haben:
1. Man hat den Onlinestatus (sog. presence) seines Partners nicht abonniert, dann sehen sich die beiden Clients nicht gegenseitig, können aber Nachrichten austauschen.
2. Mein Modul schickt den falschen "ich bin jetzt online" an den Server (da die vielen unterschiedlichen Server das nicht gleich handhaben)

Beides ist möglich und testen kannst du das relativ einfach:
Du richtest einen 2. Jabber-Client (z.b. PC) mit den Accountdaten deines FHEM Accounts ein und schaust ob du den FHEM Account auf deinem Tablet online siehst.

Wenn dem so ist, schickt mein Modul den falschen Status an den Server, das muss ich dann selber testen.

Andernfalls haben sich die beiden Clients nicht gegenseitig abonniert, dort kannst du folgendes im FHEM probieren:
set JabberClient subscribe deintabletaccount@jabber.ccc.de

Damit versucht FHEM den Onlinestatus deines Tablet-Accounts zu abonnieren.


ZitatMan möge mir verzeihen, falls der Fehler in Richtung XMPP zu suchen ist, bin auf dem Gebiet noch neu und wollte es jetzt für FHEM nutzen.
Zu verzeihen gibt es nichts ;) Lieber frägt man 5x als das ganze Teil frustriert in die Ecke zu werfen, davon haben alle mehr :o)

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

dora71

Hi BioS,

danke für die Rückmeldung ... die Frage mit dem Online-Status hat sich damit wohl geklärt ... hatte tatsächlich noch nicht die gegenseitige presence Geschichte gemacht, kannte bis dato aber auch noch nicht die Befehlsfolge von FHEM dafür , also wieder etwas gelernt  ;D

Bzgl. der Umlaute warte ich dann mal einfach auf eine "Modul-Inspektion", so weit läuft jetzt auf jeden Fall alles wie gewünscht.

Hatte nur am Anfang ziemlich mit dem dämlichen "@"-Zeichen zu kämpfen, da das ja in Perl ein Sonderzeichen ist ... habe es aber letztendlich dann hinbekommen!

Soweit nochmal vielen Dank.

Gruß
Rainer

BioS

Hi Rainer,

Ich hab das UTF8 encoding nun "repariert" - sollte dann im nächsten Update, spätestens morgen mit dabei sein.

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

dora71

Hallo BioS (und Forum),

danke für die Korrektur, werde das nachher direkt testen.

Mir ist noch etwas aufgefallen. Du hast in Posting #3 in diesem Beitrag (auf Seite 1) ein paar Zeilen Code geschrieben, die es ermöglichen, eingehende Befehle an FHEM zu schicken. Das klappt auch soweit prima. Mir ist nur aufgefallen, dass, wenn der Client die Verbindung verliert (z. B. die DSL-Leitung fällt aus, so bei mir geschehen) , nach Wiederherstellung der Verbindung eine "Leermeldung" schickt. Das Gleiche kann man (wahrscheinlich, noch nicht getestet) beobachten, wenn FHEM neu startet (oder z. B. bei mir der Rasppi neu  bootet).

Ist dieses Verhalten gewollt, kann man nachvollziehen, wo das herkommt? Schick wäre es natürlich, wenn der Client dann eine Message in der Art "Verbindung wurde wieder hergestellt" schickt, anstatt nur eine Leermeldung zu erhalten.

Was meint Ihr, oder habe ich nur alleine dieses Verhalten beobachtet?!?

Gruß

Rainer

BioS

Heyho ;)

Hmm also ich hab's jetzt n paar mal versucht, bei mir schickt der client die Antwort ganz normal.

In welcher situation passiert das bei dir genau?
DSL Disconnect -> Nachricht an FHEM -> DSL Reconnect -> Antwort ist "leer" ?

Oder sendet FHEM was während er einen DSL Disco hat?

Ich hab ja auch tägliche disconnects, aber das geht eigentlich ohne Probleme (ok, ich schick auch nicht die ganze Zeit was hin)


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