Neues Modul: 70_Jabber.pm

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

Vorheriges Thema - Nächstes Thema

lukasbastelpeter

Hi, per PN kannst du gerne den Log haben,
aber jetzt muss ich langsam packen, anonymisieren werde ich den dann nach den Urlaub ;)


V-Server wird das Nach-Urlaub-Projekt....

# Raspberry Pi
# Homematic, Z-Wave
# HUE, Tradfri
# Harmony
# ESP8266  Basteleien per MQTT

XPectIT

Hey Danke für die schnelle Umsetzung mit den MUCs.


henryk

Moin,

Ich hab' das Jabber-Modul um eine Funktion die ich sehr nützlich finde erweitert: Bei der Jabber-presence kann man nämlich nicht nur den Zustand angeben (available/unavailable/away/...) sondern auch eine Freitext-Nachricht (also sowas wie "Bin grade hart am arbeiten" für away). Die wird dann in anderen Jabber-Clients in der Regel in der Nähe des Usernamens angezeigt (teilweise konfigurierbar), ich hab' mal einen Screenshot angehängt wie das bei mir auf dem Telefon mit Xabber aussieht.

In meiner Erweiterung gibt's jetzt ein "status" für set, das man benutzen kann um diese Nachricht  zu setzen. Patch gegen die SVN-Version von letzter Nacht hängt an.

Mögliche Anwendungen:

  • Einfacher Gesamtwohnungsstatus der immer im Blick ist
  • Nicht kritische Meldungen, die nur bei Gelegenheit mal bearbeitet werden sollten (Homematic: Batterien wechseln zum Beispiel)

--
Henryk Plötz
Grüße aus Berlin

Firetic

Ich habe das Modul bei meinem System jetzt auch einmal in Betrieb genommen - klappt super schnell und zuverlässig :-)

Gibt es eigentlich irgendeine Möglichkeit mit einem Android Devices vorgefertigte Jabber Nachrichten zu verschicken? Hatte mir vorgestellt mögliche Befehle als Widget zu hinterlegen und somit einfach per Knopfdruck zu verschicken...

Vielleicht benutzt ja jemand schon sowas ähnliches :-D

Gruß Firetic

BioS

Hi Henryk,

Zitat von: henryk am 07 Oktober 2015, 14:03:06
In meiner Erweiterung gibt's jetzt ein "status" für set, das man benutzen kann um diese Nachricht  zu setzen. Patch gegen die SVN-Version von letzter Nacht hängt an.

Coole Idee, danke für den Patch! Ich muss den noch ein klein wenig abändern, denn einige Jabber Server mögen keinen Presence-status um den user "online" werden zu lassen.
Das hatte ich in meinen ersten Versionen drin und da gab es Probleme dass der Jabber-User einfach nicht online gehen wollte.


@Firetic:
Ich wüsste nicht dass es eine App gibt, die Jabber nachrichten vorgefertigt als Widget verschicken kann.
Eventuell kann man was mit Tasker basteln? Wäre in Verbindung mit OTR und NFC auch 'ne nette alternative für mich ;)
FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

alpha1974

Beim Blick in das Log-File meines Prosody-Servers ist mir aufgefallen, dass er meckert, wenn sich FHEM als Client anmeldet:

sasl    warn    Client is violating RFC 3920 (section 6.1, point 7).

Hat aber offenbar auf die Funktion keinen Einfluss...
FHEM/Z-Wave USB-Dongle + div. Devices

oggy

danke für das Modul :) ... Ich benutze es um meinen selbstgebastelten Android-Bilderrahmen (ausrangiertes Nexus7) zu steuern. FHEM sendet eine Jabber-Nachricht zum Android. Auf dem Android läuft Tasker, der die Nachricht auswertet und dann dementsprechend die PhotoSlideshow startet bzw stoppt (beim Stoppen dann auch das Display ausschaltet).

darkness

Hallo,

ich habe heute einen XMPP Server aufgesetzt  und das Modul erfolgreich eingesetzt.
Aber insgesamt bin ich noch recht neu im Bereich FHEM.
Wie kann ich denn per Jabber eine Nachricht senden und dort eine Variable einfügen?

ich hatte es so versucht.
Zitatset JabberClient1 msg ***@voice.n-un.de {ReadingsVal("aussen.temp","state",999)}

Leider werden dann die Werte  nicht eingefügt.
Wie kann ich in die Nachricht eine Variable einfügen?

darkness

#143
Ich habe gerade festgestellt, dass das Jabber-Modul mein System zu 100% auslastet.

In der Conf habe ich

Zitatdefine jabber Jabber voice.n-un.de 5222 ABC GEHEIM 1 0
attr jabber OnlineStatus available
attr jabber PollTimer 2
attr jabber RecvWhitelist .*
attr jabber ResourceName FHEM

Wenn ich FHEM neu starte zeigt mit die Ausgabe TOP
Zitat7991 fhem      20   0   40948  34876   6592 R  94,7  1,0   2:44.90 perl 

Das Jabbermodul zeigt mir:

ZitatJabber authentication error: Cannot Authenticate for an unknown reason. Connectionstatus is: 1

Das konnte ich dazu aus dem Log erkennen

Zitat2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1829.
2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value $sid in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 2740.
2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 2742.
2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value $sid in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 1668.
2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1669.
2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 1669.
2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1671.
2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1673.
2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at /usr/share/perl5/XML/Stream.pm line 1673.
2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1675.
2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 1678.
2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value $sid in hash element at /usr/share/perl5/XML/Stream.pm line 2620.
2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/XML/Stream.pm line 1440.
2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at /usr/share/perl5/XML/Stream.pm line 1442.
2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value within %status in numeric eq (==) at /usr/share/perl5/XML/Stream.pm line 1506.
2015.12.07 22:27:31 1: PERL WARNING: Use of uninitialized value in subtraction (-) at /usr/share/perl5/XML/Stream.pm line 1507.


BioS

#144
Hi darkness,

ohje, das scheint wieder mal ein Problem von der XML Stream Library zu sein.
Ich hab keine Ahnung was die Entwickler da gerade machen, aber die Änderungen vertragen sich nicht besonders gut mit den Verbindungen die wir für Jabber brauchen :)

Das Jabbermodul funktioniert am besten mit den Librarys XML::Stream 1.23 und Net::XMPP 1.02

Auf was für einem System hast du FHEM laufen? Fritzbox? Ein Debian auf einem Raspberry?

Könntest du mal in die Konsole gehen und mir den Output von folgenden Kommandos posten?:
sudo cpan -D XML::Stream

und

sudo cpan -D Net::XMPP

P.S.: dein kommando zum Nachrichten mit gerade abgerufenen Werten zu verschicken sollte so aussehen:
{ fhem("set JabberClient msg xxxx\@voice.n-un.de ".ReadingsVal("aussen.temp","state",999)) }

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

darkness

Hey,

danke für deine Antwort. Die Punkte werde ich heute Abend mal durchgehen.
FHEM läuft bei mit auf einem Ubuntu 15.10 Laptop.

Die Probleme mit der Systemauslastung konnte ich auch eingrenzen. FHEM hatte beim Verbinden mit der MySQL-DB Schwierigkeiten. Das klappt aber jetzt soweit.
Die Readings habe ich jetzt auch hin bekommen. Nutze jetzt die 99_MyUtils. Klappt soweit auch.

Ich habe Jabber gem. Wiki eingerichtet
Zitatdefine jabber Jabber voice.n-un.de 5222 <fhem_user> <passwort> 1 0

Das führt zu der angesprochenen Fehlermeldung. Wenn ich danach im Jabber die 1 und 0  tausche, also

Zitatvoice.n-un.de 5222 <fhem_user> <passwort> 0 1

erhalte ich eine Fehlermeldung (Klar, da kein SSL unterstützt wird).

Ändere ich danach aber wieder zurück auf
Zitatvoice.n-un.de 5222 <fhem_user> <passwort> 1 0
habe ich eine Verbindung und alles läuft. Bei einem Neustart von FHEM geht es aber wieder von oben los.

Mehr Infos dann heute Abend.



BioS

Ahoi,

Wenn das mit dem downgrade der Module nicht klappt, könntest du zusätzlich im Jabber Modul selber mal noch weit oben die Variable $debug auf 1 setzen und mir die FHEM Logfile sowie die /tmp/jabberdebug.log PM'n.

Damit kann ich den Fehler bei der ersten Verbindung - wenn das Modul defined wird - vielleicht eingrenzen.
FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

darkness

Hier die Ergebnisse:

Zitatcpan -D XML::Stream
ZitatXML::Stream
-------------------------------------------------------------------------
   (no description)
   D/DA/DAPATRICK/XML-Stream-1.24.tar.gz
   /usr/share/perl5/XML/Stream.pm
   Installed: 1.24
   CPAN:      1.24  up to date
   Darian Anthony Patrick (DAPATRICK)
   dapatrick@cpan.org

Zitatcpan -D Net::XMPP

ZitatNet::XMPP
-------------------------------------------------------------------------
   (no description)
   D/DA/DAPATRICK/Net-XMPP-1.05.tar.gz
   /usr/share/perl5/Net/XMPP.pm
   Installed: 1.02
   CPAN:      1.05  Not up to date
   Darian Anthony Patrick (DAPATRICK)
   dapatrick@cpan.org

Paketversion von Ubuntu

Zitatii  libnet-xmpp-perl                                    1.02-5                                     all          XMPP Perl library

Ein Downgrade würde ich gerne vermeiden.

BioS

Hi,

in meinen vorherigen Posts hatte ich schonmal rausanalysiert:

Zitat von: BioS am 27 August 2015, 13:36:08

  • XML::Stream 1.24 mit Net::XMPP 1.05 = Verbindung OK, aber keine Callbacks (presence, message, etc.)
  • XML::Stream 1.24 mit Net::XMPP 1.02 = Keine Verbindung (SSL probleme)
  • XML::Stream 1.23 mit Net::XMPP 1.02 = alles gut

du hast die Kombi, die bei meinen Tests überhaupt nicht funktioniert hat :)

Ich würde trotzdem mal probieren die XML::Stream auf die 1.23 downzugraden um andere Fehler am Server etc. auszuschließen.

Wenn das gut geht dann kannst versuchen du beide Pakete upzugraden, die Probleme mit den Callbacks hab ich gelöst, von daher sollte es mit XML::Stream 1.24 und Net::XMPP 1.05 auch gehen.

In der v.1.24 von XML::Stream wurde das Modul stark umgeschrieben, unter anderem wurde oft "weaken" benutzt bei dem es größere Verbindungsprobleme im Allgemeinen gibt, und es wurden viele Änderungen an dem SSL Zertifikatshandling gemacht, diese Probleme *sollte* ich alle in meinem Modul abgefangen haben, aber Garantie kann ich dir natürlich keine geben..
FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

darkness

Guten Morgen,

ein Downgrad hat geklappt. Damit bekomme ich die Verbindung direkt. Vielen Dank für deine Hilfe.

Wird es denn noch eine Anpassung an das Modul 1.24 geben (irgendwann ) ?

Für alle die ebenfalls ein Downgrade durchführen wollen:

cpan DAPATRICK/XML-Stream-1.23.tar.gz