FHEM Forum

FHEM => Frontends => readingsGroup / readingsHistory => Thema gestartet von: Spartacus am 30 Juli 2016, 16:21:33

Titel: RG Befehlsfolge
Beitrag von: Spartacus am 30 Juli 2016, 16:21:33
Hallo,
versuche in einer RG zwei Befehle mit einem Button auszuführen, aber ich habe offenbar einen Fehler in dem Code. Finde diesen aber nicht. Die Buttons "Ein", bzw."Aus" lassen sich nicht anklicken:
attr commands {'Ein' => '(set $DEVICE createStereoPair OG.br.SON.ZP_S3';{Init ($DEVICE, 'S3')}), 'Aus' => 'set $DEVICE SeparateStereoPair'}

wenn ich aber den 2.ten Teil lösche, und den Code wie folgt eingebe
attr commands  {'Ein' => 'set $DEVICE createStereoPair KG.sr.SON.ZP_S3',  'Aus' => 'set $DEVICE SeparateStereoPair'}
lassen sich "Ein" und "Aus" wie gewünscht bedienen.

Wie kann ich es denn schaffen, dass beim Drücken von "Ein" auch die "Init Routine" abgearbeitet wird?

Danke und Gruß,
Spartacus
Titel: Antw:RG Befehlsfolge
Beitrag von: justme1968 am 30 Juli 2016, 17:18:38
was steht im log?

lass mal die äußeren Runden klammern weg.
Titel: Antw:RG Befehlsfolge
Beitrag von: Spartacus am 31 Juli 2016, 15:50:58
Hallo,
danke für die Antwort.
Habe mal die Klammern weggelassen! Bring aber nichts. fhem meint, es gäbe einen Syntaxerror:
2016.07.31 15:49:31 2: syntax error at (eval 291) line 1, near "; {"

Ich bin mir sicher, dass das mal funktioniert hat, aber irgendwie will das nicht mehr!

Christian.
Titel: Antw:RG Befehlsfolge
Beitrag von: Ellert am 31 Juli 2016, 17:48:39
Müsste das 3. ' nicht die ersten beiden Befehle umschliessen und nicht nur den Ersten?
Titel: Antw:RG Befehlsfolge
Beitrag von: Spartacus am 31 Juli 2016, 19:52:21
Hallo Ellert,
nein, das klappt auch nicht! Demnach müsse der Ausdruck dann so aussehen:
attr commands {'Ein' => '(set $DEVICE createStereoPair OG.br.SON.ZP_S3;{Init ($DEVICE, 'S3')})', 'Aus' => 'set $DEVICE SeparateStereoPair'}

Doch dann kommt diese Fehlermeldung:
2016.07.31 19:50:21 2: Bad name after S3' at (eval 440) line 1.

Entweder bin ich zu blöd, oder ich sehe den Wald vor Bäumen nicht!

Christian.
Titel: Antw:RG Befehlsfolge
Beitrag von: Ellert am 31 Juli 2016, 21:30:35
Das kommt weil 'S3' die selben Anführungszeichen benutzt. Du müsstest sie wahrscheinlich maskieren.
Titel: Antw:RG Befehlsfolge
Beitrag von: justme1968 am 01 August 2016, 09:53:54
ja. um S3 die doppelten anführungszeichen verwenden.

gruss
  andre
Titel: Antw:RG Befehlsfolge
Beitrag von: Spartacus am 01 August 2016, 19:01:28
Moin zusammen,
ja, vielen Dank für Eure Unterstützung, aber so richtig klappt das immer noch nicht.

commands sieht nun so aus:
{'Ein' => 'set $DEVICE createStereoPair OG.br.SON.ZP_S3;{Init ($DEVICE, "S3")}', 'Aus' => 'set $DEVICE SeparateStereoPair'}

Der Syntax Error ist nun weg. Der "Aus" Befehl wird ausgeführt und taucht auch im Log auf. Aber ein Klick auf "Ein" bewirkt rein gar nix. Nicht einmal ein Eintrag im Log bei Verbose 5.
Auch wenn ich die äußere Klammer setzte {'Ein' => '(set.... ändert sich nichts.

Der Klick auf "Ein" wird ignoriert.
Christian
Titel: Antw:RG Befehlsfolge
Beitrag von: justme1968 am 01 August 2016, 19:22:39
sorry. ich habe geschlafen...

du musst alles was in einer url nicht erlaubt ist url encoden. dazu gehören hier das ; und die { }

die fehler solltest du auf der javascript console im browser sehen.

mir ist noch keine einfache und rückwärts kompatible methode eingefallen wie man das url encode automatisch im modul machen kann.

gruss
  andre
Titel: Antw:RG Befehlsfolge
Beitrag von: Spartacus am 01 August 2016, 20:16:51
Hi Andre,
ok. Im Prinzip verstehe ich Deine Aussage, aber wie setzt man das jetzt um? Sorry, aber das übersteigt noch meine Fähigkeiten... Gibt es im Wiki Beispiele, die ich mir angucken kann?
Christian
Titel: Antw:RG Befehlsfolge
Beitrag von: justme1968 am 01 August 2016, 20:24:20
einfach eine web seite suchen die das url encode macht. z.b. hier: http://meyerweb.com/eric/tools/dencoder/ (http://meyerweb.com/eric/tools/dencoder/), den text eingeben und auf encode klicken. du musst nur drauf achten das das $ nicht mit encoded wird.

du kannst auch hier: https://de.wikipedia.org/wiki/URL-Encoding#Relevante_ASCII-Zeichen_in_Prozentdarstellung (https://de.wikipedia.org/wiki/URL-Encoding#Relevante_ASCII-Zeichen_in_Prozentdarstellung) schauen und die drei zeichen ersetzen.

gruss
  andre
Titel: Antw:RG Befehlsfolge
Beitrag von: Spartacus am 01 August 2016, 20:49:41
Hallo Andre,
ich kriege es nicht hin!

; -> %3B
{ -> %7B
} -> %7D


Wenn ich die 3 Zeichen ersetzte, habe ich diesen Ausdruck:
{'Ein' => 'set $DEVICE createStereoPair KG.sr.SON.ZP_S3%3B%7BInit ($DEVICE, "S3")%7D', 'Aus' => 'set $DEVICE SeparateStereoPair'}

Im Log kommt dann der Fehler:
Loading device description failed with error: 400 URL must be absolute at....

Irgendwie habe ich es doch noch nicht kappiert!
Christian
Titel: Antw:RG Befehlsfolge
Beitrag von: Spartacus am 04 August 2016, 14:09:18
Hallo,
was habe ich denn hier falsch verstanden? Oder geht das einfach nicht in diesem Zusammenhang!
Danke,
Christian
Titel: Antw:RG Befehlsfolge
Beitrag von: justme1968 am 04 August 2016, 14:19:47
doch. prinzipiell sollte das gehen.

ich schaue es mir noch mal an sobald ich dazu komme.

gruss
  andre
Titel: Antw:RG Befehlsfolge
Beitrag von: Spartacus am 05 August 2016, 08:42:56
Hallo Andre,
danke für Dein Feedback!
Bis bald,
Christian