Hallo,
ich habe einen Taster per HM-wired angebunden und die Steckdose des TV per Arduino (firmata) und relais.
Funktioniert so weit auch alles gut.
Jetzt möchte ich aber, daß der Taster unterschiedlich reagiert, je nachdem, ob der TV an oder aus ist.
Ich habe dazu das ursprüngliche DOIF, das nur auf den Taster reagierte, erweitert und folgendes listing:
DEF (([eingang_taster_mitte_rechts eq "closed") and ([wz_tv eq "off"))
((set ez_led_balken off,set ez_led_nischen off,set kueche_led_insel off, set wz_led_wand off, set wz_panel_couch off, set wz_panel_ofen off, set kueche_sockel_abwasch off, set kueche_insel_sockel off, set wz_led_tv off, set ez_led_balken off,set ez_led_nischen off,set kueche_led_insel off, set wz_led_wand off, set wz_panel_couch off, set wz_panel_ofen off, set kueche_sockel_abwasch off, set kueche_insel_sockel off, set wz_led_tv off)) DOELSEIF (([eingang_taster_mitte_rechts eq "closed") and ([wz_tv eq "on"))
((set ez_led_balken off,set ez_led_nischen off,set kueche_led_insel off, set wz_panel_couch off, set wz_panel_ofen off, set kueche_sockel_abwasch off, set kueche_insel_sockel off, set wz_led_tv off, set ez_led_balken off,set ez_led_nischen off,set kueche_led_insel off, set wz_led_wand off, set wz_panel_couch off, set wz_panel_ofen off, set kueche_sockel_abwasch off, set kueche_insel_sockel off))
NAME di_eingang_taster_mitte_rechts
NR 169
NTFY_ORDER 50-di_eingang_taster_mitte_rechts
STATE cmd_1
TYPE DOIF
Readings:
2015-12-01 17 Device eingang_taster_mitte_rechts
2015-12-01 17 cmd_event eingang_taster_mitte_rechts
2015-12-01 17 cmd_nr 1
2015-12-01 17 e_eingang_taster_mitte_rechts_sensor open
2015-12-01 17 error set ez_led_balken off,set ez_led_nischen off,set kueche_led_insel off, set wz_led_wand off, set wz_panel_couch off, set wz_panel_ofen off, set kueche_sockel_abwasch off, set kueche_insel_sockel off, set wz_led_tv off, set ez_led_balken off,set ez_led_nischen off,set kueche_led_insel off, set wz_led_wand off, set wz_panel_couch off, set wz_panel_ofen off, set kueche_sockel_abwasch off, set kueche_insel_sockel off, set wz_led_tv off: unknown command (off,set): choose one of on off dim dimup dimdown HSV RGB sync pair unpair
2015-12-01 17 state cmd_1
Condition:
0 (ReadingValDoIf('eingang_taster_mitte_rechts','sensor','') eq "closed") and (ReadingValDoIf('wz_tv','value','') eq "off")
1 (ReadingValDoIf('eingang_taster_mitte_rechts','sensor','') eq "closed") and (ReadingValDoIf('wz_tv','value','') eq "on")
Devices:
0 eingang_taster_mitte_rechts wz_tv
1 eingang_taster_mitte_rechts wz_tv
all eingang_taster_mitte_rechts wz_tv
Do:
0:
0 (set ez_led_balken off,set ez_led_nischen off,set kueche_led_insel off, set wz_led_wand off, set wz_panel_couch off, set wz_panel_ofen off, set kueche_sockel_abwasch off, set kueche_insel_sockel off, set wz_led_tv off, set ez_led_balken off,set ez_led_nischen off,set kueche_led_insel off, set wz_led_wand off, set wz_panel_couch off, set wz_panel_ofen off, set kueche_sockel_abwasch off, set kueche_insel_sockel off, set wz_led_tv off)
1:
0 (set ez_led_balken off,set ez_led_nischen off,set kueche_led_insel off, set wz_panel_couch off, set wz_panel_ofen off, set kueche_sockel_abwasch off, set kueche_insel_sockel off, set wz_led_tv off, set ez_led_balken off,set ez_led_nischen off,set kueche_led_insel off, set wz_led_wand off, set wz_panel_couch off, set wz_panel_ofen off, set kueche_sockel_abwasch off, set kueche_insel_sockel off)
2:
Helper:
globalinit 1
last_timer 0
sleeptimer -1
Internals:
Itimer:
Readings:
0 eingang_taster_mitte_rechts wz_tv
1 eingang_taster_mitte_rechts wz_tv
all eingang_taster_mitte_rechts wz_tv
State:
Timerfunc:
Trigger:
Attributes:
loglevel 5
room Beleuchtung,Eingang,HM485,Taster
Listing des Tasters:
Internals:
DEF 00011A53_02
FW_VERSION 3.01
IODev
MODEL HMW_Sen_SC_12_DR
NAME eingang_taster_mitte_rechts
NR 186
STATE sensor_open
TYPE HM485
chanNo 02
device hmwired_sensoren_1
Readings:
2015-12-01 17:22:17 sensor open
2015-12-01 17:22:17 state sensor_open
Attributes:
firmwareVersion 3.01
model HMW_Sen_SC_12_DR
room Eingang,HM485,Taster
serialNr MEQ0065496
subType sensor
und von wz_tv:
Internals:
DEF 34
IODev mega1
NAME wz_tv
NR 109
PIN 34
STATE off
TYPE FRM_OUT
Readings:
2015-11-27 17:13:14 state Initialized
2015-11-30 22:03:07 value off
Attributes:
IODev mega1
activeLow yes
restoreOnReconnect on
restoreOnStartup on
room Arduino,WZ
stateFormat value
Allerdings reagiert der Taster nun gar nicht mehr, egal, ob der TV an oder aus ist und im Log finde ich trotz loglevel 5 für das DOIF auch nichts:
015.12.01 17:22:16 5: hmwired_sensoren_1: HM485_ProcessChannelState: hmwId = 00011A53 Channel = 02 msgData = 69010000 actionType = frame
2015.12.01 17:22:16 5: Triggering hmwired_sensoren_1 (1 changes)
2015.12.01 17:22:16 5: Notify loop for hmwired_sensoren_1 ACK
2015.12.01 17:22:16 4: eingang_taster_mitte_rechts: HM485_ChannelDoUpdate
2015.12.01 17:22:16 5: eingang_taster_mitte_rechts: HM485_ChannelDoUpdate: valueKey = sensor value = closed Alter Wert = open
2015.12.01 17:22:16 4: eingang_taster_mitte_rechts: sensor -> closed
2015.12.01 17:22:16 5: Triggering eingang_taster_mitte_rechts (2 changes)
2015.12.01 17:22:16 5: Notify loop for eingang_taster_mitte_rechts sensor: closed
2015.12.01 17:22:16 5: hmwired: HM485_LAN_parseIncommingCommand: MsgId: 33 Cmd: 101
2015.12.01 17:22:16 4: hmwired: Event:HASH(0x5cc1a48)
2015.12.01 17:22:16 5: hmwired dispatch �e�����▒SAMEQ0065496
2015.12.01 17:22:16 5: hmwired: HM485_Parse: MsgId: 33
2015.12.01 17:22:16 5: hmwired: HM485_Parse: ProcessEvent
2015.12.01 17:22:16 5: hmwired: HM485_ProcessEvent: hmwId = 00011A53 msgData = 4101190003014D455130303635343936
2015.12.01 17:22:16 5: hmwired_sensoren_1: HM485_ProcessChannelState: hmwId = 00011A53 No channel
2015.12.01 17:22:16 5: Triggering hmwired_sensoren_1 (1 changes)
2015.12.01 17:22:16 5: Notify loop for hmwired_sensoren_1 ACK
2015.12.01 17:22:17 5: hmwired: HM485_LAN_parseIncommingCommand: MsgId: 34 Cmd: 101
2015.12.01 17:22:17 4: hmwired: Event:HASH(0x648c600)
2015.12.01 17:22:17 5: hmwired dispatch �"e<▒Si�
2015.12.01 17:22:17 5: hmwired: HM485_Parse: MsgId: 34
2015.12.01 17:22:17 5: hmwired: HM485_Parse: ProcessEvent
2015.12.01 17:22:17 5: hmwired: HM485_ProcessEvent: hmwId = 00011A53 msgData = 6901C800
2015.12.01 17:22:17 5: hmwired_sensoren_1: Device:convertFrameDataToValue: deviceKey = HMW_SEN_SC_12_DR valId = state value1 = 200
2015.12.01 17:22:17 5: HM485: HM485:Device:dataConversion: retVal = 200
2015.12.01 17:22:17 5: hmwired_sensoren_1: Device:convertFrameDataToValue: value2 = 200
2015.12.01 17:22:17 5: HM485: Device:valueToControl: valName = sensor = 200
2015.12.01 17:22:17 5: hmwired_sensoren_1: HM485_ProcessChannelState: hmwId = 00011A53 Channel = 02 msgData = 6901C800 actionType = frame
2015.12.01 17:22:17 5: Triggering hmwired_sensoren_1 (1 changes)
2015.12.01 17:22:17 5: Notify loop for hmwired_sensoren_1 ACK
2015.12.01 17:22:17 4: eingang_taster_mitte_rechts: HM485_ChannelDoUpdate
2015.12.01 17:22:17 5: eingang_taster_mitte_rechts: HM485_ChannelDoUpdate: valueKey = sensor value = open Alter Wert = closed
2015.12.01 17:22:17 4: eingang_taster_mitte_rechts: sensor -> open
2015.12.01 17:22:17 5: Triggering eingang_taster_mitte_rechts (2 changes)
2015.12.01 17:22:17 5: Notify loop for eingang_taster_mitte_rechts sensor: open
2015.12.01 17:22:17 5: hmwired: HM485_LAN_parseIncommingCommand: MsgId: 35 Cmd: 101
2015.12.01 17:22:17 4: hmwired: Event:HASH(0x6bd6c00)
2015.12.01 17:22:17 5: hmwired dispatch ������▒SAMEQ0065496
2015.12.01 17:22:17 5: hmwired: HM485_Parse: MsgId: 35
2015.12.01 17:22:17 5: hmwired: HM485_Parse: ProcessEvent
2015.12.01 17:22:17 5: hmwired: HM485_ProcessEvent: hmwId = 00011A53 msgData = 4101190003014D455130303635343936
2015.12.01 17:22:17 5: hmwired_sensoren_1: HM485_ProcessChannelState: hmwId = 00011A53 No channel
2015.12.01 17:22:17 5: Triggering hmwired_sensoren_1 (1 changes)
2015.12.01 17:22:17 5: Notify loop for hmwired_sensoren_1 ACK
Irgendwie stehe ich ziemlich auf dem Schlauch. Habe auch schon einige Kombinationen bei den Klammern versucht, Ergebnis immer das gleiche: keine Reaktion.
Für zweckdienliche Hinweise wäre ich dankbar - ach ja, ich habe versucht, sowohl wiki als auch commandref heranzuziehen, leider ohne für mich hilfreiches Ergebnis.
Vielen Dank im voraus!
Cheers,
Pula
Argh....
Wer lesen kann ist klar im vorteil...
Hab den error im Listing erst gesehen, als ich das Posting bereits abgeschickt habe.
So gehts, falls das mal jemanden interessieren sollte:
(([eingang_taster_mitte_rechts:sensor] eq "closed") and ([wz_tv:value] eq "off"))
(set ez_led_balken off,set ez_led_nischen off,set kueche_led_insel off, set wz_led_wand off, set wz_panel_couch off, set wz_panel_ofen off, set kueche_sockel_abwasch off, set kueche_insel_sockel off, set wz_led_tv off, set ez_led_balken off,set ez_led_nischen off,set kueche_led_insel off, set wz_led_wand off, set wz_panel_couch off, set wz_panel_ofen off, set kueche_sockel_abwasch off, set kueche_insel_sockel off, set wz_led_tv off) DOELSEIF (([eingang_taster_mitte_rechts:sensor] eq "closed") and ([wz_tv:value] eq "on"))
(set ez_led_balken off,set ez_led_nischen off,set kueche_led_insel off, set wz_panel_couch off, set wz_panel_ofen off, set kueche_sockel_abwasch off, set kueche_insel_sockel off, set wz_led_tv off, set ez_led_balken off,set ez_led_nischen off,set kueche_led_insel off, set wz_led_wand off, set wz_panel_couch off, set wz_panel_ofen off, set kueche_sockel_abwasch off, set kueche_insel_sockel off)