Sonderzeichen in $EVENT automatisch quoten?

Begonnen von reibuehl, 19 Mai 2019, 12:58:27

Vorheriges Thema - Nächstes Thema

reibuehl

Ich verwende das Kommando {fhem("set TelegramMessenger message '$EVENT'")} um einige Events per Telegram an mein Handy zu schicken. Das funktioniert sehr gut, solange $EVENT keine Sonderzeichen enthält. Bei Events mit kryptischeren Fehlermeldungen, z.B. von den DBI oder DBD Perl Modulen wenn die DbLog Datenbank Ärger macht, schlägt das aber Fehl, weil Sonderzeichen wie ", ' und scheinbar auch ; wohl nicht korrekt übernommen sonder ausgewertet werden.

Ähnliches habe ich auch schon beim { Log 1, "<Text>" } gesehen. Wenn hier in <Text> ein ; enthalten ist, schlägt das Kommando fehl, weil ein ; wohl in diesem Fall als ;; escasped werden muss.

Gibt es eine Möglichkeit solche, vorher unbekannte Texte, korrekt zu quoten?
Reiner.

rudolfkoenig

Quoten haengt davon ab, wie man es einsetzt, ist deswegen mW. nicht allgemein moeglich.
Fuer ein dummy d setzt{ my $EVENT="\'\\";; fhem("set d '$EVENT'") }den Status von d auf ''\', da ist also kein Quoten notwendig.
Was fuer das Telegram API gequotet werden muss, entzieht sich meiner Kenntnis, aber ich tippe darauf, dass das zu tun die Aufgabe von dem Modul ist.