FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Tutti_Bomovski am 15 April 2024, 18:44:32

Titel: DOIF - Versand von Readings
Beitrag von: Tutti_Bomovski am 15 April 2024, 18:44:32
Hallo Zusammen,
ich nutze in einem DOIF für Unwetterwarnungen die Readings aus dem Modul DWD.

([DWD:a_count] eq "1") (set TeleBot send @#Wetterwarnungen
\n⚠<b> ACHTUNG! Warnung des Deutschen Wetterdienst für [DWD:a_0_areaDesc] </b>⚠\n\n
\n<b>[DWD:a_0_eventDesc]</b>\n
\n[DWD:a_0_headline]\n
\n[DWD:a_0_description]\n
\n[DWD:a_0_instruction]\n
\nvon: [DWD:a_0_onset]
\nbis: [DWD:a_0_expires])

Vom DWD hat sich nun wohl ein Semikolon im Reading "Instruction" eingenistet.
Dadurch wird wohl meine Meldung "abgeschnitten".

Wie kann ich dem Code beibringen, dass er ein Semikolon im Reading ignoriert?

Ich habe schon gesucht, aber leider nix gefunden.
Wahrscheinlich ganz einfach. Seid gnädig mit mir. Anfängerprobleme....

Wenn ich das Ganze direkt aus dem Telebot per sendmsg sende kommt kein Fehler.
Nur im DOIF...  ???

Danke und Gruß
Tutti
Titel: Aw: DOIF - Versand von Readings
Beitrag von: betateilchen am 15 April 2024, 19:26:54
Wenn Du das Problem nur im DOIF hast, warum stellst Du die Frage dann nicht im passenden Unterforum zu DOIF?

Den Button, um den Thread dorthin zu verschieben, findest Du unten links.
Titel: Aw: DOIF - Versand von Readings
Beitrag von: Damian am 15 April 2024, 20:55:56
Es wird ein Problem vom set-Befehl sein.

Du kannst es im DOIF-Perlmodus versuchen:

DOIF {if ([DWD:a_count] eq "1") {fhem_set("TeleBot send @#Wetterwarnungen ⚠<b> ACHTUNG! Warnung des Deutschen Wetterdienst für ".[?DWD:a_0_areaDesc]."</b>⚠" ...)}}
Titel: Aw: DOIF - Versand von Readings
Beitrag von: Tutti_Bomovski am 16 April 2024, 07:29:12
Zitat von: Damian am 15 April 2024, 20:55:56Es wird ein Problem vom set-Befehl sein.

Du kannst es im DOIF-Perlmodus versuchen:

DOIF {if ([DWD:a_count] eq "1") {fhem_set("TeleBot send @#Wetterwarnungen ⚠<b> ACHTUNG! Warnung des Deutschen Wetterdienst für ".[?DWD:a_0_areaDesc]."</b>⚠" ...)}}

Hallo Damian,
danke für deine Rückmeldung.
Ich habe den Code wie folgt angepasst.

{if ([DWD:a_count] eq "1") {fhem_set("TeleBot send @#Wetterwarnungen ⚠<b> ACHTUNG! Warnung des Deutschen Wetterdienst für ".[?DWD:a_0_areaDesc]."</b>⚠\n\n \n<b>".[?DWD:a_0_eventDesc]."</b>\n \n".[?DWD:a_0_headline]."\n
\n".[?DWD:a_0_description]."\n
\n".[?DWD:a_0_instruction]."\n
\nvon: ".[?DWD:a_0_onset]."
\nbis: ".[?DWD:a_0_expires]."")}}

Das hat geklappt und die Nachricht geht wie gewünscht raus.

Vielen, vielen Dank für deine Hilfe.
Titel: Aw: DOIF - Versand von Readings
Beitrag von: Frank_Huber am 16 April 2024, 07:31:15
Schätze es liegt an den Kommas. Mal doppelt klammern. 
Titel: Aw: DOIF - Versand von Readings
Beitrag von: Damian am 16 April 2024, 07:42:44
Zitat von: Tutti_Bomovski am 16 April 2024, 07:29:12Ich habe den Code wie folgt angepasst.

([DWD:a_count] eq "1") (set TeleBot send @#Wetterwarnungen
\n⚠<b> ACHTUNG! Warnung des Deutschen Wetterdienst für [?DWD:a_0_areaDesc] </b>⚠\n\n
\n<b>[?DWD:a_0_eventDesc]</b>\n
\n[?DWD:a_0_headline]\n
\n[?DWD:a_0_description]\n
\n[?DWD:a_0_instruction]\n
\nvon: [?DWD:a_0_onset]
\nbis: [?DWD:a_0_expires])

Leider gleiches Problem wie vorher....

Du hast aber immer noch den set-Befehl benutzt, daher kann sich nichts verbessern.
Titel: Aw: DOIF - Versand von Readings
Beitrag von: Tutti_Bomovski am 16 April 2024, 11:38:22
Zitat von: Damian am 16 April 2024, 07:42:44
Zitat von: Tutti_Bomovski am 16 April 2024, 07:29:12Ich habe den Code wie folgt angepasst.

([DWD:a_count] eq "1") (set TeleBot send @#Wetterwarnungen
\n⚠<b> ACHTUNG! Warnung des Deutschen Wetterdienst für [?DWD:a_0_areaDesc] </b>⚠\n\n
\n<b>[?DWD:a_0_eventDesc]</b>\n
\n[?DWD:a_0_headline]\n
\n[?DWD:a_0_description]\n
\n[?DWD:a_0_instruction]\n
\nvon: [?DWD:a_0_onset]
\nbis: [?DWD:a_0_expires])

Leider gleiches Problem wie vorher....

Du hast aber immer noch den set-Befehl benutzt, daher kann sich nichts verbessern.

Hallo Damian,
nee passt jetzt... Hatte vorher noch eine kleine Leseschwäche.

Mit dem richtigen Code von dir, den man dann auch richtig übernimmt hat es geklappt.

{if ([DWD:a_count] eq "1") {fhem_set("TeleBot send @#Wetterwarnungen ⚠<b> ACHTUNG! Warnung des Deutschen Wetterdienst für ".[?DWD:a_0_areaDesc]."</b>⚠\n\n \n<b>".[?DWD:a_0_eventDesc]."</b>\n \n".[?DWD:a_0_headline]."\n
\n".[?DWD:a_0_description]."\n
\n".[?DWD:a_0_instruction]."\n
\nvon: ".[?DWD:a_0_onset]."
\nbis: ".[?DWD:a_0_expires]."")}}

Meine erste Antwort habe ich dann noch mal überarbeitet! :-)