FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: schwatter am 03 Februar 2019, 10:03:47

Titel: [gelöst]Anstatt cmd_.* cmdState verwenden plus Leerzeichen als Kommando
Beitrag von: schwatter am 03 Februar 2019, 10:03:47
Morgen,

ich schaue gerade nach einer Lösung um das passende cmd zu senden wenn cmdState gesetzt ist.
Dazu lese ich den cmdState extern ein und möchte einen anderen Befehl aus cmdState senden.
Nutze ich nur einfache Wörter, wie "an" und "aus" ist das kein Problem. Nutze ich aber 2 oder mehr, funktioniert das nicht.
Beispiel:

"cmdState": "Trockner arbeitet|Trockner steht|Trockner fertig"

Probiert habe ich das Leerzeichen durch "\s" oder "%20" zu ersetzen, ohne Erfolg.
Titel: Antw:Anstatt cmd_.* cmdState verwenden plus Leerzeichen als Kommando
Beitrag von: schwatter am 03 Februar 2019, 20:43:48
Ok ich sehe ich muss mir behelfen. Ist noch immer ein Internal-ding?
Wenn ich den cmdState ändere funktioniert es,

"cmdState": "Trockner&nbsparbeitet|Trockner&nbspsteht|Trockner&nbspfertig"

Dann lösche ich der Optik wegen "&nbsp" und füge es anschließend wieder hinzu. Außer jemand
hat noch einen Tip  :D
Titel: Antw:Anstatt cmd_.* cmdState verwenden plus Leerzeichen als Kommando
Beitrag von: Damian am 03 Februar 2019, 20:45:43
Warum liest du das Attribut aus?
Womöglich gibt es eine einfachere Lösung. Dazu musst du aber deine Geschichte ganz erzählen.
Titel: Antw:Anstatt cmd_.* cmdState verwenden plus Leerzeichen als Kommando
Beitrag von: schwatter am 03 Februar 2019, 20:59:22
Ich lese die Attribute, in diesem Fall cmdState per Jsonlist2 in Python ein, um eine Liste zu generieren. Fhem aber akzeptiert von Haus aus
das Leerzeichen nicht, wenn ich den cmdState wie im ersten Post setze. Wusste ich vorher nicht, scheint aber so zu sein. Daher ist es wohl
kein DOIF-Problem wie ich jetzt meine zu erkennen.

edit:

wenn kein cmdState gesetzt ist, lese ich PossibleSets ein um die Liste der cmd_.*Kommandos dynamisch zu generieren. (cmd_1,cmd_2,...)
Titel: Antw:Anstatt cmd_.* cmdState verwenden plus Leerzeichen als Kommando
Beitrag von: schwatter am 04 Februar 2019, 22:32:56
Ok, um Leerzeichen in dem Fall mache ich erstmal einen großen Bogen  ;D
Da bleibe ich bei Platzhaltern und nutze es lieber so,

"cmdState": "Trockner_arbeitet|Trockner_steht|Trockner_fertig"

Dann ist der String....wie er eben is, fix und foxy  :D