Neues Modul: 70_Jabber.pm

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

Vorheriges Thema - Nächstes Thema

acw81

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.

Devender

Ich hab die besagte Zeile, bzw. die Schleife auskommentiert in der Protocol.pm
Seit langer Zeit keine Probleme damit gehabt
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

creativeHQ

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

Sir Volvic

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.deb
lauten.

Zitat von: acw81 am 16 Oktober 2019, 10:24:04
...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

denis.robel

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
VG

Denis

Sörn

Zitat von: denis.robel am 03 Dezember 2020, 22:54:49
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.
64 Relais + 8xULN2803 + 4x MCP23017 im Schaltschrank für ALLES
Custom Prokoll über RS485 für Taster, Temperatur und Feuchtesensoren

denis.robel

hab das Problem gefunden. Nach einem Routerupdate hat meine DNS auflösung nicht funktioniert...
Nun funktioniert wieder alles.
VG

Denis

efelon

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:

  • Direkt Nachricht senden/empfangen geht
  • MUC senden geht
  • MUC empfangen geht nicht
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:

  • FHEM Kontakt tritt dem MUC bei
  • FHEM Kontakt wird als online im MUC dargestellt
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

efelon

#293
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.

ThomasMagnum

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

Christian.

#295
Ich muss leider nochmal an ein Problem erinnern, das ich Ende 2018 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.
Raspberry Pi 3 mit FHEM; Arduino Nano mit ConfigurableFirmata (S0-Stromzähler); nanoCUL (MAX!); SIGNALduino (RXB6, 433 MHz); eBus; RS485 & D0 (SolarView); DVB-T (Thermo-/Hygrometer); Z-Wave; ZigBee

Zeitisen

Hallo,  den untenstehen Thread scheinen nicht die richtigen Personen zu lesen.
Deshalb hier nochmal im Allgemein-Dauerthread zu jabber.

Zitat von: Zeitisen am 22 November 2021, 11:25:25Wenn ich eine Message mit
set JabberClientfhem msg xxxx@123.xxx FHEM Briefkasten offen
sende, 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.

rakete123

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?
Zwave: ZMEEUZB1 (Fibaro, Aeotec, diverse)
Zigbee: Conbee (HUE, Xiaomi, osram)
Homematic: HM-MOD-RPI-PCB + diverse HM-CC-RT-DN
Sonstiges: Harmony, Android, Netatmo, Jabber (talk2fhem)
https://resize2fs.de

Zeitisen

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.

dora71

#299
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:

  • 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