Autor Thema: Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM  (Gelesen 149257 mal)

Offline viegener

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2728
    • Meine Seite im fhemwiki
Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
« Antwort #1485 am: 08 August 2017, 21:44:52 »
gibt es eine Möglichkeit an die Geodaten (longitude und latitude) des Users zu kommen ala GetLocation(...) ohne dem User einen Button anzubieten ?

Mir ist dazu keine Möglichkeit über den Bot bekannt. Es müsste aber möglich das Versenden per IFTTT oder ähnlichem (Tasker ?) auf dem Telefon zu machen und ein Trigger könnte dann wieder eine bestimmte Nachricht sein.

Als Bot-Funktion wäre das aus meiner Sicht eher ein Problem für die Privatsphäre
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Offline binford6000

  • Full Member
  • ***
  • Beiträge: 142
Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
« Antwort #1486 am: 10 August 2017, 08:22:19 »
Zitat
Ja, würde mich gerne selbst überwachen, also stündlich meine Geodaten abfragen und speichern.

Ja das geht zB. mit
{
  my @pos=split(/,/,ReadingsVal("livetracking","location",""));
  fhem "set fhemBot sendLocation $pos[0] $pos[1]";
}

Siehe dazu den livetracking Thread hier: https://forum.fhem.de/index.php/topic,37412.135.html

VG Sebastian
FHEM 5.8, RPi3 u. RPi1(CUL), InterTechno, EnOcean, PSC234, CRC-2-6-02, 6xHUE Bulbs, 5x AmazonDASH, GTAG, SONOS, ENIGMA2, YAMAHA_AVR, KODI, WINCONNECT, AMAD,  IPCAM, Alexa, HomeKit, TelegramBot, Yowsup, livetracking

Offline viegener

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2728
    • Meine Seite im fhemwiki
Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
« Antwort #1487 am: 10 August 2017, 11:02:23 »
Ja das geht zB. mit
{
  my @pos=split(/,/,ReadingsVal("livetracking","location",""));
  fhem "set fhemBot sendLocation $pos[0] $pos[1]";
}

Siehe dazu den livetracking Thread hier: https://forum.fhem.de/index.php/topic,37412.135.html

Nur der Vollständigkeit halber: Hier sendest Du die Information über die Position per TelegramBot an den Benutzer, die Anfrage war, ob das über TelegramBot vom Benutzer abgefragt werden kann (ohne Button). Trotzdem löst das livetracking vermutlich das Problem von wbini
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Offline binford6000

  • Full Member
  • ***
  • Beiträge: 142
Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
« Antwort #1488 am: 10 August 2017, 11:39:06 »
Zitat
Trotzdem löst das livetracking vermutlich das Problem von wbini

Das denke ich auch - mit oder ohne Button  ;)
FHEM 5.8, RPi3 u. RPi1(CUL), InterTechno, EnOcean, PSC234, CRC-2-6-02, 6xHUE Bulbs, 5x AmazonDASH, GTAG, SONOS, ENIGMA2, YAMAHA_AVR, KODI, WINCONNECT, AMAD,  IPCAM, Alexa, HomeKit, TelegramBot, Yowsup, livetracking

Offline wbini

  • New Member
  • *
  • Beiträge: 25
Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
« Antwort #1489 am: 10 August 2017, 15:28:01 »
alles klar, danke für die Info.

Offline ErzGabriel

  • Full Member
  • ***
  • Beiträge: 202
Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
« Antwort #1490 am: 12 August 2017, 07:29:59 »
Guten Morgen.
Ich habe jetzt hier den ganzen Thread durchgelesen, gegooglet und rum probiert aber komme nicht weiter.
Mein ziel ist es, mir mehrer DOIF zu erstellen, die ich für Telegram nutze aber ich scheitere am Perl. Perl ist für mich ein Buch mit sieben Siegeln.

1. Ein DOIF, wo ich die Temperaturen, der Heizkürper und des Außenthermometers abrufen kann.
2. Ein DOIF, was eine Meldung schickt, wenn Batterien leer werden.
3. Ein DOIF, was zum bestimmten Zeitpunkt mir bestimmte Temperaturen meldet.

Ein notify zum schalten diverse Geräte ist vorhanden und funktioniert. Somit ist sicher, das der Bot richtig eingerichtet ist und funktioniert.
Kann mir bitte jemand helfen?

Danke.

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 2064
  • Niveau ist keine Creme...
Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
« Antwort #1491 am: 12 August 2017, 10:02:18 »
Hab nicht genau verstanden was du erreichen willst...

1. Du willst eine Nachricht per Telegram an fhem schicken und Werte erhalten? (Gut bei dem Batterie-Dingens läuft es wohl andersrum)

2. Du willst bei bestimmten Situationen (da passt dann auch das mit Batterie) eine Nachricht bekommen?

Bei 1. mal nach chatbot suchen bzw.:

https://forum.fhem.de/index.php?topic=51425.0

Bei 2. (da das Verschicken wohl geht) eher eine gezielte Frage im Bereich DOIF bzw. zu Batteriewarnung schicken gibt es gefühlt 100000 Threads. Mit Temperatur geht es ja dann analog (nur andere Geräte, andere Readings und andere Schwellwerte)...

Gruß, Joachim
FHEM 5.8 Pi 2, HM-CFG-USB2, 8x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN, 5x HM-SEC-SC-2, 1x HM-WDS10-TH-O, 1x HM-DIS-WM55
FHEM 5.8 PI B+, HM-CFG-USB2, 7x HM-CC-RT-DN, 3x HM-TC-IT-WM-W-EU, 4x HM-Sec-SCo
FHEM 5.8 PI 2 (Testsystem), CUL868, 1x HM-TC-IT-WM-W-EU, 1x HumTempESP8266, 1x mySensorsFillingLevel

Offline ErzGabriel

  • Full Member
  • ***
  • Beiträge: 202
Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
« Antwort #1492 am: 12 August 2017, 14:34:58 »
Hallo Joachim.
Den Thread, auf den Du verweist, war meine erste Anlaufstelle und da wurde ich nach hier verwiesen.

Offline UweH

  • Hero Member
  • *****
  • Beiträge: 1276
Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
« Antwort #1493 am: 12 August 2017, 16:53:51 »
1. Ein DOIF, wo ich die Temperaturen, der Heizkürper und des Außenthermometers abrufen kann.
So hatte ich das mal gelöst, bevor ich das alles in eine Funktion in die 99_myUtils ausgelagert habe bzw. in den ChatBot:

define DI_Status DOIF ([09:00|8] or [13:00|8] or [19:00|8] and [Key_Uwe] eq "on") (set myTeleBot msg Temp [Temp.Aussen:temperature] || AZ [Temp.AZ:temperature] || GZ [FHT.GZ:temperature] / [FHT.GZ:battery] / [FHT.GZ:windowsensor] / [Fenster.GZ:Window] || WZ [FHT.WZ:temperature] / [FHT.WZ:battery] / [FHT.WZ:windowsensor] / [Fenster.WZ:Window] || Bad [FHT.Bad:temperature] / [FHT.Bad:battery] / [FHT.Bad:windowsensor] / [Fenster.Bad:Window] || SZ [FHT.SZ:temperature] / [FHT.SZ:battery] / [FHT.SZ:windowsensor] / [Fenster.SZ:Window])
Das DOIF hat Wochentags um 9, 13 und 18h die Temperaturen der Sensoren und den Status der FHT ausgelesen und verschickt, wenn mein Schlüssel nicht am Brett hing.

Hast Du Dir das so vorgestellt?

Gruß
Uwe
*bewertungshäkchenblödsinnverweigerer*
||##div.moderatorbar in ABP wirkt Wunder||
Hilfreich Hilfreich x 1 Liste anzeigen

Offline ErzGabriel

  • Full Member
  • ***
  • Beiträge: 202
Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
« Antwort #1494 am: 12 August 2017, 16:59:30 »
Jo, genau sowas suche ich. Danke.
Aber muss da nicht noch was in die Utils, weil der Bot doch nur Text überträgt und so kriege ich doch nicht die Werte rein. Oder verstehe ich das jetzt falsch?

Offline UweH

  • Hero Member
  • *****
  • Beiträge: 1276
Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
« Antwort #1495 am: 12 August 2017, 18:28:34 »
Da muss nichts in myUtils. Das DOIF holt sich die Werte von den Devices und schickt sie los. Ersetze doch einfach mal meine Device-Namen mit Deinen.
Und weshalb sollte der Bot nur Text übertragen?
*bewertungshäkchenblödsinnverweigerer*
||##div.moderatorbar in ABP wirkt Wunder||

Offline ErzGabriel

  • Full Member
  • ***
  • Beiträge: 202
Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
« Antwort #1496 am: 12 August 2017, 18:30:12 »
Okay, werde ich machen. Danke Dir.
Mit dem Text war schlecht ausgedrückt. Hatte wo gelesen, das der Bot keinen Perlcode umsetzen kann und nur den text rausschickt.

Edit:
Habe ich auf meine Device umgebaut und funktioniert bestens. Danke.
Hast du auch einen tipp für mich, wie ich eine Abfrage machen kann, weil baue ich das ganze um, das ich zum Beispiel an FHEM Außentemperatur sende, passiert nichts. Der Umbau sieht wie folgt aus:
define n_ChatMH notify Jarvis:msgText.* {\
    if ($EVTPART1 eq 'Außentemperatur') {\
        fhem("set Jarvis _msg Die Außentemperatur beträgt [THERMOMETER:temperature]");;\
    }\
    elsif ($EVTPART1 eq 'Büro') {\
        if ($EVENT =~ 'an') {\
            fhem("set LSR_BUERO on");;\
        }\
        elsif ($EVENT =~ 'aus') {\
            fhem("set LSR_BUERO off");;\
        }\
    }\
    elsif ($EVTPART1 eq 'Wohnzimmer') {\
        if ($EVENT =~ 'an') {\
            fhem("set VITRINE on");;\
        }\
        elsif ($EVENT =~ 'aus') {\
            fhem("set VITRINE off");;\
        }\
    }\
    elsif ($EVTPART1 eq 'Schlafzimmer') {\
        if ($EVENT =~ 'an') {\
            fhem("set LSR_BED on");;\
        }\
        elsif ($EVENT =~ 'aus') {\
            fhem("set LSR_BED off");;\
        }\
    }\
    elsif ($EVTPART1 eq 'Küche') {\
        if ($EVENT =~ 'an') {\
            fhem("set LSR_KUECHE on");;\
        }\
        elsif ($EVENT =~ 'aus') {\
            fhem("set LSR_KUECHE off");;\
        }\
    }\
}
Wobei alle anderen Einträge funktionieren.
« Letzte Änderung: 12 August 2017, 19:06:31 von ErzGabriel »

Offline smart.builder

  • New Member
  • *
  • Beiträge: 6
JSON text must be an object or array
« Antwort #1497 am: 13 August 2017, 09:54:22 »
Hallo Zusammen,

seit längerer Zeit verwende ich es zum Versenden von Telegramnachrichten.
Es werden z.B. Bilder der Webcams nach Bewegungserkennung an mein Handy gesendet. Funktionierte bisher alles perfekt!
Seit ca. 1 Woche läuft mein Fhem Amok (nach Neustart). Das Versenden der Photos funktioniert zwar, aber es kommt anscheinend keine Bestätigungsnachricht an. Daraufhin versucht es das Telegrammodul automatisch im Sekundentakt nachmal zu versenden. Somit werde ich zugespamt. Einzige Abhilfe ein Reset des Telegrammodul im Fhem (set TelegramBot reset).

Es handelt sich um folgende Fehlermeldungen (im Sekundentakt):
Callback returned no valid JSON: JSON text must be an object or array (but found number, string, true, false or null, use allow_nonref to allow this) at ./FHEM/50_TelegramBot.pm line 2092.
 
pollingTimeout ist auf 120.
Es wird die aktuellste Version aus Github verwendet.

Ich habe es auch bereits mit einem neuen Bot probiert, jedoch ohne Besserung.

Interessanterweise bekomme ich auch beim Wettermodul zyklisch eine ähnliche Meldung:
2017.08.12 23:58:02 3: Wetter: JSON text must be an object or array (but found number, string, true, false or null, use allow_nonref to allow this) at FHEM/YahooWeatherAPI.pm line 247.

Ich vermute, dass es irgendwie an meiner Debian-Installation liegt. Die libjson-perl ist auf dem aktuellen Stand.

Danke!!!

Gruß
Viktor

Offline viegener

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2728
    • Meine Seite im fhemwiki
Antw:JSON text must be an object or array
« Antwort #1498 am: 13 August 2017, 10:25:45 »
@smart.builder:
- Wenn Du im Sekundentakt zugespammt wirst stellt sich die Frage, wer macht diese Sendebefehle - Der Bot versendet normalerweise bei Fehlern mit ansteigender Wartezeit 1, 10, 100 Sekunden. Das sollte nicht im Sekundentakt passieren und eigentlich auch nicht endlos.
Frage: Wie steht der Wert des Attributes maxRetries?

- Kannst Du mal beim Bot das Attribut verbose 5 stellen und dann den Logausschnitt im Fehlerfall hier posten?



Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Offline UweH

  • Hero Member
  • *****
  • Beiträge: 1276
Antw:Telegram instant messaging TelegramBot - Empfangen und Sendern per FHEM
« Antwort #1499 am: 13 August 2017, 13:31:32 »
@ErzGabriel: Der Ausführungsteil funktioniert in der Form bei mir. Das "if" reagiert dann wohl nicht.
*bewertungshäkchenblödsinnverweigerer*
||##div.moderatorbar in ABP wirkt Wunder||

 

decade-submarginal