Telegram instant messaging TelegramBot - Empfangen und Senden per FHEM

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

Vorheriges Thema - Nächstes Thema

Esjay

Zitat von: TWART016 am 11 Juni 2017, 16:47:17
Sorry, ich stehe derzeit ein Wenig auf dem Schlauch.

Ich möchte mir einen Wert wöchtenlich zusenden. Nur wie kann ich in mitten eines Textes ein Readingsval einbinden.

*20:00:00 {if ($wday==0 && (Value("AnzahSpeicher") ge "1")) {fhem("set Telegram msg Es sind" .ReadingsVal("AnzahlSpeicher","state",""))}}

Vll nicht die erhoffte Antwort, aber sollte nicht
"set Telegram msg Es sind [AnzahlSpeicher:state]" auch funktionieren?

Ansonsten vll eher in die Richtung?!


{
my $title = ReadingsVal("AnzahlSpeicher", "state", "");
{fhem("set Telegram msg Es sind $title};
}


Grüße

TWART016

Zitat von: Esjay am 11 Juni 2017, 17:09:26
"set Telegram msg Es sind [AnzahlSpeicher:state]" auch funktionieren?

Das reicht schon, danke.
"set Telegram msg Es sind [AnzahlSpeicher:state] im Speicher"

viegener

Zitat von: hartenthaler am 11 Juni 2017, 01:58:01
Das mit dem nachvollziehbaren Szenario wird wohl leider schwierig. Aber vielleicht hast Du trotzdem eine Idee.
Hast Du eine Idee, was ich testen könnte um das Problem weiter einzugrenzen? Wer genau produziert die Fehlermeldung? perl? Wie gesagt, mache ich das so ähnlich an anderen Stellen auch und schiesse in einem Dialog einfach eine Grafik oder ein Dokument dazwischen.

Ich habe mal recherchiert, weil meine perl-Kenntnisse da auch nicht wirklich ausreichen. Es geht wohl darum, dass in meiner Routine beim Lesen $_ mit Inhalt gefüllt wird. Wenn aber durch eine umgebende Schleife $_ als konstanter Wert verwendet wird zum Beispiel durch ein umgebendes for (1,2). dann wird diese Fehlermeldung kommen. Das tritt wohl speziell mit for auf, da z.B. foreach immer lokalisiert. Offensichtlich funktioniert das immer problemlos nur wenn rivescript ins Spiel kommt gibt es Probleme.

Aber mach doch mal folgenden Versuch:

Füge im telegrambot modul - nach der Zeile:

my ($hash, $fileName) = @_;

noch eine Zeile ein:

my $_;

Und probiere es nochmals. Wenn das klappt, kann ich das in die offizielle Version aufnehmen
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

StephanFHEM

hat mal einer etwas für das folgende Szenario gebaut?:

es werden zeitgleich von mehreren DOIFs Nachrichten an Telegram gefeuert. Ich bekomme nun: mehrere Nachrichten!
Ich möchte aber gerne, dass alle Nachrichten die zeitgleich kommen nur in einer Nachricht dargestellt werden.
Also z.B. -> in einer Sekunde kommen 3 Nachrichten. Die werden abgefangen und gesammelt. Sobald x Sekunden keine Nachricht mehr kommt, werden die gesammelten Nachrichten mit einem Zeilenumbruch als eine Nachricht abgeschickt.

falls es das schon gibt würde ich gern kopieren;-)

hartenthaler

Das Einfügen von
my $_; hat das Problem gelöst und Nebenwirkungen sind ausgeblieben. Super! Danke!
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

viegener

Zitat von: hartenthaler am 16 Juni 2017, 22:15:12
Das Einfügen von
my $_; hat das Problem gelöst und Nebenwirkungen sind ausgeblieben. Super! Danke!

OK, Danke fürs testen - ist eingechecked ins SVN und kommt übers nächste update
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

throbin

Hi,

seit dem Update gestern, bekomme ich bei jedem Start von FHEM die Warnung:

2017.06.19 17:16:42.538 1: PERL WARNING: Use of my $_ is experimental at ./FHEM/50_TelegramBot.pm line 3243.
2017.06.19 17:16:42.538 1: stacktrace:
2017.06.19 17:16:42.538 1:     main::__ANON__                      called by ./FHEM/50_TelegramBot.pm (3243)
2017.06.19 17:16:42.538 1:     (eval)                              called by fhem.pl (2414)
2017.06.19 17:16:42.538 1:     (eval)                              called by fhem.pl (2413)
2017.06.19 17:16:42.538 1:     main::CommandReload                 called by fhem.pl (1828)
2017.06.19 17:16:42.538 1:     main::LoadModule                    called by fhem.pl (1885)
2017.06.19 17:16:42.539 1:     main::CommandDefine                 called by fhem.pl (1157)
2017.06.19 17:16:42.539 1:     main::AnalyzeCommand                called by fhem.pl (1021)
2017.06.19 17:16:42.539 1:     main::AnalyzeCommandChain           called by fhem.pl (1292)
2017.06.19 17:16:42.539 1:     main::CommandInclude                called by fhem.pl (528)
2017.06.19 17:16:42.544 3: TelegramBot_Define TelegramBotDevice: called


LG

Jump2016

Hallo zusammen,

habe ein kleines Problem mit den Favoriten.

Habe im Attribute "favorites" seither den Wert:

[Garage]=set ug_gr_tor_up_01 on

stehen.
Dieser wurde mir dann in Telegram als Favorit angezeigt.

Nun bekomme ich statt der Bestätigung zur Ausführung die Meldung: "Ergebnis: Unknown command [Garage]=set, try help"

hab schon etwas getestet und folgendes in Erfahrung gebracht:

Wenn ich im Attribute "favorites" nur "set ug_gr_tor_up_01 on" eintrage dann wird der Befehl auch ausgeführt.

Hat sich in der Syntax für die "Description" der Favoriten etwas geändert?

Hab fhem vor diesem Post auf den aktuellen Stand gebracht. Leider mit gleichem Ergebnis.

Hat jemand eine Idee?

Esjay

Zitat von: Jump2016 am 19 Juni 2017, 22:08:23
Hallo zusammen,

habe ein kleines Problem mit den Favoriten.

Habe im Attribute "favorites" seither den Wert:

[Garage]=set ug_gr_tor_up_01 on

stehen.
Dieser wurde mir dann in Telegram als Favorit angezeigt.

Nun bekomme ich statt der Bestätigung zur Ausführung die Meldung: "Ergebnis: Unknown command [Garage]=set, try help"

hab schon etwas getestet und folgendes in Erfahrung gebracht:

Wenn ich im Attribute "favorites" nur "set ug_gr_tor_up_01 on" eintrage dann wird der Befehl auch ausgeführt.

Hat sich in der Syntax für die "Description" der Favoriten etwas geändert?

Hab fhem vor diesem Post auf den aktuellen Stand gebracht. Leider mit gleichem Ergebnis.

Hat jemand eine Idee?
Kann ich bestätigten..Habe es lange nicht genutzt,und jetzt das von dir beschriebene Verhalten.Mal schauen was viegener dazu sagt.
Grüße

wthiess

Hatte ich auch.
TelegramBot FHEM -  Befehl:[Buttons]=set teleBotL queryInline @12345678 @234567123 (VRmax)  (VRein|VRaus|VRmax|VRmaxoff) (VR_0|VR_1|VR_2|VR_3|VR_A) Lüftung: - Ergebnis:
Unknown command [Buttons]=set, try help.


Alte Version retour. Passt wieder.


lg
Wolfgang

Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......

viegener

@Esjay  / Jump2016 - ja an den Favoriten hat sich doch in letzter Zeit einiges verändert, aber mir ist nicht klar, was ihr genau definiert habt?

Was steht in cmdFavorites und was genau in favorites?

ohne einen / am Anfang wird immer der ganze Favorit als Kommando interpretiert, das sollte auch schon immer so sein, da man sonst keine Kommandos mit eckigen Klammern eingeben könnte.

Also einfach mal vor die Favoritendefinition ein / einfügen, klappt es dann wieder?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Esjay

Zitat von: viegener am 20 Juni 2017, 23:06:55
@Esjay  / Jump2016 - ja an den Favoriten hat sich doch in letzter Zeit einiges verändert, aber mir ist nicht klar, was ihr genau definiert habt?

Was steht in cmdFavorites und was genau in favorites?

ohne einen / am Anfang wird immer der ganze Favorit als Kommando interpretiert, das sollte auch schon immer so sein, da man sonst keine Kommandos mit eckigen Klammern eingeben könnte.

Also einfach mal vor die Favoritendefinition ein / einfügen, klappt es dann wieder?
Guten Morgen,

in meinem cmdFavorites steht stumpf "F" drin, und unter favorites dann"[TV an]=set TV on;[TV aus]=set TV aus; usw" Wie bereits gesagt, hat das schon länger funktioniert.

So

/[TV an]=set TV on;/[TV aus]=set TV aus;

funktioniert es wieder.

Gruß

viegener

Zitat von: Esjay am 21 Juni 2017, 08:20:53
Guten Morgen,

in meinem cmdFavorites steht stumpf "F" drin, und unter favorites dann"[TV an]=set TV on;[TV aus]=set TV aus; usw" Wie bereits gesagt, hat das schon länger funktioniert.

So

/[TV an]=set TV on;/[TV aus]=set TV aus;

funktioniert es wieder.

Gruß

Schön, dann war das vorherige Verhalten leider ein Fehler. Für die Angabe eines Beschreibungstextes sollte eigentlich immer ein / vor der Favoriten definition stehen, dieses soll ausschliessen dass fälschlicherweise ein Kommando mit eckigen Klammern als Beschreibung erkannt wird.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

wthiess

läuft mit dem  "/"
attr teleBotT favorites /[Buttons]=set teleBotT queryInline..................
Danke
lg
Wolfgang
Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......

Jump2016