Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

Begonnen von viegener, 20 Juni 2015, 18:59:41

Vorheriges Thema - Nächstes Thema

Adriano

Hallo, habe auf die neueste FHEM Version Featurelevel: 5.9 geupdated. Aktuell Funkt mein TelegramBot nicht mehr. Liegts an mir oder hat noch jemand das Problem?

Edit: Erledigt. https://forum.fhem.de/index.php?topic=68382.0 replacecontacts hat geholfen. Die Readings waren wohl weg.

MadMax-FHEM

#1996
Zitat von: Adriano am 25 Oktober 2018, 16:50:16
Hallo, habe auf die neueste FHEM Version Featurelevel: 5.9 geupdated. Aktuell Funkt mein TelegramBot nicht mehr. Liegts an mir oder hat noch jemand das Problem?

Bin seit einiger Zeit auf 5.9 ohne Probleme: Telegram funktioniert...

EDIT: letzter Update vor ca. zwei Wochen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Adriano

Wie gesagt, das contacts reading war weg. replacecontacts und alles wieder gut.

prodigy7

#1998
Bei mir das gleiche: Nach Update sind die Contacts weg. Was genau muss man machen um das zu fixen?

Edit: Okay, in einem Backup das Reading gefunden und mit replacecontacts den Wert einfach wieder gesetzt.

viegener

@prodigy7, Adriano: Habt Ihr eine Erklärung, warum die Readings bei Euch verschwunden sind? Wenn es hier ein systematisches Problem gibt, würde ich das gerne lösen.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Dia81

Servus. Nutze erfolgreich Telegram als Info Tool im Haus und mit einer Menüsteuerung. Wenn es klingelt sendet mir Telegram ein Tür Screenshot als Image und Uhrzeit und Datum als Text . Soweit so gut. Jetzt bekomme ich wegen den 2 befehlen (einmal Sendmsg und ein mal Sendimage) natürlich immer 2 Nachrichten wenn es klingelt. Gibt es hier die Chance das do zu vereinfachen dass nur eine Message kommt mit Text Absatz Bild? Würde das ganze sehr übersichtlicher gestalten :) Danke für Hilfen Ideen oder Anregungen :)

prodigy7

Zitat von: viegener am 05 November 2018, 18:29:09
@prodigy7, Adriano: Habt Ihr eine Erklärung, warum die Readings bei Euch verschwunden sind? Wenn es hier ein systematisches Problem gibt, würde ich das gerne lösen.
Leider Nein! Es ist mir auch erst aufgefallen, als ich mit programmierten Kommandos eine Aktion auslösen wollte und die nicht angenommen wurde. Die Benachrichtigung, das was am meisten genutzt wird, hat ja weiterhin funktioniert. Zwischen Upgrade und Auffallen des Fehlers lag bestimmt so eine Woche, so dass ich nicht mehr wirklich etwas rekonstruieren oder einkreisen kann,

MadMax-FHEM

#2002
Hallo,

irgendwie stehe ich grad (mächtig) auf dem Schlauch.

Ich bin gerade dabei meine "Verkehrsdaten-Versendung" umzubauen und dabei habe ich ein Problem:

in einem Reading bei GoogleTraffic stehen verschiedene alternative Wege drin.
Die lese ich aus, klappt.
Mittels split (die Alternativen sind Komma getrennt) habe ich sie dann in einem Array, klappt.

So nun kommt's:

ich baue mir meine Nachricht wie folgt zusammen:


      @Alternatives = split(",", ReadingsVal($Name, "alternatives", "n.a."));
     
      $Message = "Delays: " . ReadingsNum($NameP1, "delay", 0) . ", " . ReadingsNum($NameP2, "delay", 0) . ", " . ReadingsNum($NameP3, "delay", 0) . "\n";
      $Message .= $ActDelayCalc . " vs. " . $ActDelay . "\n";
      $Message .= $Alternatives[0];


Schicke ich die Nachricht habe ich folgendes im Log:


2018.11.19 12:38:32 1: my_SendTraffic_new    Message: Delays: 0, 0, 0
0 vs. 0
Südwesttangente - 26 mins.
2018.11.19 12:39:03 3: TelegramBot_Callback MadMaxFhemBot: resulted in NonBlockingGet timed out on read from <hidden> after 30s from SendIt


Gut irgendwie habe/hatte ich das 'ü' in Verdacht was auch das Problem irgendwie zu sein scheint...
...ABER:

folgendes geht:


      @Alternatives = split(",", ReadingsVal($Name, "alternatives", "n.a."));
     
      $Message = "Delays: " . ReadingsNum($NameP1, "delay", 0) . ", " . ReadingsNum($NameP2, "delay", 0) . ", " . ReadingsNum($NameP3, "delay", 0) . "\n";
      $Message .= $ActDelayCalc . " vs. " . $ActDelay . "\n";
      $Message .= "Südwesttangente - 27 mins";


und folgendes auch


      @Alternatives = split(",", ReadingsVal($Name, "alternatives", "n.a."));
      $Alternative = "Südwesttangente - 27 mins";
     
      $Message = "Delays: " . ReadingsNum($NameP1, "delay", 0) . ", " . ReadingsNum($NameP2, "delay", 0) . ", " . ReadingsNum($NameP3, "delay", 0) . "\n";
      $Message .= $ActDelayCalc . " vs. " . $ActDelay . "\n";
      $Message .= $Alternative;


und das auch


      @Alternatives = split(",", ReadingsVal($Name, "alternatives", "n.a."));
     
      $Message = "Delays: " . ReadingsNum($NameP1, "delay", 0) . ", " . ReadingsNum($NameP2, "delay", 0) . ", " . ReadingsNum($NameP3, "delay", 0) . "\n";
      $Message .= $ActDelayCalc . " vs. " . $ActDelay . "\n";
      $Message .= urlEncode($Alternatives[0]);


aber es kommt nat als "encoded" Text an, also das 'ü' (klar) und auch die Leerzeichen und alles...
...also so ist es dann "unlesbar"...

Jetzt die Frage:

was muss ich da tun, damit ich den Inhalt vom Array ($Alternatives[0]) in der Nachricht verschickt bekomme.
Und wie geschrieben: den identischen Text direkt (hard coded) dranhängen und schicken geht.
Und auch wenn ich den identischen Text vorher einer Variablen zuweise geht es...

Ich habe auch schon versucht das ganze in "" zu packen (also "$Alternatives[0]") und auch erst einer Variablen zuzuweisen und das dann dran zu hängen...
Alles ohne Erfolg... :-|

EDIT: nehme ich $Alternatives[1] (wo "A73 - 33 mins" drin steht) geht es auch...

EDIT2: habe es eben noch mal getestet (locale umgestellt auf de_utf8 hat auf meinem Testsystem schon das eine oder andere "behoben" / leider hier nicht) und bekomme vor dem geposteten Fehler/Eintrag noch Ausgaben von HTTPUtils:


2018.11.19 18:50:54 1: PERL WARNING: substr outside of string at FHEM/HttpUtils.pm line 611.
2018.11.19 18:50:54 1: PERL WARNING: Use of uninitialized value $data in numeric eq (==) at FHEM/HttpUtils.pm line 612.
2018.11.19 18:51:24 3: TelegramBot_Callback MadMaxFhemBot: resulted in NonBlockingGet timed out on read from <hidden> after 30s from SendIt
2018.11.19 18:51:24 3: TelegramBot_Callback MadMaxFhemBot: Reached max retries (ret: NonBlockingGet timed out on read from <hidden> after 30s) for msg 215671167 : Delays: 0, 0, 0
0 vs. 0
Südwesttangente - 26 mins


EDIT3: GELÖST! :) also so geht's:


      $Message .= encode("iso-8859-1", $Alternatives[0]);


Vielen Dank schon mal, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

rohlande

Zitat von: Dia81 am 05 November 2018, 22:36:53
Servus. Nutze erfolgreich Telegram als Info Tool im Haus und mit einer Menüsteuerung. Wenn es klingelt sendet mir Telegram ein Tür Screenshot als Image und Uhrzeit und Datum als Text . Soweit so gut. Jetzt bekomme ich wegen den 2 befehlen (einmal Sendmsg und ein mal Sendimage) natürlich immer 2 Nachrichten wenn es klingelt. Gibt es hier die Chance das do zu vereinfachen dass nur eine Message kommt mit Text Absatz Bild? Würde das ganze sehr übersichtlicher gestalten :) Danke für Hilfen Ideen oder Anregungen :)
Ruft das Bild ab im gespeicherten Pfad und setzt den Text direkt ans Bild ran. Damit hast du 1 Nachricht!
fhem ("set HomeBot sendImage \@xxxxxx /media/public/Snapshots/Wohnzimmer_aktuell.jpg Snapshot Wohnzimmer aktuell!");
Vg denny
HostSystem: Synology DS918 | FHEM im Docker Version: 6.0-s22528_v2.2.4 (dedizierte IP Adresse) | MQTT_Broker auf DS918 NAS | MQTT_FHEM | TASMOTA_DEVICE | SSChatBot | SSCam | LaMetric | FBAHAHTTP | CUL | SONOS | HUEBridge (deCONZ) Zigbee | FB_CALLMONITOR | InfluxDBLogger

jeti

Hallo zusammen,

ich habe hier einen Fall von:
Zitat
HttpUtils: <hidden>: Can't connect(2) to https://api.telegram.org:443: SSL wants a read first
es hilft nur polling auf 0 wie auf Seite 107 in diesem Thread beschrieben, gibt es mittlerweile mehr Information woran das liegt?

Gruß


Dia81

Zitat von: rohlande am 26 November 2018, 21:20:10
Ruft das Bild ab im gespeicherten Pfad und setzt den Text direkt ans Bild ran. Damit hast du 1 Nachricht!
fhem ("set HomeBot sendImage \@xxxxxx /media/public/Snapshots/Wohnzimmer_aktuell.jpg Snapshot Wohnzimmer aktuell!");
Vg denny

so einfach..danke

Manley

Hallo.

Ich lasse über ein DOIF meine Fensterkontakte überwachen.
([Alarmanlage] eq "AN" and [":^opened$"]) (set telebot message @XXXXX @XXXXX ACHTUNG!!! Folgender Kontakt hat ausgelöst : $DEVICE !)

$DEVICE sagt mir dann welches ausgelöst hat. Leider steht dann da nur MAX_XXXXXX.

Ist es möglich das Alias zu schicken?

MfG Manley
Wir essen jetzt Opa!
Satzzeichen können Leben retten.

MadMax-FHEM

Zitat von: Manley am 11 Dezember 2018, 17:59:02
Hallo.

Ich lasse über ein DOIF meine Fensterkontakte überwachen.
([Alarmanlage] eq "AN" and [":^opened$"]) (set telebot message @XXXXX @XXXXX ACHTUNG!!! Folgender Kontakt hat ausgelöst : $DEVICE !)

$DEVICE sagt mir dann welches ausgelöst hat. Leider steht dann da nur MAX_XXXXXX.

Ist es möglich das Alias zu schicken?

MfG Manley

Kannst du mittels AttrVal("Devicename", "AttrName","Ersatzwert") auslesen...

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

https://wiki.fhem.de/wiki/DevelopmentModuleIntro

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

accessburn

Moinsen,

weiß jemand wie ich eine Telefonnummer anklickbar zum Anruf versenden kann?
Bei html wäre es tel://, greift jedoch nicht.
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

Esjay

Ich nehme das reading aus der Fritzbox in dem die Nummer steht, also
set msg TelegramBot Neuer Anruf von [Device:reading]
und kann in der Nachricht dann ganz normal draufklicken, um zurückzurufen.

Sprich es ist kein bestimmtes Format notwendig.

Grüße