Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

igami

Zitat von: marvin78 am 20 April 2016, 12:37:18
Ohne @ und das ist nicht die ID von deinem Bot, sondern die des Peers (dein Handy oder sonstiges). Gerade noch einmal getestet. Klappt einwandfrei.

Edit: und das ohne @ genau der gleiche Fehler erscheint, glaube ich nicht.

[myTelegramBot:msgPeerId] liest das Reading msgPeerId vom device myTelegramBot, also die ID die als letztes den Bot angeschrieben hat. Wie sieht denn die ID von einer Gruppe aus?

Wie hier beschrieben habe ich Dialoge und arbeite nicht mit Favorites, aber das ist noch nicht ganz ausgereift :D
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

marvin78

Mit Gruppen habe ich mich nicht beschäftigt. Haben die keine ID?

@Muschelpuster: Ist der Peer denn vielleicht wirklich unbekannt? Die eckigen Klammern um die ID sind natürlich bei direkter Angabe einer ID überflüssig. Die benötigt man nur, wenn man das Reading verwenden möchte. Sorry das habe ich übersehen. Das kann evtl. je nach Perl Version Probleme machen (kommt auf den Kontext an).

Muschelpuster

Zitat von: marvin78 am 20 April 2016, 13:23:23Mit Gruppen habe ich mich nicht beschäftigt. Haben die keine ID?
Doch, die beginnt mit einem Minuszeichen.

Zitat von: marvin78 am 20 April 2016, 13:23:23@Muschelpuster: Ist der Peer denn vielleicht wirklich unbekannt? Die eckigen Klammern um die ID sind natürlich bei direkter Angabe einer ID überflüssig.
Upps, da hätte ich natürlich drauf kommen können (hatte ich schon mal irgendwo), aber mit dem Syntax tue ich mich echt schwer.
Nun geht die Nachricht raus, doch das Ergebnis ist noch nicht ganz optimal:
Zitat von: Telegram-NachrichtTelegramBot fhem cmd:
{plotAsPng(Terrarium_1")}:
result OK

langsam voranschreitende Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

igami

Zitat von: Muschelpuster am 20 April 2016, 14:01:18
Nun geht die Nachricht raus, doch das Ergebnis ist noch nicht ganz optimal:
Dann sag doch mal was du nun genau gemacht hast
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

marvin78

Was ist denn nicht optimal? Schreibe hier nochmal genau was du machst (mit komplettem Kontext). Das was ich bisher gepostet habe, habe ich in der Befehlszeile verwendet. Je nach Kontexst müsste man ggf. etwas anpassen.

Muschelpuster

Definitionen:

#TelegramBot
define telegramBot TelegramBot xxxxxxxxxxxxxxxxxxxx
attr telegramBot allowUnknownContacts 1
attr telegramBot pollingTimeout 120
attr telegramBot room Maschinenraum

# FileLog Definition
define FileLog_Terrarium FileLog ./log/Terrarium-%Y-%m.log 1Wire_TerraLF:Luftfeuchte:.*|1Wire_TerraSwitch:sensed.A:.*|1Wire_TerraTemp_.*:.*Temperatur.*
attr FileLog_Terrarium icon icoLog
attr FileLog_Terrarium room Logfiles

# Chart
define Terrarium_1 SVG FileLog_Terrarium:Terrarium_1:CURRENT
attr Terrarium_1 room Terrarium
attr Terrarium_1 sortby 40
attr Terrarium_1 title "Luftfeuchtigkeit  (Min $data{min1}%, Max $data{max1}%, Aktuell $data{currval1}%)"


GPlot-File:# Created by FHEM/98_SVG.pm, 2015-08-02 21:16:12
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid
set ylabel "Grad C"
set y2label "Prozent"

#FileLog_Terrarium 4:1Wire_TerraLF.Luftfeuchte\x3a::
#FileLog_Terrarium 4:1Wire_TerraTemp_HS.Temperatur\x3a::
#FileLog_Terrarium 4:1Wire_TerraTemp_MO.Temperatur\x3a::

plot "<IN>" using 1:2 axes x1y2 title 'relLuftfeuchte' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Temp Hotspot' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Temp Mitte oben' ls l7 lw 1 with lines


Und an der Kommando-Eingabe von FHEMweb:{TelegramBot_ExecuteCommand($defs{"telegramBot"}, xxxxxx, '{plotAsPng("Terrarium_1")}');; return;;}

detaillierte Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

Ma_Bo

Falls es jemanden interessiert, ich erzeuge jede 30 Minuten mit einem at Job eine Bilddatei und kann mir diese dann einfach per TelegramBot zuschicken.
Diese Dateien werden bei mir unter /opt/fhem/www/plot2jpg/ abgelegt.

Das ganze habe ich schon vor der Nutzung mit TelegramBot usw. gemacht, da ich die Bilder auch zum anzeigen für ein Tablet brauche, wie ich aber hier gesehen habe, geht es ja auch einfacher, aber ich wollte euch nur mal kurz zeigen, wie es auch gehen kann.

Als erstes
sudo apt-get install libgd-graph-perl
sudo apt-get install libgd-text-perl
sudo apt-get install libimage-librsvg-perl


in die 99_myUtils muss folgendes :
sub Plot2JPEG($$) {

use GD;

my ($myPlot, $myFile) = @_;

my $pngImg = plotAsPng($myPlot);

if(!defined($pngImg) or ($pngImg eq "")) {
Log3 "Plot2JPEG", 2, "Plot2JPEG: error while creating image from $myPlot";
return;
};

my $image = GD::Image->newFromPngData($pngImg) or die Log3 "Plot2JPEG", 2, "Plot2JPEG: error while creating GD::Instance from $myPlot";

my $jpeg = $image->jpeg;

open (FILE, ">" . $myFile) or die Log3 "Plot2JPEG", 2, "Plot2JPEG: error while openeing " . $myFile;
print FILE $jpeg;
close (FILE);

Log3 "Plot2JPEG", 2, "Plot2JPEG: jpeg image created from $myPlot in " . $myFile;

return;
}


at DEF
+*00:30:00 {Plot2JPEG("SVG_FileLog_Aussentemperaturen", "/opt/fhem/www/plot2jpg/aussentemperaturen.jpg");}

Jetzt kann man (sobald die Datei einmal vorhanden ist und dann ja alle 30 Minuten aktualisiert wird) mit
set TelegramBot sendImage /opt/fhem/www/plot2jpg/aussentemperaturen.jpg
das Bild versenden.

Vielleicht hilft das dem ein oder anderen.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

marvin78

@Muschelpuster: Aber was genau ist denn nun noch nicht "optimal"?

Muschelpuster

Zitat von: marvin78 am 20 April 2016, 19:28:13
@Muschelpuster: Aber was genau ist denn nun noch nicht "optimal"?
Die Anzeige auf meinem TelegramClient. Da steht:
ZitatTelegramBot fhem cmd:
{plotAsPng(Terrarium_1")}:
result OK

grafikfreie Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

marvin78

Und da fehlt ein Anführungszeichen. Sicher, dass du es korrekt in die Kommandozeile von FHEM eingegeben hast?

Muschelpuster

Zitat von: marvin78 am 20 April 2016, 19:44:32
Und da fehlt ein Anführungszeichen. Sicher, dass du es korrekt in die Kommandozeile von FHEM eingegeben hast?
Ja, die steht bei mir im Editor und wird mit Copy&Paste in FHEM und das Forum kopiert. Der Fehler liegt beim Abtippen vom Mäusekino.

legastenische Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

marvin78

Ich bin etwas ratlos. Wie alt ist denn dein FHEM? Probiere mal noch folgendes:

{TelegramBot_ExecuteCommand($defs{"telegramBot"}, xxxxxx, "{plotAsPng('Terrarium_1')}");; return;;}

BTW: Aus der Web-Version von Telegram (https://web.telegram.org) könntest du auch Copy & Paste machen ;)

Muschelpuster

Zitat von: marvin78 am 20 April 2016, 20:43:01
Ich bin etwas ratlos. Wie alt ist denn dein FHEM?
Fhem info:
  Release  : 5.7 FeatureLevel: 5.7
  OS       : linux
  Arch     : arm-linux-gnueabihf-thread-multi-64int
  Perl     : v5.14.2


Zitat von: marvin78 am 20 April 2016, 20:43:01BTW: Aus der Web-Version von Telegram (https://web.telegram.org) könntest du auch Copy & Paste machen ;)
Da hast Du recht, aber das willst Du nicht sehen:TelegramBot fhem cmd :{plotAsPng('Terrarium_1')}: result OK

erfolglose Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

marvin78

Das sagt leider nicht sehr viel über das Alter. Die Ausgabe von version wäre hilfreicher. Aber auf der anderen Seite sollte es kein Problem machen. Ich weiß bloß nicht, ob es sein kann, dass das TelegramBot Modul zu alt ist. Da habe ich die Entwicklung erst seit kurzem verfolgt.

Muschelpuster

#614
Ich mache mal ein Update - kann ja nicht schaden  ;)
Das Letzte ist ja schon wieder ein paar Wochen her.

inaktuelle Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF