FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: boeho am 08 Juni 2025, 13:10:21

Titel: Wie sendet man per Telegram ein ';' im Text?
Beitrag von: boeho am 08 Juni 2025, 13:10:21
Hallo,
sporadisch stürtzt FHEM ab und an mal ab. Dann sind gespeicherte Werte aus der Solaranlage auf ältere Werte gesetzt.
Mit Telegram lasse ich mir die Statements schicken:
Zitatset SolarStat_vom 07-06-2025 21:27:30
set SolarStat_Gesamt_kWh 4366.960
set SolarStat_GesDTU_kWh 1654.730

und mehr Zeilen

aus Telegram:
Zitatmy $sem = ";";
      my $zwsp1 = "set SolarStat_vom " . $dat . " " . $sem . "\n;".
         "set SolarStat_Gesamt_kWh " . $solar_gesamt_n . " " . $sem ."\n;".
         "set SolarStat_GesDTU_kWh " . $openDTU . " " . $sem."\n".
         "set SolarStat_Preis " . $x_solar_gesamt_preis . " " . $sem."\n".
         "set SolarStat_Jahr_kWh " . $solar_jahr_n . " " . $sem."\n".
         "set SolarStat_Monat_kWh " . $solar_monat_n . " " . $sem."\n".
         "set SolarStat_Erz_Vortag_Wh " . $heute_Wh . " " . $sem ;
      fhem("set telebotdevice send \@\@btel $zwsp1");;

Kann mir jemand schreiben, wie zB $zwsp1 ändern muss, damit am Zeilenende das Semikolon steht?
Dann könnte ich recht einfach die Zahlen wieder korrigieren.

Titel: Aw: Wie sendet man per Telegram ein ';' im Text?
Beitrag von: Guybrush am 08 Juni 2025, 14:25:39
$zwsp1.= ';';
Titel: Aw: Wie sendet man per Telegram ein ';' im Text?
Beitrag von: boeho am 08 Juni 2025, 17:21:06
es war total missverständlich von mir geschrieben. Ich meinte es so, dass das Semikolon hinter jeder Zeile steht.
Es soll in FHEM ausgeführt werden.
Zitatset SolarStat_vom 07-06-2025 21:27:30;
set SolarStat_Gesamt_kWh 4366.960;
set SolarStat_GesDTU_kWh 1654.730;
Wenn ich es so einfüge, wie ich geschrieben habe wird nur die 1. Zeile ausgeführt und kein ';' angehangen.
Bin ratlos.
Titel: Aw: Wie sendet man per Telegram ein ';' im Text?
Beitrag von: passibe am 08 Juni 2025, 18:05:29
Ich meine bei Telegram kann man das einfach urlencoden, also %3B

Aber bin mir nicht ganz sicher, ob dieses telebotdevice das unterstützt.
Titel: Aw: Wie sendet man per Telegram ein ';' im Text?
Beitrag von: Otto123 am 08 Juni 2025, 18:34:06
Hallo boeho,

schau mal bitte was hier in der ersten Zeile steht: https://forum.fhem.de/index.php?board=8.0  :o

Deine Anwendungsidee verstehe ich komplett nicht, deine eigentliche Frage will ich gern beantworten:
Du hast zweimal so geschrieben  "\n;" damit entsteht ein semikolon am Zeilenanfang der nächsten Zeile. Wenn Du auch dort einfach  "\n" schreibst, entsteht der String den Du Dir vorstellst, ob man damit irgendetwas machen kann, kann ich nicht beurteilen.
Verschiebe dieses Thema bitte nach Anfänger.

Und suche nach der Ursache, warum deine FHEM Installation abstürzt.
Im Zweifelsfall initialisiere doch einfach beim FHEM Start deine Readings aus den aktuellen Werten der Solaranlage?

Um Dir wirklich helfen zu können, beschreibe doch bitte Deinen gesamten Workflow.

Gruß Otto
Titel: Aw: Wie sendet man per Telegram ein ';' im Text?
Beitrag von: Guybrush am 08 Juni 2025, 19:13:33
Zitat von: boeho am 08 Juni 2025, 17:21:06es war total missverständlich von mir geschrieben. Ich meinte es so, dass das Semikolon hinter jeder Zeile steht.

wieso packst du nicht jede zeile in einen eigenen fhem() call? es gibt keinen grund erst umständlich einen string zusammenzubauen, zumal das dann auch noch unübersichtlicher ist.

fhem('set SolarStat_vom '.$dat);
fhem('set SolarStat_Gesamt_kWh '.$solar_gesamt_n);
fhem('set SolarStat_GesDTU_kWh '.$openDTU);
fhem('set SolarStat_Preis '.$x_solar_gesamt_preis);
fhem('set SolarStat_Jahr_kWh '.$solar_jahr_n);
fhem('set SolarStat_Monat_kWh '.$solar_monat_n);
fhem('set SolarStat_Erz_Vortag_Wh " . $heute_Wh);
Titel: Aw: Wie sendet man per Telegram ein ';' im Text?
Beitrag von: Otto123 am 08 Juni 2025, 20:05:56
er will doch seinen String per Telegramm versenden und nicht ausführen?

Wenn der String ausgeführt werden sollte, brauchte es zwischen den set Befehlen keinen Zeilenumbruch!
Titel: Aw: Wie sendet man per Telegram ein ';' im Text?
Beitrag von: boeho am 08 Juni 2025, 20:20:54
Ja, es geht nur um den ausführbaren Code. Die \n sind nur für die Lesbarkeit in Telegram. Das ganze ist hoffentlich auch nur ein workaround bis ich FHEM stabil habe.
Danke allen.
Titel: Aw: Wie sendet man per Telegram ein ';' im Text?
Beitrag von: Otto123 am 08 Juni 2025, 21:12:26
Und Du verwendest Telegramm als (debug)Logdatei ? Geht's noch komplizierter?  :o  :o  :o
https://wiki.fhem.de/wiki/DevelopmentModuleAPI#Logging
Titel: Aw: Wie sendet man per Telegram ein ';' im Text?
Beitrag von: Guybrush am 08 Juni 2025, 21:26:34
Zitat von: boeho am 08 Juni 2025, 20:20:54Ja, es geht nur um den ausführbaren Code. Die \n sind nur für die Lesbarkeit in Telegram. Das ganze ist hoffentlich auch nur ein workaround bis ich FHEM stabil habe.
Danke allen.


das macht irgendwie keinen sinn was du machst. stell fhem auf verbose 5 und guck dir die letzten log einträge an wenn fhem wieder abstürzt