Neues Modul: 70_Jabber.pm

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

Vorheriges Thema - Nächstes Thema

thermo

danke, das muß ich leider auf nächstes WE verschieben. Sonst komme ich morgen nicht raus.

crazy_penguin

Hi BioS,

ich erhalte immer folgende Meldung.

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 235

Die Fehlermeldung tritt dann auf sobald ich meinen Jabber Client definiere.
define JabberFHEM Jabber jabber.de 5222 xxxx.xxxxxxxx yyyyyyyy 1 0

Kannst du dir vorstellen wo das herkommt?

BioS

Hi crazy_penguin!
Das einzige was mir einfällt ist, dass er beim Reconnect ein Problem hat, aber da du schreibst dass es direkt nach dem define kommte ich spontan auf keine andere Idee.

Hast du dich bei jabber.de registriert?
Ich hab mal testweise einen Account dort angelegt, und das geht sauber durch.

Wenn du willst schicke ich dir gern eine Modulvariante mit erweitertem Logging,
alternativ kannst du auch alle "Log 0," Einträge auskommentieren.

So könnten wir dem ganzen auf die schliche kommen..
FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

crazy_penguin

Hi BioS,

ich habe zwei Accounts registriert und getestet. Den einen habe ich meinen SmartPhone, den anderen hatte ich erste mit Miranda IM getestet und später in FHEM eingetragen.
Damit sollte es keine Probleme geben.

Du kannst mir gerne eine variante mit erweitertem Logging zur Verfügung stellen. Ich werde dann mal sehen was im Log steht.

hexenmeister

Cooles Modul! Danke!
Funktionierte bei mir auf Anhieb. Werde weiter testen.

Wann kann man damit im SVN-Repository rechnen?

Grüße,

Alexander

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

hexenmeister

#20
Also, das Senden aus FHEM funktioniert wunderbar.
Andersherum klappt das jedoch nicht. Mein Client zeigt FHEM auch als offline.
Die beiden Accounts liegen bei jabber.de
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

crazy_penguin

Ich habe noch eine Zeile gefunden:

Use of uninitialized value $authresult[0] in string ne at ./FHEM/70_Jabber.pm line 282.

Ich habe in dem Modul alle # vor Log 0 entfernt.

So folgende Fragen:
Wo wird hingeloggt?
In meinem Usernamen befindet sich ein Punkt. Ist das evtl. ein Problem?

BioS

#22
Hi Zusammen,
ich versuche mal alles in einem Post zu beantworten ;)

Generell habe ich das Modul mal nochmal mit erweiterten Loggingfunktionen ausgestattet die man im Script nun mit der $debug Variable (oberer Teil) aktivieren kann.
Es wird in fhem.log (im FHEM log-folder) und in /tmp/jabberdebug.log geloggt.

Zitat von: crazy_penguin am 18 März 2014, 10:59:45
Ich habe noch eine Zeile gefunden:

Use of uninitialized value $authresult[0] in string ne at ./FHEM/70_Jabber.pm line 282.

Ich habe in dem Modul alle # vor Log 0 entfernt.

So folgende Fragen:
Wo wird hingeloggt?
In meinem Usernamen befindet sich ein Punkt. Ist das evtl. ein Problem?

Das ist nicht sehr gut.
Sieht aus wie wenn der sich nicht sauber authentifizieren kann wobei eigentlich nicht "nix" zurückkommen sollte, sondern ein Fehler - zumindest laut der perl Dokumentation.. :(
Am Punkt liegts nicht, das hab ich getestet. Mein Testpasswort "/)Bk^j:`!]1h:!o@0k5=" hat er auch geschluckt. Scheint was anderes zu sein.

Bitte aktualisiere mal das Modul auf die v0.3, die ich eben hoch geladen habe und setze wie beschrieben die $debug variable auf 1, also dass da dann "my $debug = 1;" steht.

Dann schick mir kurz einen Auszug aus deiner FHEM.log sowie die File /tmp/jabberdebug.log, am besten per PM, damit wir den Post hier nicht vollspammen.


Zitat von: hexenmeister am 17 März 2014, 23:43:07
Also, das Senden aus FHEM funktioniert wunderbar.
Andersherum klappt das jedoch nicht. Mein Client zeigt FHEM auch als offline.
Die beiden Accounts liegen bei jabber.de


Hehe, da hab ich mir ganz schön den Wolf gesucht.
Ich hab da wohl beim "onlinestatus" setzen 'nen Fehler gemacht, den mein ejabberd ignoriert, jabber.de aber nicht :)
Bitte aktualisiere auch das Modul auf die 0.3.
Er sollte online gehen und deine Authorisierungsanfrage umgehend beantworten.


Zitat von: hexenmeister am 17 März 2014, 22:17:51
Cooles Modul! Danke!
Funktionierte bei mir auf Anhieb. Werde weiter testen.

Wann kann man damit im SVN-Repository rechnen?

Ich danke euch dass ihr das so super testet. Freut mich immer wieder was sinnvolles zu machen und solche Antworten geben mir immer wieder einen Ansporn, also danke dafür! ;)

Ich wollte warten bis einige "Tester" mir das Modul durchgetestet haben damit ich die Fehler noch ausbessern kann, die ich selber nicht habe. Z.b. dein jabber.de Fehler.

Bevor ich das aber ins SVN stelle, wollte ich eigentlich noch einen Fritzbox User der mir das testen könnte.
Ich habe selber keine Fritzbox, und mein Kollege meinte das es wohl ein ganz schöner graus ist dort perl-module zu installieren.

Im schlechtesten Fall würde das Modul FHEM abstürzen lassen, wenn es sein Net::XMPP und Net::Jabber auf der Fritzbox nicht findet und ich würde doch sehr ungern FHEM mit dem Modul instabil machen ;)



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

hexenmeister

Hallo und danke für die schnelle Lösung!

Jetzt wird Status richtig angezeigt, auch das Senden zum FHEM funktioniert.

Was mich etwas irritiert, ist die Tatsache, dass wenn mein Handy offline ist, die gesedete Nachrichten nicht nach dem Online-Gehen nachträglich zugestellt werden. Am Plugin liegt das natürlich nicht. Weißjemand, ob das eine Jabber-Protokoll-Eigenschaft ist, oder liegt es an jabber.de?


Grüße,

Alexander


P.S. Eine FritzBix habe ich zwar... ich habe aber gerade nachgelesen, was man tun muss, um Perm-Module zu intallieren... Aua!
Bin mir da nicht so sicher, dass die Box danach nicht ganz resettet werden muss ;)
Zur Not kann ich das schon probieren, wäre mir aber liber, wenn sich ein echter Interesset finden würde...
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

hexenmeister

ZitatWas mich etwas irritiert, ist die Tatsache, dass wenn mein Handy offline ist, die gesedete Nachrichten nicht nach dem Online-Gehen nachträglich zugestellt werden.

Nehme alles zurück, das funktioniert jetzt :)

Habe mir damit ein Status-Reporting und Commando-Interface gebastelt.

Nochmals danke für ein nützliches Modul ;)

Grüße,

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

martinschm

Hi,

ich kriege immer diesen Fehler im Log:
2014.04.03 00:49:04 0: Can't locate Net/Jabber.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/70_Jabber.pm line 41.
BEGIN failed--compilation aborted at ./FHEM/70_Jabber.pm line 41.


Wie bekomme ich den unter Linux auf meinem Raspberry net::jabber installiert?
Hab gerade noch libnet-xmpp-perl installiert, aber das ist vermutlich das falsche Paket, oder?

ciao
Martin

crazy_penguin

Moin,

installiere mal libnet-jabber-perl

martinschm

Hi,

@crazy_penguin: Vielen Dank, das hat geholfen.

@hexenmeister: könntest du mal deine define commands für jabber.de posten. Hab aktuell noch einen connection error.

Danke
Martin

martinschm

#28
Hi,

habs hinbekommen.

Also für jabber.de kann man das folgende define verwenden:
define DeinNameFürDasJabberDeviceInFhem Jabber jabber.de 5222 DeinUsername DeinPasswort 1 0

State laut fhem ist jetzt connected. Auf meinem Handy wird der Account allerdings noch als offline angezeigt und die Nachrichten kamen noch nicht an und die Nachricht von meinem Handy an fhem kommen nicht an. Umgekehrt geht es.

Oder werden die von fhem empfangenen Nachrichten nicht ins log geschrieben?


Erst lesen, dann posten :)
Nachrichten kommen an. Cooles Modul, Nettozeit um es ans laufen zu bringen vielleicht 20 min.

Gibt es schon eine Wiki-Seite dazu?

ciao
Martin

martinschm

Hi,

wo/wie lege ich den Notify so an?
Über die Kommandozeile in fhem kriege ich dann immer eine Fehlermeldung das my unbekannt ist.

ZitatWenn dein JabberClient "JabberClient" heißt:
Code: [Auswählen]

define jabber_test_notify notify JabberClient:Message.* {
  my $lastsender=ReadingsVal("JabberClient","LastSenderJID","0");
  my $lastmsg=ReadingsVal("JabberClient","LastMessage","0");
  my $fhem_output=fhem(ReadingsVal("JabberClient","LastMessage","0"));
  fhem("set JabberClient msg ". $lastsender . " FHEM: ".$fhem_output) ;
}

Wie ist die genaue Syntax, wenn ich die Whitelist auf ein oder zwei Accounts einschränken will?
Kommt statt dem * einfach nur der erlaubte Useraccount und wie notiere ich dann den zweiten Account?

ciao
Martin