Jabber: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Link zu "Prosody" hinzugefügt)
(FHEM(R))
Zeile 1: Zeile 1:
{{Infobox Modul
{{Infobox Modul
|ModPurpose=Dieses Modul ermöglicht Fhem, sich mit dem Jabber-Netzwerk zu verbinden, um Nachrichten zu einem Jabber-Server zu senden oder von diesem zu empfangen.
|ModPurpose=Dieses Modul ermöglicht FHEM, sich mit dem Jabber-Netzwerk zu verbinden, um Nachrichten zu einem Jabber-Server zu senden oder von diesem zu empfangen.
|ModType=d
|ModType=d
|ModCmdRef=  
|ModCmdRef=  
Zeile 19: Zeile 19:
Für dieses Modul brauchst du einen Account auf einem Jabber Server. Kostenlose Accounts und Server findet man unter [https://jabber.org jabber.org]
Für dieses Modul brauchst du einen Account auf einem Jabber Server. Kostenlose Accounts und Server findet man unter [https://jabber.org jabber.org]


Auf dem Fhem-Server müssen folgende Perl-Module installiert sein:
Auf dem FHEM-Server müssen folgende Perl-Module installiert sein:
*Net::Jabber
*Net::Jabber
*Net::XMPP
*Net::XMPP

Version vom 24. Januar 2017, 19:43 Uhr

Jabber
Zweck / Funktion
Dieses Modul ermöglicht FHEM, sich mit dem Jabber-Netzwerk zu verbinden, um Nachrichten zu einem Jabber-Server zu senden oder von diesem zu empfangen.
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Thema
Support (Forum) Unterstuetzende Dienste
Modulname 70_Jabber.pm
Ersteller BioS (Forum )
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Jabber ist eine andere Beschreibung für "XMPP", ein Kommunikationsprotokoll für Nachrichtenorientierte "middleware", basierend auf XML. Fester bestandteil des Protokolls ist die Verschlüsselung zwischen Client und Server. Für den Benutzer ist es ähnlich anderer Chat-Plattformen wie zum Beispiel dem facebook Chat, ICQ oder Google Hangouts - jedoch frei Verfügbar, open Source und normalerweise Verschlüsselt (was Serverabhängig ist).

Seit Version 1.5 kann dieses Modul in Multi-User-Channel (sogenannte MUC) beitreten und Off-the-Record (OTR) Ende-zu-Ende Verschlüsselung benutzen. OTR ist nochmal ein zusätzlicher Sicherheitsrelevater Punkt, da die Kommunikation wirklich von Endgerät zu FHEM verschlüsselt wird und man sich nicht auf die Jabber Server Transportverschlüsselung verlassen muss.

Beispiele

Mit folgendem Notify-Beispiel kannst du auf eingehende Nachrichten reagieren, dieses Beispiel schickt das Reading "Temperatur" des Sensors "BU_Temperatur" bei jeder ankommenden Nachricht an den Sender zurück:

define Jabber_Notify notify JabberClient1:Message.* {
      my $lastsender=ReadingsVal("JabberClient1","LastSenderJID","0");
      my $lastmsg=ReadingsVal("JabberClient1","LastMessage","0");
      my $temperature=ReadingsVal("BU_Temperatur","temperature","0");
      fhem("set JabberClient1 msg ". $lastsender . " Temp: ".$temperature);
}


Auf MUC Nachrichten lässt sich folgend reagieren, Augenmerk darauf legen dass der Nickname aus $lastsender in der msgmuc Funktion entfernt wird, damit die Nachricht an den Raum geht

define Jabber_Notify notify JabberClient1:MucMessage.* {
      my $lastsender=ReadingsVal("JabberClient1","LastSenderJID","0");
      my $lastmsg=ReadingsVal("JabberClient1","LastMessage","0");
      my $temperature=ReadingsVal("BU_Temperatur","temperature","0");
      fhem("set JabberClient1 msgmuc ". $lastsender . " Temp: ".$temperature);
}


Auf OTR Nachrichten wird reagiert, wie auf normale private Nachrichten auch, jedoch wird mit der msgotr Funktion geantwortet:

define Jabber_Notify notify JabberClient1:OTRMessage.* {
      my $lastsender=ReadingsVal("JabberClient1","LastSenderJID","0");
      my $lastmsg=ReadingsVal("JabberClient1","LastMessage","0");
      my $temperature=ReadingsVal("BU_Temperatur","temperature","0");
      fhem("set JabberClient1 msgotr ". $lastsender . " Temp: ".$temperature);
}

Weitere Beispiele und HowTos im Wiki

Weblinks