Hauptmenü

DOIF: Toggle mit vCCU Channel

Begonnen von traxanos, 10 August 2015, 23:09:20

Vorheriges Thema - Nächstes Thema

traxanos

Hi

irgend etwas mach ich falsch:

Internals:
   DEF        ([vCCU_Wohnzimmer.TV.Toggle:trigLast] =~ 'short' and [?Wohnzimmer.AVR:state] eq 'off')
  (set Wohnzimmer.PVR on, set Wohnzimmer.AVR scene scene2)

DOELSEIF

([vCCU_Wohnzimmer.TV.Toggle:trigLast] =~ 'short' and [?Wohnzimmer.AVR:state] eq 'on')
  (set Wohnzimmer.AVR off, set Wohnzimmer.PVR off)
   NAME       Programm.Wohnzimmer.TV.Toggle
   NR         230
   NTFY_ORDER 50-Programm.Wohnzimmer.TVToggle
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2015-08-10 22:54:17   cmd_event       vCCU_Wohnzimmer.TV.Toggle
     2015-08-10 22:54:17   cmd_nr          1
     2015-08-10 22:54:17   e_vCCU_Wohnzimmer.TV.Toggle_trigLast Wohnzimmer.Fernbedienung_Btn_02:short
     2015-08-10 22:54:17   state           cmd_1
   Condition:
     0          ReadingValDoIf('vCCU_Wohnzimmer.TV.Toggle','trigLast','') =~ 'short' and ReadingValDoIf('Wohnzimmer.AVR','state','') eq 'off'
     1          ReadingValDoIf('vCCU_Wohnzimmer.TV.Toggle','trigLast','') =~ 'short' and ReadingValDoIf('Wohnzimmer.AVR','state','') eq 'on'
   Devices:
     0           vCCU_Wohnzimmer.TV.Toggle
     1           vCCU_Wohnzimmer.TV.Toggle
     all         vCCU_Wohnzimmer.TV.Toggle
   Do:
     0          set Wohnzimmer.PVR on, set Wohnzimmer.AVR scene scene2
     1          set Wohnzimmer.AVR off, set Wohnzimmer.PVR off
   Helper:
     last_timer 0
     sleeptimer -1
   Internals:
   Itimer:
   Readings:
     0           vCCU_Wohnzimmer.TV.Toggle:trigLast
     1           vCCU_Wohnzimmer.TV.Toggle:trigLast
     all         vCCU_Wohnzimmer.TV.Toggle:trigLast
   State:
   Timerfunc:
   Trigger:
Attributes:
   icon       im_code
   room       Programme


Ich möchte ein Toggle einrichten, um den TV ein/auszuschalten. Aus irgend eine Grund drücke ich die Taste, alles geht aus, aber sofort im Anschluss geht alles wieder an. Sprich erst wird cmd_2 ausgeführt und dann direkt cmd_1. Sieht irgend wer den Fehler? Vorallem es verhält sich teilweise unterschiedlich. Mal geht nur der PVR aus mal nur der AVR aus und umgekehrt. Ich blicke es nicht. Hab schon versucht mit wait 1 das Problem in den Griff zu bekommen, aber das hilft auch nicht so richtig. Ein ähnlichen Fehler hatte ich auch schon mit einem Pushbutton in Kombination mit einer Schaltsteckdose.
Im Einsatz:
FHEM: Latest auf RPi2
HM: vCCU, HMLAN, HMUSB2, HM-CC-RD-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-ES-PMWs1-Pl, HM-LC-Sw1PBU-FM, HM-PB-2-WM55-2, HM-RC-8, HM-BP-6-WM55
CUL: ESA2000, Intertechno

traxanos

Ich weis zwar nicht warum das nachfolgende Beispiel nun klappt aber es klappt :D

([vCCU_Wohnzimmer.TV.Toggle:trigLast] =~ 'short' and ([?Wohnzimmer.AVR:state] eq 'on' or [?Wohnzimmer.PVR:state] eq 'on'))
  (set Wohnzimmer.PVR off, set Wohnzimmer.AVR off)

DOELSEIF

([vCCU_Wohnzimmer.TV.Toggle:trigLast] =~ 'short' and [?Wohnzimmer.AVR:state] eq 'off' and [?Wohnzimmer.PVR:state] eq 'off')

  (set Wohnzimmer.PVR on, set Wohnzimmer.AVR scene scene2)


Vor allem scheint es damit zusammen zu hängen, dass bei einem "set Wohnzimmer.PVR off" der AVR per HDMI-CEC mit ausgeschaltet wird. Allerdings will mir nicht in den Kopf warum. Das trigLast Event wird ja nicht 2x ausgeführt und durch das ? bei den State-Conditions wird ebenfalls keine weiteres Event ausgelöst. Und selbst das do=always was ich deaktiviert habe hatte zu keiner Verbesserung geführt. Alles sehr komisch.
Im Einsatz:
FHEM: Latest auf RPi2
HM: vCCU, HMLAN, HMUSB2, HM-CC-RD-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-ES-PMWs1-Pl, HM-LC-Sw1PBU-FM, HM-PB-2-WM55-2, HM-RC-8, HM-BP-6-WM55
CUL: ESA2000, Intertechno