FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: BioS am 18 Januar 2014, 11:51:20

Titel: Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 18 Januar 2014, 11:51:20
Hi Gemeinde,

kürzlich, so vor ca. einem halben Jahr, hat mich mein Kollege und FHEM'ler Predictor auf die Idee gebracht ein Jabber bzw. XMPP Modul für FHEM zu entwickeln, also hab ich die letzten eineinhalb Tage meines Urlaubs geopfert ;)

Grund ist dass wir im Jabber recht aktiv sind und es ganz nett ist wenn FHEM an unsre Chat-Accounts Infos schreiben kann - ähnlich wie z.B. mit Pushover.

Per Jabber hat man allerdings nicht nur einen Vorwärts-, sondern auch einen Rückwärtskanal - d.h. ich kann FHEM eine Message schicken und FHEM kann das als notify empfangen und reagieren.


Ihr braucht 2 Jabber Accounts um das zu testen, einen für euch, einen für FHEM.
Wer nicht bei einem offiziellen Jabber Server (siehe jabber.org) suchen möchte darf mir gerne eine PM schreiben, ich hab noch ein paar Testaccounts auf einem privaten Server.

Benötigt wird das perl Modul Net::Jabber damit es funktioniert. Wie man das auf einer FritzBox installiert oder ob das vielleicht schon drauf ist weis ich leider nicht. Da könnte ich die Infos von ein paar Fritz'lern gut gebrauchen.


Ansonsten hier eine kurze Beschreibung:

Define:
define <name> Jabber <server> <port> <username> <password> <tls> <ssl>
Beispiel:
define JabberClient1 Jabber jabber.org 5222 myusername mypassword 1 0
Damit verbindet sich FHEM schon mit dem Server und setzt sich selbst online.

dann kann man dem User schon Nachrichten schicken und diese sollten im Event-Monitor mit auftauchen.

Selbst kann man Nachrichten, geklaut von Pushover, in dieser Form senden:
set JabberClient1 msg user@jabber.org meine Nachricht ohne Anführungszeichen
Über Notify's kann man auf eingehende Nachrichten reagieren.
Weitere Infos über die Attribs und ein Notify Beispiel stehen im Modul als englische Doku zur Verfügung.

Ich stelle euch das Modul hier jetzt mal zum Testen und Spielen zur Verfügung - Ideen, Vorschläge, Verbesserungsvorschläge natürlich erwünscht!
Viel Spaß damit ;)

Update 2014-04-10:
ich hab die File, die im Forum angehängt war gelöscht.
Das Modul lebt ab jetzt im SVN weiter und kommt mit den FHEM Updates entsprechend ;)


Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Predictor am 26 Januar 2014, 23:00:24
Dauerte etwas, aber hab den Post entdeckt.
Da ich leider gerade etwas unter Wasser bin (wie schon im Multimedia Bereich offenbart) konnte ich bisher nicht schauen wie ich Module auf eine Fritz bekomme.

Ich denke ein kurzer Post im Dev Bereich bringt da viele Antworten.

Ansonsten schon mal THX für die Mühe
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: mrmarbury am 28 Januar 2014, 00:34:16
Hey,

sehr feines Plugin. Leider schmiert fhem immer ab, wenn ich tls durch eine 1 ersetze.
Aktueller workaround: ich habe einen, nicht von außen erreichbaren, unverschlüsselten Port auf dem jabber server angelegt. Nun verbindet er sich und sendet Nachrichten.

Aber auf gesendete Nachrichten antwortet das plugin nicht. Auch nicht mit whitelist auf '.*' gesetzt.
Ich würde gerne z.B. Werte abfragen, z.B. würde ich gerne eine Nachricht ala "set HeizungWz getConfig" absetzen und er soll mir die gesamte config per jabber senden. Geht sowas?
Wenn ja, wie?

Generell aber mal fetten Dank für das Plugin!! So gehen Notifications auch ohne google als man in the middle ;)

Cheers,
Stefan
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 28 Januar 2014, 01:07:25
Hi Stefan,

freut mich, dass das Plugin nicht umsonst war :)

zu deinem TLS Problem: Was für einen Jabber Server hast du? Ich benutze bei mir ejabberd und da geht die TLS funktion ohne Probleme.
Vielleicht kannst du mir per PM die Fehlermeldung schicken, wenn das Plugin bei dir abstürzt. Ist bestimmt nur eine SSL/TLS Sache.

Zu deiner anderen Frage mit dem Antworten:
Das Plugin schickt quasi Events die man per notify abfangen kann.
Wenn du ein notify wie folgt definierst, nimmt das Plugin deine Message als FHEM Kommando an und schickt dir den Output:
(Achtung, wenn du RecvWhitelist auf .* hast, kann jeder Jabber User dein FHEM steuern! ;) )

Wenn dein JabberClient "JabberClient" heißt:
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) ;
}

Ich habs eben noch getestet, damit kann man dann alles mögliche machen:
list WohnzimmerLicht
set WohnzimmerLicht off
{ Value('WohnzimmerLicht') }

Wenn du denkst, dass die Nachrichten nicht ankommen kannst du das im Normalen Event Monitor prüfen, da sollte wie beim Licht schalten auch eine Zeile kommen in der deine Nachricht steht.


Have Phun :)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: mrmarbury am 28 Januar 2014, 11:24:13
Hi,

cool, dass probiere ich heute oder morgen Abend mal aus.  Das mit der Whitelist ist mir klar.  Wollte nur verdeutlichen, dass es nicht daran liegt, dass meine regex falsch definiert ist ;)

Auf meinem Server läuft auch ejabberd. MIt self signed cert. Wenn ich mir die perl libraries aber so anschaue, dann sollten self signed certs eh automatisch akzeptiert werden. Ich muss wohl noch etwas rumspielen.
Aber da ejabberd und fhem auf dem gleichen BSD laufen, nur in unterschiedlichen jails, habe ich das routing so gebaut, dass nur fhem  über den nicht verschlüsselten port gehen kann. In sofern sollte es so auch erstmal passen.

Umsonst war es definitiv nicht. Da jabber mein Hauptkommunikationsmedium ist, ist eine Integration davon perfekt.

Cheers,
Stefan
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 28 Januar 2014, 13:49:53
Hi,

ich hab den Fehler mit SSL gefunden.
Im ejabberd gibt es 4 verschiedene Möglichkeiten SSL bzw. TLS zu aktivieren ;)

Du hast in deiner config vermutlich "tls" drin, ich arbeite mit "starttls", da die "tls" Option anscheinend im xmpp deprecated ist.
Nun ist wohl unter dem ejabberd tls == ssl und starttls == tls, sehr witzig..

Egal wie es nun geconft ist, ich habe das Modul im 1. Post aktualisiert, jetzt hat man hinten 2 Optionen, einmal <tls> und <ssl>

Du kannst dann ja mal probieren ob es besser geht wenn du die tls option auf 0 setzt und die ssl option auf 1
So sieht das neue define aus:
define <name> Jabber <server> <port> <username> <password> <tls> <ssl>
Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: mrmarbury am 28 Januar 2014, 17:48:56
Hi,

ja, habe tls in der config. aber auch starttls. Ich supporte sowieso Beides - auf unterschiedlichen Ports. Es gibt doch tatsächlich Clients, die noch nie TLS gehört haben. Aber ich habe auch beide Ports ausprobiert. Ich werde aber bei nächster Gelegenheit mal Dein aktualisiertes Modul ausprobieren und berichten.

Der Server läuft schon seit Jahren und ist auch schon mehrfach umgezogen ( was mit ejabberd absolut keinen Spaß macht. Dafür ist er sehr stabil und läuft und läuft) und recht gut besucht.  Aber vll hilft es ja Abschätzungen für das Modul zu machen, wenn Du auch andere Configs gesehen hast? Ist aber recht Standard und übersichtlich.
 
Die Config, nur zur info und nicht relevante Teile durch Platzhalter ersetzt oder weggelassen (ja, auch der cert-path ;) ):


...

{listen,
 [
  %%
  %% TLS
  %%
  {5222, ejabberd_c2s, [

                        {certfile, "/path/to/my/cert"}, starttls,
                        {access, c2s},
                        {shaper, c2s_shaper},
                        {max_stanza_size, 65536}
                       ]},

  %%
  %% Legacy SSL
  %%
  {5223, ejabberd_c2s, [

                        {access, c2s},
                        {shaper, c2s_shaper},
                        {certfile, "/path/to/cert"}, tls,
                        {max_stanza_size, 65536}
                       ]},

  %%
  %% MEH - Never route this to the outside world!
  %%
  {5224, ejabberd_c2s, [
                        {access, c2s},
                        {shaper, c2s_shaper},
                        {max_stanza_size, 65536}
                       ]},

... weitere ports, aber für Interconnectivity zu anderen Servern ...
]}

Cheers,
Stefan
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: martinschm am 20 Februar 2014, 13:59:53
Hi BioS,

hört sich sehr interessant an.

Ich brauche dafür nicht zwangsläufig einen eigenen Jabber Server, oder?

Wie kann man gewährleisten, dass der FHEM Jabber-Account keinen Input von anderen annimmt?
Wenn der Useraccount nicht bekannt ist, hilft das etwas aber ein wirklicher Schutz ist es ja auch nicht.

ciao
Martin
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 20 Februar 2014, 18:00:45
Hi Martin,

Du brauchst nicht zwangsläufig einen eigenen jabber Server.
Es reicht wenn du einen Account bei irgendeinem free Anbieter erstellst.

Eine Liste mit free Anbietern findest du auf http://jabber.org

Das Plugin hat eine Option in der man einstellen kann von wem der FHEM Server Nachrichten akzeptiert.

D.h. dort kannst du deine jabber Adresse eintragen und dann kannst nur du deinem Server was schreiben :)

Soweit ich weis sind diese Adressen auch nicht fake-bar, da ein jabber Server immer nur mit seinen eigenen usern arbeitet und sich gegenüber anderen Servern authentifiziert im dns wie auch mit einem ssl Zertifikat.

Also nicht so wie bei EMails bei denen ein Server Mails von anderen Accounts weiterleiten kann..

Grüße,
BioS

Gesendet von meinem XT910 mit Tapatalk
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: martinschm am 20 Februar 2014, 18:20:38
Ok cool. Danke für die schnelle Antwort.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 20 Februar 2014, 18:26:42
Kein ding :)
Denk nur dran dass du 2 Accounts brauchst - einen für dich und einen für deinen FHEM Server.

Gesendet von meinem XT910 mit Tapatalk

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: thermo am 23 Februar 2014, 18:33:11
Hi,

das klingt nach einer   tollen Sache! So kann ich bequem mein fhem von auswärts bedienen, ohne mir mit dem webinterface am smartphone einen abzubrechen!
Senden klappt auf Anhieb schon einmal super. Wenn ich antworte kommt aber nichts im event an.

Sollte doch oder?

Gruß, George
 
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 23 Februar 2014, 20:33:10
Hi George,

deine Antwort sollte im Eventmonitor als auch in den readings erscheinen.
Versuche mal das Attribut “ RecvWhitelist“ auf    .*    zu setzen.

Grüße,
BioS

Gesendet von meinem XT910 mit Tapatalk

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: thermo am 23 Februar 2014, 21:16:46
das Problem liegt woanders,  das ganze hat genau einmal funktioniert. Jetzt kann ich auch nicht mehr senden. In pidgin erscheint der user auch als offline.
Wie kann man das debuggen?

Gruß
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 23 Februar 2014, 21:21:01
Ich habe in dem Modul noch einen Haufen debug zeilen drin, die müsstest du auskommentieren.

Fangen mit “Log 0,“ an. Du musst das # entfernen.

Gesendet von meinem XT910 mit Tapatalk

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: thermo am 23 Februar 2014, 21:31:04
danke, das muß ich leider auf nächstes WE verschieben. Sonst komme ich morgen nicht raus.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: crazy_penguin am 14 März 2014, 09:22:53
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?
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 16 März 2014, 18:18:48
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..
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: crazy_penguin am 17 März 2014, 16:48:05
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.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag 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?

Grüße,

Alexander

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag 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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag 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?
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 19 März 2014, 01:08:38
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.

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.


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.


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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 19 März 2014, 21:15:33
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...
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 21 März 2014, 09:18:12
Zitat
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.

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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: martinschm am 03 April 2014, 00:51:39
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: crazy_penguin am 03 April 2014, 06:56:09
Moin,

installiere mal libnet-jabber-perl
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: martinschm am 03 April 2014, 10:55:05
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: martinschm am 03 April 2014, 11:15:43
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: martinschm am 03 April 2014, 11:41:05
Hi,

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

Zitat
Wenn 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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 03 April 2014, 13:10:17
Moin,

gerne kann aich meine Konfiguration und die Perl-Methoden (habe ich in 99_myUtils.pm abgelegt) hier posten. Allerdings erst heute abend, wenn ich wieder zuhause bin.

Grüße,

Alexander
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 03 April 2014, 23:11:53
So, meine Jabber-Definitionen:

in fhem.cfg
define jabber Jabber jabber.de 5222 <fhem_user> <pass> 1 0
attr jabber OnlineStatus available
attr jabber PollTimer 2
attr jabber RecvWhitelist <my_user>@jabber.de
attr jabber ResourceName FHEM

define Jabber_Notify notify jabber:Message.* {sendJabberAnswer();;}

define jabberstatus at *05:10:00 {sendMeStatusMsg();;}

und in 99_myUtils.pm
######################################################
# Meldung per Jabber senden
######################################################
sub
sendJabberMessage($$)
{
  my($rcp, $msg) = @_;
  fhem("set jabber msg $rcp $msg");
}

######################################################
# Meldung an mich per Jabber senden
######################################################
sub
sendMeJabberMessage($)
{
my($msg) = @_;
sendJabberMessage('<my_user>@jabber.de', $msg);
}

######################################################
# Statusdaten an mein Handy per Jabber senden
######################################################
sub
sendMeStatusMsg()
{
my $msg = "Status: Umwelt";
$msg=$msg."\n  Vorgarten: ";
$msg=$msg."T: ".ReadingsVal("UM_VH_OWTS01.Luft", "temperature", "---")." C";
$msg=$msg."\n  Garten: ";
$msg=$msg."T: ".ReadingsVal("GSD_1.4", "temperature", "---")." C,";
$msg=$msg." H: ".ReadingsVal("GSD_1.4", "humidity", "---")." %,"; 
$msg=$msg." Bat: ".ReadingsVal("GSD_1.4", "power_main", "---")." V";

sendMeJabberMessage($msg);
}

######################################################
# Kleines Jabber-Cmd-Interface
######################################################
sub
sendJabberAnswer()
{
  my $lastsender=ReadingsVal("jabber","LastSenderJID","0");
  my $lastmsg=ReadingsVal("jabber","LastMessage","0");
  my @cmd_list = split(/\s+/, trim($lastmsg));
  my $cmd = lc($cmd_list[0]);
  # erstes Element entfernen
  shift(@cmd_list);
 
  my $newmsg;
  if($cmd eq "status") {
  $newmsg.= "Status: (noch) nicht implementiert";
  }
 
  if($cmd eq "umwelt") {
    $newmsg.= "Umwelt";
    $newmsg.="\n  Vorgarten: ";
    $newmsg.="T: ".ReadingsVal("UM_VH_OWTS01.Luft", "temperature", "---")." C, ";
    $newmsg.="B: ".ReadingsVal("UM_VH_HMBL01.Eingang", "brightness", "---").", ";
    $newmsg.="Bat: ".ReadingsVal("UM_VH_HMBL01.Eingang", "battery", "---")." ";
    $newmsg.="\n  Garten: ";
    $newmsg.="T: ".ReadingsVal("GSD_1.4", "temperature", "---")." C,";
    $newmsg.=" H: ".ReadingsVal("GSD_1.4", "humidity", "---")." %,"; 
    $newmsg.=" Bat: ".ReadingsVal("GSD_1.4", "power_main", "---")." V";
  }

  if($cmd eq "system") {
   $newmsg.= "CPU Temp: ".ReadingsVal("sysmon", "cpu_temp_avg", "---")." C\n";
   $newmsg.= "loadavg: ".ReadingsVal("sysmon", "loadavg", "---")."\n";
   $newmsg.= "Auslastung: ".ReadingsVal("sysmon", "stat_cpu_text", "---")."\n";
   $newmsg.= "RAM: ".ReadingsVal("sysmon", "ram", "---")."\n";
   $newmsg.= "Uptime: ".ReadingsVal("sysmon", "uptime_text", "---")."\n";
   $newmsg.= "Idle: ".ReadingsVal("sysmon", "idletime_text", "---")."\n";
   $newmsg.= "FHEM uptime: ".ReadingsVal("sysmon", "fhemuptime_text", "---")."\n";
   $newmsg.= "FS Root: ".ReadingsVal("sysmon", "fs_root", "---")."\n";
   $newmsg.= "FS USB: ".ReadingsVal("sysmon", "fs_usb1", "---")."\n";
   $newmsg.= "Updates: ".ReadingsVal("sysmon", "sys_updates", "---")."\n";
  }

  # ggf. weitere Befehle
 
  if($cmd eq "help" || $cmd eq "hilfe" || $cmd eq "?") {
  $newmsg.= "Befehle: Help (Hilfe), Status, System, Umwelt";
  }
 
  if($cmd eq "fhem") {
    my $cmd_tail = join(" ",@cmd_list);
    $newmsg.=fhem($cmd_tail);
  }
 
  if($cmd eq "perl") {
    my $cmd_tail = join(" ",@cmd_list);
    $newmsg.=eval($cmd_tail);
  } 
 
  if(defined($newmsg)) {
    fhem("set jabber msg ". $lastsender . " ".$newmsg);
  } else {
  fhem("set jabber msg ". $lastsender . " Unbekanter Befehl: ".$lastmsg);
  }
}

Es werden zwei Jabber-Accounts benötigt: <fhem_user> und <my_user>
Das ist ein Beispiel und wird nicht ohne Änderungen laufen, passt es ggf. selbt an!

Was das ganze tut:
 - Jeden Morgen mir die Wetterdaten von 2 meiner Sensoren zu senden
 - Mehrere Befehle per Jabber-Chat akzeptieren und beantworten:
  -- System: ausgewählte System Informationen
  -- Umwelt: Wetterdaten
  -- perl <perl_cmd>: Perl-Befehle ausführen
  -- fhem <fhem_cmd>: FHEM-Commandos ausführen.
 etc.

Grüße,

Alexander
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: martinschm am 03 April 2014, 23:21:29
Hi Alex, sehr cool. Eine super Grundlage die man für sich anpassen kann.
Ciao
Martin
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 04 April 2014, 09:13:32
Hi Marinschm,


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?

Die Whitelist ist wird per Regular Expression ausgewertet, d.h. wenn du nur einen useraccount benutzen willst,
kannst du direkt den jabber Account in dieses Attribut setzen: user@jabberserver.de

Wenn du mehrere Accounts zulassen willst musst du dich an die regex syntax halten: (user1@jabberserver.de|user2@jabberserver.de)

Wenn man es ganz genau machen will muss man den Punkt mit einem Backslash escapen: (user1@jabberserver\.de|user2@jabberserver\.de)

Ich hoffe das hilft weiter.

@hexenmeister: Das ist wirklich sehr cool! Werde ich bei meiner Installation auch mal testen ;)

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: martinschm am 05 April 2014, 22:23:01
Hi,

habs gerade eingebunden und auch gleich meinen ersten eigenen Befehl definiert. Sehr cool.
Danke euch allen.

ciao
Martin
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: swifty am 08 April 2014, 19:35:40
sehr geil ;-)

ich versuche gerade mein Android, auf dem ich eine App für einen Bewässerungscomputer für meinen Strebergarten schreibe, mit FHEM zu verheiraten. Da gibt es zwei möglichchkeiten, per WBS und/oder http request und OpenVPN (wackelig) oder halt per Google cloud (so ähnlich wie es andFHEM macht).

Für eine Bidirektionale Schnittstelle wäre aber XMPP nötig, was ja Jabber ja ist.
Ich hab mich noch nicht so richtig reingefuchst, aber wäre das Jabber modul in fhem dazu in der Lage?

gruß
swifty
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 08 April 2014, 19:44:46
sehr geil ;-)

ich versuche gerade mein Android, auf dem ich eine App für einen Bewässerungscomputer für meinen Strebergarten schreibe, mit FHEM zu verheiraten. Da gibt es zwei möglichchkeiten, per WBS und/oder http request und OpenVPN (wackelig) oder halt per Google cloud (so ähnlich wie es andFHEM macht).

Für eine Bidirektionale Schnittstelle wäre aber XMPP nötig, was ja Jabber ja ist.
Ich hab mich noch nicht so richtig reingefuchst, aber wäre das Jabber modul in fhem dazu in der Lage?

gruß
swifty

Bestimmt, mit der ein oder anderen Anpassung.

Ich könnte vielleicht mein Modul zusätzlich als eine Art input Modul funktionieren lassen, dass quasi über xmpp andere module miteinander sprechen können, so als eine art transport layer wie das CUL modul :)

Grüße BioS



Gesendet von meinem XT910 mit Tapatalk

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: swifty am 08 April 2014, 19:59:27
yepp.

das wäre super. Wenn die Android app mal ohne FHEM funzt kann ich hoffentlich mithelfen.

Jan
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: martinschm am 08 April 2014, 20:34:55
Hi
Ihr müsstet doch eigentlich nur den Code von Hexenmeister nehmen und anpassen. Bei gewissen "Befehlen" in der Jabber Nachrichten löst du dann die für die Bewässerung notwendigen Anweisungen aus. Jabber ist dann nichts anderes als ein Schalter.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 08 April 2014, 21:22:44
Hi,

so wie ich das verstanden habe will er über eine Android App per XMPP FHEM steuern.
Das würde schon gehen wenn man das über notifys macht, aber wenn's bidirektional werden soll (und in einer Ausbaustufe mal ähnlich wie andFHEM werden soll) wäre es sauberer mann würde das über ein eigenständiges Modul machen.

@swifty: oder hab ich dich falsch verstanden und du willst wirklich nur per Jabber einen Befehl an FHEM senden der dann ein reply gibt?
Dann wäre es tatsächlich einfacher du würdest das über ein notify define machen.

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: swifty am 08 April 2014, 21:45:32
ich denke schon, ev geht es natürlich auch irgendwie auch anders.
Die idee wäre dass die APP letztendlich notifys auslösen kann und bestimmte dummy defines an die App übertragen werden. So können Statusinfos geholt werden und Befehle abgesetzt.

Die Synchronisierung läuft über die Google cloud. Das Timing und asynchrone übertragen managed alles die Cloud, die App kann dadurch sehr einfach Daten empfangen und senden. Dafür wird es halt in FHEM schwieriger.

Beschrieben ist es hier: http://developer.android.com/google/gcm/ccs.html (http://developer.android.com/google/gcm/ccs.html)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 08 April 2014, 22:53:24
Ich hab mir das mal angeschaut, leider bin ich kein Android developer, bzw hab da einfach zu wenig Zeit dazu mich da tiefer reinzugraben :(

Aber das wird wohl mit dem Modul in der jetzigen Form nicht möglich sein, da der GCS ack's erwartet und das ganze über Roh-XMPP läuft. Also ohne die ganzen Subscribe und chat Funktionen.

Das schreit förmlich nach einer Implementation wie ein CUL Connectionmodul.
Ein Modul das die Verbindung aufbaut und sich um die messageID's kümmert, und jeweils ein Modul mit der "Funktionalität" die man haben will passend zu einer deviceID.

Sowas hab ich in z.Zt in mache wegen meinen XBee's. Auf dem könnte ich Logiktechnisch aufsetzen.

Also wenn du irgendwann mal Zeit hast melde dich, da können wir mal zusammen ein wenig basteln ;)

Grüße,
bioS


Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: swifty am 08 April 2014, 23:38:02
prima, so machen wir es.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Gerhard am 10 April 2014, 09:41:42
Hallo BioS,

ich schliesse mich Predictor an, wie kann man dein Modul auf der FB 7390 oder vll alle FBs benutzen?, was muss man installieren oder einstellen? (ist ssl auf der FB ein Problem?).

Danke, Gerhard
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 10 April 2014, 11:19:44
Hallo BioS,

ich schliesse mich Predictor an, wie kann man dein Modul auf der FB 7390 oder vll alle FBs benutzen?, was muss man installieren oder einstellen? (ist ssl auf der FB ein Problem?).

Danke, Gerhard

Hallo Gerhard,

schade dass sich Predictor nicht mehr gemeldet hat zu dem Thema, da er ja eigentlich der Anstoß zu dem ganzen Modul war.

Ich selbst habe keine Fritzbox, deshalb kann ich deine Fragen auch nicht beantworten.
Aber ich hab mich mal durchs Forum und Google bequemt auf der Suche nach Antworten, da sieht es allerdings nicht allzu rosig aus.

Anscheinend wird von AVM nur ein kleiner Standartsatz an perl Modulen für das FHEM image angeboten, die meinem Modul allerdings nicht sehr viel bringen.

Ich habe nichts gefunden ob und wie man perl Module auf einer FRITZ!Box einfach nachinstallieren kann.

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 10 April 2014, 11:28:08
Man kann schon einiges auf der FritzBox nachinstallieren, ist jedoch recht mühsam und nicht für die Gesamtperformace förderlich. FritzBox ist nicht umsonst so 'beschnitten'...
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 10 April 2014, 11:50:02
Danke hexenmeister,

dann würde ich jetzt einfach mal in den Raum stellen dass dieses Modul wohl auf der FRITZ!Box sich nicht so einfach zum laufen bringen lässt und/oder nur mit einhergehender Ressourcenschluckerei, die ja nicht Sinn der Sache sein soll.

Ich kann leider nach wie vor nichts tun, da mir die Ressourcen zum kompilieren und testen fehlen (ich habe keine Fritzbox).

Wiederrum kann ich nur jedem der FHEM mit den neuesten Funktionen haben möchte zu einem ordentlichen debian System raten (z.b. auf dem Raspberry Pi) - da dauert das offizielle FHEM update und die Installation der benötigten Perl Module 2-5 Minuten..

Grüße,
BioS

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: eldrik am 10 April 2014, 12:54:02
Hi,

ich wollte das Modul, mit meinem Jabber Server, der mit OS X Server 10.8 ausgeliefert wird, nutzen beim verbinden über folgendes

define define jabber Jabber servername.domainname.de 5222 user@servername.domainname.de passwort 1 0 hängt fhem jedoch eine weile und ich erhalte im Anschluss unter Conninfo

Jabber authentication error: system SASL timed out authenticating
Der State steht im Status Disconnected

Über andere Jabber Clients kann ich mich wunderbar mit dem Server verbinden  :(

Die CPAN Module Net::XMPP, Net:Jabber sowie Authen::SASL sind installiert.

In den Logs von Jabber seh ich als letzten Eintrag für den Host, der die Verbindung versucht aufzubauen, den folgeden Eintrag

Apr 10 12:43:33 servername.domainname.de jabberd/c2s[89248]: [9] [::ffff:192.168.1.xx, port=53012] is being byte rate limited

Jemand eine Idee?

Greetz
Eldrik
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Joachim am 10 April 2014, 13:18:00
http://www.fhemwiki.de/wiki/Cpan_auf_Fritzbox
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 10 April 2014, 13:24:05
Zitat
zu einem ordentlichen debian System raten (z.b. auf dem Raspberry Pi)
Kann mich auch nur anschließen. Ich habe den Umstieg von FB auf Rasp nicht bereut. Die Antwortzeiten sind schon deutlich besser. Jetzt spiele ich mit dem Gedanken, auf einen Cubietruck umzusteigen.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 10 April 2014, 13:26:10
@Joachim

Die Seite habe ich mir schon mal angesehen. Genau diese Kopier-Orgie möchte ich auf meiner FB lieber nicht veranstalten :(
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Joachim am 10 April 2014, 13:28:41
War ja nur ne Idee
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 10 April 2014, 13:33:27
Dankeschön, Joachim.

Gerhard: vielleicht kannst du es mal mit dem Link von Joachim probieren die Perl-Module nachzuinstallieren?
Du müsstest Net::Jabber und die abhängigkeiten davon, sowie Authen::SASL installieren.

eldrik:
Versuch mal SSL auf 1 zu setzen und TLS auf 0, hast du aber bestimmt schon probiert oder? :)
Alternativ das debugging im Modul selber einschalten und die Variable $debug von 0 auf 1 setzen, da sieht man dann recht genau was passiert.


Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 10 April 2014, 13:41:56
Hey Hexenmeister,
Kann mich auch nur anschließen. Ich habe den Umstieg von FB auf Rasp nicht bereut. Die Antwortzeiten sind schon deutlich besser. Jetzt spiele ich mit dem Gedanken, auf einen Cubietruck umzusteigen.

wtf ist cubietruck? Noch nie gehört ;)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 10 April 2014, 13:54:06
Cubietruck ist auch ein Einplatinenrechner, wie Raspberry, aber wesentlich mächtiger.  :)
Hier z.b. eine Beschreibung http://www.exp-tech.de/Mainboards/ARM/Cubietruck.html
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: eldrik am 10 April 2014, 14:44:12
@BioS

ja wenn ich statt 1 0 im define 0 1 eingebe erhalte ich die Meldung Jabber connect error () im Log wird trotz im Modul aktivieren Debug nichts ausgegeben.

SSL ist bei meinem Jabber auf Port 5223 definiert, ich denke dies muss ich dann im define setzen? Mein Fhem verhält sich hier jedoch wie bei 5222 1 0

Im State steht nach dem define Disconnected im Log taucht in beiden Varianten aber trotzdem irgendwann:

014.04.10 14:29:46.682 0: jabber DoProcess Call
2014.04.10 14:29:46.684 0: jabber Poll End
2014.04.10 14:29:48.685 0: jabber Jabber PollMessages
2014.04.10 14:29:48.685 0: jabber DoProcess Call
2014.04.10 14:29:48.687 0: jabber Poll End

auf, für das eigentliche define wird jedoch vom Modul nichts gelogged.

Sende ich eine Nachricht über die von Hexenmeister zur Verfügung gestellten Definitionen aus fhem an meinen eigenen Jabber Benutzer erhalte ich direkt:

2014.04.10 14:32:18.998 0: jabber Connection died
2014.04.10 14:32:19.037 0: jabber Poll End

eine Nachricht kommt entsprechend bei meinem eigenen User nicht an.

Greetz
Eldrik




Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 10 April 2014, 15:35:55
Cubietruck ist auch ein Einplatinenrechner, wie Raspberry, aber wesentlich mächtiger.  :)
Hier z.b. eine Beschreibung http://www.exp-tech.de/Mainboards/ARM/Cubietruck.html

Boa, geiles Teil, dass muss ich mir mal reinziehen wenn ich wieder mehr "Freizeit" habe :D :D

Hätte es den ganzen mist nur 12 Jahre früher gegeben als ich noch Zeit uns lust hatte am Auto zu basteln ;D
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 10 April 2014, 16:10:27
Zitat
Boa, geiles Teil...
Sag' isch ja ;D
Der kann dann auch gleich als halbwegs brauchbares NAS dienen etc.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: nikk am 10 April 2014, 16:42:03
Zitat
Boa, geiles Teil

Da kann ich mich nur anschließen! Ich habe vom Raspberry Pi auf den Cubietruck gewechselt. Die Performance ist nochmal deutlich besser.

In der commandref, im Abschnitt Jabber, führt der folgende Link auf den Thread "Modul für Pushover" anstatt auf diesen hier:
Zitat
Discuss the module in the specific thread here.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: eldrik am 11 April 2014, 07:33:50
Hi,

kurze Rückmeldung von meiner Seite, ich musste nachdem mich BioS auf die richtige Fährte gebracht hat (danke an dieser Stelle), einige meiner Authentificationmodule auf Seiten von Jabber deaktivieren, auch wenn ich über meinen Server mit dem Apple OpenLdap Pendanten und Kerberos  für meine Benutzer arbeite, ist dies in diesem Fall ein Glück kein muss gewesen :)

Das Modul fliegt bis jetzt und dank der Vorlagen von Hexenmeister konnte ich bereits einige nützliche Umsetungen vornehmen ;)

Greetz
Eldrik
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: nikk am 11 April 2014, 09:29:15
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: martinschm am 11 April 2014, 09:37:26
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 11 April 2014, 09:48:31
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

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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: nikk am 11 April 2014, 12:14:39
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


Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 11 April 2014, 13:17:19
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: nikk am 12 April 2014, 14:19:04
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.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 12 April 2014, 16:05:49
Hey niko,

Ist der Account bei jabber.de?

Gesendet von meinem XT910 mit Tapatalk

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: nikk am 12 April 2014, 16:07:23
Hi BioS,

Zitat
Ist der Account bei jabber.de?

ja
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: nikk am 13 April 2014, 08:42:54
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: dora71 am 25 Juli 2014, 19:53:05
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 25 Juli 2014, 23:46:03
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.


Zitat
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.
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: dora71 am 27 Juli 2014, 21:36:50
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 28 Juli 2014, 10:24:03
Hi Rainer,

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

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: dora71 am 30 Juli 2014, 17:48:02
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 30 Juli 2014, 20:28:15
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: dora71 am 01 August 2014, 19:51:48
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.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: oliverr am 02 August 2014, 21:26:06
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 08 August 2014, 23:52:22
Hi Rainer,


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,

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.deFormat 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.deFormat 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



Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: oliverr am 09 August 2014, 09:20:38
Hi Bios,

danke für die Antwort.

Zitat
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.

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

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Bernhard am 19 Dezember 2014, 09:13:55
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 19 Dezember 2014, 09:27:18
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Bernhard am 19 Dezember 2014, 10:01:03
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 19 Dezember 2014, 10:44:31
Hi Bernhard,

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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Ralf W. am 22 Dezember 2014, 21:16:37
Hallo,

nach
define jabber Jabber jabber.de 5222 mein_user mein_kennwort 1 0wird 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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 22 Dezember 2014, 22:00:33
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?

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Ralf W. am 22 Dezember 2014, 22:09:45
@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

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 22 Dezember 2014, 22:26:31
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Ralf W. am 22 Dezember 2014, 22:29:18
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 22 Dezember 2014, 22:38:34
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

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 22 Dezember 2014, 22:49:55
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

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Ralf W. am 22 Dezember 2014, 23:05:50
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

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 22 Dezember 2014, 23:23:02
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...
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Ralf W. am 23 Dezember 2014, 17:59:06
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 
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 04 Januar 2015, 20:36:31
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...

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 09 Januar 2015, 13:39:27
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Weisswurstverkäufer am 09 Januar 2015, 13:43:19
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ß
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 09 Januar 2015, 13:46:36
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 ;)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 09 Januar 2015, 13:52:17
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 09 Januar 2015, 13:59:25
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 :))
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Weisswurstverkäufer am 09 Januar 2015, 14:06:59
Eventuell kannst du es mal testen ob es nun geht

Ich gebe bescheid sobald ich es testen konnte.

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.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 09 Januar 2015, 15:10:51
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Weisswurstverkäufer am 10 Januar 2015, 09:55:06
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ß

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 10 Januar 2015, 12:13:10
Ahoi,

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


Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 10 Januar 2015, 20:46:34
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Bernhard am 21 Januar 2015, 15:49:36
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 09 Februar 2015, 14:32:29
Ahoi MDegelmann5455,

was kommt denn in den Statis von deinem definiertem Modul, speziell CONNINFO?
Sprich ist der Client überhaupt verbunden und funktioniert das senden von fhem aus?

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: DannyP am 15 Juni 2015, 13:15:44
Hallo zusammen,

nachdem ich das Modul längere Zeit nicht mehr genutzt hatte, will ich es nun in meiner Installation wieder reaktivieren und wieder nutzen.
Leider bekomme ich nun allerdings keine Verbindung mehr zu meinem Jabber Server.
In der CONNINFO steht als Meldung: Jabber authentication error: error invalid-mechanism

FHEM läuft auf einem BeagleBoneBlack. Perl Module, die in der Doku angegeben sind, habe ich auch alle installiert. Im Log taucht keine Meldung auf.

Beim Server handelt es sich um Prosody Version 0.9.7. Der läuft auch einwandfrei. Hier kann ich mich sowohl mit dem FHEM Account als auch mit anderen Jabber Accounts problemlos anmelden. Die FHEM Anmeldung kommt beim Server nicht an, in den Logs finde ich auch hier keine Meldung.

Jemand eine Idee, womit das zusammenhängen kann?

Vielen Dank & schöne Grüße
Daniel
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 15 Juni 2015, 13:33:54
Hi Daniel, die Fehlermeldung invalid-mechanism kommt vor wenn dich der Server zurückweist weil er die Authentifizierungsmethode nicht unterstützt. Du solltest mal schauen was der Server so an auth Mechanismen unterstützt  (CRAM-MD5, PLAIN, etc.) und check nochmal gehen ob das Perl Modul Authen::SASL installiert ist.

Grüße

Gesendet von meinem Handy

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: DannyP am 15 Juni 2015, 15:44:53
Hi,

ich habe parallel mich nun auch noch mal mit ejabberd als Server versucht, allerdings auch ohne Erfolg.
Mittlerweile bekomme ich die Meldung bei CONNINFO: Jabber authentication error: error no-mechanism

Der Server unterstützt SASL PLAIN und SASL SCRAM-SHA-1

Perl Module sehen aus meiner Sicht auch alle okay aus:
ii  libauthen-sasl-perl                    2.1500-1                 all                      Authen::SASL - SASL Authentication framework
ii  libdigest-sha-perl                     5.71-2+deb7u1            armhf                    Perl extension for SHA-1/224/256/384/512, SHA-512/224 and SHA-512/256
ii  libnet-jabber-perl                     2.0-5                    all                      Perl modules for accessing the Jabber protocol
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

Schöne Grüße
Daniel
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 15 Juni 2015, 17:14:04
Ahoi,

ich habe parallel mich nun auch noch mal mit ejabberd als Server versucht, allerdings auch ohne Erfolg.
Mittlerweile bekomme ich die Meldung bei CONNINFO: Jabber authentication error: error no-mechanism

Der Server unterstützt SASL PLAIN und SASL SCRAM-SHA-1

Mein ejabberd läuft bisher ohne Probleme.
kannst du mal in dem Modul selber bei Zeile 62 den $debug = 1 setzen und mir die fhem logfile und die /tmp/jabberdebug.log per PN zuschicken?

Ich schau mir das mal an, aber les dir die logs vorher durch und schwärze die Passwörter ;)

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: DannyP am 19 Juni 2015, 07:33:45
Hallo zusammen,

Durch klasse Unterstützung von bioS ist der Fehler gefunden und XMPP läuft wieder :-)
Falls noch jemand auf solche Probleme läuft, hier zur Doku, was zum Erfolg geführt hatte:

Der xmpp Server muss als Authentifizierungs-Methode DIGEST-MD5 anbieten. Das war bei mir zuerst nicht der Fall.
Auf Serverseite muss in der ejabberd Konfiguration daher gesetzt sein:

Das war bei mir alles der Fall, trotzdem wurde kein DIGEST-MD5 angeboten. Geholfen hat letztendlich die Erweiterung der DNS Einträge für die Domain, auf der der ejabberd Server läuft. Folgnde Einträge habe ich neu hinzugefügt:
_xmpp-client._tcp.domain.tld. 86400 IN SRV     5 0 5222 domain.tld.
_xmpp-server._tcp.domain.tld. 86400 IN SRV     5 0 5269 domain.tld.

domain.tld ist natürlich durch die entsprechende Domain zu ersetzen. 5222 und 5269 sind die Standard Ports und müssen ggf. auch angepasst werden, wenn man eigene hat.
Danach klappt auch der SRV Lookup vom Jabber Modul und danach wird auch als Authentifizierungs-Methode DIGEST-MD5 angeboten.

Zwar ein Schritt weiter, aber immer noch nicht am Ziel. Nun gab es nämlich die Fehlermeldung "no-mechanism". Erster Gedanke waren veraltete Pakete auf dem FHEM Rechner. Der Rechner lief unter Debian whezzy. Also erstmal alle Pakete aktualisiert. Leider ohne Erfolg.
Im zweiten Versuch dann ein Update von whezzy nach jessie gemacht und gehofft, dass es dann aktuellere Pakete gibt. Auch kein Erfolg (ausser dass ich die lange verschobene Umstellung nach jessie nun endlich durch habe ;-) ).
Anschließend die Net::Jabber, Net::XMPP und Authen::SASL Module die ich per apt-get installiert hatte wieder runtergeschmissen. Aus dem CPAN habe ich dann die Pakete dann neu installiert. Und siehe da! Verbindung kann sofort hergestellt werden.

Im Endeffekt fehlten also die DNS Einträge und die Pakete aus dem Debian Repository haben kein DIGEST-MD5 unterstützt.

Schöne Grüße
Daniel
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 24 August 2015, 23:56:26
Hallo BioS,

ich musste mein System neu aufsetzen. Seitdem funktioniert Jabber-Modul nur zu Hälfte. Senden klappt, empfengen leider nicht mehr.
Mit aktivierten Debug sehe ich in /tmp/jabberdebug.log die Ankunft der Nachrichten mit Inhalt und scheibar allem, was dazugehört. Allerdings klappt CallBack nicht. Hast Du eine Idee, was ich dagegen tun kann?
Danke und Grüße,

Alexander


...
XMPP::Conn: Connected: (1)
XMPP::Conn: Process: timeout(1)
XML::Stream: Read: buff(<message id='8Us7l-9' type='chat' to='test2@jabber.de' from='test1@jabber.de/androidkCcF4yTq'><body>Test</body><thread>wtH2f1dVxg2a</thread><active xmlns='http://jabber.org/protocol/chatstates'/><request xmlns='urn:xmpp:receipts'/></message>)
XML::Stream: Node: _handle_element: sid(8b8d9ae4-5c34-4e12-8b65-5a32c9f4daec) sax(XML::Stream::Parser=HASH(0xe59cc0)) tag(message) att( from test1@jabber.de/androidkCcF4yTq to test2@jabber.de id 8Us7l-9 type chat )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_element: sid(8b8d9ae4-5c34-4e12-8b65-5a32c9f4daec) sax(XML::Stream::Parser=HASH(0xe59cc0)) tag(body) att( )
XML::Stream: Node: _handle_element: check( 0 )

...

XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XMPP::Conn: CallBack: sid(8b8d9ae4-5c34-4e12-8b65-5a32c9f4daec) received(<message from='test1@jabber.de/androidkCcF4yTq' id='8Us7l-9' to='test2@jabber.de' type='chat'><body>Test</body><thread>wtH2f1dVxg2a</thread><active xmlns='http://jabber.org/protocol/chatstates'/><request xmlns='urn:xmpp:receipts'/></message>)
XMPP::Conn: CallBack: tag(message)
XMPP::Conn: CallBack: id(8Us7l-9)
XMPP::Conn: CheckID: tag(message) id(8Us7l-9)
XMPP::Conn: CheckID: we have that here somewhere...
XMPP::Conn: CallBack: a packet that no one wants... how sad. =(
XML::Stream: Process: block(0)
XMPP::Conn: Connected: (1)
...
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 25 August 2015, 01:46:43
Hi Alexander,

ich musste mein System neu aufsetzen.

Uh oh, das tut mir leid, hoffentlich muss ich das nie machen :)

Du bist mittlerweile der 2. bei dem Callback nicht geht und du benutzt auch die Debian Repository, richtig?

Bei deinem Vorposter hat es geholfen die Module, die benötigt werden, zu löschen und per CPAN nochmal frisch zu installieren.

Bevor du dass aber tust wäre ich dir dankbar wenn du mir die Versionsnummern zukommen lassen könntest, damit ich einen eventuellen Bug in den Modulen suchen und reporten kann. 

Ich hoffe dass hilft dir.

Grüße BioS

Gesendet von meinem Handy

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 25 August 2015, 02:02:45
Hi!
Danke für die schnelle Meldung!
War bei mir ein typischer Fall von "Verkettung unglücklicher Umstände". Habe (selbstverschuldet) mein System zerschossen, der 20 Stunden alte Backup war (wie der Zufall so will) auch nicht brauchbar. Das neuste, was ich gefunden habe, war 3 Monate alt. Also hab ich beschlossen, neu aufzusetzen. Daten/Konfig habe ich nicht verloren, da extra nochmal gesichert :)

Leider trift die Vermutung bei meinem System nicht zu, ich habe die Module frisch per CPAN installiert :(

Grüße,

Alexander

Zitat
$ sudo cpan -D  Net::Jabber Net::XMPP Authen::SASL XML::Stream Net::SSLeay
Reading '/root/.cpan/Metadata'
  Database was generated on Mon, 24 Aug 2015 20:17:02 GMT
Net::Jabber
-------------------------------------------------------------------------
        (no description)
        R/RE/REATMON/Net-Jabber-2.0.tar.gz
        /usr/local/share/perl/5.20.2/Net/Jabber.pm
        Installed: 2.0
        CPAN:      2.0  up to date
        Ryan Eatmon (REATMON)
        reatmon@mail.com

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

Authen::SASL
-------------------------------------------------------------------------
        (no description)
        G/GB/GBARR/Authen-SASL-2.16.tar.gz
        /usr/local/share/perl/5.20.2/Authen/SASL.pm
        Installed: 2.16
        CPAN:      2.16  up to date
        Graham Barr (GBARR)
        gbarr@pobox.com

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

Net::SSLeay
-------------------------------------------------------------------------
        (no description)
        M/MI/MIKEM/Net-SSLeay-1.70.tar.gz
        /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2/Net/SSLeay.pm
        Installed: 1.70
        CPAN:      1.70  up to date
        Mike McCauley (MIKEM)
        mikem@airspayce.com
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 25 August 2015, 10:09:53
Ahoi,

Zwar mach ich vor größeren Änderungen immer Snapshots und ich hab tägliche Replizierung von allen Daten zu einem externen Datenspeicher aber wenn ich mal in fhem was falsch konfiguriere bringt mir das alles nichts weil dann meistens der aktuelle (mist-)stand schon weggeschrieben wurde bis ich das merke..

Eiei, wenn ich so recht überlege ist mein letztes full backup bestimmt schon 3 Monate alt ;)
Ich glaube ich sollte da mal wieder eins machen.. hehe

Zum Thema:
Ich hab mal alle meine letzten Posts durchforstetet und es lief immer wieder mal auf diese Callbacks raus.
Das ganze findet im Modul XML::Stream statt.

Verglichen mit der Version die ich benutze (1.23), haben sich da einige Änderungen bezüglich TLS und Callbacks getan.
Bei einem User hat TLS so gut wie gar nicht funktioniert und wir mussten einige hacks basteln damit eine sichere Verbindung überhaut aufgebaut werden konnte.

Wenn du möchtest, installiere vom CPAN doch mal die 1.23 anstatt der 1.24 vom XML::Stream und versuche es dann nochmal.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 25 August 2015, 22:48:40
Hi!
Wenn du möchtest, installiere vom CPAN doch mal die 1.23 anstatt der 1.24 vom XML::Stream und versuche es dann nochmal.
Würde ich gerne tut, weiß Du zufällig, wo ich die ältere Version her bekomme und wie kann sie installiert werden? cpan führt scheinbar nur die letzte...

Grüße,

Alexander
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 27 August 2015, 00:53:41
So, jetzt weiß ich, wie man mit CPAN ältere Versionen installiert ;)
XML::Stream ist jetzt in der Version 1.23

sudo cpan -D XML::Stream
Going to read '/root/.cpan/Metadata'
  Database was generated on Wed, 26 Aug 2015 15:41:02 GMT
XML::Stream
-------------------------------------------------------------------------
        (no description)
        D/DA/DAPATRICK/XML-Stream-1.24.tar.gz
        /usr/local/share/perl/5.14.2/XML/Stream.pm
        Installed: 1.23
        CPAN:      1.24  Not up to date
        Darian Anthony Patrick (DAPATRICK)
        dapatrick@cpan.org

Genutzt hat nur leider nichts. Kannst Du mir bitte die Nummer der anderen benötigeten Module, die bei Dir funktionieren, nennen?
Danke!

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 27 August 2015, 09:48:10
Ahoi!

Sorry ich hatte gestern Kindergeburtstag meiner kleinen zu feiern, ich hatte keine Chance an den PC zu sitzen ^^

Hier sind die Versionsnummern:


Könntest du mir deine Versionen von den Modulen und perl, bevor du downgradest, auch kurz per PM vielleicht schicken?
Ich würde den Fehler gerne nachstellen, bisher geht bei mir das aber *immer* :/

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 27 August 2015, 10:41:12
Moin!
Danke und gar kein Problem, Familie geht vor :)

Ich werde heute abends zuhause ausprobieren.
Die Versionsnummer greife ich vorher ab und schicke Dir zu, sind aber vermutlich die gleichen, wie ich schon gepostet habe.

Grüße,

Alexander
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 27 August 2015, 13:36:08
So, ich hab das Problem jetzt nachstellen können nachdem ich alle Module einzeln up- und downgegraded hab.

Es ist also so:

Die haben in der neueren Net::XMPP irgendwas mit einem "weaken" call gemacht, den ich nicht so richtig kapiere.
Auf jeden Fall hab ich das Problem rausisolieren können und einen Workaround im 70_Jabber geschrieben.

Damit solltest du also deine Versionen wieder auf aktuellen CPAN level upgraden können und mein Modul sollte dann auch laufen... endlich :D

Ich hab den fix eben eingecheckt, könnte also heute Abend mit einem fhem update schon bei dir landen.

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hexenmeister am 28 August 2015, 01:16:28
Hallo!

Goil! Es geht wieder ;)
Vielen Dank, dass Du Dir so viel Mühe gibst :)
Jetzt läuft alles sauber. Allerdings nicht ganz ohne Überraschungen. Die Idee, Jessy-Version zu nehmen erwies sich als nicht besonders schlau, da ging einiges nicht, so habe ich Squeezeserver nicht zum Laufen gekriegt. Dann alles nochmal mit Wheezy - problemlos.

Grüße,

Alexander
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: XPectIT am 07 September 2015, 13:02:25
Ist es möglich über dieses Jabber-Modul nachrichten in einen MUC (Mulit-User-Chat) zu schicken?

Hätte Vorteile - teilweise nur wenn der Server die entsprechende Erweiterung unterstützt:
- Benachrichtigung mehrerer Personen mit einer Nachricht
- Es werden keine Nachrichten verpasst wenn der Empfänger mal offline ist

Grüße
XPectIT
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Morganoure am 08 September 2015, 10:43:11
Wunderbar!

Probiere seit ein paar Tagen mit FHEM rum, und neben Pushover ist Jabber meine wichtigste Informationsquelle, daher ist es natürlich toll, dass ich FHEM hier entsprechend nutzen kann.

Anhand der Doku auch gleich eingerichtet, inklusive Notify.

Dabei ist mir ein kleiner Bug aufgefallen: ich weiß nicht ob es am Client (Pidgin) oder Server (Openfire) liegt, auf jeden Fall kommen am FHEM auch Statusmeldungen an - zum Beispiel, wenn ich das Chatfenster mit dem FHEM-Account wieder schließe. Was dazu führt, dass das Notify eine neue Meldung rausgibt und es wieder öffnet :D

Ich habe mal das Debugging eingeschaltet; beim Schließen des Fensters kommt folgendes (anonymisiert):

2015.09.08 10:12:27 0: MyChatServer Jabber PollMessages
2015.09.08 10:12:27 0: MyChatServer DoProcess Call
2015.09.08 10:12:27 0: MyChatServer INC_Message: mensch@jabberserver/Pidgin:

2015.09.08 10:12:27 0: MyChatServer Regex m/mensch@jabberserver/ matched
2015.09.08 10:12:27 0: MyChatServer ReadingsUpdate:

2015.09.08 10:12:27 0: MyChatServer Poll End

Das gleiche passiert übrigens auch schon, wenn ich nur tippe (daher bekomme ich auf eine Anfrage 2-3 Antworten). Vermutlich sind das Nachrichten wie die Benachrichtigung an den Client, das ein anderen zu tippen begonnen hat, oder dass der andere das Fenster geschlossen hat.

Einfacher Workaround: in 70_Jabber.pm nur das Notify auslösen, wenn die Länge der $message größer 0 ist. Wahrscheinlich in der Whitelist-Zeile... in Jabber_INC_Message (plus schließende Klammer am Ende natürlich):
  #Check the Whitelist if the sender is allowed to send us.
  if ($message eq "") {
  Log 0, "$hash->{NAME} INC_Message: is status message\n" if $debug;
  } else {
  if ($senderShort =~ m/$attr{$name}{RecvWhitelist}/) {

Noch einfacherer Workaround ohne Änderung am Modul: im Notify die Message auslesen und nur bei ne "" eagieren.

Schönere Lösung: separate Notifys für Öffnen, Schließen, ...
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 10 September 2015, 15:07:53
Ahoi Morganoure und XPectIT :)

Danke für die super Ideen, ich schau mal was ich davon umsetzen kann.

@XPectIT
Das mit den MUC's muss ich mir technisch erstmal reinziehen, besonders was ich vom XMPP dafür abhandeln muss.

@Morganoure
Das Pidgin Thema ist seltsam, denn eigentlich sollte FHEM nur den Typ "Message", also wenn eine Nachricht geschrieben wird, empfangen - keine anderen Typen. Möglicherweise schickt das Pidgin und/oder Openfire in einer "Message" XML mit einem extra Tag an FHEM und da kein Text dabei ist, ist die Nachricht augenscheinlich leer.

Könntest du mir dazu mal die /tmp/jabberdebug.log (anonymisiert) zukommen lassen? Da sollten die XML Nachrichten die ich brauche drin stehen.

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Morganoure am 11 September 2015, 08:41:52
Vielen Dank dass Du reinschauen willst!

Schicke ich gleich per Forenmail hier. Usernamen, Servernamen und die Datenabschnitte (nur Avatar) rausgeschnitten (sonst wären es über 100kb).

Bei "anonymisiert" ist mir übrigens noch eingefallen, dass OTR natürlich die Krönung des ganzen wäre - selbst ein MITM-Angriff oder gestohlene Login-Daten wären dann erfolglos. Gibt sogar ein Crypt::OTR-Perl-Paket, und gängige Jabber-Clients können das auch...

Aber das ist nur ein Vorschlag - IT-Sicherheit ist leider mein Beruf, da kann ich nicht anders als das zumindest zu erwähnen ;)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 13 September 2015, 07:13:16
Hi ihr beiden,
ich denke nächste Woche wird das fertig, MUC's und OTR.
OTR natürlich nur im 1-1 Chat ;)

Bei den Multi-User-Channeln gibt es die Möglichkeit den FHEM Client in mehrere Channels mit unterschiedlichen Nick's sowie Passwortschutz joinen zu lassen.
Dafür gibt es dann auch extra readings, whitelist und ein neues msgmuc um Nachrichten zu senden.

Bei OTR wird es auch extra readings und ein send commando geben, so kann man nur auf verschlüsselte Nachrichten von bestimmten Empfängern reagieren.

Es gibt auch ein paar trade-off's die ich bisher gefunden hab:
- Das Crypt::OTR Modul muss jeder selber compilieren wenn man diese Option benutzen will.
- Ich muss noch ein bisschen mit perl kämpfen dass ich das Modul dynamisch laden kann, sodass die bisheriger Userbase nicht ohne Jabber-Modul dasteht *gg*
- Bei mir hat es 2 Stunden gedauert bis nach der ersten Nachricht der private key für OTR generiert war. Das mag jetzt vielleicht an meiner VM liegen aber in dieser Zeit macht FHEM _nichts_ und ich hab' bisher nicht herausgefunden wie man solche keys von hand generiert.
Auf der anderes Seite: wer OTR benutzen will wartet auch gerne 2 Stunden :)

Also, danke nochmal euch für die Ideen!

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Morganoure am 14 September 2015, 10:32:15
Das klingt ja echt großartig, da freue ich mich sehr drauf. Vielen Dank :)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 17 September 2015, 11:30:26
Ahoi zusammen,

die neue Version ist eingecheckt, d.h. ihr bekommt per update am heutigen Abend die neue Version mit MUC und OTR Unterstützung.

Have Phun :)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: spikeh1 am 19 September 2015, 10:37:50
Ahoi zusammen,

die neue Version ist eingecheckt, d.h. ihr bekommt per update am heutigen Abend die neue Version mit MUC und OTR Unterstützung.

Have Phun :)

Danke. Funktioniert (MUC) 1A.  :)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: lukasbastelpeter am 24 September 2015, 11:41:42
Mahlzeit!

Ich habe folgendes Problem mit dem Modul:
Ich starte meinen "Client" und anscheinend bekommt der FHEM-Account eine "ist-jetzt-online-Meldung" gepusht....
Gefolgt von einem Absturz von Fhem folgender Meldung auf der Konsole:

Not a CODE reference at /usr/local/share/perl/5.14.2/Net/XMPP/Protocol.pm line 3537.

Jemand Vorschläge?!


Danke!
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Morganoure am 24 September 2015, 11:50:43
Das macht Jabber imho zur sichersten Remote-Control-Lösung :)

Leider ist Crypt::OTR etwas umständlich, da es noch Digest::SHA1 statt Digest:SHA haben will, für das es kein Debian-Paket mehr gibt.

Falls jemand wie ich länger daran hängt, was nötig ist, hier ein paar Debian-Schritte:

sudo aptitude update
sudo aptitude install libotr2-dev libyaml-perl liblog-log4perl-perl
sudo cpan Digest::SHA1
sudo cpan Crypt::OTR

Jetzt läuft die Schlüsselgenerierung (aber schon parallel, hast Du gut hinbekommen!), nachdem ich OTREnable auf 1 gesetzt habe, mehr Erfahrungsberichte wenn das soweit ist :)

Nachtrag: in unter einer Viertelstunde fertig, auf einem Raspberry Pi2.
Kontakt läuft verschlüsselt, großartig :)

Was noch schön wäre:
Wenn der Fingerprint im FHEM angezeigt würde, so dass ich im Chat-Client auch verifizieren kann, dass ich richtig verbunden bin.
Wenn es eine optionale Whitelist für Fingerprints der Clients gäbe (AdiumX macht scheinbar das mit dem Shared Secret nicht, das muss ich demnächst noch getrennt mit Pidgin testen).

@lukasbastelpeter: ohne jetzt genug Ahnung von Perl & XMPP zu haben würde ich denken, dass Typ des Clients und des Servers hilfreich wären, damit jemand mit gleicher Konstellation das Problem ggfls. bestätigen oder nicht bestätigen kann.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: lukasbastelpeter am 24 September 2015, 19:16:38
ich bin mit meinen accounts bei jabber.ccc.de, der "client" läuft auf meinem macbook in der iMessage-app...
und FHEm läuft auf einem rPi2...

Ich denke das es an der Verschlüsselung irgendwo hakt! Ich werde mal die ganzen Pakete via Cpan manuell installieren heute abend/nacht und gucken ob es was kann...

Ich hatte nämlich spontan gehofft die Unitymedia/IPv6 Problematik mit jabber umgehen zu können. Morgen gehts in den Urlaub und fernzugriff wäre zumindest rudimentär schon Porno 8)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: lukasbastelpeter am 24 September 2015, 22:41:04
Jetzt habe ich mal ein Log...
Leider hat das manuelle installieren aller Pakete auch nix gebracht...
Die genannte Zeile ist übrigens in dem "protocol.pm" folgende Methode: "callbackIQ - default callback for <iq/> packets." was macht die?!


edit: ich habe die Zeile auskommentiert, was auch immer sie macht, ich kann drauf verzichten. Jetzt funktioniert's!
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 24 September 2015, 22:44:59
Aleoha ihr beiden,
@lukasbastelpeter: da wir keine zeit zum debuggen haben (dein urlaub ruft :P) probier mal spontan per CPAN diese Modulversionen zu installieren:
  • XML::Stream 1.23 mit Net::XMPP 1.02 = alles gut

EDIT: lol, du hast es ja schon gelöst, also wenn das für dich so passt ist's erstmal OK, vielleicht kannst du mir mal nach deinem Urlaub PM'n dann kann ich evtl. fixen sofern es ein Problem bei meinen Callbacks ist.. Schönen Urlaub dann mal!


@Morganoure:
Schön, dass das OTR Addon seinen Zweck erfüllt, freut mich ;)

Das mit dem Fingerprint hatte ich schon so gut wie implementiert (hashes angepasst, notify's mit trused flag vorbereitet, etc.) bis ich dann am Schluß gemerkt hab, dass Crypt::OTR mir weder den Trust-Status gibt, noch den Fingerprint des users..
Man kann sich das auch nicht manuell holen weil die Crypt-OTR diese Funktionen von libotr nur während der Prüfung des shared secret benutzt. Hmpf  >:(

Das hat mich ganz schön genervt.. Also hab ich alles wieder zurückgebaut und mach eben keinen Verify/Trust Status..

Adium kenn ich leider nicht, ich hab mal Conversations für Android und Pidgin getestet. Die Android App kann auch kein shared secret, wohl aber die Frage/Antwort: Das ist dasselbe - gib einfach dein shared secret bei der Antwort ein und irgendeine Frage.

Ich setze mal bei OTR Benutzung noch eine Prüfung auf Crypt::SHA1 auf meine TODO ;)

Cya,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 24 September 2015, 22:58:53
Ist zwar offtopic, aber vielleicht trotzdem intressant für den ein oder anderen:

Ich hatte nämlich spontan gehofft die Unitymedia/IPv6 Problematik mit jabber umgehen zu können.

nachdem ich nur 6 Stunden Unitymedia Kunde war, mir aber der IPv4/6 Problematik bekannt ist hatte ich dafür aber auch 'ne Lösung: Ich habe mit meinem (eh schon vorhandenen) V-Server, der eine feste v4 und v6 hat, eine art relay-server gebaut der Pakete von der v4 Addresse auf die v6 Unitymedia addresse gemacht und das hat eigentlich ganz gut funktioniert.

Damit konnte ich mit dem Handy über den Umweg v4/v6 auf meine FHEM Kiste zugreifen.

Kommando war damals:
socat TCP4-LISTEN:9999,fork,su=nobody TCP6:[2001:123:22:abc::2]:8083

:)

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: lukasbastelpeter am 24 September 2015, 23:54:23
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....

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: XPectIT am 30 September 2015, 08:41:41
Hey Danke für die schnelle Umsetzung mit den MUCs.

Titel: [patch] Neues "set status"-Kommando, um den Presence-Status zu setzen
Beitrag von: henryk am 07 Oktober 2015, 14:03:06
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:

--
Henryk Plötz
Grüße aus Berlin
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Firetic am 09 Oktober 2015, 12:16:46
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
Titel: Antw:[patch] Neues "set status"-Kommando, um den Presence-Status zu setzen
Beitrag von: BioS am 15 Oktober 2015, 19:31:22
Hi Henryk,

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 ;)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: alpha1974 am 13 November 2015, 20:23:39
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...
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: oggy am 19 November 2015, 08:26:27
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).
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: darkness am 06 Dezember 2015, 21:00:17
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.
Zitat
set 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?
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: darkness am 07 Dezember 2015, 21:16:58
Ich habe gerade festgestellt, dass das Jabber-Modul mein System zu 100% auslastet.

In der Conf habe ich

Zitat
define 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
Zitat
7991 fhem      20   0   40948  34876   6592 R  94,7  1,0   2:44.90 perl 

Das Jabbermodul zeigt mir:

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

Das konnte ich dazu aus dem Log erkennen

Zitat
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 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.

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 09 Dezember 2015, 09:00:41
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)) }
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: darkness am 09 Dezember 2015, 09:26:56
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
Zitat
define 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

Zitat
voice.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
Zitat
voice.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.


Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 09 Dezember 2015, 10:05:40
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.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: darkness am 09 Dezember 2015, 18:21:38
Hier die Ergebnisse:

Zitat
cpan -D XML::Stream
Zitat
XML::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

Zitat
cpan -D Net::XMPP

Zitat
Net::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

Zitat
ii  libnet-xmpp-perl                                    1.02-5                                     all          XMPP Perl library

Ein Downgrade würde ich gerne vermeiden.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 09 Dezember 2015, 20:23:06
Hi,

in meinen vorherigen Posts hatte ich schonmal rausanalysiert:

  • 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..
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: darkness am 10 Dezember 2015, 07:02:16
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
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 13 Dezember 2015, 20:05:50
Hi darkness,

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

das Modul ist schon angepasst an die 1.24, aber nicht in Verbindung mit Net::XMPP 1.02.

Wenn du also nun XML::Stream auf die aktuelle 1.24 und Net:XMPP aktuelle 1.05 upgradest, sollte es auch wie vorgesehen funktionieren.

Have Phun :)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: alpha1974 am 24 Dezember 2015, 08:53:55
Werte FHEM-Jabber-Freunde,

gibt es eigentlich auch eine Möglichkeit, Bilder über das Jabber-Modul zu versenden bzw. ist dies für künftige Versionen geplant? Dann könnte ich mir z.B. einen Snapshot einer Kamera aufs Handy schicken lassen, wenn deren Bewegungserkennung oder ein separater Bewegungsmelder anschlägt.

Beim TelegramBot gibt es wohl sendImage|image. Allerdings nutzte ich Telegram nicht, sondern würde es gerne über meinen eigenen XMMP-Server laufen lassen.

Frohe Weihnachten und happy-FHEM´ing
alpha1974

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 24 Dezember 2015, 21:43:27
Ahoi alpha1974,

Beim TelegramBot gibt es wohl sendImage|image. Allerdings nutzte ich Telegram nicht, sondern würde es gerne über meinen eigenen XMMP-Server laufen lassen.

Ja du hast recht, bei Telegram ist diese Funktion in der API von denen schon integriert und ist quasi nur ein funktionsaufruf entfernt.

Bei Jabber ist das leider nicht standartmäßig dabei sondern eine Erweiterung des Protokolls - zumindest hat die Library keine solche Funktion.

Ich versuche mal (sobald ich wieder Zeit finde), diese Bytestream Funktionalität mit Perl mitteln nachzubilden, aber ich verspreche dir mal nichts :)

Grüße und ebenfalls frohe Weihnacht,
BioS

Aber ich
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: spikeh1 am 30 Dezember 2015, 10:06:22
Hallo in die Runde.

Ich habe das Modul bei mir erfolgreich eingebunden und es funktioniert soweit auch gut.
Nun lasse ich mir die Temperaturen auf mein Handy schicken aber bei mir kommt alles als Einzeiler an.

Folgendes habe ich (nach WIKI) in die 99_myUtils.pm eingetragen.
sub
sendJabberAnswer()
{
  my $lastsender=ReadingsVal("jabber","LastSenderJID","0");
  my $lastmsg=ReadingsVal("jabber","LastMessage","0");
  my @cmd_list = split(/\s+/, trim($lastmsg));
  my $cmd = lc($cmd_list[0]);
  # Erstes Element entfernen
  shift(@cmd_list);
 
  my $newmsg;
 
  # Klima
  if($cmd eq "klima") {
    $newmsg.="Außen: \n";
    $newmsg.=" ".ReadingsVal("th_outdoor", "temperature", "---")."°C, \n";
    $newmsg.="Luftfeuchte: ".ReadingsVal("th_outdoor", "humidity", "---")."%, \n";
    $newmsg.=" \n";
    $newmsg.="Wohnzimmer: \n";
    $newmsg.=" ".ReadingsVal("th_wz", "temperature", "---")."°C, \n";
    $newmsg.="Luftfeuchte: ".ReadingsVal("th_wz", "humidity", "---")."%, \n"; 
  }
 
  # Hilfe zu den verfuegbaren Anweisungen
  if($cmd eq "help" || $cmd eq "hilfe" || $cmd eq "?") {
  $newmsg.= "Befehle: Help (Hilfe), Klima";
  }
 
  # Antwort senden
  if(defined($newmsg)) {
    fhem("set jabber msg ". $lastsender . " ".$newmsg);
  } else {
  fhem("set jabber msg ". $lastsender . " Unbekanter Befehl: ".$lastmsg);
  }
}

Die Daten werden wie gesagt erfolgreich übertragen, jedoch als Einzeiler. Warum werden die Zeilenumbrüche ignoriert?

MfG
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 30 Dezember 2015, 16:44:53
Hi,

Dein client interpretiert den \n wohl nicht als newliner.  Probier mal anstatt \n überall \r\n zu setzen
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: spikeh1 am 30 Dezember 2015, 17:55:22
Hi,

Dein client interpretiert den \n wohl nicht als newliner.  Probier mal anstatt \n überall \r\n zu setzen

Hmm auch mit \r\n ändert sich nix. Es bleibt ein Einzeiler. Aktueller Client ist Xabber unter Android 5.0.1.
Habe aber auch schon einen anderen Client (Conversations) probiert und es bleibt das selbe Ergebnis. Muss ich mal weiter suchen.

Danke Dir.

PS: Soeben mit Pidgin auf dem PC probiert. Ebenfalls nur Einzeiler.  :(

MfG

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Ralf W. am 30 Dezember 2015, 19:16:00
Hallo,

Android mit App "Bruno" und Pidgin am PC gleiches Problem. Habe mal in den alten Protokollen nachgesehen. Am 15.10.15 war noch alles ok. Am 04.12.15 nicht mehr ok. Dazwischen habe ich es nicht benutzt.

MfG
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: spikeh1 am 30 Dezember 2015, 19:52:31
Hallo,

Android mit App "Bruno" und Pidgin am PC gleiches Problem. Habe mal in den alten Protokollen nachgesehen. Am 15.10.15 war noch alles ok. Am 04.12.15 nicht mehr ok. Dazwischen habe ich es nicht benutzt.

MfG

OK. Also nicht nur bei mir der Fall. Brauche ich also nicht weiter nach dem Problem bei mir suchen.
Wenn ich allerdings helfen kann das Problem zu lokalisieren, bin ich gerne dabei.

MfG
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 30 Dezember 2015, 22:32:25
Hmm, ihr habt ja recht :)

meine alte FHEM Version sendet noch das \n, meine neue nicht mehr..
Ich hab das Problem auf eine neue Funktion ReplaceSetMagic, die ab FHEM 5.7 die "set" funktion mitbedient, eingrenzen können.

Ich schreibe den Kollegen mal im zugehörigen Topic, wenn es keine Lösung gibt müssen wir mal schauen wie wir das machen..

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: spikeh1 am 31 Dezember 2015, 09:57:49
Danke dir.

Komm gut ins Neue Jahr.

MfG
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 31 Dezember 2015, 18:46:33
Dankeschön :)

Das Problem wird in den nächsten Updates von FHEM gefixt sein..

Have fun und rutscht gut!
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: spikeh1 am 01 Januar 2016, 17:47:48
Hallo & Frohes Neues.

Nach heutigem Update alles wieder hübsch bei mir.
Danke.

MfG
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: pole23 am 08 Januar 2016, 13:52:59
Hallo,

ich versuche gerade die Kommunikation mit Jabber etwas auszubauen. Allerdings habe ich ein Problem mit Regex. Wenn ich die Funktion "sendJabberAnswer" wie folgt ergänze:
  if($cmd =~ m/hausstatus.*abwesend/i)
  {
$newmsg.= "Ich werde den Hausstatus auf abwesend setzen.";
  }
Und dann folgendes in den Chat schreibe: "Setz den Hausstatus auf abwesend", dann kommt immer die Antwort, die ganz unter in der Funktion hinterlegt ist" Unbekannter Befehl...".

Laut einem Testscript, sollte das Regex doch eigentlich greifen.

Hat sich schon erledigt. Ich habe gerade gesehen, das in $cmd ja nur das erste Wort drin steht. :-)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: hillbicks am 15 Januar 2016, 19:45:55
Nur fuer den Fall das noch jemand auf ein Problem stoesst bei Benachrichtigungen, das @ muss natuerlich escaped werden


{if (ReadingsVal("bad_temp", "battery", "-1") eq "low")
  {fhem ("set JabberClient msg hillbicks\@xxx.xx Batterie im Bad bitte tauschen")}
 }
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ThomasMagnum am 08 Februar 2016, 17:19:47
Hallo zusammen,

ich habe ein kleines Probem und hoffe hier Hilfe bzw. eine Lösung zu finden. Ich nutze das Jabber Modul in einigen Szenarien und es funktioniert auch einwandfrei. In einem Fall allerdings kommt die Nachricht zwar an, aber die Variable steht nicht als das zu erwartende Ergebnis in der nachricht sondern der Aufruf an sich.
Was mach ich hier faslch?
Mein DOIF:
define TonneRaus DOIF ([18:30] and [abfallkalender:tomorrow] ne "none") (set FHEM msg name@domain Morgen kommt die Müllabfuhr! ".ReadingsVal("Abfallkalender"."tomorrow")." raus stellen!)
Die Nachricht kommt dann so an: Morgen kommt die Müllabfuhr! ".ReadingsVal("Abfallkalender"."tomorrow")." raus stellen!
Die Readings funktionieren und werden in der entsprechenden Ausgabe auch korrekt angezeigt. Nur in der Nachricht wird das Ergebnis nicht eingefügt.

Es geht um die in diesem Thread umgesetzte Müllabfuhr Visualisierung: http://forum.fhem.de/index.php/topic,32382.0.html

Es wäre nett, wenn jemand einen Hinweis für mich hätte.

Gruß, Thomas
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: spikeh1 am 09 Februar 2016, 11:27:12
Versuche es mal mit:

define TonneRaus DOIF ([18:30] and [abfallkalender:tomorrow] ne "none") ({fhem("set FHEM msg name\@domain Morgen kommt die Müllabfuhr! ".ReadingsVal("Abfallkalender","tomorrow","")." raus stellen!")})

Ungetestet.

MfG
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ThomasMagnum am 09 Februar 2016, 17:25:43
Hallo spikeh1,

so hatte ich das auch schon versucht, das funktioniert aber leider nicht. Grund dafür scheint die verwendete Domainbezeichnung zu sein. Da ich das Jabber System selbst hoste sprech ic es mit direkt mit dem Hostnamen an, was per FHEM auch wunderbar funktioniert. In Perl Code leider nicht.
Es erscheint im Log:
Global symbol "@domain" requires explicit package name at (eval 44295) line 1
Selbst wenn ich direkt die IP oder einen DynDNS Namen angebe, z.B. 192.168.178.33 gibt es einen Fehler im Log:
PERL WARNING: Possible unintended interpolation of @192 in string at (eval 44409) line 1
Das Ganze erscheint auch wenn ich die Angabe per " oder ' escape.

Aber trotzdem vielen Dank für den Vorschlag.

Meine Frage zielte daher auch eher darauf ob das Jabber Modul diese Readings .ReadingsVal("Abfallkalender"."tomorrow"). überhaupt verarbeiten kann. Oder ob ich bei der Einarbeitung in den Jabber Aufruf noch etwas zusätzliches beachten muss.

Gruß, Thomas
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: spikeh1 am 09 Februar 2016, 17:45:22
Also bei mir funktioniert die von mir gezeigte Codezeile wunderbar.
Gerade probiert.
Allerdings hoste ich den Jabber-Server nicht selbst. Ob und wo da die Unterschiede sind kann ich dir nicht sagen.

MfG

PS: Dein @ muss maskiert werden. Also name\@domain. Steht in meinem Code aber auch so drin.
Wenn das auch nicht funktioniert, bin ich hier raus.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BamXP am 10 Februar 2016, 14:23:47
Hallo zusammen,

am gestrigen Abend habe ich meinen XMPP-Server fertiggestellt und FHEM dementsprechend eingerichtet. Verbindung und versenden von Nachrichten klappt soweit auch wunderbar.
Als i-tüpfelchen hätte ich gerne OTR aktiviert - nach setzen des Attributes erscheint die Meldung:

OTR_STATE: Missing perl Module Crypt::OTR, OTR disabled.

Nach Prüfung gibt mir die Ausgabe folglich aus, dass das Modul nicht installiert ist.

# cpan -D Crypt::OTR
Reading '/root/.cpan/Metadata'
  Database was generated on Tue, 09 Feb 2016 22:53:58 GMT
Crypt::OTR
-------------------------------------------------------------------------
(no description)
R/RE/REVMISCHA/Crypt-OTR-0.08.tar.gz
(no installation file)
Installed: not installed
CPAN:      0.08  Not up to date
Mischa Spiegelmock (REVMISCHA)
revmischa@cpan.org


Nach Anweisung der Installation fängt die Kiste an zu rödeln und bricht dann mit einem Fehler ab.

# cpan Crypt::OTR
Reading '/root/.cpan/Metadata'
  Database was generated on Tue, 09 Feb 2016 22:53:58 GMT
Running install for module 'Crypt::OTR'
Checksum for /root/.cpan/sources/authors/id/R/RE/REVMISCHA/Crypt-OTR-0.08.tar.gz ok
Configuring R/RE/REVMISCHA/Crypt-OTR-0.08.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good

......

Makefile:353: recipe for target 'OTR.o' failed
make: *** [OTR.o] Error 1
  REVMISCHA/Crypt-OTR-0.08.tar.gz
  /usr/bin/make -- NOT OK

Vollständige Ausgabe: http://pastebin.com/R4LUw8n3

Update des Systems, fehlende Komponenten nachinstallieren haben nichts genutzt.
Meine Recherche hat leider kein Ergebnis hervorgebracht.

Habt ihr vielleicht eine Idee?

Systeminformationen
Raspberry Pi 2 - Raspbian Jessie Lite - FHEM 5.7 - Dblog

Danke und Freundlicher Gruß
Benni


EDIT 17:34 Uhr

Habe kurzer Hand eine Rapsbian Wheezy SD-Karte erstellt und die Crypt::OTR unter Wheezy kompiliert und siehe da, dort funktioniert es ohne Probleme.

Wäre ärgerlich wenn ich jetzt wieder zurück auf Wheezy müsste...
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 11 Februar 2016, 19:07:47
Ahoi :)


Wäre ärgerlich wenn ich jetzt wieder zurück auf Wheezy müsste...

Find ich auch.

Schau mal welche libotr version du installiert hast, unter wheezy müsste es die libotr 3.x sein - die Fehler die du gepostet hast könnten davon kommen, dass bei deinem Jessie eine neue - mit der aktuellen Crypt::OTR inkompatible version (libotr 4.x) - installiert ist.

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: spikeh1 am 11 Februar 2016, 19:58:02
Ahoi :)


Find ich auch.

Schau mal welche libotr version du installiert hast, unter wheezy müsste es die libotr 3.x sein - die Fehler die du gepostet hast könnten davon kommen, dass bei deinem Jessie eine neue - mit der aktuellen Crypt::OTR inkompatible version (libotr 4.x) - installiert ist.

Grüße,
BioS

Bei Jessie ist es die libotr5-dev.
Habe heute ebenso versucht OTR zu aktivieren. Leider ohne Erfolg.

MfG
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 11 Februar 2016, 22:30:35
Ich hab nochmal nachgeforscht - die libotr5 ist die Version 4.xx.
Die libotr2 ist wiederum die Version 3.1.x

Da hat sich wohl grundlegend was an dem Interface geändert, scheint mehrere zu geben die damit jetzt Probleme haben.
Aber bis der/die Entwickler von Crypt::OTR nicht nachzieht muss man wohl versuchen die alte Version zu installieren..

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: spikeh1 am 12 Februar 2016, 06:45:22
Danke für die Mühe und deine Rückmeldung.

MfG
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BamXP am 12 Februar 2016, 11:55:11
Danke für eure Rückmeldungen.
Daran habe ich nicht gedacht, einfach die alte Version zu installieren. (Dachte die wäre unter Jessie nicht lauffähig... falsch gedacht  8)

Habe die libotr2 manuell heruntergeladen: https://packages.debian.org/squeeze/libotr2
(Mit Sicherheit kann man den Vorgang auch eleganter lösen)
Kompiliert, Installiert --> Tada

CPAN:

t/Crypt-OTR.t .. ok
All tests successful.
Result: PASS
  REVMISCHA/Crypt-OTR-0.08.tar.gz
  /usr/bin/make test -- OK
Running make install
  /usr/bin/make install  -- OK

FHEM:

OTR_STATE: Generating OTR private key...
...und ein paar Minuten später

OTR_STATE: Finished generating OTR private key. OTR is now active.
Danke :)

Grüße
Benni
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: spikeh1 am 12 Februar 2016, 12:45:39
Dito. Kann ich bestätigen. Läuft auf Jessi.
Bin allerdings den Weg über die wheezy quelle gegangen und habe anschließend die entsprechenden Dateien vom Upgrade ausgeschlossen.
Fhem meldet: OTR enabled and active

 :)

MfG
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 12 Februar 2016, 12:47:00
Na also freut mich, Danke für eure Rückmeldung :)

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: spikeh1 am 12 Februar 2016, 14:59:44
Könntest du bei folgender Zeile noch das Loglevel höher drehen oder gar ebenfalls nur bei Debug-Ausgaben?

Log 0, "$hash->{NAME} Message is empty after OTR decrypt.";

Meine Geräte zum Beispiel schalten automatisch auf OTR-Modus um. Sie senden scheinbar anfangs erst ohne OTR, was dazu führt das im Log als Begleitzeile immer erstmal "Message is empty after OTR decrypt." auftaucht.

Im Moment habe ich mir so beholfen, das ich die Zeile selber um "if $debug;" erweitert habe.

MfG
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BamXP am 10 April 2016, 17:17:58
Hallo zusammen,

ich habe den Jabber Server gewechselt und habe seit dem Probleme in FHEM eine aktive Verbindung zum Server herzustellen.

CONNINFO Jabber connect error ()

Habe den Debugmodus aktiviert und die jabberdebug.log gibt mir folgendes aus:

XMPP::Conn: Connected: (0)
XMPP::Conn: Connect: host(xmpp.trashserver.net:5222) namespace(jabber:client)
XMPP::Conn: Connect: timeout(10)
XML::Stream: Connect: srv requested
XML::Stream: Connect: srv query failed
XML::Stream: Connect: type(tcpip)
XML::Stream: Connect: Got a connection
XML::Stream: Send: (<?xml version='1.0'?><stream:stream version='1.0' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' to='xmpp.trashserver.net' from='raspberrypi' xml:lang='en' >)
XML::Stream: Read: buff(<?xml version='1.0'?><stream:stream id='' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' xmlns='jabber:client'><stream:error><host-unknown xmlns='urn:ietf:params:xml:ns:xmpp-streams'/><text xmlns='urn:ietf:params:xml:ns:xmpp-streams'>This server does not serve xmpp.trashserver.net</text></stream:error></stream:stream>)
XML::Stream: _handle_root: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2e6b928)) tag(stream:stream) att( id  xmlns:stream http://etherx.jabber.org/streams version 1.0 xmlns jabber:client )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2e6b928)) tag(stream:error) att( )
XML::Stream: Node: _handle_element: check( -1 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2e6b928)) tag(host-unknown) att( xmlns urn:ietf:params:xml:ns:xmpp-streams )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2e6b928)) tag(host-unknown)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_element: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2e6b928)) tag(text) att( xmlns urn:ietf:params:xml:ns:xmpp-streams )
XML::Stream: Node: _handle_element: check( 0 )
XML::Stream: Node: _handle_cdata: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2e6b928)) cdata(This server does not serve xmpp.trashserver.net)
XML::Stream: Node: _handle_cdata: sax(XML::Stream::Parser=HASH(0x2e6b928)) cdata(This server does not serve xmpp.trashserver.net)
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2e6b928)) tag(text)
XML::Stream: Node: _handle_close: check( 1 )
XML::Stream: Node: _handle_close: check2( 0 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2e6b928)) tag(stream:error)
XML::Stream: Node: _handle_close: check( 0 )
XML::Stream: Node: _handle_close: check2( -1 )
XML::Stream: Node: _handle_close: sid(newconnection) sax(XML::Stream::Parser=HASH(0x2e6b928)) tag(stream:stream)
XML::Stream: Node: _handle_close: check( -1 )
XML::Stream: Node: _handle_close: rootTag(stream:stream) tag(stream:stream)

Server: Prosody 0.9.10 Stable


Ein paar Posts zurück - werden TLS/SSL Probleme mit verschiedenen Versionen von XML::Stream und Net::XMPP angesprochen. Ein Downgrade beider Versionen brachte keinen Erfolg. Daher habe ich wieder die neusten Builds installiert:

# cpan -D XML::Stream
Reading '/root/.cpan/Metadata'
  Database was generated on Sun, 10 Apr 2016 13:41:02 GMT
XML::Stream
-------------------------------------------------------------------------
(no description)
D/DA/DAPATRICK/XML-Stream-1.24.tar.gz
/usr/local/share/perl/5.20.2/XML/Stream.pm
Installed: 1.24
CPAN:      1.24  up to date
Darian Anthony Patrick (DAPATRICK)
dapatrick@cpan.org

# cpan -D Net::XMPP
Reading '/root/.cpan/Metadata'
  Database was generated on Sun, 10 Apr 2016 13:41:02 GMT
Net::XMPP
-------------------------------------------------------------------------
(no description)
D/DA/DAPATRICK/Net-XMPP-1.05.tar.gz
/usr/local/share/perl/5.20.2/Net/XMPP.pm
Installed: 1.05
CPAN:      1.05  up to date
Darian Anthony Patrick (DAPATRICK)
dapatrick@cpan.org


Da die Verbindung auf meinem Smartphone und meinem PC ohne Probleme funktioniert, gehe ich weniger von einem Serverfehler aus.
Einen anderen Anbieter zum Testen habe ich leider derzeit nicht zur Hand.

Habt Ihr vielleicht eine Idee?

Danke und Gruß
Benni

Edit 19:16 Uhr
Problem gelöst :)

FQDN benutzen und nicht die Subdomain --> schon funktioniert es

Zitat
4.9.3.6.  host-unknown

The value of the 'to' attribute provided in the initial stream header does not correspond to an FQDN that is serviced by the receiving entity.
(In the following example, the peer specifies a 'to' address of "example.org" when connecting to the "im.example.com" server, but the server knows nothing of that address.)

https://xmpp.org/rfcs/rfc6120.html#streams-error-conditions-host-unknown


Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Turbokid am 07 August 2016, 10:51:25
Guten Morgen,
als erstes vielen Dank für das tolle Modul.
Ich habe mich gestern mal dran gesetzt das Modul an Google Talk / Hangout ans laufen zu bekommen.

Ergebniss es klappt mit einer kleinen Änderung:
    my $connectionstatus = $hash->{JabberDevice}->Connect(
                            hostname=>$hash->{helper}{server},
                            port=>$hash->{helper}{port},
                            tls=>$hash->{helper}{tls},
                            ssl=>$hash->{helper}{ssl},
                            componentname=>'gmail.com'
                            );

Wenn der Componentname also frei einstellbar wäre und nicht wie aktuell $hash->{helper}{server} könnten man es auch mit Google nutzen.

Eine Frage habe ich noch, wie kann ich Nachrichten in eine Gruppe senden?
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 07 August 2016, 11:09:21
Hi Turbokid,

an eine Gruppe solltest du mit "msgmuc" was senden können, wenn du dem MUC vorher per
attr MucJoin channel1@server.com/mynick[:password]
beitrittst..

Deine Änderung werd ich in Form eines Attributs einbauen, danke für die Idee ;)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: alpha1974 am 21 August 2016, 20:18:16
EDIT: Noch etwas erfolgreich ausprobiert: Wenn ich den Empfänger mit XMPP-Ressource angebe (also z.B. user@domain.net/phone) kommt eine Nachricht via "set msgotr" auf dem Handy an. Unverschlüsselte Nachrichten via "set msg" brauchen den Zusatz allerdings nicht.
[EDIT ENDE]

Hallo liebe Jabber-Fans,

OTR läuft bei mir nur einseitig vom Handy (Android mit Conversations) zu FHEM. Umgekehrt, also FHEM als Absender via "set msgotr", kommt leider nichts an. "set msg" an denselben Client läuft hingegen problemlos. Als XMPP-Server läuft hier Prosody. Grundsätzlich haben andere Clients, die sich über den Server anmelden, keine Probleme mit OTR (geht in beiden Richtungen).

Ich habe im Modul debug aktiviert. Das Logfile schreibt bei "set msgotr" folgendes:
2016.08.21 18:15:23.912 0: jabber No secure connection to xxxx@xxxxxx.xxx - establishing and sending message later...
2016.08.21 18:15:23.913 0: jabber [OTR Inject] Inject called: ?OTRv2?
<b>jabber</b> has requested an <a href="http://otr.cypherpunks.ca/">Off-the-Record private conversation</a>.  However, you do not have a plugin to support that.
See <a href="http://otr.cypherpunks.ca/">http://otr.cypherpunks.ca/</a> for more information.

list device sagt:
CONNINFO   Connected to xxxxxx.xxx with username xxxxxusernamexxxxxxx
   DEF        xxxxxxx.xxx 5222 xxxxxusernamexxxxxxx xxxxxpasswortxxxxxx 1 0
   NAME       jabber
   NR         79
   OTR_STATE  OTR enabled and active
   STATE      Connected
   TYPE       Jabber

Die nicht versandten OTR-Nachrichten scheinen noch irgendwo zu "hängen", jedenfalls gibt im Device-Listing mehrere Hash-Einträge unter "waitingMsgs".

FHEM läuft in der aktuellsten Version auf einem Raspi2 unter Debian Jessie. libotr2 habe ich aus den Wheezy-Quellen kompiliert und erfolgreich installiert. Crypt::OTR ist auch installiert. In der Richtung Handy -> FHEM klappt OTR ja auch problemlos.

Mit der obigen Meldung (fehlendes Plugin) konnte ich leider nichts anfangen. Vielleicht hat ja jemand einen hilfreichen Tipp, ob noch ein Modul nachzuinstallieren ist? Oder könnte das Problem auf der Empfängersseite liegen (z.B. an der Android-App conversations)?

Gruß
alpha1974
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 21 August 2016, 22:13:52
Hi alpha1974,

ich glaube du hast dir die Antwort schon selber gegeben :)

OTR ist ja eine Ende zu Ende Verbindung und jabber bzw. XMPP definiert ein Ende als komplette JID: user@domain/ressource.
Wenn du nun mehrere Devices mit demselben User und unterschiedlichen Ressourcen hast, muss OTR das korrekte Ende wissen, also mit Ressource.

Andersherum hat dein fhem-server wahrscheinlich einen eigenen User und ist auch die einzige Ressource auf dem Username, also weiß der Jabber-Server genau wohin er mit dem halben JID Eintrag (user@domain) schicken muss.

"set msg" läuft ein bisschen anders als "set msgotr" - bei set msg sendet FHEM einfach die Nachricht an den Server und überlässt ihm das Routing an die korrekte Ressource.
"set msgotr" hingegen sucht ob er bereits eine bestehende Verbindung mit der JID hat (was bei user@domain nicht der Fall ist) und versucht eine aufzubauen wahrscheinlich dann mit einer anderen Ressource, kommt aufs Routing vom Server an.

Für was brauchst du es denn?

Wenn du immer dein Handy gezielt mit OTR ansprechen möchtest, kannst du ja die JID direkt nehmen.
Wenn du allerdings die Ressource, die im Moment online ist ansprechen möchtest wird das ziemlich komplex werden ;)

Willst jedoch nur auf eine Nachricht, zum vom Handy per OTR in einem Notify kam, benutze einfach die komplette JID, die im Notify mitgeliefert wird, als Antwortkanal.

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: alpha1974 am 22 August 2016, 13:46:10
Hallo BioS,

vielen Dank für die Erläuterung! Mir reicht es schon aus, das Handy mit der entsprechenden JID zu adressieren. Tatsächlich hat der User, der auf dem Handy genutzt wird, verschiedene Ressourcen, da er auch auf einem Client am PC genutzt wird bzw. wurde.

Für was ich es brauche: Ich möchte mir Statusmeldungen aus der FHEM-Welt aufs Handy schicken lasssen und wenn OTR ohnehin schon möglich ist, möchte ich es auch nutzen (was ja jetzt auch gut klappt).  ;)

Gruß
alpha1974
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ThomasMagnum am 29 August 2016, 11:49:27
Hallo zusammen,

vor einigen Monaten habe ich bei mir das Jabber Modul eingerichtet und nutze es zum Versand verschiedener Meldungen. Das klappt alles wunderbar. Nun wollte ich mal das Thema "interaktivität" angehen und versuche mich am in der WIKI hinterlegten Beispiel. Leider scheitere ich.  :-[

Ich habe die Angaben befolgt und den Code in angepasster Form in die 99_myUtils.pm eingefügt:

# Enter you functions below _this_ line.

######################################################
# Meldung per Jabber senden
######################################################
sub
sendJabberMessage($$)
{
  my($rcp, $msg) = @_;
  fhem("set jabber msg $rcp $msg");
}

######################################################
# Meldung an mich per Jabber senden
######################################################
sub
sendMeJabberMessage($)
{
my($msg) = @_;
sendJabberMessage('user@domain', $msg);
}

######################################################
# Statusdaten an mein Handy per Jabber senden
######################################################
sub
sendMeStatusMsg()
{
  # Hier ist der Text fuer die Statusmeldung. Z.B. Werte von Sensoren.
my $msg = "Status";
$msg=$msg."Status: ";
$msg=$msg."Antwort";

sendMeJabberMessage($msg);
}

### Ende ###
Die Angaben "user@domain" sind natürlich angepasst.

In der fhem.cfg habe ich folgendes hinzugefügt:
define Jabber_Notify notify jabber:Message.* {sendJabberAnswer();;}
Im Log erscheint nur die Info das eie Nachricht angekommen ist:
2016-08-29 11:47:20 Jabber FHEM_nnnn Message: user@domain/xt1092: Status
2016-08-29 11:47:20 Jabber FHEM_nnnn LastSenderJID: user@domain/xt1092
2016-08-29 11:47:20 Jabber FHEM_nnnn LastMessage: Status

Leider finde ich keinen Ansatz wo der Fehler liegt und wo ich ansetzen könnte.
Eventuell kann mir ja hier jemand einen Tip geben.

Gruß, Thomas
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: darkness am 29 August 2016, 11:58:58
Im deinen Notify rufst du die Funktion sendJabberAnswer() auf.
Diese scheint es aber in deiner myUtils nicht zu geben.

Versuch mal die Funktion sendMeStatusMsg() aufzurufen.

Es sollte eigentlich auch entsprechende Fehler in deiner Logdatei geben.


Gruß


Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ThomasMagnum am 29 August 2016, 12:52:03
Hallo darkness,

vielen Dank für den Hinweis.
Das war zwar ein Fehler meinerseits, ändert aber leider nichts am Verhalten.

Ergebniss:
Nach wie vor keine Reaktion und keine (zusätzlichen) Infos im Log / Eventmonitor.

Gruß Thomas
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Devender am 31 August 2016, 21:35:46
hallo Thomas,

Du hast bei deinem DEF ein doppeltes Semikolon. Ich habe dort nur eins und es klappt alles wunderbar mit der Interaktion

define Jabber_Notify notify jabber:Message.* {sendJabberAnswer();}
Viele Gruesse,
Dirk
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ThomasMagnum am 01 September 2016, 16:12:00
Hallo Devender ,

vielen Dank für deine Rückmeldung. Der Unterschied kommt daher das ich die Zeile direkt aus der fhem.cfg genommen habe und du diese direkt aus der fhem Oberfläche.  ;)

In der Zwischenzeit habe ich das Ganze nochmal rückgängig gemacht und Schritt für Schritt neu aufgebaut. Nun geht es auch bei mir und die entsprechenden Nachrichten werden versendet. Wo letztlich der Fehler lag, das vermag ich nicht zu sagen, sicher ein Tippfehler oder ein "copy" / "paste" Problem.  :-[

Vielen Dank an alle!

Gruß, Thomas
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ThomasMagnum am 07 November 2016, 16:11:21
Hallo BioS,

vor knapp einem Jahr wurde im Verlaufe dieses Threats mal gefragt ob das Versenden von Bildern unterstützt wird.
Ist das bei dir noch immer noch auf der Liste oder hast du das aufgegeben?

Ich wäre, ähnlich wie alpha1974, nämlich an dieser Funktion interessiert.

Beste Grüße
Thomas
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 07 November 2016, 22:11:45
Hi Thomas,

ja ich hatte das auf der Liste und auch mal ein paar Wochen immer wieder versucht, aber entweder hat's das ganze connection handling von dem Modul so verhagelt und blockiert, dass FHEM quasi nicht mehr benutzbar war oder die Libraries haben von vornherein die Verbindung zu dem SOCKS Proxy mangels implementation nicht aufbauen können.

Alles in allem hab ich es aufgegeben die Bytestreams Extension zu implementieren, das hat zu immer mehr Problemen geführt..

Sorry, ich hab bestimmt 2-3 Wochen damit zugebracht, aber es wollte nicht klappen :(

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Turbokid am 10 November 2016, 08:17:27
@BioS hattest du schon die Möglichkeit das Attribut für meinen Vorschlag einzubauen? Ich zerlege mir zur Zeit bei jedem Update meine Änderung. Danke
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 10 November 2016, 10:43:54
Ich hab die ünderungen schon eingebaut, allerdings haben sich mittlerweile neue Entwicklungsrichtlinien ergeben auf die ich das Modul erst noch anpassen muss. Das dauert noch ein bisschen..
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: kmatthias am 30 November 2016, 00:22:24
Danke für dieses Modul. Hervorragend!

Ich habe einige Zeit damit verbracht, den "Authentication error" aufzuspüren. Habe mir bei jaber-hosting.de einen Account registriert. Die Server sind allerdings nur unter jabber.hot-chilli.net zu erreichen und genau das war das Problem. Serverdomain und Domain im Benutzernamen müssen übereinstimmen. Also noch einen weiteren Benutzer unter jabber.hot-chilli.net registriert und siehe da, es geht.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: farion am 10 Dezember 2016, 12:23:50
Bezüglich des Bilduploads kann man die alte Lösung getrost ignorieren, da furchtbar.

Man sollte XEP-0363 verwenden: http://xmpp.org/extensions/xep-0363.html
Der Witz dabei ist, dass der eigentliche Bild-Up-und-Download über HTTP geschieht. Per XMPP werden nur die Links ausgehandelt.
Ist halt die Frage ob das schon jemand für Perl implementiert hat. So auf Anhieb hab ich nix gefunden. Aber das ist auf jeden Fall einfacher implementiert als die "alte" Lösung.

Auf Serverseite kann das der Ejabberd und für Prosody gibt es auch ein Modul.

Unter Android kann das Conversations, unter Win/Mac/Linux kann das Gajim und unter iOS wird Eloquence das können.
Da mache ich mal ganze nebenbei Werbung für mein OpenSource-Projekt: www.eloquence-im.org :).

Das Tolle ist: Clients, die das nicht unterstützen bekommen einfach einen Link geschickt.

Gruss farion

PS: Und Danke für dieses Modul, ohne Jabber wäre FHEM nix für mich.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: thunder1902 am 14 Dezember 2016, 09:24:38
Hallo!

Ich habe ein Problem mit der STARTTLS Option. Habe einen Ejabberd Server auf'm Raspberry laufen. Dort wurde die STARTTLS Funktion aktiviert:

{listen,                                                                                                                                                                                                           
 [                                                                                                                                                                                                                 
  {5222, ejabberd_c2s, [                                                                                                                                                                                           
                        {access, c2s},                                                                                                                                                                             
                        {shaper, c2s_shaper},                                                                                                                                                                     
                        {max_stanza_size, 65536},                                                                                                                                                                 
                        %%zlib,                                                                                                                                                                                   
                        starttls_required, {certfile, "/etc/ejabberd/ejabberd.pem"}                                                                                                                               
                       ]},                               

Das Modul meldet immer beim Verbinden : "Jabber authentication error: Cannot Authenticate for an unknown reason. Connectionstatus is: 1"
Im Debug-Modus sagt das LogFile: Jabber connection error (Previous XMPP Process() error!)

Meine Implementierung lautet:

www.kai***.de 5222 fhem PW 1 0
Ohne tls oder startls funktioniert die Verbindung reibungslos.

Kann mir jemand sagen, was ich falsch mache??
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: gent am 20 Dezember 2016, 22:27:26
Hallo zusammen,

in der Nachrichten.app auf MacOS bekomme ich immer den Status "offline" angezeigt obwohl ich Nachrichten senden und empfangen kann. Ein List liefert:
Internals:
   CONNINFO   Connected to jabber.de with username <myfhemuser>
   DEF        jabber.de 5222 <ihr wisst schon was hier steht>
   NAME       jabber
   NR         115
   STATE      Connected
   TYPE       Jabber
   Readings:
     2016-12-20 22:20:33   LastMessage     Ich maile mal zurück
     2016-12-20 22:20:33   LastSenderJID   <myuser>@jabber.de
     2016-12-20 22:20:33   Message         <myuser>@jabber.de Ich maile mal zurück
   Helper:
     otractive  0
     password   <mypassword>
     port       5222
     server     jabber.de
     ssl        0
     tls        1
     username   <myfhemuser>
     Otrjids:
Attributes:
   OnlineStatus available
   PollTimer  2
   RecvWhitelist <myuser>@jabber.de
   ResourceName FHEM
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 26 Dezember 2016, 16:13:43
Hi,

du könntest mal versuchen das Attribut Onlinestatus zu ändern.
Wie sich das auswirkt hängt vom Jabber Server ab, aber ich würde es mal mit folgendem probieren:
attr JabberModul OnlineStatus Online
oder
attr JabberModul OnlineStatus availible
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: gent am 02 Januar 2017, 19:07:03
Hi BioS,

das hat leider keine Auswirkung. Vielleicht ist es nicht ganz klar, was ich gemeint habe: Es geht um den User, den ich für FHEM angelegt habe. Dessen Status steht auf Offline.

Viele Grüße
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Devender am 02 Januar 2017, 20:58:09
Mir ist es immer noch nicht klar  ???
Der User XX dessen Konto du per Jabberclient auf deinem z.b Handy eingerichtet hast?
Oder der User XX, der bei jabber.de oder bei ejabberd (auf dem PI) eingerichtet ist?

Kannst du vielleicht zum Verständnis einen Screenshot hochladen?

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: gent am 02 Januar 2017, 21:10:27
OK, ich versuch's mal.

In FHEM habe ich als Device

jabber.de 5222 <user auf jabber.de für fhem>

definiert. In FHEM sehe ich:

CONNINFO
Connected to jabber.de with username <user auf jabber.de für fhem>

STATE
Connected

Das Attribut OnlineStatus dieses Devices steht auf
available

In beigefügtem Screenshot sieht man den Status dieses Users in der Messages-App auf iOS

Viele Grüße vom gent
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Devender am 02 Januar 2017, 22:36:19
hast du in der App, dein fhem als Kontakt eingerichtet?
Die damit sozusagen verknüpft wie bei Messangern üblich?
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: gent am 02 Januar 2017, 22:42:15
Ja, habe ich
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Devender am 02 Januar 2017, 22:49:38
dann bin ich jetzt auch Ratlos...   :-X
Letzter Strohalm die App bzw. Problem iOS.
Ich nutze nur Android und die Xabber ab. Dort funktioniert der Onlinestatus so wie bei dir beschrieben.

Hast du eine Möglichkeit es unter Windows (Desktop) oder Android zu testen?
Um wirklich noch Konfigurationsfehler auszuschließen
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: gent am 02 Januar 2017, 22:52:16
Hi,

unter Windows evtl. muss ich morgen mal schauen, Android Geräte mit denen ich testen kann habe ich leider keine...

Viele Grüße vom gent
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ThomasMagnum am 03 Januar 2017, 19:36:24
Hallo zusammen,

ich eine Frage die nicht direkt mit dem Jabber Modul zusammenhängt, aber ich möchte meine FHEM Bedienung per Jabber weiter ausbauen.
Meine Idee ist die "einfache" Befüllung bzw. Leerung eines Einkaufszettels unter Zuhilfenahme von Jabber.

Konkret setze ich das Modul "PostMe" https://wiki.fhem.de/wiki/Modul_PostMe (https://wiki.fhem.de/wiki/Modul_PostMe) ein und möchte die von mir erstellte Notiz "Einkauf" per Jabber füllen bzw. leeren. Da ich und meine Familie nicht jedesmal den kompletten fhem Befehl (set Notizen add Einkauf Wurst) eingeben möchten, habe ich versucht anhand der von Hexenmeister zur Verfügung gestellten Codes für die 99_myUtils.pm dies abzukürzen - leider ohnen Erfolg.
Mein Ziel ist durch Eingabe eines Codewortes den Teil "set Notizen add Einkauf" zu ersetzen und beispielsweise nur "eink+ Wurst" einzugeben. Im Hintergrund wird dann der komplette Code (set Notizen add Einkauf Wurst) ausgeführt und mene Einkaufsliste um den Artikel Wurst befüllt.

Hat hier einer die Kenntnisse in Perl wie ich mir so etwas bauen kann?

Ich bin für jeden Ansatz dankbar, da ich auch durch Tante Google nicht wirklich weiter komme und ich nur sehr, sehr geringe Perl Kenntnisse habe.

Gruß, Thomas
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 03 Januar 2017, 21:16:31
Hi zusammen,

@gent: du könntest eine Authorisation probieren:
set Jabbermodulname subscribe deinuser@jabber.de
@ThomasMagnum:
Ich hab mal versucht das umzusetzen in perl-code über ein Notify.
Ersetze "JabberModulName" und "PostMeName" mit dem entsprechenden Namen den du im FHEM definiert hast:

define EinkaufZettelNotify Jabbermodulname:eink.* {}Dann da draufklicken und die zwei klammern "{}" gegen folgendes ersetzen:

{
  if ($EVENT =~ /eink\+ (?<einktxt>.+)/i) {
    fhem("set PostMeName add Einkauf ".$+{'einktxt'});
  } elsif ($EVENT =~ /eink\- (?<einktxt>.+)/i) {
    fhem("set PostMeName del Einkauf ".$+{'einktxt'});
  }
}

Obiges ist aber ungetestet..

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: gent am 03 Januar 2017, 21:55:27
Hi BioS,

das subscribe führt bei mir zum gnadenlosen Absturz des fhem prozesses. ImLogfile sehe ich anschließend:

Not a CODE reference at /usr/local/share/perl/5.20.2/Net/XMPP/Protocol.pm line 3537.

und im Terminal:

pi@fhem-pi3:~ $ service fhem status
● fhem.service - LSB: FHEM server
   Loaded: loaded (/etc/init.d/fhem)
   Active: active (exited) since Tue 2017-01-03 21:45:58 CET; 3min 34s ago
  Process: 3321 ExecStop=/etc/init.d/fhem stop (code=exited, status=0/SUCCESS)
  Process: 3330 ExecStart=/etc/init.d/fhem start (code=exited, status=0/SUCCESS)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 03 Januar 2017, 22:17:18
Hi gent,


Das ganze reduziert sich darauf dass man die richtigen Perl-modulversionen installiert (ist ganz schön bescheuert, ich weis..).
Versuch erstmal ein update über cpan, das hilft bei den meisten:

Modul Version checken:
sudo cpan -D XML::Stream
sudo cpan -D Net::XMPP

neueste installieren:
sudo cpan -I XML::Stream
sudo cpan -I Net::XMPP
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: gent am 03 Januar 2017, 22:23:36
Hi BioS,

hier mal ein Mittschnitt im Terminal:

pi@fhem-pi3:~ $ sudo cpan -D XML::Stream
CPAN: Storable loaded ok (v2.51)
Reading '/root/.cpan/Metadata'
  Database was generated on Mon, 02 Jan 2017 20:17:02 GMT
CPAN: LWP::UserAgent loaded ok (v6.15)
Fetching with LWP:
http://www.cpan.org/authors/01mailrc.txt.gz
CPAN: YAML loaded ok (v1.21)
Reading '/root/.cpan/sources/authors/01mailrc.txt.gz'
CPAN: Compress::Zlib loaded ok (v2.07)
............................................................................DONE
Fetching with LWP:
http://www.cpan.org/modules/02packages.details.txt.gz
Reading '/root/.cpan/sources/modules/02packages.details.txt.gz'
  Database was generated on Tue, 03 Jan 2017 20:53:42 GMT
............................................................................DONE
Fetching with LWP:
http://www.cpan.org/modules/03modlist.data.gz
Reading '/root/.cpan/sources/modules/03modlist.data.gz'
DONE
Writing /root/.cpan/Metadata
XML::Stream
-------------------------------------------------------------------------
CPAN: Module::CoreList loaded ok (v5.20161220)
(no description)
D/DA/DAPATRICK/XML-Stream-1.24.tar.gz
/usr/local/share/perl/5.20.2/XML/Stream.pm
Installed: 1.24
CPAN:      1.24  up to date
Darian Anthony Patrick (DAPATRICK)
dapatrick@cpan.org

pi@fhem-pi3:~ $ sudo cpan -D Net::XMPP
CPAN: Storable loaded ok (v2.51)
Reading '/root/.cpan/Metadata'
  Database was generated on Tue, 03 Jan 2017 20:53:42 GMT
Net::XMPP
-------------------------------------------------------------------------
CPAN: Module::CoreList loaded ok (v5.20161220)
(no description)
D/DA/DAPATRICK/Net-XMPP-1.05.tar.gz
/usr/local/share/perl/5.20.2/Net/XMPP.pm
Installed: 1.05
CPAN:      1.05  up to date
Darian Anthony Patrick (DAPATRICK)
dapatrick@cpan.org

pi@fhem-pi3:~ $ sudo cpan -I XML::Stream
Can't locate object method "die" via package "Log::Log4perl::Logger" at /usr/local/share/perl/5.20.2/App/Cpan.pm line 1025.
pi@fhem-pi3:~ $ sudo cpan -I Net::XMPP
Can't locate object method "die" via package "Log::Log4perl::Logger" at /usr/local/share/perl/5.20.2/App/Cpan.pm line 1025.

Sieht für mich irgendwie nicht so OK aus...
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: gent am 03 Januar 2017, 22:43:05
Hier noch eine Info:

Wie gesagt habe ich zwei jabber user:

"fhemgent" für FHEM und "gent" um mit FHEM zu kommunizieren

FHEM stürzt dann nachvollziehbar ab, wenn ich den Status des users "gent" in der Nachrichten app ändere. Setze ich den auf "offline", wird auch der Status von "fhemgent" auf offline gesetzt. Das ist schon mal merkwürdig. Setze ich den Status von "gent" wieder auf "Anwesend" (oder irgendeinen anderen Status), dann stürzt der FHEM Prozess unmittelbar ab.

Viele Grüße vom gent
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 03 Januar 2017, 23:05:02
Hi gent,

ja eigentlich gut, denn der Fehler ist Lokalisiert ;)
Es ist definitiv die Kombination aus XML::Stream und Net::XMPP - genau da stürzt FHEM ab wenn sich am Onlinestatus was ändert und die Aufrufe innerhalb der Software funktionieren nicht richtig.

Ich zitiere mal aus meinen früheren Posts:
  • XML::Stream 1.24 mit Net::XMPP 1.05 = Verbindung OK, aber keine Callbacks (presence, message, etc.) -> Absturz
  • XML::Stream 1.24 mit Net::XMPP 1.02 = Keine Verbindung (SSL probleme)
  • XML::Stream 1.23 mit Net::XMPP 1.02 = alles gut

Offensichtlich funktioniert bei dir CPAN wegen einem Fehler in einem anderen perl Modul auch nicht, was schon mal ein ziemlich schlechtes Zeichen ist :(

zuerst würde ich mal versuchen die zwei perl module zu deinstallieren und von Hand neu zu installieren (diesmal über debian commands):
sudo apt-get remove libnet-xmpp-perl
sudo apt-get remove libxml-stream-perl

wget http://ftp.de.debian.org/debian/pool/main/libn/libnet-xmpp-perl/libnet-xmpp-perl_1.02-3_all.deb
wget http://ftp.de.debian.org/debian/pool/main/libx/libxml-stream-perl/libxml-stream-perl_1.23-2_all.deb

sudo dpkg -i libxml-stream-perl_1.23-2_all.deb
sudo dpkg -i libnet-xmpp-perl_1.02-3_all.deb



Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ThomasMagnum am 04 Januar 2017, 15:12:43
Hallo BioS,

vielen Dank für den Codeschnippsel. Ich versuch das mal einzubauen und gebe dann Bescheid ob und wie es geht.

Gruß, Thomas
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: gent am 04 Januar 2017, 23:41:34
Hi BioS,

alle Befehle wurden problemlos ausgeführt, allerdings bekomme ich in der Commandline

Cannot load module Jabber

Viele Grüße
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: gent am 05 Januar 2017, 00:43:06
Hat sich erledigt,

habe ein wenig zuviel deinstalliert.

Bin gerade am Testen und melde mich, wie es ausgegangen ist

Viele Grüße vom Gent
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: gent am 05 Januar 2017, 00:47:03
Hi BioS,

hat leider nichts gebracht. Nach wie vor gnadenloser Absturz, wenn der Status geändert wird.

Tja...

Viele Grüße vom gent
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 05 Januar 2017, 11:03:16
Hi BioS,

hat leider nichts gebracht. Nach wie vor gnadenloser Absturz, wenn der Status geändert wird.

Tja...

Viele Grüße vom gent
Hi gent,
Hast du dann nochmal den Output der Modul Versionen?

Eventuell hast Debian die falschen Module wieder installiert?

Grüße BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: gent am 06 Januar 2017, 20:00:09
Hi, sieht so aus als wären neuere Module installiert:

XML::Stream
-------------------------------------------------------------------------
   CPAN: Module::CoreList loaded ok (v5.20161220)
(no description)
   D/DA/DAPATRICK/XML-Stream-1.24.tar.gz
   /usr/local/share/perl/5.20.2/XML/Stream.pm
   Installed: 1.24
   CPAN:      1.24  up to date
   Darian Anthony Patrick (DAPATRICK)
   dapatrick@cpan.org

und

Net::XMPP
-------------------------------------------------------------------------
   CPAN: Module::CoreList loaded ok (v5.20161220)
(no description)
   D/DA/DAPATRICK/Net-XMPP-1.05.tar.gz
   /usr/local/share/perl/5.20.2/Net/XMPP.pm
   Installed: 1.05
   CPAN:      1.05  up to date
   Darian Anthony Patrick (DAPATRICK)
   dapatrick@cpan.org

Ich versuch noch mal ein downgrade

Viele Grüße
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: gent am 06 Januar 2017, 20:39:09
Hi BioS,

man oh man: Ich habe natürlich vergessen, dass perl-module, die mit cpan installiert sind, auch wieder deinstalliert werden müssen. Es scheint so gewesen zu sein, dass ich beide Versionen auf dem Rechner hatte. Die richtigen mit dpkg installierten und die "falschen" neueren, die ich mit cpan installiert hatte.

Da cpan offenbar von sich aus kein uninstall mitbringt, musste ich erst cpanm installieren, konnte dann die cpan Versionen deinstallieren und habe jetzt tatsächlich die "älteren" Module aus dem *.deb Dateien.

Und siehe da, das fhem jabber modul funktioniert nun ohne fhem in den Abgrund zu reißen.

Hier nochmal kurz für alle eine Zusammenfassung , die irgendwie dieselben Probleme haben:

sudo cpan -D XML::Stream
... Installed: 1.24 -- falsche Version

sudo cpan -D Net::XMPP
--- Installed: 1.05 -- falsche Version

# cpanm installieren
sudo cpan App::cpanminus

# neue Module deinstallieren
sudo cpanm --uninstall XML::Stream
sudo cpanm --uninstall Net::XMPP

# und dann nochmal das was BioS vorher schon geschrieben hatte:

sudo apt-get remove libnet-xmpp-perl
sudo apt-get remove libxml-stream-perl

wget http://ftp.de.debian.org/debian/pool/main/libn/libnet-xmpp-perl/libnet-xmpp-perl_1.02-3_all.deb
wget http://ftp.de.debian.org/debian/pool/main/libx/libxml-stream-perl/libxml-stream-perl_1.23-2_all.deb

sudo dpkg -i libxml-stream-perl_1.23-2_all.deb
sudo dpkg -i libnet-xmpp-perl_1.02-3_all.deb


Vielen Dank und viele Grüße vom Gent
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 06 Januar 2017, 22:31:28
Freut mich dass es geklappt hat :)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: drhirn am 11 Januar 2017, 13:20:02
Ich hab das Modul ins Wiki übernommen. Korrekturen, Ergänzungen, Wünsche und weitere Beispiele sind natürlich herzlich willkommen.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Ralf W. am 11 Januar 2017, 13:50:05
Ich hab das Modul ins Wiki übernommen. Korrekturen, Ergänzungen, Wünsche und weitere Beispiele sind natürlich herzlich willkommen.
Hallo,

macht es nicht Sinn, im Wiki auf beiden Jabber-Seiten wechselweise einen Link zu setzen oder daraus eine Seite zu erstellen?

MfG

Gesendet von meinem SM-T585 mit Tapatalk

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: drhirn am 11 Januar 2017, 13:52:54
Du meinst die hier?
https://wiki.fhem.de/wiki/FHEM_spricht_jabber (https://wiki.fhem.de/wiki/FHEM_spricht_jabber)

Ja, macht Sinn. Mach ich gleich. Bzw. ist auf der "FHEM spricht Jabber" eh schon im Text die Modul-Seite verlinkt.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: der_da am 20 Januar 2017, 20:28:19
Habe die libotr2 manuell heruntergeladen: https://packages.debian.org/squeeze/libotr2
(Mit Sicherheit kann man den Vorgang auch eleganter lösen)
Kompiliert, Installiert --> Tada

CPAN:

t/Crypt-OTR.t .. ok
All tests successful.
Result: PASS
  REVMISCHA/Crypt-OTR-0.08.tar.gz
  /usr/bin/make test -- OK
Running make install
  /usr/bin/make install  -- OK

FHEM:

OTR_STATE: Generating OTR private key...
...und ein paar Minuten später

OTR_STATE: Finished generating OTR private key. OTR is now active.
Danke :)

Grüße
Benni
Der Beitrag ist schon ne Weile her, aber auch ich habe heute versucht, unter Jessie OTR zum Laufen zu bekommen. Bin leider kein so großer Linux-Freak. Kann mir mal jemand step by step sagen, wie ich die libotr2 runterlade (vermutlich mit wget) und wie ich die dann kompiliere und installiere?
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: joshi am 21 Januar 2017, 23:14:47
Ich möchte dir davon abraten:


Wenn du es dennoch installieren möchtest:

wget http://http.debian.net/debian/pool/main/libo/libotr/libotr_3.2.1.orig.tar.gz #runterladen
tar xfvz libotr_3.2.1.orig.tar.gz #entpacken

Anschließend in das Verzeichnis wechseln und ./configure ausführen und alle fehlenden Abhängigkeiten beheben (ich musste libgcrypt20-dev nachinstallieren) und "make" sowie "sudo make install" ausführen.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: der_da am 31 Januar 2017, 11:19:14
Ich möchte dir davon abraten
Danke! Ich habe es dennoch versucht. Leider nicht erfolgreich. Oder doch, mein FHEM blieb nun regelmäßig nach 2 Tagen stehen und im Log stand gefühlte 1000mal irgendwas von "zu viele offene Handler" oder so etwas. Habe das letzte Backup eingespielt. So lange XMPP im FHEM kein OMEMO unterstützt, sehe ich von einer weiteren Verwendung von Jabber erst mal ab. ???
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: arminius am 04 Februar 2017, 19:07:46
Hallo zusammen,

ich möchte aus einem Notify eine Jabber Message versenden und dann auch noch einen MP3 File via MPD abspielen.
Ich scheitere aber schon daran, einfach eine Jabber Message zu versenden aus dem Eingabefenster, wenn der Befehl mit fhem anfangen muss. Ohne fhem funktioniert es.

{ fhem("set JabberClient msg xxxx@xxxx ".ReadingsVal("aussen.temp","state",999)) }
Diesen Code habe ich angepasst und ein dummy device angelegt. Aber auch dann bekomme ich es nicht hin.
In meinem 99_myUtils.pm funktioniert das Versenden, aber in FHEM nicht.

Versuche:
{ fhem("set JabberClient msg xxxx@xxxx ".ReadingsVal("dummy1","state",999)) }
{ fhem("set JabberClient msg xxxx@xxxx Test") }
{ fhem("set JabberClient msg xxxx@xxxx 'Test'") }

Ich bekomme immer Fehler vom Jabber Modul, dass die Eingabe nicht korrekt ist oder scheint.

Was muss ich hier eingeben, damit es klappt?

Gruß
Mirko

 
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: arminius am 04 Februar 2017, 20:13:19
Ich habe es selbst gefunden, nachdem ich mir die Fehlermeldung noch einmal richtig angeschaut habe.
Die Fehlermeldung war immer @jabber. Ich habe vergessen das @ zu maskieren.

Mit \@ geht es nun.

Gruß
Arminius
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: eisenmann am 25 April 2017, 20:21:58
Ist es eventuell möglich omemo zu impementieren anstatt oder zusätlich zu otr.
https://conversations.im/omemo/

Hätte auch den Vorteil das Nachrichten verschlüsselt zu mehreren gleichzeitig gesendet werden kann. Was in OTR nicht möglich ist.

Ich habe FHEM unter Ubuntu 16.04 laufen dort gibt es zwar eine libotr5-bin im repository aber FHEM sagt immer noch Missing perl Module Crypt::OTR
!!Habe weiter hinten gelesen das dafür eine ältere libotr erforderlich ist.!!

LG Eisi
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ChristianKnorr am 30 April 2017, 12:24:17
Jetzt habe ich mal ein Log...
Leider hat das manuelle installieren aller Pakete auch nix gebracht...
Die genannte Zeile ist übrigens in dem "protocol.pm" folgende Methode: "callbackIQ - default callback for <iq/> packets." was macht die?!


edit: ich habe die Zeile auskommentiert, was auch immer sie macht, ich kann drauf verzichten. Jetzt funktioniert's!

Hallo lukasbastelpeter, und Hallo alle anderen Leidensgenossen,
da ich den Fehler auch habe, wollte ich mal fragen, ob Du die ganze Methode auskommentiert hast, oder nur besagte Zeile?

Ich habe nur die Zeile bearbeitet, indem ich eine Raute # davor gesetzt habe.

Das behebt den Fehler aber nicht sofort, fhem muss neu gestarten werden.
Zum Glück nicht das ganze System.

Viele Grüße
Christian...
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Ralf W. am 03 Mai 2017, 20:18:00
...
Ich habe FHEM unter Ubuntu 16.04 laufen dort gibt es zwar eine libotr5-bin im repository aber FHEM sagt immer noch Missing perl Module Crypt::OTR
!!Habe weiter hinten gelesen das dafür eine ältere libotr erforderlich ist.!!
...

Hallo,

FHEM läuft bei mir auf Ubuntu Server 16.04. Installiert sind die Pakete libgcrypt11-dev libgcrypt20-dev libgpg-error-dev libotr5 libotr5-dev libotr5-bin. Damit hat sudo cpan install Crypt::OTR ein Problem und bringt Fehler.

Von der Installation der älteren Version wird hier abgeraten und es wird auch von Fehlern im Betrieb berichtet.

Hat jemand noch eine Idee, wie ich OTR stabil lauffähig bekomme?

MfG
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 05 Mai 2017, 20:36:31
Hi zusammen,

ich installiere bei Gelegenheit mal einen Ubuntu 16.04 Server bei mir um eure Probleme nachzustellen.
Im moment hab ich aber einfach keine Zeit ich im hinteren drittel einer einer 3 Monate-langen Schulung..

Bis dahin würde ich die OTR funktion abgeschaltet lassen.

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Dongejong am 19 Mai 2017, 16:13:46
Hallo zusammen.

Ich verzweifle langsam an Jabber.  :-\  Ich bin, wie unter https://wiki.fhem.de/wiki/FHEM_spricht_jabber angegeben vorgegangen. Das Jabber Device wird auch angelegt, allerdings verbindet es sich nicht.
Habe ich als Username "MyName@jabber.de " zeigt CONNINFO "Jabber authentication error: error malformed-request" an. Gebe ich aber nur "MyName" als Username an bekomme ich ein "Jabber authentication error: error not-authorized".

FHEM läuft bei mir
Was mache ich falsch?

MfG
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 20 Mai 2017, 13:18:10
Hi!
probier mal deinen Usernamen mit \@ anstatt @:

jabber.de 5222 MyName\@jabber.de geheim 1 0
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Dongejong am 20 Mai 2017, 14:02:49
Bringt leider auch nur ein: "Jabber authentication error: error malformed-request"
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 21 Mai 2017, 00:43:42
Hat dein Passwort vielleicht Sonderzeichen die du mit \ escapen musst?
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Dongejong am 21 Mai 2017, 09:34:43
Nein, nur Zahlen, Groß- und Kleinbuchstaben.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Dongejong am 25 Mai 2017, 10:29:46
Hat niemand eine Idee? Ich würde mich schon über einen Vorschlag, wo ich den Fehler Suchen kann freuen.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: borsti67 am 25 Mai 2017, 11:11:14
kannst Du Dich denn mit einem normalen Jabber-Client wie z.B. Pidgin mit diesen Nutzerdaten anmelden? Nicht, dass das Konto irgendwie nicht in Ordnung ist.
Und dann kannst Du noch mit dem "1 0" am Ende spielen, vielleicht unterstützt der Jabber-Server kein TLS oder so.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Dongejong am 26 Mai 2017, 08:53:34
Der Account ist in Ornung, ich kann mich mit einem normale Programm damit verbinden.
Ich glaube, das Modul versucht gar nicht sich zu verbinden. Ich habe mit
my $debug = 1;das Debugging aktiviert. Im Log finde ich aber nicht mal einen Versuch sich zu verbinden. Es steht lediglich
2017.05.26 08:11:22 0: JabberClient1 Jabber PollMessages
2017.05.26 08:11:22 0: JabberClient1 Poll End
2017.05.26 08:11:24 0: JabberClient1 Jabber PollMessages
2017.05.26 08:11:24 0: JabberClient1 Poll End
2017.05.26 08:11:26 0: JabberClient1 Jabber PollMessages
2017.05.26 08:11:26 0: JabberClient1 Poll End
2017.05.26 08:11:28 0: JabberClient1 Jabber PollMessages
2017.05.26 08:11:28 0: JabberClient1 Poll End
bis zur Unendlichkeit drin.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 03 Juni 2017, 22:17:37
Hallo zusammen,

ich hab jetzt mal ein ganz frisches Ubuntu 16.04.02 LTS (64bit) - wie man es zur Zeit runterladen kann - installiert mit der neuesten FHEM deb (zu diesem Zeitpunkt 5.8)

Um das Jabber Modul mit OTR zum laufen zu bekommen hab ich folgende Befehle ausgeführt:
apt-get remove libnet-xmpp-perl
apt-get remove libxml-stream-perl
apt-get remove libotr5 libotr5-dev

apt-get install build-essential
wget http://ftp.de.debian.org/debian/pool/main/libn/libnet-xmpp-perl/libnet-xmpp-perl_1.02-3_all.deb
wget http://ftp.de.debian.org/debian/pool/main/libx/libxml-stream-perl/libxml-stream-perl_1.23-2_all.deb
dpkg -i libxml-stream-perl_1.23-2_all.deb
dpkg -i libnet-xmpp-perl_1.02-3_all.deb
apt-get install libnet-jabber-perl

wget http://ftp.de.debian.org/debian/pool/main/libo/libotr/libotr2_3.2.1-1+deb7u2_amd64.deb
wget http://ftp.de.debian.org/debian/pool/main/libo/libotr/libotr2-dev_3.2.1-1+deb7u2_amd64.deb
wget http://ftp.de.debian.org/debian/pool/main/libo/libotr/libotr2-bin_3.2.1-1+deb7u2_amd64.deb
wget http://ftp.de.debian.org/debian/pool/main/libg/libgcrypt11/libgcrypt11_1.5.0-5+deb7u4_amd64.deb
dpkg -i libgcrypt11_1.5.0-5+deb7u4_amd64.deb
dpkg -i libotr2_3.2.1-1+deb7u2_amd64.deb
dpkg -i libotr2-bin_3.2.1-1+deb7u2_amd64.deb
dpkg -i libotr2-dev_3.2.1-1+deb7u2_amd64.deb
cpan install Digest::SHA1

cpan
cpan> notest install Crypt::OTR

Dann kurz das Modul im FHEM definiert:
define myJabber Jabber server.de 5222 user_ohne_@ passwort 1 0
Connection läuft und chat geht.

Bei einem 32 bit system muss man die unteren libotr downloads entsprechend anpassen.

Zum OTR Aktivieren:
attr myJabber OTREnable 1

und das ging auch - zumindest generiert er mir die OTR Schlüssel und will mit meinem Client einen OTR Chat anfangen.

Ich habe die ganzen Infos unter "Installation" mal hier zusammengefasst:
https://wiki.fhem.de/wiki/Jabber


Für OMEMO fehlt mir leider der Anwendungsfall und die passenden Systeme, wer aber gerne OMEMO im Modul sehen will, darf sich frei fühlen das Modul abzuändern, deshalb ist ja alles Open-Source.
Wenn mir dann jemand den Patch schickt, lade ich es gerne ins offizielle SVN.

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Ralf W. am 06 Juni 2017, 14:47:48
Hallo BioS,

bin nach Deiner Anleitung im Wiki vorgegangen. Ich habe Ubuntu 16.04.1-Server. Ein Unterschied zu Deiner Beschreibung:
dpkg -i libotr2-dev_3.2.1-1+deb7u2_amd64.debbrachte einen Abhängigkeitsfehler. Dieser wurde aufgelöst mit
wget http://ftp.de.debian.org/debian/pool/main/libg/libgcrypt11/libgcrypt11-dev_1.5.0-5+deb7u4_amd64.deb
apt-get install libgpg-error-dev
dpkg -i libgcrypt11-dev_1.5.0-5+deb7u4_amd64.deb
Danach
dpkg -i libotr2-dev_3.2.1-1+deb7u2_amd64.deb
cpan
cpan> notest install Crypt::OTR
apt-get install haveged

Attribut OTREnable auf 1 gesetzt und Status sprang sofort auf
OTR enabled and active

Rennt. Danke!

MfG
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 08 Juni 2017, 22:29:14
Hi Ralf,

danke für das ausprobieren und den fix.
Ich hab im Wiki deinen Eintrag "apt-get install libgpg-error-dev" einfach mal hinzugefügt, das tut auf einem 16.04.02 bestimmt auch nicht weh :)

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ThomasMagnum am 27 Juli 2017, 10:57:00
Hallo liebe Jabber Fans,

ich bräuchte mal wieder einen kleine Hinweis.

Folgendes Vorhaben:
Ich sende mir bei bestimmten Events Nachrichten per Jabber zu. Das klappt wunderbar. Nun möchte ich diese Nachrichten ein wenig formatieren, sprich ich möchte beispielsweise Leerzeilen einfügen. Nur weiß ich leider nicht wie.

Meine Suche im Forum und im I-Net haben mir bisher auch nicht wirklich helfen können. Evtl. hat ja hier jemand einen Tipp für mich.
Versucht habe ich schon \n in allen erdenklichen Formen, hat nur nie etwas gebracht.

Vielen Dank schon mal für einen Hinweis.

Gruß, Thomas
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ThomasMagnum am 06 August 2017, 14:01:08
Hallo,

hat hier keiner eine Idee? Die Tipps in folgenden Thread (https://forum.fhem.de/index.php/topic,69630.0.html (https://forum.fhem.de/index.php/topic,69630.0.html)) habe ich schon versucht, führen aber leider nicht zum Erfolg.
Hier mal der Aufbau meiner Nachricht (aus einem funktionierenden DOIF):
(set FHEM_Schichtel msg emfänger@domain.de Jabber-Nachricht-> Hier steht die Nachricht und soll zwischendurch mal einen Zeilenumbruch erhalten[Device:Reading])
Gewünscht wäre die folgende Nachricht:

Jabber-Nachricht->
Hier steht die Nachricht und soll zwischendurch mal einen Zeilenumbruch erhalten
Readingwert

Ein einfaches einfügen von \n erzeugt leider keinen Zeilenumbruch, obwohl das FHEM und Prosody auf einem Linux (Rasbian) laufen.

Thomas
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 16 August 2017, 07:36:08
Hi ThomasMagnum,
ich denke das kommt daher, dass dein DOIF das \n nicht als newline interpretiert, und die Zeichenfolge "\" und "n" mitgibt.

Du kannst mal in deinem DOIF Befehl folgendes probieren:
anstatt ein direktes
set jabberdevice empfänger@domain.de message1\nmessage2probier mal dashier:
{ fhem("set jabberdevice empfänger@domain.de message1\nmessage2") }
damit wird der Befehl als Perl Code ausgeführt und damit auch das \n richtig interpretiert - so funktioniert das in den Tests bei mir ganz gut.

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ThomasMagnum am 19 August 2017, 17:24:38
Hallo BioS,

vielen Dank für den Tipp, das Gute liegt manchmal so nah :-[!

Gruß, Thomas
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: econ_sl83 am 30 August 2017, 13:50:46
Ich möchte dir davon abraten:

  • Die CPAN crypt:otr ist seit langer Zeit nicht mehr geupdatet worden. Unter anderem aus diesem Grund brauchst du die alte libotr2. Diese ist selbst in Debian (das für seine alten Packete bekannt ist) nicht mehr enthalten.
  • Mit einer alten library zerschiesst du die möglicherweise das System
  • OTR ist für mobile Kommunikation nicht geeignet

Wenn du es dennoch installieren möchtest:

wget http://http.debian.net/debian/pool/main/libo/libotr/libotr_3.2.1.orig.tar.gz #runterladen
tar xfvz libotr_3.2.1.orig.tar.gz #entpacken

Anschließend in das Verzeichnis wechseln und ./configure ausführen und alle fehlenden Abhängigkeiten beheben (ich musste libgcrypt20-dev nachinstallieren) und "make" sowie "sudo make install" ausführen.

Hallo liebes Forum,

ich möchte diesen Teil der Diskussion nochmal aufgreifen: OTR klappt bei mir - auf einem RPi3 mit Jessie - auch nicht, was mir bisher egal war, weil der jabber-Server nur cm daneben lokal auf einem separaten Pi lief. Nun möchte ich Prosody auf einen öffentlichen Server, als private Installation auf meinem uberspace, umziehen.

Verständnisfrage an die Jabber-Experten ist nun: Wie schlimm wäre dann der Verzicht auf OTR hinsichtlich der Sicherheit? Nach meinem laienhaften Verständnis wäre ja die Verbindung fhem_Pi --> (Jabber_Server auf meinem uberspace) dennoch TLS/SSL verschlüsselt.

Ein Problem gäbe es also "nur" gegenüber dem Betreiber des Servers, der ich selbst bin. Oder?


Habt vielen Dank!  :)

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ThomasMagnum am 30 August 2017, 17:39:18
Hallo econ_sl83,

deine Annahme ist korrekt, sofern du Prosody entsprechend konfiguriert hast (http://prosody.im/doc/security (http://prosody.im/doc/security)).
Somit wäre die Verbindung bzw. Übertragung der Daten TSL verschlüsselt.

OTR hat im praktischen Einsatz eh so seine Probleme, da dies nur funktioniert wenn beide Partner online sind, dann ist es aber nicht mehr möglich nachzuweisen wer, wann mit wem gesprochen hat.

Viel besser wäre der Eiinsatz von OMEMO, da kann auch einer der Gesprächspartner offline sein. Leider gibt es aber keine Unterstützung hierfür.

Gruß, Thomas
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: drdownload am 30 August 2017, 17:41:49
OMEMO wäre zwar cool, aber ist kein Killerkriterium ;)

Was schon viel interessanter wäre: Bilder verschicken zB über http_upload
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ThomasMagnum am 30 August 2017, 19:42:18
drdownload,

da gebe ich dir natürlich Recht, würde ich ebenfalls begrüßen.  ;)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: borsti67 am 06 Januar 2018, 16:30:47
Hallo BioS,

kann es sein, dass unter bestimmten Voraussetzungen die Kommunikation mit dem Server einseitig abbricht? Seitdem ich FHEM auf einem Pi Zero betreibe habe ich ca. alle 2 Tage einen FHEM-Absturz, und die größte Auffälligkeit sind große Mengen CLOSE_WAIT - Meldungen bei lsof (und das auch wenn gar keine Messages per Jabber geschickt wurden).

Ich habe das Problem ursprünglich hier (https://forum.fhem.de/index.php/topic,72264.msg743237.html#msg743237) beschrieben.
Meine Definition sieht so aus:
defmod IM Jabber <server> 5222 <jabberid> <passwort> 1 0
attr IM OnlineStatus available
attr IM PollTimer 4
attr IM RecvWhitelist .*
attr IM ResourceName FHEM
attr IM icon ring

Liegt es tatsächlich an diesem Modul? Wenn nicht, wo kann ich dann suchen - und wenn ja, was kann ich tun?
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 07 Januar 2018, 10:29:26
Hi Borsti,
ich hab nichts vergleichbares von anderen gehört, noch haben meine Systeme, auf denen ich das betreibe, in irgendeiner Art dasselbe Problem..
Aber warum nicht? Ich hab wirklich schlechte Erfahrung mit den Perl Modulen gemacht, wenn sich da bei den updates was ändert kann es sein dass ein sub-modul plötzlich rumspinnt.

Ich antworte dir auch mal in dem anderen Thread, aber deine beste Möglichkeit, das zu testen, ist mein Modul zu deaktivieren und dass ganze dann vorallem auch mal länger laufen zu lassen.

Wenn du ein Speicherleck hast und du mein Modul deaktivierst, jedoch das Problem an sich noch besteht, wird es länger dauern bis der Fehler wieder auftaucht.

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Pyromane am 07 Januar 2018, 19:33:58
Guten Abend,

ich habe vor ca zwei Jahren mal das Jabber Modul ausprobiert, musste es jedoch wieder raus nehmen da ich Probleme mit volllaufenden RAM(Raspi der ersten Generation mit Arch) hatte.
Inzwischen habe ich die Hardware gewechselt und die Chance genutzt das ganze FHEM zu virtualisieren, sowie auf Ubuntu gewechselt. Interessanterweise habe ich ein Problem vom damals immer noch, Jabber geht immer wieder kurz offline:
  19:11:29: FHEM ist nun offline (war Online)
  19:11:30: FHEM ist nun online (war Online)
  19:17:02: FHEM ist nun offline (war Online)
  19:17:04: FHEM ist nun online (war Online)
Damals führte damals dazu dass ich das System alle zwei drei Tage rebooten musste um es ansprechbar zu halten, heute habe ich deutlich mehr RAM(24 fache) und kann das nicht mehr nachvollziehen.

Was könnte dir Ursache sein das FHEM scheinbar ständig die Verbindung zum Jabber Server verliert?
Verbose 5 scheint keinerlei Auswirkungen auf die Anzahl der Log Einträge zu haben.


Internals:
   CONNINFO   Connected to jabber.at with username fhem
   DEF        jabber.at 5222 fhem XXXX 1 0
   NAME       myJabber
   NR         15
   STATE      Connected
   TYPE       Jabber
   helper:
     otractive  0
     password   XXX
     port       5222
     server     jabber.at
     ssl        0
     tls        1
     username   fhem
     otrJIDs:
Attributes:
   OnlineStatus available
   PollTimer  1
   RecvWhitelist XXX@jabber.fsinf.at
   ResourceName FHEM
   verbose    5

Danke!
Wünsche noch einen schönen restlichen Sonntagabend.
Pyromane
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 07 Januar 2018, 21:25:49
Ahoi Pyromane,

aus dem stehgreif hab ich keine Antwort was das soll, aber check auf jeden Fall mal deine Perl-Modul versionen.
Ein paar posts weiter hinten hab ich da ziemlich ausführliche Anleitungen dazu geschrieben.

Dann versuch mal das debugging im Modul zu aktivieren:
Öffne die 70_Jabber.pm und setze die Variable $debug in Zeile 69 auf 1

Restarte dann FHEM und du solltest ausführliche Informationen im FHEM log in extra viel Informationen in der Datei /tmp/jabberdebug.log finden.

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Pyromane am 07 Januar 2018, 22:25:32
Hallo BioS,

danke für die Hinweise, ich habe mal deine Anleitung soweit ich gekommen bin abgearbeitet, leider kann er den letzten dpkg Befehl nicht ausführen:
dpkg -i libotr2-dev_3.2.1-1+deb7u2_amd64.deb
Selecting previously unselected package libotr2-dev.
(Reading database ... 30001 files and directories currently installed.)
Preparing to unpack libotr2-dev_3.2.1-1+deb7u2_amd64.deb ...
Unpacking libotr2-dev (3.2.1-1+deb7u2) ...
dpkg: dependency problems prevent configuration of libotr2-dev:
 libotr2-dev depends on libgcrypt11-dev; however:
  Package libgcrypt11-dev is not installed.

dpkg: error processing package libotr2-dev (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 libotr2-dev

Gruß
Pyromane

Tante EDIT sagt:
eine Bitte hätte ich noch, wenn möglich bitte jede Zeile vom jabberdebug.log mit einer Zeitangabe versehen. Danke!
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: darkness am 08 Januar 2018, 10:11:01
Hallo,

Zitat
Package libgcrypt11-dev is not installed.

sagt doch eigentlich alles...
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: borsti67 am 10 Januar 2018, 21:50:36
Kurze Zwischenmeldung:
Jabber geht immer wieder kurz offline:
  19:11:29: FHEM ist nun offline (war Online)
  19:11:30: FHEM ist nun online (war Online)
  19:17:02: FHEM ist nun offline (war Online)
  19:17:04: FHEM ist nun online (war Online)
ja, das habe ich auch ständig (gehabt), aber mir nichts dabei gedacht...  ::)

Nachdem ich am 7. mein IM-Device auskommentiert habe, sind (natürlich) die CLOSE_WAIT beim lsof weg, und auch sonst keine Auffälligkeiten mehr zu beobachten. Aber lieber noch ein paar Tage warten, ob doch noch ein Restart kommt. ;)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Pyromane am 21 Januar 2018, 19:45:38
Hallo,

sagt doch eigentlich alles...

Guten Abend,

das hatte ich gelesen, aber nachdem in der Anleitung einige Standard per Apt installierte Anwendungen deinstalliert wurden, wollte ich nicht einfach welche installieren.

Grüße
Pyromane
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Pyromane am 04 Februar 2018, 20:10:04
Guten Abend,

nachdem dem in vorigen Beitrag beschriebenen Ablauf habe ich noch ein
sudo apt-get -f installaufgeführt um die Abhängigkeiten wiederherzustellen, danach das ganze System neugestartet und die Verbindungsverluste seitdem kann ich an einer Hand abzählen.
An dieser Stelle ein dicke Danke für die Anleitung!

MfG Pyro
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: acw81 am 26 März 2018, 09:57:02
Hi,

wurde das Thema OMEMO eigentlich weiter verfolgt? Seit gestern Abend hat es mich nämlich eingeholt. Der Jabber Client Conversations unter Android hat nun den OTR Suppport entfernt und OMEMO als Standard definiert. Hat jemand einen Tipp für einen guten Android Client der noch OTR unterstützt.

Bin gerade wieder etwas frustriert was die Hausautomatisierung angeht. Ständig muss man an irgendwelchen Stellen nachjustieren werden auch wenn es nur der Jabber Client ist. Es vergeht leider kaum eine Woche in der keine Probleme auftreten :-( Irgend ein Update von irgendeinem Gerät führt fast immer zu Problemen ...

Grüße
Andreas
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 30 März 2018, 10:33:09
Hi Andreas,

ich habe leider weder eine OMEMO Implementation bisher gemacht noch kenn ich das Protokoll und im Moment fehlt mir einfach die Zeit mich da einzulesen.


Deine Frustration verstehe ich, mir geht es nicht anders aber das ist eben der Nachteil von einem offenen System und wenn man viele Produkte miteinander mischt, der Trick ist nicht sofort jedes Update mitzumachen.

Die Alternative dazu ist auf nur einen Hersteller zu setzen und all seine Produkte und Software zu verwenden - da hätte man dann Ruhe weil alles "funktioniert" bis der Hersteller ohne großes TamTam die Produktlinie einstellt und es keine Neuerungen mehr für die teuren Produkte gibt.
Dann erst fängt das Große weinen an ;) (ist einem Freund von mir so gegangen)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: dickdickerson am 23 April 2018, 21:53:25
Danke erstmal für das Modul =)

Mein XMPP-Server läuft auf einer Subdomain und nicht auf der Domain. Daher benötige ich auch die SRV-Einträge, welche auch gesetzt sind. Sie funktionieren mit allen Clients, außer mit FHEM.
Wenn ich die Verbindung mit tcpdump mitschneide sehe ich, dass FHEM einfach den A-Record der in define eingetragenen Domain auflöst. Warum auch immer löst er den SRV-Record gar nicht auf.

In den vorherigen Beiträgen hab ich gelesen, dass das aber implementiert wurde. Muss ich noch irgendwas besonderes beachten?
Das define sieht so aus:

define xmpp Jabber domain.tld 52225 fhem fhem 1 0
Edit:
Noch ein Hinweis:
Wenn ich in der /etc/hosts die domain.tld eintrage mit der IP auf der der XMPP-Server lauscht, funktioniert es.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: igami am 27 April 2018, 15:51:55
wurde das Thema OMEMO eigentlich weiter verfolgt? Seit gestern Abend hat es mich nämlich eingeholt. Der Jabber Client Conversations unter Android hat nun den OTR Suppport entfernt und OMEMO als Standard definiert. Hat jemand einen Tipp für einen guten Android Client der noch OTR unterstützt.
Also interesse an einer OMEMO Implementation hätte ich auch :)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: der_da am 02 Mai 2018, 15:14:31
Also interesse an einer OMEMO Implementation hätte ich auch :)
Ich wäre auch an einer OMEMO-Unterstützung unter FHEM interessiert!  :P
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: igami am 02 Mai 2018, 19:58:33
Vielleicht hilft einem das ja weiter: Tutorial: Home-made OMEMO client (https://blogs.fsfe.org/vanitasvitae/2017/06/14/homemo/)

Ich werde mal schauen ob ich damit was basteln kann, aber eigentlich fehlt mir momentan sogar die Zeit meine eigenen Module weiter zu programmieren  :'(
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 08 Mai 2018, 21:53:30
eigentlich fehlt mir momentan sogar die Zeit meine eigenen Module weiter zu programmieren  :'(

Willkommen im Club :)
Ich hätte auch gerne schon lang mal in das Thema geschaut, aber es fehlt einfach die Zeit..
Titel: RecvWhitelist - Liste, aber wie?
Beitrag von: der_da am 15 Mai 2018, 08:44:13
Mit dem Attribut
kann man ja festlegen, von welcher JID Befehle entgegengenommen werden. Ich habe keinerlei Information darüber gefunden, ob ich hier auch eine Liste an verschiedenen JIDs angeben kann und wenn ja, wie ich die Einträge in dieser Liste trenne. Kann mir dazu jemand was sagen?

Edit: Ich habe meine Antwort in dem langen Thread alleine gefunden ;-)  ;D

Die Whitelist wird per Regular Expression ausgewertet, d.h. wenn du nur einen useraccount benutzen willst,
kannst du direkt den jabber Account in dieses Attribut setzen: user@jabberserver.de

Wenn du mehrere Accounts zulassen willst musst du dich an die regex syntax halten: (user1@jabberserver.de|user2@jabberserver.de)

Wenn man es ganz genau machen will muss man den Punkt mit einem Backslash escapen: (user1@jabberserver\.de|user2@jabberserver\.de)
Danke!  ;)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: joshi am 19 Mai 2018, 14:32:16
Hallo,

bei mir sorgt das Jabber Modul dafür dass FHEM nicht mehr funktioniert, sobald die Internetverbindung abreist. Es steht dabei nichts im Log oder im Event Monitor, das Modul scheint jedoch recht aggressiv zu versuchen die Verbindung wieder aufzubauen.

Kann man das irgendwie verhindern?

Viele Grüße
JoSHi
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 19 Mai 2018, 17:58:51
Du kannst mal deine Modulversionen checken:
sudo cpan -D  Net::Jabber Net::XMPP Authen::SASL XML::Stream Net::SSLeayXML::Stream 1.23 mit Net::XMPP 1.02 = alles gut

und wenn das nichts Hilft mir mal die debuglogs zukommen lassen, wenn es sich wieder aufgehangen hatte, siehe Post #253: https://forum.fhem.de/index.php/topic,18967.msg744549.html#msg744549 (https://forum.fhem.de/index.php/topic,18967.msg744549.html#msg744549)
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: dickdickerson am 20 Mai 2018, 14:20:45
Das Modul bringt FHEM bei mir regelmäßig zum Absturz. Folgende Zeile taucht vorher im Logfile auf:

Not a CODE reference at /usr/local/share/perl/5.24.1/Net/XMPP/Protocol.pm line 3537.
Hier ein Auszug aus der Datei an der entsprechenden Stelle:
3510 ##############################################################################
3511 #
3512 # callbackIQ - default callback for <iq/> packets.
3513 #
3514 ##############################################################################
3515 sub callbackIQ
3516 {
3517     my $self = shift;
3518     my $sid = shift;
3519     my $iq = shift;
3520
3521     $self->{DEBUG}->Log1("callbackIQ: sid($sid) iq($iq)");
3522
3523     return unless $iq->DefinedChild();
3524     my $query = $iq->GetChild();
3525     return unless defined($query);
3526
3527     my $type = $iq->GetType();
3528     my $ns = $query->GetXMLNS();
3529
3530     $self->{DEBUG}->Log1("callbackIQ: type($type) ns($ns)");
3531
3532     if (exists($self->{CB}->{IQns}->{$ns})
3533         && (ref($self->{CB}->{IQns}->{$ns}) eq 'HASH' )
3534         )
3535     {
3536         $self->{DEBUG}->Log1("callbackIQ: goto user function( $self->{CB}->{IQns}->{$ns} )");
3537         &{$self->{CB}->{IQns}->{$ns}}($sid,$iq);
3538
3539     }
3540     elsif (exists($self->{CB}->{IQns}->{$ns}->{$type})
3541 #        && (ref($self->{CB}->{IQns}->{$ns}->{$type}) =~ /CODE/)
3542         )
3543     {
3544         $self->{DEBUG}->Log1("callbackIQ: goto user function( $self->{CB}->{IQns}->{$ns}->{$type} )");
3545         &{$self->{CB}->{IQns}->{$ns}->{$type}}($sid,$iq);
3546     }
3547 }
3548
3549

Die FHEM-Versionen sind:
fhem.pl              16675 2018-04-29 22:15:41Z rudolfkoenig
70_Jabber.pm         12904 2016-12-29 12:44:32Z BioS

Und hier die von Perl:
# cpan -D  Net::Jabber Net::XMPP Authen::SASL XML::Stream Net::SSLeay
..
..
Net::Jabber
-------------------------------------------------------------------------
(no description)
R/RE/REATMON/Net-Jabber-2.0.tar.gz
/usr/local/share/perl/5.24.1/Net/Jabber.pm
Installed: 2.0
CPAN:      2.0  up to date
Ryan Eatmon (REATMON)
reatmon@mail.com

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

Authen::SASL
-------------------------------------------------------------------------
(no description)
G/GB/GBARR/Authen-SASL-2.16.tar.gz
/usr/share/perl5/Authen/SASL.pm
Installed: 2.16
CPAN:      2.16  up to date
Graham Barr (GBARR)
gbarr@pobox.com

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

Net::SSLeay
-------------------------------------------------------------------------
(no description)
M/MI/MIKEM/Net-SSLeay-1.85.tar.gz
/usr/lib/i386-linux-gnu/perl5/5.24/Net/SSLeay.pm
Installed: 1.80
CPAN:      1.85  Not up to date
Mike McCauley (MIKEM)
mikem@airspayce.com


Ist das Problem bekannt? Gibt es eine Lösung dafür?
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 21 Mai 2018, 21:57:43
Jap ist bekannt, die neuen Modulversionen funktionieren nicht sauber zusammen, warum weis ich auch nicht genau.

Gut funktioniert alles auf jedenfall mit dieser Kombination:
XML::Stream 1.23 mit Net::XMPP 1.02

Auf Seite 3 dieses Threads findest du noch andere, die dieselben Probleme hatten und wie sie den Downgrade gemacht haben.

Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: acw81 am 24 Juni 2018, 07:32:57
Moin moin,

seit kurzem legt das Jabber Modul meinen kompletten FHEM lahm. FHEM fährt nicht mehr hoch, bzw. befindet sich in einer Art Endlosschleife und ich bekomme folgende Meldung im Modul

2018.06.16 15:31:36.349 2: ZWDongle_ProcessSendStack: no ACK, resending message 0107000301020100f9
***  FATAL PROGRAM ERROR!!      Unknown method 'target'
***  which the program has attempted to call for the object:
***
_xmpp-client._tcp.xxx.ddnss.de.       10      IN      CNAME   xxx.ddnss.de.
***
***  Net::DNS::RR::CNAME 1406 has no instance method 'target'
***
***  THIS IS A BUG IN THE CALLING SOFTWARE, which incorrectly assumes
***  that the object would be of a particular type.  The type of an
***  object should be checked before calling any of its methods.
 at /usr/local/share/perl/5.24.1/XML/Stream.pm line 602.
        XML::Stream::Connect(XML::Stream=HASH(0x22cb970)) called at /usr/local/share/perl/5.24.1/Net/XMPP/Connection.pm line 177
        Net::XMPP::Connection::Connect(Net::Jabber::Client=HASH(0x3b4d880)) called at ./FHEM/70_Jabber.pm line 565
        main::Jabber_CheckConnection(HASH(0x2d283e0)) called at ./FHEM/70_Jabber.pm line 384
        main::Jabber_PollMessages(HASH(0x2d283e0)) called at fhem.pl line 3112
        main::HandleTimeout() called at fhem.pl line 636
2018.06.16 15:31:37.184 1: Including fhem.cfg
2018.06.16 15:31:37.219 3: telnetPort: port 7072 opened



Die Anmeldung erfolgt an meinem eigenen prosody Server, den ich sonst auch für diverse andere Clients verwende.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: acw81 am 03 Juli 2018, 19:41:28
scheint an fehlende SRV DNS Records gelegen zu haben  :)

Nun geht zumindest unverschlüsselt im Moment alles. Verschlüsselt (OTR) geht aber mit der alten Conversations Version und mit Pix-Art leider noch nichts  :(
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: igami am 04 Juli 2018, 17:11:15
Man könnte auch eine PGP sub schreiben, die kann dann auch für Mail Verschlüsselung genommen werden und Conversations sollte das auch beherrschen.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: heinzfo am 22 August 2018, 18:23:01
Hallo

Ich kämpfe gerade mit der Jabber installation!

Ich bin nach dem Wiki https://wiki.fhem.de/wiki/Jabber vorgegangen

Mit dem Windows Client Gajim funktioniert es aber mit FHEM nicht.
Es schein etwas Grundsätzliches zu sein, jabber.de und jabber.ccc.de sind betroffen und zeigen das gleiche Verhalten

Bekomme leider diese Meldung auf der FHEM Oberfläche
Internals:
   CONNINFO   Jabber connect error (Connection timed out)

oder

   CONNINFO   Jabber connect error (No route to host)

defmod
defmod JabberClient1 Jabber jabberd.jabber.ccc.de 5222 user passwort 1 0
Diese beiden module sollten passen
pi@raspberrypi:~ $ sudo cpan -D Net::XMPP XML::Stream
Loading internal null logger. Install Log::Log4perl for logging messages
Reading '/root/.cpan/Metadata'
  Database was generated on Wed, 22 Aug 2018 12:29:03 GMT
Net::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

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

Grüße
Heinz
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 22 August 2018, 19:06:31
Hi Heinz,


defmod
defmod JabberClient1 Jabber jabberd.jabber.ccc.de 5222 user passwort 1 0
Grüße
Heinz

Ich denke da stimmt was in dem Zielnamen nicht, no route to host deutet auf einen nicht existenten DNS Namen hin.
ich hab bei meinen Tests immer "jabber.ccc.de" und nicht "jabberd.jabber.ccc.de" angegeben - prüfe mal den Namen nach.

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: heinzfo am 24 August 2018, 16:55:26
Du hast recht, jetzt geht es.
Danke
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ffdec am 24 September 2018, 16:58:53
Hallo, ich habe schon lange Zeit das Problem, dass fhem crasht, wenn ich den Gajim-Client (Linux) neu starte bzw. beim Starten. Ich muss dann auch fhem neu starten. Kann mir da jemand helfen?

Not a CODE reference at /usr/share/perl5/Net/XMPP/Protocol.pm line 3537.
Titel: Problem: 70_Jabber.pm verursacht freeze, wenn Jabber-Server down
Beitrag von: Christian. am 04 Dezember 2018, 21:56:03
Heute morgen gab es Probleme auf jabber.de (https://www.jabber.de/stoerung-durch-ru-spambot/), weswegen die Jabber-Client-Anwendungen (z.B. Conversations auf Android) Timeouts meldeten. In meinem FHEM-Log finde ich zu dieser Zeit eine ganze Reihe von Meldungen folgender Art:
2018.12.04 11:44:06 1: Perfmon: possible freeze starting at 11:43:57, delay is 9.328
2018.12.04 11:44:21 1: Perfmon: possible freeze starting at 11:44:12, delay is 9.345
2018.12.04 11:44:36 1: Perfmon: possible freeze starting at 11:44:27, delay is 9.357
2018.12.04 11:44:51 1: Perfmon: possible freeze starting at 11:44:42, delay is 9.446
2018.12.04 11:45:06 1: Perfmon: possible freeze starting at 11:44:57, delay is 9.419
2018.12.04 11:45:22 1: Perfmon: possible freeze starting at 11:45:12, delay is 10.379
...
2018.12.04 12:44:26 1: Perfmon: possible freeze starting at 12:44:16, delay is 10.073
2018.12.04 12:44:41 1: Perfmon: possible freeze starting at 12:44:31, delay is 10.115
2018.12.04 12:45:32 1: Perfmon: possible freeze starting at 12:45:01, delay is 31.486
2018.12.04 12:48:01 1: Perfmon: possible freeze starting at 12:47:39, delay is 22.266
2018.12.04 13:05:55 1: Perfmon: possible freeze starting at 13:05:42, delay is 13.728
2018.12.04 13:11:57 1: Perfmon: possible freeze starting at 13:11:42, delay is 15.365
2018.12.04 13:39:54 1: Perfmon: possible freeze starting at 13:39:40, delay is 14.282

Ich habe ein relativ stabiles System und kenne diese Meldungen eigentlich nicht. Nach dem Server-Problem sind sie auch nicht mehr aufgetreten. Es sieht deshalb für mich so aus, als würde das Jabber-Modul innerhalb der main loop von FHEM - also nicht asynchron - ausgeführt und so zur Blockade der gesamten FHEM-Verarbeitung führen. Lässt sich dieses Verhalten ändern?

- Christian
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Devender am 05 Dezember 2018, 07:29:34
Ich habe die Meldung auch immer gehabt.
Loesung (fuer mich). Entsprechende Zeile auskommentieren und dann gehts.
Seit einem Jahr keine negativen Effekte bemerkt.

Gruesse
Dirk
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: rob am 19 Dezember 2018, 19:10:38
Hallo zusammen.

Bei mir läuft es eigentl. stabil. Einzige Ausnahme: Wenn ich aus Pidgin heraus den fhem-Client nach Authorisierung frage, stürzt fhem sofort ab.
Letzte Message im Log ist dann auch bei mir
Not a CODE reference at /usr/share/perl5/Net/XMPP/Protocol.pm line 3537
Backend ist prosody (0.9.12) und Pidgin als Client am Notebook (2.10.12).

Ist für mich nicht weiter tragisch, aber vielleicht hilft es jmd. ;)

Viele Grüße
rob
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: BioS am 24 Dezember 2018, 11:25:34
Hi Rob,

Wenn ich aus Pidgin heraus den fhem-Client nach Authorisierung frage, stürzt fhem sofort ab.

das liegt an den falschen Modulversionen, schau mal weiter oben im Thread - wenn du die Modulversionen entsprechend installierst sollte das behoben sein.

Grüße,
BioS
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Devender am 13 Februar 2019, 12:54:53
Salü zusammen,

ich hätte da mal eine Frage bezüglich ejabberd und dem Modul mod_http_upload für FileTransfer
Es ist zwar kein Problem mit dem 70_Jabber.pm Modul, aber vielleicht hat der ein oder andere das ja laufen und kann mir auf die Sprünge helfen.

Problem: Ich bekomme immer ein:  connect to mydomain port 5443: Verbindungsaufbau abgelehnt.

Ejabberd an sich läuft Problemlos mit tls auf dem Rpi. In meiner Fritzbox habe ich den Port 5443 auch bereits freigegeben aber bekomme trotzdem die Meldung.

Ich bin diverse ejabberd Themen und Wikis schon durch und habe das Gefühl, dass das Problem an einer Konfiguration der FB Internen Firewall liegt.
Komme aber an der Stelle nicht weiter.

ejabberd.yml
   port: 5443
    ip: "127.0.1.1"
    module: ejabberd_http
    request_handlers:
      "upload": mod_http_upload
    tls: true
    protocol_options: 'TLS_OPTIONS'
    dhfile: 'DH_FILE'
    ciphers: 'TLS_CIPHERS'
..........

  mod_http_upload:
    docroot: "/home/ejabberd/upload"
    put_url: "https://@HOST@:5443/upload"
    access: local
    max_size: 25000000 #25 MByte
    thumbnail: false
    file_mode: "0644"
    dir_mode: "0777"
  mod_http_upload_quota:
    max_days: 2

Mein @HOST ist  meine DNS.
Im ejabberd Log sehe ich auch keinen Fehler, der auf eine Falsche Konfiguration des selbigen hindeutet.

Jemand eine Idee?


Danke und Grüße,
Dirk
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: acw81 am 16 Oktober 2019, 10:24:04
Ich versuche gerade folgende Modulversionen auf einem Raspi mit buster zu installieren (wegen FHEM Absturzproblemen im Zusammenhang mit Gajim):

XML::Stream 1.23 mit Net::XMPP 1.02

Nachdem ich die Debian Libs für Stream und Xmpp deinstalliert habe, konnte ich mit CPAN die entsprechenden Versionen installieren. Nun fehlt mir aber Net/Jabber.pm welches sich in der Version 2.0 nicht installieren lässt, da Test nicht erfolgreich durchlaufen werden.

Wenn ich mit APT die Lib installiere, werden als Abhängigkeiten aber wieder Stream und XMPP mit installiert. Ich drehe mich also im Moment irgendwie im Kreis. Hat dieses Problem schon jemand von euch gelöst?
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: acw81 am 16 Oktober 2019, 10:49:47
UPDATE: Nach fünf weiteren Installationsversuchen liefen die Tests durch und Net::Jabber konnte installiert werden. FHEM ist aber immer noch der Meinung das es fehlt:

Can't locate Net/Jabber.pm in @INC

Installierte Versionen sehen nun wie folgt aus:

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

XML::Stream
-------------------------------------------------------------------------
        (no description)
        D/DA/DAPATRICK/XML-Stream-1.24.tar.gz
        /home/andreas/perl5/lib/perl5/XML/Stream.pm
        Installed: 1.23
        CPAN:      1.24  Not up to date
        Darian Anthony Patrick (DAPATRICK)
        dapatrick@cpan.org

Net::Jabber
-------------------------------------------------------------------------
        (no description)
        R/RE/REATMON/Net-Jabber-2.0.tar.gz
        /home/andreas/perl5/lib/perl5/Net/Jabber.pm
        Installed: 2.0
        CPAN:      2.0  up to date
        Ryan Eatmon (REATMON)
        reatmon@mail.com
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: acw81 am 16 Oktober 2019, 15:21:42
UPDATE: mittlerweile läuft der Jabberclient unter FHEM nun wieder mit den im letzten Beitrag genannten Versionen. Leider habe ich aber immer noch das Problem das ein Gajim Client FHEM zum Absturz bringt.

Not a CODE reference at /usr/share/perl5/Net/XMPP/Protocol.pm line 3537.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Devender am 18 Oktober 2019, 20:31:27
Ich hab die besagte Zeile, bzw. die Schleife auskommentiert in der Protocol.pm
Seit langer Zeit keine Probleme damit gehabt
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: creativeHQ am 02 Dezember 2019, 00:10:32
Vielen Dank!

nach ca. 20 Abstürzen und diversen versuchen, alle möglichen Felermeldungen nachzugehen bringt mich das deutlich weiter. Ich habe auf jeden Fall nun endlich einen Connect zum meinem Server... Wenn es keine Probleme verursacht, dann bleibt das so.

Besser als alles bisher...

Grüße,

Niko
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Sir Volvic am 27 Februar 2020, 10:18:09
Da ich mein fhem Zuhause in einen lxc-Container umgezogen habe, musste ich die Pakete entsprechend des Wikis neu im Container Debian10 installieren.

Ich hielt mich zum Großteil an den Wiki-Eintrag: https://wiki.fhem.de/wiki/Jabber

Allerdings liegt das Paket libnet-xmpp-perl_1.02-3_all.deb mittlerweile im debian-archive. Der wget Aufruf muss folglich:
wget http://ftp.de.debian.org/debian-archive/debian/pool/main/libn/libnet-xmpp-perl/libnet-xmpp-perl_1.02-3_all.deblauten.

...Wenn ich mit APT die Lib installiere, werden als Abhängigkeiten aber wieder Stream und XMPP mit installiert. Ich drehe mich also im Moment irgendwie im Kreis. Hat dieses Problem schon jemand von euch gelöst?
Das passierte mir auch.
Wenn man libnet-jabber-perl nach
dpkg -i libxml-stream-perl_1.23-2_all.deb
dpkg -i libnet-xmpp-perl_1.02-3_all.deb
installiert, passiert das nicht. Dann hat er die Abhängigkeiten erfüllt.

Kurz zusammengefasst, für Debian10:
apt-get remove libnet-xmpp-perl
apt-get remove libxml-stream-perl
apt-get remove libotr5 libotr5-dev

apt-get install build-essential
wget http://ftp.de.debian.org/debian-archive/debian/pool/main/libn/libnet-xmpp-perl/libnet-xmpp-perl_1.02-3_all.deb
wget http://ftp.de.debian.org/debian/pool/main/libx/libxml-stream-perl/libxml-stream-perl_1.23-2_all.deb
dpkg -i libxml-stream-perl_1.23-2_all.deb
dpkg -i libnet-xmpp-perl_1.02-3_all.deb
apt-get install libnet-jabber-perl
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: denis.robel am 03 Dezember 2020, 22:54:49
Hallo,

ich hab seid kurzem keine Verbindung mehr zum Server.
ich sehe nur noch bei CONNINFO Jabber connect error (Connection refused)

Auf der Server Seite (Prosody) sehe ich in den log files gar nichts.
Die Firewall und das Netzwerk hab ich schon geprüft und andere XMPP Cliens könne sich mit meinem Server verbinden.
Wo kann ich noch ansetzen?

VG Denis
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Sörn am 08 Dezember 2020, 08:50:16
ich sehe nur noch bei CONNINFO Jabber connect error (Connection refused)

Der Port auf dem angegebenen server ist von fhem aus nicht erreichbar. Ich denke mal das ist kein Problem des Jabber moduls, sondern eher ein lokales Netzwerkproblem.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: denis.robel am 14 Dezember 2020, 17:46:53
hab das Problem gefunden. Nach einem Routerupdate hat meine DNS auflösung nicht funktioniert...
Nun funktioniert wieder alles.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: efelon am 06 Februar 2021, 13:44:01
Guten Tag zusammen,

heute Nacht habe ich bei einer Installation (Raspberry Pi OS, Buster, aktuell) ein fhem update gemacht. Seit dem empfängt das Jabber Modul keine MUC Nachrichten mehr:
Mit "geht nicht" ist gemeint, dass die Readings MucLastSenderJID, MucLastMessage und MucMessage unverändert bleiben (auf dem letzten Stand von gestern).

Alles Weitere sieht gut aus:
Das einzige in den logs, was ich zu Jabber finden kann, ist folgendes, was aber schon vor dem Update angezeigt wurde:
2021.02.06 00:01:38 1: PERL WARNING: Use of uninitialized value in regexp compilation at ./FHEM/70_Jabber.pm line 755.
Eine zweite fhem Installation (Gleiche Hardware/OS wie oben; bei der das update noch nicht durchgeführt wurde) in den gleichen MUCs, empfängt die Nachrichten nach wie vor.

Ich weiß dass sich das Jabber Modul nicht geändert hat, (Vergleich 70_Jabber.pm zwischen den Installationen) trotzdem klage ich mein Leid erstmal hier und hoffe das mir jemand helfen kann.

Viele Grüße,
efelon
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: efelon am 06 Februar 2021, 14:30:03
Mit meinem letzten Versuch konnte ich das Problem beheben.

Ich musste MucRecvWhitelist explizit auf .* setzen. Die Whitelist "richtig" setzen geht natürlich auch. Laut Hilfe werden standardmäßig keine MUC Nachrichten akzeptiert, warum das bis Gestern trotzdem funktioniert hat weiß ich nicht. Das oben genannte Attribut MucRecvWhitelist war vorher definitiv nie gesetzt.

Auf meiner zweiten Installation konnte ich das Problem reproduzieren und die Lösung verifizieren.

Eine Erklärung für das Verhalten kann ich allerdings nicht anbieten.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: ThomasMagnum am 07 April 2021, 17:03:13
Hallo zusammen,

gestern bin ich auf den FHEM Docker Container umgestiegen und wollte heute die bekannten Abhängigkeiten / Versionen isntallieren, aber irgendwie klappt das nicht.
Ich hab das in der Vergangenheit schon einige male gemacht und immer mit Erfolg.

Im Docker Container habe ich aber leider keinen Erfolg.

Was mach ich:
sudo apt-get remove libnet-xmpp-perl
sudo apt-get remove libxml-stream-perl

sudo apt-get install build-essential
wget http://ftp.de.debian.org/debian-archive/debian/pool/main/libn/libnet-xmpp-perl/libnet-xmpp-perl_1.02-3_all.deb
wget http://ftp.de.debian.org/debian/pool/main/libx/libxml-stream-perl/libxml-stream-perl_1.23-2_all.deb
sudo dpkg -i libxml-stream-perl_1.23-2_all.deb
sudo dpkg -i libnet-xmpp-perl_1.02-3_all.deb
sudo apt-get install libnet-jabber-perl

Wenn ich ein nachher / vorher Vergleich mache, sind die Versionen aber unverändert.
Hat jemand einen Tipp für mich oder hat das bereits in einem Docker Container gemacht?

Gruß, Thomas
Titel: Problem: 70_Jabber.pm verursacht freeze, wenn Jabber-Server down
Beitrag von: Christian. am 30 Oktober 2021, 15:50:19
Ich muss leider nochmal an ein Problem erinnern, das ich Ende 2018 (https://forum.fhem.de/index.php/topic,18967.msg867854.html#msg867854) gemeldet habe.

Heute nachmittag war jabber.de aus unbekannten Gründen offline. Das Jabber-Modul blockierte deshalb die gesamte FHEM-Installation:
fhem              | 2021.10.30 15:18:55 1: Perfmon: possible freeze starting at 15:18:45, delay is 10.179
fhem              | 2021.10.30 15:19:10 1: Perfmon: possible freeze starting at 15:19:01, delay is 9.897
fhem              | 2021.10.30 15:19:25 1: Perfmon: possible freeze starting at 15:19:16, delay is 9.296
fhem              | 2021.10.30 15:19:40 1: Perfmon: possible freeze starting at 15:19:31, delay is 9.636
fhem              | 2021.10.30 15:19:55 1: Perfmon: possible freeze starting at 15:19:46, delay is 9.346
fhem              | 2021.10.30 15:20:10 1: Perfmon: possible freeze starting at 15:20:01, delay is 9.467
fhem              | 2021.10.30 15:20:25 1: Perfmon: possible freeze starting at 15:20:16, delay is 9.391
fhem              | 2021.10.30 15:20:41 1: Perfmon: possible freeze starting at 15:20:31, delay is 10.043
fhem              | 2021.10.30 15:20:55 1: Perfmon: possible freeze starting at 15:20:46, delay is 9.464
fhem              | 2021.10.30 15:21:10 1: Perfmon: possible freeze starting at 15:21:01, delay is 9.677
fhem              | 2021.10.30 15:21:25 1: Perfmon: possible freeze starting at 15:21:16, delay is 9.665
fhem              | 2021.10.30 15:21:40 1: Perfmon: possible freeze starting at 15:21:31, delay is 9.821
fhem              | 2021.10.30 15:21:55 1: Perfmon: possible freeze starting at 15:21:46, delay is 9.667
fhem              | 2021.10.30 15:22:11 1: Perfmon: possible freeze starting at 15:22:01, delay is 10.137
fhem              | 2021.10.30 15:22:25 1: Perfmon: possible freeze starting at 15:22:16, delay is 9.618
fhem              | 2021.10.30 15:22:41 1: Perfmon: possible freeze starting at 15:22:31, delay is 10.638
fhem              | 2021.10.30 15:22:56 1: Perfmon: possible freeze starting at 15:22:46, delay is 10.255
fhem              | 2021.10.30 15:23:10 1: Perfmon: possible freeze starting at 15:23:01, delay is 9.966
fhem              | 2021.10.30 15:23:25 1: Perfmon: possible freeze starting at 15:23:16, delay is 9.864
fhem              | 2021.10.30 15:23:41 1: Perfmon: possible freeze starting at 15:23:31, delay is 10.035
fhem              | 2021.10.30 15:23:55 1: Perfmon: possible freeze starting at 15:23:46, delay is 9.883
fhem              | 2021.10.30 15:24:11 1: Perfmon: possible freeze starting at 15:24:01, delay is 10.287
fhem              | 2021.10.30 15:24:25 1: Perfmon: possible freeze starting at 15:24:16, delay is 9.948
fhem              | 2021.10.30 15:24:38 1: Perfmon: possible freeze starting at 15:24:31, delay is 7.617
fhem              | 2021.10.30 15:26:39 1: Perfmon: possible freeze starting at 15:26:29, delay is 10.315

Man kann das Jabber-Modul leider nicht deaktivieren oder inaktiv schalten. Als Workaround hat bei mir nur geholfen, das Jabber-Modul mittels delete zu entfernen.

Es wäre aus meiner Sicht sinnvoll, wenn das Modul asynchron - also nicht-blockierend - arbeiten würde, um bei solchen unvermeidbaren Ausfällen nicht die gesamte FHEM-Instanz zu blockieren. Es wäre auch hilfreich, wenn man den Verbindungsaufbau über einen Schalter temporär deaktivieren könnte, ohne das Modul entfernen zu müssen.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Zeitisen am 24 November 2021, 22:02:28
Hallo,  den untenstehen Thread scheinen nicht die richtigen Personen zu lesen.
Deshalb hier nochmal im Allgemein-Dauerthread zu jabber.

Wenn ich eine Message mit
set JabberClientfhem msg xxxx@123.xxx FHEM Briefkasten offensende, dann erscheint die Meldungszeile im Client immer doppelt, also
FHEM Briefkasten offen
FHEM Briefkasten offen
Ich habe nirgendwo einen Hinweis für den Grund gefunden. Ich habe auch schon unterschiedliche Clients auf dem Handy probiert. Die verhalten sich alle gleich. Dino auf Ubuntu zeigt aber nur eine Zeile an.
Gibt es so etwas wie Betreff und Body und der wird dupliziert wenn ein Teil fehlt?


Hat jemand dazu eine Idee?
Bisher habe ich die Meldungen mit dem gleichen Account abgesandt wie ich sie empfangen habe. Lediglich der ResourceName war ein anderer. Dann bekomme ich auf meinem Handy immer die doppelte Meldung.
Jetzt habe ich einen eigenen Account für fhem erstellt. Und siehe da, die Meldung kommt nur einmal. Die Gründe dafür kann ich jetzt nicht nachvollziehen. Vielleicht gibt es eine Erklärung durch XMPP von irgendwelchen Spezialisten.
Ich habe mich schon etwas eingelesen. Stand der Technik wäre auf jeden Fall eine Omemo-Unterstützung. OTR bietet keine Ende-zu-Ende Verschlüsselung.
OTR funktioniert bei mir sowieso nicht, da ich nicht die passenden uralt-Module installiert habe.
Ich halte das auch für eine Einbahnstraße. Es kann keine Dauerlösung sein, immer von Hand alte Module nachzuinstallieren.
Irgendwann ist da Schluss und es geht gar nichts mehr.

Bitte, bitte versucht, ob man da nicht etwas aktualisieren kann. Meine Perl-Kenntnisse reichen dazu leider nicht aus.
Jabber/XMPP wäre das ideale System für Push-Nachrichten, aber man müsste es auf einen aktuellen Stand bringen.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: rakete123 am 26 November 2021, 22:02:04
Klar omemo wäre ganz nett. Hier gibts was via python: https://lab.louiz.org/poezio/slixmpp-omemo/-/tree/master
Aber andererseits, braucht man wirklich end-to-end encryption für ein paar push notifications?
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Zeitisen am 27 November 2021, 11:55:30
Ja, braucht man das wirklich? Den meisten Leuten ist das egal. Die veröffentlichen jeden Furz auf Facebook. Aber wenn ich etwas sicher machen kann, dann tu ich es. Es gibt noch genug andere Lücken, die ich nicht beeinflussen kann.

Das Problem beim Jabber Modul ist ja nicht nur Omemo, sondern wohl die Abhängigkeiten von alten Versionen. Das führt zwangsläufig zu Instabilitäten und sollte so oder so behoben werden.
Diese Python Library kann ich im Moment noch nicht einordnen. Das ist ja wohl ein Bruchteil dessen was ich benötige, nämlich einen Client zu XMPP/jabber, der Omemo kann. Dann müsste ich den aber extern aufrufen wie etwa beim Mail senden. Das muss ich mir mal näher anschauen.

Eine komplette Integration ist sicher einfacher zu handhaben. Für mich ist im Moment die integrierte Lösung mit 70_jabber ohne Omemo ausreichend. MIttelfristig sollte sich da aber etwas tun.
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: dora71 am 01 März 2022, 16:19:17
Hallo zusammen,

nachdem es ja anscheinend immer noch genügend Leute gibt, die FHEM über XMPP Nachrichten verschicken lassen (dazu gehöre ich auch wieder), möchte ich einfach mal nachhören, wie es um das Modul 70_Jabber.pm bestellt ist bzw. fange auch mal eine Liste an, was ich mir von dem Modul in Zukunft wünschen würde.

Ich weiß, dass ich hier keine "Forderungen" stellen kann, da ich selber kein Entwickler, sondern "nur" Anwender bin, aber einfach mal eine Bestandsaufnahme machen, kann ja auch nichts schaden.

Ich würde mich sehr über eine Weiterentwicklung dieses Moduls freuen! Und bedanke mich auch ganz herzlich für die schon investierte Arbeit. Testen kann ich gerne und auch Feedback geben, bei allem anderen muss ich aber leider passen.

Hier die Liste:

Grüße vom Rhein

Rainer
Titel: Antw:Neues Modul: 70_Jabber.pm
Beitrag von: Nobody0815 am 02 Juli 2022, 21:04:24

Hier die Liste:
  • Modul auf non-blocking umbauen (falls der XMPP-Server nicht erreichbar ist)
  • Integration des disable Attributs
  • OMEMO-Verschlüsselung integrieren
  • Abhängigkeit von alten Paketen entfernen / aktualisieren
  • Möglichkeit der Übermittlung von Dateien, vornehmlich Bilder
Grüße vom Rhein
Rainer
Ich schließe mich dem Dank an und würde mich auch sehr darüber freuen oder gibt es eine alternative wie Matrix?
Wäre toll - Danke!

Gruß
Andre

Edit:
Signal ist für mich eine alternative - wenn auch nicht perfekt (Matrix oder Jabber wären meine Favoriten) aber brauchbar und ich werde es versuchen.
https://wiki.fhem.de/wiki/Signalbot