[gelöst]Anstatt cmd_.* cmdState verwenden plus Leerzeichen als Kommando

Begonnen von schwatter, 03 Februar 2019, 10:03:47

Vorheriges Thema - Nächstes Thema

schwatter

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.

schwatter

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

Damian

Warum liest du das Attribut aus?
Womöglich gibt es eine einfachere Lösung. Dazu musst du aber deine Geschichte ganz erzählen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

schwatter

#3
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,...)

schwatter

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