FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Tropaion am 23 April 2015, 20:47:40

Titel: Toggle Simulieren
Beitrag von: Tropaion am 23 April 2015, 20:47:40
Hallo Com,
ich möchte ein togglen simulieren, weil ich ein Gerät schalten will, welches nur on/off kann, ich aber mit einem Taster bedienen möchte.
Versucht habe ich es mit diesem Code:
fabian.ambilight.taster:Short.* {
if ({Value("fabian.ambilight")} eq "on") {
  fhem "set fabian.ambilight on"
} else {
  fhem "set fabian.ambilight off"
}
}


Das auslesen des aktuellen Zustandes funktioniert leider nicht richtig. Ich habe zwar in der CommandRef nachgesehen, verstehe es aber nicht ganz.
Kann mir jemand sagen/erklären was ich falsch mache?

Mfg,
Tropaion
Titel: Antw:Toggle Simulieren
Beitrag von: Paul am 23 April 2015, 20:53:30
eq =, ne <>

Du willst bei on einschalten
Titel: Antw:Toggle Simulieren
Beitrag von: Tropaion am 23 April 2015, 20:59:41
fabian.ambilight.taster:Short.* {
if ({Value("fabian.ambilight")} eq "on") {
  fhem "set fabian.ambilight off"
} else {
  fhem "set fabian.ambilight on"
}
}


Ok, das war auch ein Fehler, habe es geändert.
Jedoch besteht immer noch das Problem das er denn aktuellen Statuswert nicht auslest.
Darum springt er jetzt ich immer in denn "else"-Bereich in will einschalten.
Titel: Antw:Toggle Simulieren
Beitrag von: Puschel74 am 23 April 2015, 21:02:06
Zitat von: Paul am 23 April 2015, 20:53:30
eq =, ne <>

Du willst bei on einschalten
Und weiter  ???

if ({Value("fabian.ambilight")} eq "on") {
  fhem "set fabian.ambilight on"

Wenn ambilight bereits on ist willst du es on schalten?
Ok aber was soll das bringen?
Ich würde on und off vertauschen beim set dann sollte es klappen - wenn im Logfile nicht noch zusätzliche Meldungen aufschlagen.

Zumal mich hier
if ({Value("fabian.ambilight")} eq "on") {
die { } um Value etwas verwirren.
Aber gut - jeder wie er will.

Edith: Bereits erledigt
Titel: Antw:Toggle Simulieren
Beitrag von: Tropaion am 23 April 2015, 21:04:39
Er kann denn Status einfach nicht auslesen. Das mit if habe ich übersehen.

Gerade im Logfile gesehen, der wirft was aus:

2015.04.23 20:58:24 1: PERL WARNING: Odd number of elements in anonymous hash at (eval 328) line 2.
2015.04.23 20:58:24 3: eval: {
if ({Value("fabian.ambilight")} eq "on") {
  fhem "set fabian.ambilight off"
} else {
  fhem "set fabian.ambilight on"
}
}
2015.04.23 20:58:24 3: fabian.ambilight RGB LW12 set on (0, 0, 100) 0
2015.04.23 20:58:24 3: fabian.ambilight set HSV 0, 0, 100 with ramp: 0, flags:
Titel: Antw:Toggle Simulieren
Beitrag von: Puschel74 am 23 April 2015, 21:09:05
Sollte eigentlich alles in der Fehlermeldung stehen.
Versuch mal
if (Value("fabian.ambilight") eq "on") {
Titel: Antw:Toggle Simulieren
Beitrag von: Tropaion am 23 April 2015, 21:12:46
Hey super, danke funktioniert!

Ich dachte, da ja Value eine eigene Operation ist, das man sie in {} setzen muss.

Habe leider keine Perl-Erfahrung (nur C und PHP -.-) und bin noch am einlernen