98_MSwitch - Support

Begonnen von Byte09, 25 März 2018, 12:19:58

Vorheriges Thema - Nächstes Thema

ToKa

Hallo Byte09,

Das mit den IDs scheint jetzt zu funktionieren, aber $we bzw !$we scheinen nicht richtig berücksichtigt zu werden. Zumindest wurde die Heizung zur Uhrzeit am Wochenende eingeschaltet.

Beste Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Byte09

Zitat von: ToKa am 14 Januar 2019, 20:38:36
Hallo Byte09,

Das mit den IDs scheint jetzt zu funktionieren, aber $we bzw !$we scheinen nicht richtig berücksichtigt zu werden. Zumindest wurde die Heizung zur Uhrzeit am Wochenende eingeschaltet.

Beste Grüße
Torsten

hi torsten,

ich habe mir das gerade angeschaut und getestet. Ich kann da keinen Fehler feststellen.
geh doch bitte im Device mal auf 'get active_timer show'. damit bekommst du alle gesetzten Schaltzeiten des Tages angezeigt. Und gib mir doch bitte nochmal die einträge dii du in "execute 'cmd1' at :" und "execute 'cmd1´2' at :" hast . Diewaren im von dir oben geposteten Config noch Fehlerhaft bzgl. der ID. ( oder die "support_info")

gruss Byte09




ToKa

#602
Hallo Byte,

aktuell sehe ich den Wald vor lauter Bäumen nicht mehr. Ich habe den Eindruck, dass nur noch an den at - Zeiten etwas passiert und gar nicht mehr auf die An-/Abwesenheit der Bewohner reagiert wird.

Nachfolgend die gewünschten Daten:
Modulversion: 2.09
Datenstruktur: V2.00

----- Devicename -----
ZS_zs_AW_Bewohner_MSw_01

----- Attribute -----
Attribut MSwitch_Ignore_Types: notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
Attribut icon: people_sensor
Attribut MSwitch_Include_MSwitchcmds: 0
Attribut MSwitch_Help: 1
Attribut MSwitch_Include_Devicecmds: 1
Attribut MSwitch_Include_Webcmds: 0
Attribut group: MSwitch
Attribut MSwitch_Expert: 1
Attribut MSwitch_Delete_Delays: 1
Attribut MSwitch_Inforoom: IT-OC->MSwitch
Attribut MSwitch_Mode: Full
Attribut room: IT-OC->MSwitch,Zentrale Steuerung
Attribut MSwitch_Extensions: 0
Attribut MSwitch_Lock_Quickedit: 1
Attribut alias: Anwesenheitsabhängige Gerätesteuerung
Attribut MSwitch_Debug: 1

----- Trigger -----
Trigger device:  ZS_zs_AW_Bewohner
Trigger time: on off ononly[06:00|!$we|ID1][08:00|$we|ID1][18:30|!$we|ID2][19:15|$we|ID2] offonly[00:30|!$we|ID1][01:30|$we|ID1][21:00|1234567|ID2] onoffonly
Trigger condition:
Trigger Device Global Whitelist: undef

----- Trigger Details -----
Trigger cmd1: state:home
Trigger cmd2: state:absent
Trigger cmd3: no_trigger
Trigger cmd4: no_trigger

----- Device Actions -----

Device: E1_wz_NW_FritzBox7390-AbsCmd1
cmd1: wlan on
cmd2: wlan off
cmd1 condition: [05:59-01:31] AND ([ZS_zs_CAL_Urlaub:state] eq "none" OR [ZS_zs_CAL_Urlaub:state] eq "atHome")
cmd2 condition:
cmd1 delay: 00:00:30
cmd2 delay: 00:00:00
repeats: 0
repeats delay: 0
priority: 1
id: 1
comment:
cmd1 exit: 0
cmd2 exit: 0

Device: E3_hk_THKV_Heizkoerper_Fenster-AbsCmd1
cmd1: tmHeating
cmd2: tmEnergySaveHeating
cmd1 condition: [18:15-20:45] AND [ZS_zs_AW_Bewohner:state] eq "home"
cmd2 condition: [ZS_zs_AW_X6200W:presence] eq "absent"
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats: 0
repeats delay: 0
priority: 2
id: 2
comment:
cmd1 exit: 0
cmd2 exit: 0


#V 2.09
#VS V2.00
#S EVTPART3 -> 18:30
#S .Trigger_on -> state:home
#S last_cmd -> 2
#S Trigger_log -> off
#S .Trigger_time -> on~off~ononly[06#[dp]00|!$we|ID1][08#[dp]00|$we|ID1][18#[dp]30|!$we|ID2][19#[dp]15|$we|ID2]~offonly[00#[dp]30|!$we|ID1][01#[dp]30|$we|ID1][21#[dp]00|1234567|ID2]~onoffonly
#S .First_init -> done
#S last_event -> lastActivityByDev:rr_Lutz
#S Trigger_device -> ZS_zs_AW_Bewohner
#S state -> on
#S EVTFULL -> ZS_zs_AW_Bewohner_MSw_01:execute_timer_P6:18:30
#S EVENT -> ZS_zs_AW_Bewohner_MSw_01:execute_timer_P6:18:30
#S .Device_Affected -> E1_wz_NW_FritzBox7390-AbsCmd1,E3_hk_THKV_Heizkoerper_Fenster-AbsCmd1
#S .Device_Events -> state:absent state:home no_trigger
#S .Trigger_cmd_on -> no_trigger
#S .Trigger_condition ->
#S .Trigger_cmd_off -> no_trigger
#S .Trigger_off -> state:absent
#S last_exec_cmd -> set E3_hk_THKV_Heizkoerper_Fenster tmHeating
#S EVTPART1 -> ZS_zs_AW_Bewohner_MSw_01
#S .sortby -> priority
#S .Device_Affected_Details -> E1_wz_NW_FritzBox7390-AbsCmd1#[NF]wlan#[NF]wlan#[NF]on#[NF]off#[NF]delay2#[NF]delay1#[NF]00:00:30#[NF]00:00:00#[NF][05:59-01:31] AND ([ZS_zs_CAL_Urlaub:state] eq "none" OR [ZS_zs_CAL_Urlaub:state] eq "atHome")#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[ND]E3_hk_THKV_Heizkoerper_Fenster-AbsCmd1#[NF]tmHeating#[NF]tmEnergySaveHeating#[NF]#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF][18:15-20:45] AND [ZS_zs_AW_Bewohner:state] eq "home"#[NF][ZS_zs_AW_X6200W:presence] eq "absent"#[NF]0#[NF]0#[NF]2#[NF]2#[NF]#[NF]0#[NF]0#[NF]1
#S .V_Check -> V2.00
#S EVTPART2 -> execute_timer_P6
#A MSwitch_Ignore_Types -> notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
#A icon -> people_sensor
#A MSwitch_Include_MSwitchcmds -> 0
#A MSwitch_Help -> 1
#A MSwitch_Include_Devicecmds -> 1
#A MSwitch_Include_Webcmds -> 0
#A group -> MSwitch
#A MSwitch_Expert -> 1
#A MSwitch_Delete_Delays -> 1
#A MSwitch_Inforoom -> IT-OC->MSwitch
#A MSwitch_Mode -> Full
#A room -> IT-OC->MSwitch,Zentrale Steuerung
#A MSwitch_Extensions -> 0
#A MSwitch_Lock_Quickedit -> 1
#A alias -> Anwesenheitsabhängige Gerätesteuerung
#A MSwitch_Debug -> 1



EDIT: Habe gerade noch folgende Einträge im log gefunden:

2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value $testtimestroff in string ne at ./FHEM/98_MSwitch.pm line 5824.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value $testtimestroff in substitution (s///) at ./FHEM/98_MSwitch.pm line 5825.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value $testtimestroff in string ne at ./FHEM/98_MSwitch.pm line 5826.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/98_MSwitch.pm line 5827.
2019.01.15 20:52:36 1: PERL WARNING: Argument "" isn't numeric in multiplication (*) at ./FHEM/98_MSwitch.pm line 5827.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/98_MSwitch.pm line 5828.
2019.01.15 20:52:36 1: PERL WARNING: substr outside of string at ./FHEM/98_MSwitch.pm line 5828.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value in multiplication (*) at ./FHEM/98_MSwitch.pm line 5828.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/98_MSwitch.pm line 5829.
2019.01.15 20:52:36 1: PERL WARNING: substr outside of string at ./FHEM/98_MSwitch.pm line 5829.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value in multiplication (*) at ./FHEM/98_MSwitch.pm line 5829.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value $testtimestron in string ne at ./FHEM/98_MSwitch.pm line 5838.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value $testtimestron in substitution (s///) at ./FHEM/98_MSwitch.pm line 5839.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value $testtimestron in string ne at ./FHEM/98_MSwitch.pm line 5841.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value $testtimestroff in string ne at ./FHEM/98_MSwitch.pm line 5841.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value $detailarray[8] in string ne at ./FHEM/98_MSwitch.pm line 5843.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/98_MSwitch.pm line 5848.
2019.01.15 20:52:36 1: PERL WARNING: Argument "" isn't numeric in multiplication (*) at ./FHEM/98_MSwitch.pm line 5848.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/98_MSwitch.pm line 5849.
2019.01.15 20:52:36 1: PERL WARNING: substr outside of string at ./FHEM/98_MSwitch.pm line 5849.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value in multiplication (*) at ./FHEM/98_MSwitch.pm line 5849.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value in substr at ./FHEM/98_MSwitch.pm line 5850.
2019.01.15 20:52:36 1: PERL WARNING: substr outside of string at ./FHEM/98_MSwitch.pm line 5850.
2019.01.15 20:52:36 1: PERL WARNING: Use of uninitialized value in multiplication (*) at ./FHEM/98_MSwitch.pm line 5850.



EDIT2: Habe mal deine debug=2 Funktion genutzt und es sieht so aus, als stimmt da etwas mit den IDs nicht, wenn das Gerät triggert:

Tue Jan 15 21:34:44 2019: -> ZS_zs_AW_Bewohner_MSw_01 MSwitch_Notif: Befehlsausfuehrung -> set ZS_zs_AW_Bewohner_MSw_01 on state:home 2871
Tue Jan 15 21:34:44 2019: -> ZS_zs_AW_Bewohner_MSw_01: Befehlsausführung -> set ZS_zs_AW_Bewohner_MSw_01 on state:home
Tue Jan 15 21:34:44 2019: -> ----------------------------------------
Tue Jan 15 21:34:44 2019: -> ZS_zs_AW_Bewohner_MSw_01: aufruf on/off -> on
Tue Jan 15 21:34:44 2019: -> ----------------------------------------
Tue Jan 15 21:34:44 2019: -> ZS_zs_AW_Bewohner_MSw_01:     device hat die ID E1_wz_NW_FritzBox7390-AbsCmd1 - 1
Tue Jan 15 21:34:44 2019: -> ZS_zs_AW_Bewohner_MSw_01:     zulaessige IDS - 0
Tue Jan 15 21:34:44 2019: -> ZS_zs_AW_Bewohner_MSw_01:  abbruch -> unzulaessige ID
Tue Jan 15 21:34:44 2019: -> ZS_zs_AW_Bewohner_MSw_01:     device hat die ID E3_hk_THKV_Heizkoerper_Fenster-AbsCmd1 - 2
Tue Jan 15 21:34:44 2019: -> ZS_zs_AW_Bewohner_MSw_01:     zulaessige IDS - 0
Tue Jan 15 21:34:44 2019: -> ZS_zs_AW_Bewohner_MSw_01:  abbruch -> unzulaessige ID
Tue Jan 15 21:34:44 2019: -> ZS_zs_AW_Bewohner_MSw_01: anzahl der auszufuehrenden befehle -> 0


Beste Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Byte09

#603
ich werde mir das heute abend noch anschauen , wird aber sicher später.

ich muss deine ganzen devices erstmal mit dummys nachbauen , um zu sehen woher die ganzen perlwarnings kommen.

was ich aber auf den ersten blick nicht verstehe ist , warum du feste zeitschalten definierst und dann in den conditions nochmal zeiträume definierst, in denen nur geschaltet werden soll. brauchst du doch nicht , wenn du selber die zeiten fest definierst.

[05:59-01:31] AND ([ZS_zs_CAL_Urlaub:state] eq "none" OR [ZS_zs_CAL_Urlaub:state] eq "atHome")

die angezeigten schaltzeiten sind ja erstmal ok ?!

gruss Byte09


ToKa

Hallo Byte,

der MSwitch sollte ja einerseits auf die Events und auf at reagieren.

06:00 Uhr --> WLAN anschalten, wenn kein Urlaub oder ich im Homeoffice bin([ZS_zs_CAL_Urlaub:state] eq "none" OR [ZS_zs_CAL_Urlaub:state] eq "atHome")
Bewohner kommen nach Hause --> WLAN anschalten, wenn innerhalb der Uhrzeit [05:59-01:31]
Wenn ich mal nach 01:30 nach Hause komme, muss das WLAN auch nicht mehr angehen

Vielleicht mache ich da was falsch oder zu kompliziert, wobei ich genau wegen der Möglichkeit Dinge zusammenzufassen so toll finde.

Beste Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Byte09

#605
Zitat von: ToKa am 15 Januar 2019, 21:53:28
Hallo Byte,

der MSwitch sollte ja einerseits auf die Events und auf at reagieren.

06:00 Uhr --> WLAN anschalten, wenn kein Urlaub oder ich im Homeoffice bin([ZS_zs_CAL_Urlaub:state] eq "none" OR [ZS_zs_CAL_Urlaub:state] eq "atHome")
Bewohner kommen nach Hause --> WLAN anschalten, wenn innerhalb der Uhrzeit [05:59-01:31]
Wenn ich mal nach 01:30 nach Hause komme, muss das WLAN auch nicht mehr angehen

Vielleicht mache ich da was falsch oder zu kompliziert, wobei ich genau wegen der Möglichkeit Dinge zusammenzufassen so toll finde.

Beste Grüße
Torsten

ok, ich habe das jetzt alles mal nachgebaut und sehe das grundproblem. Bei auslösung durch den trigger werden KEINE cmds ausgeführt, die ine ID enthalten. Ich meine auch , das das im Wiki steht ( bin mir aber gerade nicht sicher ).

d.H du müsstest noch ein device action anlegen , die bei eintreffen der events auf die entsprechenden IDs umleitet.

ich baue da mal was und poste es dir , kann aber ggf. erst morgen werden.

gruss Byte09


Byte09

#606
versuch bitte mal diese konfig, ob es geht. bin mir nicht ganz sicher, da du "100" verschiedene bedingungen und zweige drinnen hast, die ich so schnell gar nicht nachbauen kann  ;)

falls nicht sehen wir halt weiter ...

#V 2.09
#VS V2.00
#S last_cmd -> 1
#S .Device_Events -> state:absent state:home no_trigger
#S state -> on
#S EVTPART2 -> state
#S .sortby -> priority
#S Trigger_log -> off
#S EVENT -> state:home
#S EVTPART1 -> ZS_zs_AW_Bewohner
#S EVTFULL -> ZS_zs_AW_Bewohner:state:home
#S last_event -> state:home
#S .Device_Affected -> E1_wz_NW_FritzBox7390-AbsCmd1,E3_hk_THKV_Heizkoerper_Fenster-AbsCmd1,MSwitch_Self-AbsCmd1
#S Trigger_device -> ZS_zs_AW_Bewohner
#S .Device_Affected_Details -> E1_wz_NW_FritzBox7390-AbsCmd1#[NF]wlan#[NF]wlan#[NF]on#[NF]off#[NF]delay2#[NF]delay1#[NF]00:00:30#[NF]00:00:00#[NF][05:59-01:31] AND ([ZS_zs_CAL_Urlaub:state] eq "none" OR [ZS_zs_CAL_Urlaub:state] eq "atHome")#[NF]#[NF]0#[NF]0#[NF]2#[NF]1#[NF]#[NF]0#[NF]0#[NF]1#[ND]E3_hk_THKV_Heizkoerper_Fenster-AbsCmd1#[NF]tmHeating#[NF]tmEnergySaveHeating#[NF]#[NF]#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF][18:15-20:45] AND [ZS_zs_AW_Bewohner:state] eq "home"#[NF][ZS_zs_AW_X6200W:presence] eq "absent"#[NF]0#[NF]0#[NF]3#[NF]2#[NF]#[NF]0#[NF]0#[NF]1#[ND]MSwitch_Self-AbsCmd1#[NF]exec_cmd_1#[NF]exec_cmd_2#[NF]ID 1,2#[NF]ID 1,2#[NF]delay1#[NF]delay1#[NF]00:00:00#[NF]00:00:00#[NF]#[NF]#[NF]#[NF]#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1
#S EVTPART3 -> home
#S last_exec_cmd -> set ttt exec_cmd_1 ID 1,2
#S .First_init -> done
#S .Trigger_off -> state:absent
#S .Trigger_cmd_on -> no_trigger
#S .Trigger_condition ->
#S .V_Check -> V2.00
#S .Trigger_on -> state:home
#S .Trigger_cmd_off -> no_trigger
#S .Trigger_time -> on~off~ononly[06#[dp]00|!$we|ID1][08#[dp]00|$we|ID1][18#[dp]30|!$we|ID2][19#[dp]15|$we|ID2]~offonly[00#[dp]30|!$we|ID1][01#[dp]30|$we|ID1][21#[dp]00|1234567|ID2]~onoffonly
#A MSwitch_Include_MSwitchcmds -> 0
#A MSwitch_Lock_Quickedit -> 1
#A MSwitch_Ignore_Types -> notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
#A alias -> Anwesenheitsabhängige Gerätesteuerung
#A group -> MSwitch
#A MSwitch_Expert -> 1
#A room -> IT-OC->MSwitch,Zentrale Steuerung
#A MSwitch_Extensions -> 0
#A MSwitch_Include_Devicecmds -> 1
#A MSwitch_Delete_Delays -> 1
#A MSwitch_Debug -> 1
#A MSwitch_Mode -> Full
#A MSwitch_Include_Webcmds -> 0
#A MSwitch_Inforoom -> IT-OC->MSwitch
#A icon -> people_sensor
#A MSwitch_Help -> 1


gruss Byte09

ToKa

Hallo Byte,

habe Deinen config ausprobiert und es funktioniert soweit ich das jetzt mit den triggern (anwesend/abwesend) testen konnte. Die Zeitsteuerung steht noch aus...

Im Log sind aber weitere Fehlermeldungen:
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 8723.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value $new{"ZS_zs_AW_Bewohner_MSw_01-AbsCmd1"} in numeric comparison (<=>) at ./FHEM/98_MSwitch.pm line 8730.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value within %savedetails in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 3696.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 3696.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value within %savedetails in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 3698.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 3698.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value within %savedetails in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 3717.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 3717.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value within %savedetails in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 3719.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 3719.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value within %savedetails in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 3728.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 3728.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value within %savedetails in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 3730.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 3730.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 3774.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value within %savedetails in string eq at ./FHEM/98_MSwitch.pm line 3988.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value within %savedetails in string eq at ./FHEM/98_MSwitch.pm line 4047.
2019.01.16 19:55:30 1: PERL WARNING: Argument "00:00:00" isn't numeric in division (/) at ./FHEM/98_MSwitch.pm line 4098.
2019.01.16 19:55:30 1: PERL WARNING: Argument "00:00:00" isn't numeric in division (/) at ./FHEM/98_MSwitch.pm line 4122.
2019.01.16 19:55:30 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_MSwitch.pm line 4270.


Das mit dem Exec_cmd ist eine feine Sache... man was Dein Modul alles kann, ob ich das jemals verstehe?
Beim Nachbauen Deiner config ist mir allerdings zunächst ein Fehler unterlaufen in der Schreibweise beim Exec_cmd_1 ID1 - ich habe das Leerzeichen vergessen. Nach dem trigger war dann mein fhem tot und im log waren folgende Meldungen:

2019.01.16 19:35:57 1: PERL WARNING: Deep recursion on subroutine "main::CallFn" at fhem.pl line 1855.
2019.01.16 19:35:57 1: PERL WARNING: Deep recursion on subroutine "main::AnalyzeCommandChain" at ./FHEM/98_MSwitch.pm line 6262.
2019.01.16 19:35:57 1: PERL WARNING: Deep recursion on subroutine "main::AnalyzeCommand" at fhem.pl line 1070.
2019.01.16 19:35:57 1: PERL WARNING: Deep recursion on subroutine "main::CommandSet" at fhem.pl line 1224.
2019.01.16 19:35:57 1: PERL WARNING: Deep recursion on subroutine "main::DoSet" at fhem.pl line 1887.
2019.01.16 19:35:57 1: PERL WARNING: Deep recursion on subroutine "main::MSwitch_Set" at fhem.pl line 3652.
2019.01.16 19:35:57 1: PERL WARNING: Deep recursion on subroutine "main::MSwitch_Exec_Notif" at ./FHEM/98_MSwitch.pm line 1149.


Wäre gut, wenn dieser Fehler abgefangen bzw. der config Fehler dem Anwender angezeigt würde.

Beste Grüße und vielen Dank!
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Byte09

schön das es soweit geht .

ZitatDas mit dem Exec_cmd ist eine feine Sache... man was Dein Modul alles kann, ob ich das jemals verstehe?
Beim Nachbauen Deiner config ist mir allerdings zunächst ein Fehler unterlaufen in der Schreibweise beim Exec_cmd_1 ID1 - ich habe das Leerzeichen vergessen. Nach dem trigger war dann mein fhem tot und im log waren folgende Meldungen:

ich muss gestehen das mir dieser Fehler gestern auch aufgefallen ist , mit selbem Ergebniss. Ich habe das in meiner Version bereits behoben und wollte Sie gestern eigentlich noch einspielen - habe dann aber noch ein/zwei andere Dinge gefunden , die ich noch ändern möchte.

Ist aber in jedem Fall mit dem nächsten Update behoben. Danke für den Hinweis!

gruss Byte09

ToKa

Hallo  Byte,

die at-Steuerung funktioniert auch - somit sind meine Anforderung prima umsetzbar. Vielen Dank für Deine Untersützung und Mühe!

Kann man eigentlich mehrere Actions mit exec_cmd verwenden? Dann könnte ich nämlich das Triggern ID 1 und ID 2 trennen und dabei die Uhrzeiten aus den Actions mit ID1 / ID2 rausnehmen bzw. in die exec_cmd Actions einbauen, da diese ja nur für die trigger notwendig sind und nicht für die at-Ausführung. Darüber hattest Du Dich ja schon gewundert.

Im übrigen ist mir aufgefallen, dass du bei den Zeit-conditions auf < und > prüfst, so dass bei einem at 06:00 und einer condition [06:00-08:00] in der action die Bedingung falsch wird. Ich persönlich fände ein <= und >= logischer.

Eine weitere Idee / Frage habe ich noch im Kontext meiner resident / roommate Devices. Diese haben ja noch eine Reihe anderer Statuswerte, die ich ab und an auch noch zum Auslösen verwende. Wäre also genial, wenn in einem MSwitch nicht nur zwei cmd verfügbar wären, sondern eine parametrierbare Anzahl, die dann jedes durch einen anderen trigger-Wert ausgelöst werden. Damit liese sich einem MSwitch alles unterbringen...

Beste Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Byte09

Hi,

schön das es klappt !

ZitatIm übrigen ist mir aufgefallen, dass du bei den Zeit-conditions auf < und > prüfst, so dass bei einem at 06:00 und einer condition [06:00-08:00] in der action die Bedingung falsch wird. Ich persönlich fände ein <= und >= logischer.

da ist was dran , werde ich ändern.

ZitatEine weitere Idee / Frage habe ich noch im Kontext meiner resident / roommate Devices. Diese haben ja noch eine Reihe anderer Statuswerte, die ich ab und an auch noch zum Auslösen verwende. Wäre also genial, wenn in einem MSwitch nicht nur zwei cmd verfügbar wären, sondern eine parametrierbare Anzahl, die dann jedes durch einen anderen trigger-Wert ausgelöst werden. Damit liese sich einem MSwitch alles unterbringen...

das hätte ich selber gerne schon einige male gehabt. Das Modul entstand leider aus einem ursprünglich anderen Modul , mit einer komplett anderen Konzeption . Daher habe ich mich bisher noch nicht so richtig daran 'getraut' . Ich werde das ggf. die Tage mal angehen - zumindest testweise um zu schaue wie aufwendig das wird. Wird aber nicht von heuta auf morgen , da ich die kommenden 14 Tage beruflich erstmal nicht zu Hause bin.

ZitatKann man eigentlich mehrere Actions mit exec_cmd verwenden? Dann könnte ich nämlich das Triggern ID 1 und ID 2 trennen und dabei die Uhrzeiten aus den Actions mit ID1 / ID2 rausnehmen bzw. in die exec_cmd Actions einbauen, da diese ja nur für die trigger notwendig sind und nicht für die at-Ausführung. Darüber hattest Du Dich ja schon gewundert.

hier werde ich noch nicht ganz schlau draus. Derezeit kannst du ja die zweige cmd1 und cmd2 separat durch einen trrigger auslösen und eine verteilung auf ID vornehmen , wie in deiner config. letztendlich kannst du ja auch aufz.B .* triggern und die vertwilung dann erst auf eine ID vornehmen, abhängig von dem eingetroffenen Event in den conditions bei der verteilung. Actions mit ID kannst du im Grunde unbegrenst anlegen.

gruss Byte09


Byte09

@ToKa

ich habe mir hierzu
ZitatEine weitere Idee / Frage habe ich noch im Kontext meiner resident / roommate Devices. Diese haben ja noch eine Reihe anderer Statuswerte, die ich ab und an auch noch zum Auslösen verwende. Wäre also genial, wenn in einem MSwitch nicht nur zwei cmd verfügbar wären, sondern eine parametrierbare Anzahl, die dann jedes durch einen anderen trigger-Wert ausgelöst werden. Damit liese sich einem MSwitch alles unterbringen...
nochmal kurz gedanken gemacht.

ich werde dir morgen eine Testversion zukommen lassen , in der du per attribut eine Funktion zuschalten kannst , die als 'weiche' fungieren wird in der Form:

Event X -> cmd1 ID 1
Event Y -> cmd2 ID 2
etc.

kannst du dir dann mal anschuen und testen ob das Funktional ist.

gruss Byte09

ToKa

Hallo Byte,

danke für die schnelle Rückmeldung zu meiner Idee und der Trigger auf mehr als zwei Werte. Auf .*  und conditions hätte ich auch selber kommen können...

Die neue Version werde ich gerne testen.

Beste Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Byte09

#613
neue Testversion über GIT verfügbar ( siehe 1. Post ).
die Beschreibung im 1.Post werde ich im Laufe des Tages noch aktualisieren.

Ein 'downgrade' auf V2.09 (SVN) ist problemlos möglich , in Diesem Fall muss aber in allen Devices vorher das Attribut 'MSwitch_Event_Id_Distributor' gelöscht werden, falls es gesetzt wurde.

gruss Byte09

@ToKa

Die von dir gewünschte Umsetzung ist mit dieser Version möglich . Ich habe das ganze nur als einstellbare 'cmd-Umleitung' angelegt, da damit der selbe Zweck erfüllt wird, es aber deutlich weniger Aufwand war.
Hätte ich reale weitere cmd's ausser den vorhandenen 2 angelegt, wäre das eine Riesenaufwand (und somit fast unabsehbare Fehlerquellen) - gerade in Bezug auf das Web-Frontend - gewesen.

Byte09

ich habe die Version 2.1 eben in das SVN gestellt . Somit wird sie ab morgen früh mit dem Fhemupdate verteilt.

comandref und Wiki habe ich entsprechend aktualisiert.

gruss Byte09