Versand mit TelegramBot (gelöst)

Begonnen von btmerz, 06 Januar 2021, 19:44:18

Vorheriges Thema - Nächstes Thema

btmerz

Hi zusammen,
ich habe eine Renault Zoe im Leasing gekauft (fährt meine Frau). Die Zoe ist in FHEM eingebunden, so dass ich den aktuelle Kilometerstand auslesen kann. Jetzt möchte ich meiner Frau per TelegramBot täglich die frei verfügbaren KM zukommen lassen.
Dazu berechne ich die seit dem Kauf vergangenen Sekunden und daraus die noch freien km. Das ergebnis soll dann gesendet werden.
Prinzipiell funktioniert das auch, jedoch kann ich die Daten nur an den defaultPeer, also mich senden. Ich schaffe es nicht diese Nachricht an meine Frau zu senden.
Das ganze steht in einem Doif:

so funktionierts, Nachricht geht aber an mich:
(1) ({my $SEK = time - time_str2num("2020-10-05 00:00:00");
my $KMERL=$SEK*0.000237660658605217;
my $KMREST=$KMERL-ReadingsVal("Zoe", "totalMileageKm", 30000); 
my $txt='Zoe freie km: '.int($KMREST);
fhem("set TeleBot message $txt")})


Mache ich 
(1) ({my $SEK = time - time_str2num("2020-10-05 00:00:00");
my $KMERL=$SEK*0.000237660658605217;
my $KMREST=$KMERL-ReadingsVal("Zoe", "totalMileageKm", 30000); 
my $txt='Zoe freie km: '.int($KMREST);
fhem("set TeleBot message @Name_Frau $txt")})

, bekomme ich folgende Fehlermeldung:
: Global symbol "@Name_Frau" requires explicit package name at (eval 42384) line 1.

Wenn ich
(1) ({my $SEK = time - time_str2num("2020-10-05 00:00:00");
my $KMERL=$SEK*0.000237660658605217;
my $KMREST=$KMERL-ReadingsVal("Zoe", "totalMileageKm", 30000); 
my $txt='Zoe freie km: '.int($KMREST);}
set TeleBot message @Name_Frau $txt)

mach , dann bekommt meine Frau die Nachricht 'Zoe freie km $txt', es wird also nicht die Variable $txt eingesetzt...

Wisst ihr dazu eine Lösung?

TWART016

Hi,

probiere es mal mit escapen vom @

fhem("set TeleBot message \@Name_Frau $txt")})

btmerz

Das war der richtige Hinweis. Jetzt funktioniert es wie gewünscht. Vielen dank!