Neues Modul: 70_Jabber.pm

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

Vorheriges Thema - Nächstes Thema

BioS

Hi darkness,

Zitat von: darkness am 10 Dezember 2015, 07:02:16
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 :)
FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

alpha1974

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

FHEM/Z-Wave USB-Dongle + div. Devices

BioS

Ahoi alpha1974,

Zitat von: alpha1974 am 24 Dezember 2015, 08:53:55
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
FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

spikeh1

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

BioS

Hi,

Dein client interpretiert den \n wohl nicht als newliner.  Probier mal anstatt \n überall \r\n zu setzen
FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

spikeh1

#155
Zitat 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

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


Ralf W.

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
http://twitter.com/RWausD
Schon gewusst, dass Haarausfall zu einer Glatze führen kann?

FHEM: NUC7PJYH2, Ubuntu Server 22.04.2 LTS, HMCCU - RaspberryMatic, DE ConBee II, diverse Sensoren und Aktoren.

spikeh1

Zitat 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

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

BioS

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

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

spikeh1

Danke dir.

Komm gut ins Neue Jahr.

MfG

BioS

Dankeschön :)

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

Have fun und rutscht gut!
FHEM auf Debian in ESXi5 VM
Homematic mit HMLAN
Raspi mit Pilight für Relais der Heizung

spikeh1

Hallo & Frohes Neues.

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

MfG

pole23

#162
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. :-)

hillbicks

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")}
}

ThomasMagnum

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