Wie sendet man per Telegram ein ';' im Text?

Begonnen von boeho, 08 Juni 2025, 13:10:21

Vorheriges Thema - Nächstes Thema

boeho

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.


Guybrush


boeho

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.

passibe

Ich meine bei Telegram kann man das einfach urlencoden, also %3B

Aber bin mir nicht ganz sicher, ob dieses telebotdevice das unterstützt.

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Guybrush

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);

Otto123

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!
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

boeho

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.

Otto123

Und Du verwendest Telegramm als (debug)Logdatei ? Geht's noch komplizierter?  :o  :o  :o
https://wiki.fhem.de/wiki/DevelopmentModuleAPI#Logging
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Guybrush

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