RG Befehlsfolge

Begonnen von Spartacus, 30 Juli 2016, 16:21:33

Vorheriges Thema - Nächstes Thema

Spartacus

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
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

justme1968

was steht im log?

lass mal die äußeren Runden klammern weg.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Spartacus

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.
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Ellert

Müsste das 3. ' nicht die ersten beiden Befehle umschliessen und nicht nur den Ersten?

Spartacus

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.
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Ellert

Das kommt weil 'S3' die selben Anführungszeichen benutzt. Du müsstest sie wahrscheinlich maskieren.

justme1968

ja. um S3 die doppelten anführungszeichen verwenden.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Spartacus

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
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Spartacus

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
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

justme1968

einfach eine web seite suchen die das url encode macht. z.b. hier: 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 schauen und die drei zeichen ersetzen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Spartacus

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
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Spartacus

Hallo,
was habe ich denn hier falsch verstanden? Oder geht das einfach nicht in diesem Zusammenhang!
Danke,
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

justme1968

doch. prinzipiell sollte das gehen.

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

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Spartacus

Hallo Andre,
danke für Dein Feedback!
Bis bald,
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R