98_MSwitch - Support

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

Vorheriges Thema - Nächstes Thema

Bäschdler

Hallo Byte09,

ich verstehe gerade nicht warum folgendes passiert:
Der MSwitch hat bei einem FreeCmd quasi dieselbe condition. Der Plan wäre, dass der Dummy auf 240 gesetzt wird und dann nach 2 Minuten auf 250 gesetzt wird. Die 250 erreicht er aber nie (auch bei den anderen FreeCmd's die so aufgebaut sind nicht), sondern immer dann erst den nächsten Wert des nächsten FreeCmd's. Wenn ich get active timer mache kommt
Zitat
aktive Delays:
2018-10-21 17:21:33   set Rolladen_Aktionen 250
Da steht aber jedesmal der Zeitpunkt in 2 Minuten drin. Der MSwitch startet also jedesmal (er wird jede Minute getriggert) den Timer neu. Bei der Einstellung "condition check immediately only" hätte ich gedacht wird der Timer einmal getriggert, läuft dann im Hintergrund und führt dann nach der eingestellten Zeit das command aus.
Denke ich da falsch?

Danke und Grüsse
Bäschdler


Hier ein Beispielhafter Auszug eines FreeCmd:
Zitat
Device: FreeCmd-AbsCmd10
cmd1: cmd set Rolladen_Aktionen 250
cmd2: cmd set Rolladen_Aktionen 240
cmd1 condition: [myLocation:azimuth] > 230 AND [myLocation:azimuth] < 245 AND  [Rolladen_Aktionen:state] < 250
cmd2 condition: [myLocation:azimuth] > 230 AND [myLocation:azimuth] < 245 AND [Rolladen_Aktionen:state] < 240
cmd1 delay: 00:02:00
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 1
id: 0
comment:
cmd1 exit: 0
cmd2 exit: 0

Byte09

#526
hi Bäschdler.

ich gehe mal davon aus, das es sich u das gleiche device vom letzten mal handelt ?

wenn dem so ist , werden alle delays glöscht, wenn ein neues (passendes) event 'hereinkommt':
Attribut MSwitch_Delete_Delays: 1

.... ändere das mal auf '0'.

ZitatMSwitch_Delete_Delays (0:1)

Bewirkt das Löschen aller anstehende Timer (Delays) bei dem Auftreten eines erneuten, passenden Events. Bei der Option '0' bleiben bereits gesetzte Delays aus einem vorherigen, getriggertem Event erhalten und werden ausgeführt.
Empfohlene Einstellung (1)


ausserdem musst du dir über die reihenfolge der abarbeitung bewusst sein , ich weiss aber nicht , ob das bei deinem device eine rolle spielt.

wenn ein und das selbe event cmd1 und cmd2 auslöst, ist die reihenfolge der abarbeitung der befehle nicht :

AD ( affected defice ) cmd1
AD cmd2
AD1 cmd1
AD1 cmd2
etc.

sondern:

AD cmd2
AD1 cmd2
AD2 cmd2
AD cmd1
AD1 cmd1
AD2 cmd1

dabei können natürlich gehörige unterschiede ( besonders in einem solchen Konstrukt ) im ergebniss entstehen.
Da du es im grunde zweckentfremdest , imdem du immer beide zweige auslöst , emfehle ich das entsprechend zu ändern , d.H nur einen zweig auslösen und alle Schaltvorgändge in diesen zweig in verschiedene ADs zu packen ,
bei dem was du erreichen willst wäre es ggf. sogar das beste , nur ein AD anzulegen , dieses im PERLmode auszuführen '{}' und die unterscheidung dort - in diesem einen affected device - zu machen und auch von dort aus den schaltbefehl abzusetzen . Das ist leztendlich viel schneller für das Modul abzuarbeiten , und  im Grunde viel einfacher in der Handhabung , da du nie die Kontrolle über die Reihenfolge verlierst.

und ich würde sogar behauüpten , das hier ( speziell für dein vorhaben ) ggf. ein Ausweichen auf die 99_utils der beste weg sein dürfte.

gruss Byte09

ChrisW

Ich möchte gerne das "Kamin" um 23.59 auf off gesetzt wird falls er "on" ist ...
Wie bastel ich das am einfachsten ein ?
Internals:
   DEF        Kamin # heizung_wohnzimmersofa_Clima heizung_wohnzimmervitrine_Clima heizung_esszimmer_Clima
   NAME       Kamin
   NOTIFYDEV  Kamin
   NR         909
   NTFY_ORDER 45-Kamin
   STATE      off
   TYPE       MSwitch
   Version_Datenstruktur V2.00
   Version_Modul 2.02
   Version_autoupdate on
   eventsave  unsaved
   .attraggr:
   .attrminint:
   OLDREADINGS:
   READINGS:
     2018-11-06 16:51:06   .Device_Affected heizung_esszimmer_Clima-AbsCmd1,heizung_wohnzimmersofa_Clima-AbsCmd1,heizung_wohnzimmervitrine_Clima-AbsCmd1
     2018-11-06 16:52:47   .Device_Affected_Details heizung_esszimmer_Clima-AbsCmd1#[NF]controlManu#[NF]controlMode#[NF]16.0#[NF]auto#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]#[NF]#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[ND]heizung_wohnzimmersofa_Clima-AbsCmd1#[NF]controlManu#[NF]controlMode#[NF]16.0#[NF]auto#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]#[NF]#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[ND]heizung_wohnzimmervitrine_Clima-AbsCmd1#[NF]controlManu#[NF]controlMode#[NF]16.0#[NF]auto#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]#[NF]#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1
     2018-11-06 21:49:15   .Device_Events  no_trigger
     2018-11-06 16:13:46   .First_init     done
     2018-11-06 16:13:46   .Trigger_cmd_off no_trigger
     2018-11-06 16:13:46   .Trigger_cmd_on no_trigger
     2018-11-07 15:07:37   .Trigger_condition
     2018-11-06 16:13:46   .Trigger_off    no_trigger
     2018-11-06 16:13:46   .Trigger_on     no_trigger
     2018-11-07 15:07:37   .Trigger_time   
     2018-11-06 16:13:46   .V_Check        V2.00
     2018-11-07 15:07:36   EVENT           Trigger_device:Kamin
     2018-11-07 15:07:36   EVTFULL         Kamin:Trigger_device:Kamin
     2018-11-07 15:07:36   EVTPART1        Kamin
     2018-11-07 15:07:36   EVTPART2        Trigger_device
     2018-11-07 15:07:36   EVTPART3        Kamin
     2018-11-06 21:49:15   Exec_cmd        set heizung_esszimmer_Clima controlMode auto,set heizung_wohnzimmersofa_Clima controlMode auto,set h....
     2018-11-07 15:07:36   Trigger_device  Kamin
     2018-11-06 16:13:46   Trigger_log     off
     2018-11-07 15:07:36   incomming       Trigger_device:Kamin
     2018-11-07 15:07:36   last_event      Trigger_device:Kamin
     2018-11-06 21:49:15   state           off
   helper:
     eventfrom  Kamin
     events:
       Kamin:
         no_trigger on
     savemodeblock:
Attributes:
   MSwitch_Debug 0
   MSwitch_Delete_Delays 1
   MSwitch_Expert 0
   MSwitch_Extensions 0
   MSwitch_Help 1
   MSwitch_Ignore_Types notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
   MSwitch_Include_Devicecmds 1
   MSwitch_Include_MSwitchcmds 0
   MSwitch_Include_Webcmds 0
   MSwitch_Lock_Quickedit 1
   MSwitch_Mode Full
   room       timer
Raspberry PI3 mit allem möglichen.

Byte09

#528
Zitat von: ChrisW am 07 November 2018, 15:14:18
Ich möchte gerne das "Kamin" um 23.59 auf off gesetzt wird falls er "on" ist ...
Wie bastel ich das am einfachsten ein ?
Internals:
   DEF        Kamin # heizung_wohnzimmersofa_Clima heizung_wohnzimmervitrine_Clima heizung_esszimmer_Clima
   NAME       Kamin
   NOTIFYDEV  Kamin
   NR         909
   NTFY_ORDER 45-Kamin
   STATE      off
   TYPE       MSwitch
   Version_Datenstruktur V2.00
   Version_Modul 2.02
   Version_autoupdate on
   eventsave  unsaved
   .attraggr:
   .attrminint:
   OLDREADINGS:
   READINGS:
     2018-11-06 16:51:06   .Device_Affected heizung_esszimmer_Clima-AbsCmd1,heizung_wohnzimmersofa_Clima-AbsCmd1,heizung_wohnzimmervitrine_Clima-AbsCmd1
     2018-11-06 16:52:47   .Device_Affected_Details heizung_esszimmer_Clima-AbsCmd1#[NF]controlManu#[NF]controlMode#[NF]16.0#[NF]auto#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]#[NF]#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[ND]heizung_wohnzimmersofa_Clima-AbsCmd1#[NF]controlManu#[NF]controlMode#[NF]16.0#[NF]auto#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]#[NF]#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[ND]heizung_wohnzimmervitrine_Clima-AbsCmd1#[NF]controlManu#[NF]controlMode#[NF]16.0#[NF]auto#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]#[NF]#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1
     2018-11-06 21:49:15   .Device_Events  no_trigger
     2018-11-06 16:13:46   .First_init     done
     2018-11-06 16:13:46   .Trigger_cmd_off no_trigger
     2018-11-06 16:13:46   .Trigger_cmd_on no_trigger
     2018-11-07 15:07:37   .Trigger_condition
     2018-11-06 16:13:46   .Trigger_off    no_trigger
     2018-11-06 16:13:46   .Trigger_on     no_trigger
     2018-11-07 15:07:37   .Trigger_time   
     2018-11-06 16:13:46   .V_Check        V2.00
     2018-11-07 15:07:36   EVENT           Trigger_device:Kamin
     2018-11-07 15:07:36   EVTFULL         Kamin:Trigger_device:Kamin
     2018-11-07 15:07:36   EVTPART1        Kamin
     2018-11-07 15:07:36   EVTPART2        Trigger_device
     2018-11-07 15:07:36   EVTPART3        Kamin
     2018-11-06 21:49:15   Exec_cmd        set heizung_esszimmer_Clima controlMode auto,set heizung_wohnzimmersofa_Clima controlMode auto,set h....
     2018-11-07 15:07:36   Trigger_device  Kamin
     2018-11-06 16:13:46   Trigger_log     off
     2018-11-07 15:07:36   incomming       Trigger_device:Kamin
     2018-11-07 15:07:36   last_event      Trigger_device:Kamin
     2018-11-06 21:49:15   state           off
   helper:
     eventfrom  Kamin
     events:
       Kamin:
         no_trigger on
     savemodeblock:
Attributes:
   MSwitch_Debug 0
   MSwitch_Delete_Delays 1
   MSwitch_Expert 0
   MSwitch_Extensions 0
   MSwitch_Help 1
   MSwitch_Ignore_Types notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
   MSwitch_Include_Devicecmds 1
   MSwitch_Include_MSwitchcmds 0
   MSwitch_Include_Webcmds 0
   MSwitch_Lock_Quickedit 1
   MSwitch_Mode Full
   room       timer


zwei kleineEigenheiten von MSwitch:
1. das überall geforderte List desDevices hier nicht wirklich geeignet ist um zu helfen .
2. du kannst leider kaum Hilfe erwarten, ausser von mir, da das Modul leider nur recht wenig genutzt wird und es insofern nur eine handoll User gibt, die sich damit auskennen - denke ich . Führt leider dazu , das es mal länger dauern kann , so wie jetzt  :-\

geh doch in betreffendem Device mal auf get get_config und poste mir diese. ich setze es dir dann ein und schicke sie dir zurück . ist der einfachste weg. dann siehst du wie es sein muss.

ansonsten bitte bei fragen immer auf
get get_support_info und diesen file posten , das macht es einfacher für mich .

Dieses gilt aber nur für MSwitch - Devices.

gruss Byte09


edit : habe dir mal die rawdef eines MSwitch angehangen , das nur die gewünschte aktion ausführt ( nicht in kombination mit bestehendem device, dazu benötige ich oben angesprochene daten )
da ein manuelles schalten hier ja nicht erforderlich ist , habe ich das device in den notify-mode gesetzt ( attribut 'MSwitch_Mode' -> 'Notify' )
den im device eingefügten Kommentar kannst du durch löschen des Attributs 'MSwitch_Comments' bzw durch setzen auf '0' löschen.

defmod Kamin_off MSwitch
attr Kamin_off MSwitch_Comments 1
attr Kamin_off MSwitch_Debug 0
attr Kamin_off MSwitch_Delete_Delays 1
attr Kamin_off MSwitch_Expert 0
attr Kamin_off MSwitch_Extensions 0
attr Kamin_off MSwitch_Help 0
attr Kamin_off MSwitch_Ignore_Types notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
attr Kamin_off MSwitch_Include_Devicecmds 1
attr Kamin_off MSwitch_Include_MSwitchcmds 0
attr Kamin_off MSwitch_Include_Webcmds 1
attr Kamin_off MSwitch_Inforoom MSwitch
attr Kamin_off MSwitch_Lock_Quickedit 1
attr Kamin_off MSwitch_Mode Notify
attr Kamin_off room 1_Test

setstate Kamin_off active
setstate Kamin_off 2018-11-07 17:51:38 .Device_Affected Kamin-AbsCmd1
setstate Kamin_off 2018-11-07 17:58:28 .Device_Affected_Details Kamin-AbsCmd1#[NF]no_action#[NF]off#[NF]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF][Kamin#[dp]state]#[sp]eq#[sp]"on"#[sp]AND#[sp][$EVTPART3]#[sp]eq#[sp]"17#[dp]54"#[NF]#[NF]#[NF]1#[NF]0#[NF]die#[sp]hier#[sp]angegebene#[sp]condition#[sp]muss#[sp]in#[sp]diesem#[sp]Fall#[sp]nicht#[sp]vorhanden#[sp]sein#[sp]#[ko]#[sp]wird#[sp]nur#[sp]dann#[sp]benötigt#[sp]#[ko]#[sp]wenn#[sp]ein#[sp]mswitch#[sp]verschiedene#[sp]aktionen#[sp]zu#[sp]verschiedenen#[sp]zeiten#[sp]ausführen#[sp]soll.#[sp]könntest#[sp]du#[sp]im#[sp]grunde#[sp]löschen.#[sp]gruss#[sp]Byte09#[NF]0#[NF]0#[NF]1
setstate Kamin_off 2018-11-07 17:51:07 .Device_Events no_trigger
setstate Kamin_off 2018-11-07 17:49:48 .First_init done
setstate Kamin_off 2018-11-07 17:49:48 .Trigger_cmd_off no_trigger
setstate Kamin_off 2018-11-07 17:49:48 .Trigger_cmd_on no_trigger
setstate Kamin_off 2018-11-07 17:52:59 .Trigger_condition
setstate Kamin_off 2018-11-07 17:49:48 .Trigger_off no_trigger
setstate Kamin_off 2018-11-07 17:49:48 .Trigger_on no_trigger
setstate Kamin_off 2018-11-07 17:52:59 .Trigger_time on~off~ononly~offonly[17#[dp]54]
setstate Kamin_off 2018-11-07 17:49:48 .V_Check V2.00
setstate Kamin_off 2018-11-07 17:54:00 EVENT Kamin_off:execute_timer_P4:17:54
setstate Kamin_off 2018-11-07 17:54:00 EVTFULL Kamin_off:execute_timer_P4:17:54
setstate Kamin_off 2018-11-07 17:54:00 EVTPART1 Kamin_off
setstate Kamin_off 2018-11-07 17:54:00 EVTPART2 execute_timer_P4
setstate Kamin_off 2018-11-07 17:54:00 EVTPART3 17:54
setstate Kamin_off 2018-11-07 17:54:00 Exec_cmd set Kamin off
setstate Kamin_off 2018-11-07 17:52:59 Trigger_device no_trigger
setstate Kamin_off 2018-11-07 17:49:48 Trigger_log off
setstate Kamin_off 2018-11-07 17:58:28 state active




das hie wäre das entsprechende get_support_info file:

Modulversion: 2.02
Datenstruktur: V2.00

----- Devicename -----
Kamin_off

----- Attribute -----
Attribut MSwitch_Ignore_Types: notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
Attribut MSwitch_Lock_Quickedit: 1
Attribut MSwitch_Include_Webcmds: 1
Attribut MSwitch_Include_Devicecmds: 1
Attribut MSwitch_Expert: 0
Attribut MSwitch_Debug: 0
Attribut MSwitch_Help: 0
Attribut MSwitch_Inforoom: MSwitch
Attribut room: 1_Test
Attribut MSwitch_Extensions: 0
Attribut MSwitch_Comments: 1
Attribut MSwitch_Include_MSwitchcmds: 0
Attribut MSwitch_Mode: Notify
Attribut MSwitch_Delete_Delays: 1

----- Trigger -----
Trigger device:  no_trigger
Trigger time: on off ononly offonly[17:54]
Trigger condition:
Trigger Device Global Whitelist: undef

----- Trigger Details -----
Trigger cmd1: no_trigger
Trigger cmd2: no_trigger
Trigger cmd3: no_trigger
Trigger cmd4: no_trigger

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

Device: Kamin-AbsCmd1
cmd1: no_action
cmd2: off
cmd1 condition:
cmd2 condition: [Kamin:state] eq "on" AND [$EVTPART3] eq "17:54"
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 1
id: 0
comment: die hier angegebene condition muss in diesem Fall nicht vorhanden sein , wird nur dann benötigt , wenn ein mswitch verschiedene aktionen zu verschiedenen zeiten ausführen soll. könntest du im grunde löschen. gruss Byte09
cmd1 exit: 0
cmd2 exit: 0

ChrisW

hi, klar ich kann auch warten ist ja kein Notfall :) Finde das Modul super vor allem weil es per Webinterface funktioniert.
Wäre ja super wenn man da per Webinterface so einen Timer noch einbauen kann ähnlich wie man die Geräte hinzufügt :)

DANKE

getconfig:
#V 2.02
#VS V2.00
#S .Device_Affected -> heizung_esszimmer_Clima-AbsCmd1,heizung_wohnzimmersofa_Clima-AbsCmd1,heizung_wohnzimmervitrine_Clima-AbsCmd1
#S .Device_Affected_Details -> heizung_esszimmer_Clima-AbsCmd1#[NF]controlManu#[NF]controlMode#[NF]16.0#[NF]auto#[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#[ND]heizung_wohnzimmersofa_Clima-AbsCmd1#[NF]controlManu#[NF]controlMode#[NF]16.0#[NF]auto#[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#[ND]heizung_wohnzimmervitrine_Clima-AbsCmd1#[NF]controlManu#[NF]controlMode#[NF]16.0#[NF]auto#[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 .Device_Events -> no_trigger
#S .First_init -> done
#S .Trigger_Whitelist -> undef
#S .Trigger_cmd_off -> no_trigger
#S .Trigger_cmd_on -> no_trigger
#S .Trigger_condition ->
#S .Trigger_off -> no_trigger
#S .Trigger_on -> no_trigger
#S .Trigger_time ->
#S .V_Check -> V2.00
#S Trigger_device -> Kamin
#S Trigger_log -> off
#S last_event -> Trigger_device:Kamin
#S .sysconf -> undef
#S state -> off
#S Sys_Extension -> undef
#S .sortby -> undef
#A MSwitch_Lock_Quickedit -> 1
#A MSwitch_Expert -> 0
#A MSwitch_Delete_Delays -> 1
#A MSwitch_Include_MSwitchcmds -> 0
#A MSwitch_Ignore_Types -> notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
#A MSwitch_Include_Devicecmds -> 1
#A room -> timer
#A MSwitch_Help -> 1
#A MSwitch_Debug -> 0
#A MSwitch_Include_Webcmds -> 0
#A MSwitch_Mode -> Full
#A MSwitch_Extensions -> 0




Support:
Modulversion: 2.02
Datenstruktur: V2.00

----- Devicename -----
Kamin

----- Attribute -----
Attribut MSwitch_Lock_Quickedit: 1
Attribut MSwitch_Expert: 0
Attribut MSwitch_Delete_Delays: 1
Attribut MSwitch_Include_MSwitchcmds: 0
Attribut MSwitch_Ignore_Types: notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
Attribut MSwitch_Include_Devicecmds: 1
Attribut room: timer
Attribut MSwitch_Help: 1
Attribut MSwitch_Debug: 0
Attribut MSwitch_Include_Webcmds: 0
Attribut MSwitch_Mode: Full
Attribut MSwitch_Extensions: 0

----- Trigger -----
Trigger device:  Kamin
Trigger time:
Trigger condition:
Trigger Device Global Whitelist: undef

----- Trigger Details -----
Trigger cmd1: no_trigger
Trigger cmd2: no_trigger
Trigger cmd3: no_trigger
Trigger cmd4: no_trigger

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

Device: heizung_esszimmer_Clima-AbsCmd1
cmd1: controlManu 16.0
cmd2: controlMode auto
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 1
id: 0
comment:
cmd1 exit: 0
cmd2 exit: 0

Device: heizung_wohnzimmersofa_Clima-AbsCmd1
cmd1: controlManu 16.0
cmd2: controlMode auto
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 1
id: 0
comment:
cmd1 exit: 0
cmd2 exit: 0

Device: heizung_wohnzimmervitrine_Clima-AbsCmd1
cmd1: controlManu 16.0
cmd2: controlMode auto
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 1
id: 0
comment:
cmd1 exit: 0
cmd2 exit: 0
Raspberry PI3 mit allem möglichen.

Byte09

#530
Zitat von: ChrisW am 07 November 2018, 20:54:51
...

Hi Chris,
mit anhängender Rawdefinition schaltet sich das Device um 23:59 aus, wenn es an ist.

defmod Kamin MSwitch
attr Kamin MSwitch_Comments 0
attr Kamin MSwitch_Condition_Time 1
attr Kamin MSwitch_Debug 0
attr Kamin MSwitch_Delete_Delays 1
attr Kamin MSwitch_Expert 0
attr Kamin MSwitch_Extensions 0
attr Kamin MSwitch_Help 1
attr Kamin MSwitch_Ignore_Types notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
attr Kamin MSwitch_Include_Devicecmds 1
attr Kamin MSwitch_Include_MSwitchcmds 0
attr Kamin MSwitch_Include_Webcmds 1
attr Kamin MSwitch_Inforoom MSwitch
attr Kamin MSwitch_Lock_Quickedit 1
attr Kamin MSwitch_Mode Full
attr Kamin room timer

setstate Kamin off
setstate Kamin 2018-11-08 05:37:07 .Device_Affected heizung_esszimmer_Clima-AbsCmd1,heizung_wohnzimmersofa_Clima-AbsCmd1,heizung_wohnzimmervitrine_Clima-AbsCmd1
setstate Kamin 2018-11-08 05:40:37 .Device_Affected_Details heizung_esszimmer_Clima-AbsCmd1#[NF]controlManu#[NF]controlMode#[NF]16.0#[NF]auto#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]#[NF]#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[ND]heizung_wohnzimmersofa_Clima-AbsCmd1#[NF]controlManu#[NF]controlMode#[NF]16.0#[NF]auto#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]#[NF]#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1#[ND]heizung_wohnzimmervitrine_Clima-AbsCmd1#[NF]controlManu#[NF]controlMode#[NF]16.0#[NF]auto#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]#[NF]#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1
setstate Kamin 2018-11-08 05:38:06 .Device_Events no_trigger
setstate Kamin 2018-11-08 05:21:19 .First_init done
setstate Kamin 2018-11-08 05:21:19 .Trigger_cmd_off no_trigger
setstate Kamin 2018-11-08 05:21:19 .Trigger_cmd_on no_trigger
setstate Kamin 2018-11-08 05:42:26 .Trigger_condition [$SELF#[dp]state]#[sp]eq#[sp]"on"
setstate Kamin 2018-11-08 05:21:19 .Trigger_off no_trigger
setstate Kamin 2018-11-08 05:21:19 .Trigger_on no_trigger
setstate Kamin 2018-11-08 05:42:26 .Trigger_time on~off[23#[dp]59]~ononly~offonly
setstate Kamin 2018-11-08 05:21:19 .V_Check V2.00
setstate Kamin 2018-11-08 05:41:00 EVENT Kamin:execute_timer_P2:05:41
setstate Kamin 2018-11-08 05:41:00 EVTFULL Kamin:execute_timer_P2:05:41
setstate Kamin 2018-11-08 05:41:00 EVTPART1 Kamin
setstate Kamin 2018-11-08 05:41:00 EVTPART2 execute_timer_P2
setstate Kamin 2018-11-08 05:41:00 EVTPART3 05:41
setstate Kamin 2018-11-08 05:41:00 Exec_cmd set heizung_esszimmer_Clima controlMode auto,set heizung_wohnzimmersofa_Clima controlMode auto,set h....
setstate Kamin 2018-11-08 05:42:26 Trigger_device no_trigger
setstate Kamin 2018-11-08 05:21:19 Trigger_log off
setstate Kamin 2018-11-08 05:33:20 incomming Trigger_device:Kamin
setstate Kamin 2018-11-08 05:21:19 last_event Trigger_device:Kamin
setstate Kamin 2018-11-08 05:41:00 state off



sind im Grunde nur 2 Änderungen:
1. attribut MSwitch_Condition_Time auf 1 setzen
2. siehe Bild im Anhang

ich bin mir jetzt nicht ganz sicher, was du mit dem timer per webcmd meinst , aber theoretisch kann man es so machen , dass du ein weiteres Feld in der DeviceOverview hast , in welchem du die Abschaltzeit direkt wählen kannst - ähnlich angehängtem Bild2 . meinst du so etwas ? Bei Interesse kann ich dir das heute Abend mal bauen - als Muster - . Das ist aber schon etwas komplexer .

gruss Byte09

ChrisW

hi, vielen Dankk ich werde es heute mal testen.

Ja genau irgendwie "einfacher" wobei wenn ich da snun einmal weiss ist es ja Okay

Werde das Modul jetzt mal öfters benutzen. Ideen habe ich bestimmt einige *g* kann ich ja gerne hier dann mal erfragen ob dies möglich ist.
Raspberry PI3 mit allem möglichen.

Byte09

kommendes Update auf V2.03

ab dieser Version gibt es ein neues Attribut 'MSwitch_Config'. Über dieses Attribut ist es möglich , vorkonfigurierte ( doch spezielle ) MSwitches zu 'laden' , die zT Modulerweiterungen beinhalten.

Dieses Attribut ist nur dann vorhanden, wenn diese Erweiterungen durch das Fhemupdate auch geladen sind. Andernfalls wird dieses Attribut nicht vorhanden sein.

Da ich diese Erweiterungen nicht in das Fhem-Svn aufnehme möchte , muss hier zusätzlich eine Updatequelle eingetragen sein . Diese muss wie folgt im Webinterface eingegeben werden :

einmaliges update:
update all https://raw.githubusercontent.com/Byte009/MSwitch_Addons/master/controls_mswitchaddons.txt

bei jedem Update aktualisieren:
update add https://raw.githubusercontent.com/Byte009/MSwitch_Addons/master/controls_mswitchaddons.txt

wichtig: dieses ist eine 'Kann-Option', kein muss.

Anfangs werden 3 Mswitchkonfigurationen vorhanden sein :

1. MSwitch-Rename
Überwacht alle Mswitchdevices auf Namensänderungen bei Rename eines beinhalteten Gerätes ( und ändert diese optional )

2. Slowdimmer
Dimmt geräte in einstellbarem Intervall ( für Devices ohne Ramptime )

3.
MSwitch-Timer
Simpler Timer , über Dropdown einstellbar.

gruss Byte09


ChrisW

hi, danke werde das Update mal machen. Hab es nun paar Tage beobachtet leider funktioniert der Timer nicht um 23:59 passiert nichts bleibt on :(
Raspberry PI3 mit allem möglichen.

Byte09

#534
Hi ,

Zeig mir nochmal die Daten die du bei get Support Info bekommst.schaue mir das dann nochmal an.

Zeigt er die Schaltzeiten denn an , wenn du auf get active_timer Show gehst ?

ansonsten schlte des Device mal auf 'attr MSwitch_debug 3' und poste mir den logfile, der angezeigt wir ( sinniger weise, nachdem einmal die schaltzeit erreicht wurde)

Gruss Byte09

Gesendet von meinem SM-G900F mit Tapatalk


Esjay

Moin Byte09,
sollte hier nicht zwischen, 15:00 und 18:00 Uhr wenn ss_astro oder der Lacrosse Sensor unter 20 fällt, das Device getriggert werden?

.   Modulversion: 2.02
Datenstruktur: V2.00

----- Devicename -----
AutomatikWZLicht

----- Attribute -----
Attribut MSwitch_Safemode: 0
Attribut MSwitch_Include_Devicecmds: 1
Attribut MSwitch_Help: 1
Attribut webCmd: on:off:pct:steps:seconds
Attribut disable: 0
Attribut MSwitch_Ignore_Types: notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
Attribut MSwitch_Extensions: 0
Attribut MSwitch_Mode: Full
Attribut MSwitch_Delete_Delays: 0
Attribut room: MSwitch
Attribut MSwitch_Include_MSwitchcmds: 0
Attribut MSwitch_Include_Webcmds: 1
Attribut MSwitch_Expert: 1
Attribut MSwitch_Lock_Quickedit: 1

----- Trigger -----
Trigger device:  no_trigger
Trigger time: on[15:00-18:00] off ononly offonly
Trigger condition: [Twilight:ss_astro] OR [LaCrosse_3B:temperature] < 11
Trigger Device Global Whitelist: undef

----- Trigger Details -----
Trigger cmd1: no_trigger
Trigger cmd2: no_trigger
Trigger cmd3: no_trigger
Trigger cmd4: no_trigger

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

Device: FreeCmd-AbsCmd1
cmd1: cmd {
my $ziel = ReadingsVal("$SELF","ziel",0); # bis wohin gedimmt werden soll
my $ist = ReadingsVal("HUEGroup1","pct",0); # zustand der lampe;
my $steps = ReadingsVal("$SELF","steps",1); # dimmschritte pro durchgang
Log3( "SELF", 5, "SELF: ziel ".$ziel );
Log3( "SELF", 5, "SELF: ist ".$ist );
if ($ist == $ziel ) # lösche wiederholung wenn ziel erreicht
{
fhem("set $SELF del_delays");
return;
}
if ($ziel > $ist )
{
# setze zustand der lampe - steps
$ist = $ist + $steps;
$ist =int($ist);
   if ($ziel < $ist )
   {
   $ist = $ziel;
   }
}
if ($ziel < $ist )
{
# setze zustand der lampe - steps
$ist = $ist - $steps;
$ist =int($ist);
   if ($ziel > $ist )
   {
   $ist = $ziel;
   }
}
Log3( "SELF", 5, "SELF: SETTING ".$ist );
fhem("set HUEGroup1 pct $ist");
}
cmd2: cmd
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats: 0
repeats delay: 0
priority: 3
id: 0
comment:
cmd1 exit:
cmd2 exit:

Device: FreeCmd-AbsCmd2
cmd1: cmd setreading $SELF ziel [$SELF:Parameter]
cmd2: cmd set $SELF del_delays
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 1
id: 0
comment:
cmd1 exit:
cmd2 exit:

Device: HUEGroup1-AbsCmd1
cmd1: no_action
cmd2: off
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 4
id: 0
comment:
cmd1 exit:
cmd2 exit:

Device: MSwitch_Self-AbsCmd1
cmd1: exec_cmd1
cmd2: no_action
cmd1 condition:
cmd2 condition:
cmd1 delay: [$SELF:seconds]
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 2
id: 0
comment:
cmd1 exit:
cmd2 exit:


Grüße

Byte09

#536
Zitat von: Esjay am 14 November 2018, 15:14:49
Moin Byte09,
sollte hier nicht zwischen, 15:00 und 18:00 Uhr wenn ss_astro oder der Lacrosse Sensor unter 20 fällt, das Device getriggert werden?

.   Modulversion: 2.02
Datenstruktur: V2.00

----- Devicename -----
AutomatikWZLicht

----- Attribute -----
Attribut MSwitch_Safemode: 0
Attribut MSwitch_Include_Devicecmds: 1
Attribut MSwitch_Help: 1
Attribut webCmd: on:off:pct:steps:seconds
Attribut disable: 0
Attribut MSwitch_Ignore_Types: notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
Attribut MSwitch_Extensions: 0
Attribut MSwitch_Mode: Full
Attribut MSwitch_Delete_Delays: 0
Attribut room: MSwitch
Attribut MSwitch_Include_MSwitchcmds: 0
Attribut MSwitch_Include_Webcmds: 1
Attribut MSwitch_Expert: 1
Attribut MSwitch_Lock_Quickedit: 1

----- Trigger -----
Trigger device:  no_trigger
Trigger time: on[15:00-18:00] off ononly offonly
Trigger condition: [Twilight:ss_astro] OR [LaCrosse_3B:temperature] < 11
Trigger Device Global Whitelist: undef

----- Trigger Details -----
Trigger cmd1: no_trigger
Trigger cmd2: no_trigger
Trigger cmd3: no_trigger
Trigger cmd4: no_trigger

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

Device: FreeCmd-AbsCmd1
cmd1: cmd {
my $ziel = ReadingsVal("$SELF","ziel",0); # bis wohin gedimmt werden soll
my $ist = ReadingsVal("HUEGroup1","pct",0); # zustand der lampe;
my $steps = ReadingsVal("$SELF","steps",1); # dimmschritte pro durchgang
Log3( "SELF", 5, "SELF: ziel ".$ziel );
Log3( "SELF", 5, "SELF: ist ".$ist );
if ($ist == $ziel ) # lösche wiederholung wenn ziel erreicht
{
fhem("set $SELF del_delays");
return;
}
if ($ziel > $ist )
{
# setze zustand der lampe - steps
$ist = $ist + $steps;
$ist =int($ist);
   if ($ziel < $ist )
   {
   $ist = $ziel;
   }
}
if ($ziel < $ist )
{
# setze zustand der lampe - steps
$ist = $ist - $steps;
$ist =int($ist);
   if ($ziel > $ist )
   {
   $ist = $ziel;
   }
}
Log3( "SELF", 5, "SELF: SETTING ".$ist );
fhem("set HUEGroup1 pct $ist");
}
cmd2: cmd
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats: 0
repeats delay: 0
priority: 3
id: 0
comment:
cmd1 exit:
cmd2 exit:

Device: FreeCmd-AbsCmd2
cmd1: cmd setreading $SELF ziel [$SELF:Parameter]
cmd2: cmd set $SELF del_delays
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 1
id: 0
comment:
cmd1 exit:
cmd2 exit:

Device: HUEGroup1-AbsCmd1
cmd1: no_action
cmd2: off
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 4
id: 0
comment:
cmd1 exit:
cmd2 exit:

Device: MSwitch_Self-AbsCmd1
cmd1: exec_cmd1
cmd2: no_action
cmd1 condition:
cmd2 condition:
cmd1 delay: [$SELF:seconds]
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 2
id: 0
comment:
cmd1 exit:
cmd2 exit:


Grüße

Hi  Esjay,

nein, das geht so nicht und ist glaube ich eine typische doif-schreibweise. Doif wertet automatisch JEDES event aus ( ist mir unsympatisch ) , MSwitch tut das nicht . ... daher braucht MSwitch einen Trigger , den es hier nicht bekommt.

[15:00-18:00] ist keine Schaltzeit , die MSwitch ausführen kann , es gehen nur klare zeitpunkte [15:00] oder entsprechende Formulierungen gemäss Help-Button.

es würde funktionieren, wenn du das MSwitch in den expertenmodus setzt und den TRIGGER auf GLOBAL , dann reagiert MSwitch ebenso wie DOIF auf ALLE events ALLER Devices . Dann müsste die Bedingung aber komplett in das Bedingungsfeld gepackt werden [Twilight:ss_astro] < 11 OR [LaCrosse_3B:temperature] < 11 AND [15:00-18:00] ( rot markiert hast du einen fehler in der schreibweise ).

wenn du nun in die 'Trigger whitelist' die beiden Devices Twilight,LaCrosse_3B setzt kommen nur noch events dieser beiden Geräte durch.

eine schaltbedingung hast du aber trotzdem noch nicht .
Trigger cmd1: no_trigger
Trigger cmd2: no_trigger
Trigger cmd3: no_trigger
Trigger cmd4: no_trigger


mache hier mal einen 'add state' -> (Twilight|LaCrosse_3B).*
und wähle diesen dann im feld 'switch DEVICE on + execute 'cmd1'' aus.

damit sollte da Device entsprechend schalten ( schaltet dann aber bei jedem EVENT von einem der Geräte ein wenn die bedingungen erfüllt sind ).

klingt jetzt wohl etwas kompliziert, gerne kannst du mir das config posten , ich ändere es dann entsprechend.

in dem ganzen eingabefeld 'trigger device/time:   ' wird im grunde nur konfiguriert, welche events überhaupt "durchgelassen" werden ( zeitsteuerung ausgennommen ) , d.H aber noch nicht , dass diese auch zwingend schalten, dieses wird erst durch die Felder in 'trigger details :' konfiguriert - welches event welchen zweig auslöst.



gruss Byte09



Byte09

#537
ergänzung zum kommenden Update auf V2.03

zusätzlich zu bereits angekündigten Änderungen  werden in der kommenden Version die Attribute 'setlist', 'readinglist'  und alle 'readingFnAttributes' verfügbar sein.

somit kann ein MSwitch-Device u.a die kompette Funktionalität eines Dummys selber bereitstellen und Konstrukte aus dummys+notifys oder dummy+ XXX sollten im Grunde nicht mehr nötig sein  - insbesonder Konstrukte wie dieses :

https://forum.fhem.de/index.php/topic,93221.0.html

dieses lässt sich dann alles in ein MSwitch 'packen' und es müssen nicht 6 Devices angelegt werden, um eine Lampe zu steuern.

gruss Byte09

ChrisW

Modulversion: 2.02
Datenstruktur: V2.00

----- Devicename -----
Kamin

----- Attribute -----
Attribut MSwitch_Debug: 0
Attribut MSwitch_Delete_Delays: 1
Attribut MSwitch_Include_MSwitchcmds: 0
Attribut MSwitch_Expert: 0
Attribut room: timer
Attribut MSwitch_Extensions: 0
Attribut MSwitch_Inforoom: MSwitch
Attribut MSwitch_Help: 1
Attribut MSwitch_Comments: 0
Attribut MSwitch_Include_Webcmds: 1
Attribut MSwitch_Include_Devicecmds: 1
Attribut MSwitch_Ignore_Types: notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
Attribut MSwitch_Mode: Full
Attribut MSwitch_Condition_Time: 1
Attribut MSwitch_Lock_Quickedit: 1

----- Trigger -----
Trigger device:  no_trigger
Trigger time: on off[23:59] ononly offonly
Trigger condition: [$SELF:state] eq "on"
Trigger Device Global Whitelist: undef

----- Trigger Details -----
Trigger cmd1: no_trigger
Trigger cmd2: no_trigger
Trigger cmd3: no_trigger
Trigger cmd4: no_trigger

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

Device: heizung_esszimmer_Clima-AbsCmd1
cmd1: controlManu 16.0
cmd2: controlMode auto
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 1
id: 0
comment:
cmd1 exit: 0
cmd2 exit: 0

Device: heizung_wohnzimmersofa_Clima-AbsCmd1
cmd1: controlManu 16.0
cmd2: controlMode auto
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 1
id: 0
comment:
cmd1 exit: 0
cmd2 exit: 0

Device: heizung_wohnzimmervitrine_Clima-AbsCmd1
cmd1: controlManu 16.0
cmd2: controlMode auto
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 1
id: 0
comment:
cmd1 exit: 0
cmd2 exit: 0
Raspberry PI3 mit allem möglichen.

Byte09

#539
Zitat von: ChrisW am 15 November 2018, 18:10:54
Modulversion: 2.02
Datenstruktur: V2.00

----- Devicename -----
Kamin

----- Attribute -----
Attribut MSwitch_Debug: 0
Attribut MSwitch_Delete_Delays: 1
Attribut MSwitch_Include_MSwitchcmds: 0
Attribut MSwitch_Expert: 0
Attribut room: timer
Attribut MSwitch_Extensions: 0
Attribut MSwitch_Inforoom: MSwitch
Attribut MSwitch_Help: 1
Attribut MSwitch_Comments: 0
Attribut MSwitch_Include_Webcmds: 1
Attribut MSwitch_Include_Devicecmds: 1
Attribut MSwitch_Ignore_Types: notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
Attribut MSwitch_Mode: Full
Attribut MSwitch_Condition_Time: 1
Attribut MSwitch_Lock_Quickedit: 1

----- Trigger -----
Trigger device:  no_trigger
Trigger time: on off[23:59] ononly offonly
Trigger condition: [$SELF:state] eq "on"
Trigger Device Global Whitelist: undef

----- Trigger Details -----
Trigger cmd1: no_trigger
Trigger cmd2: no_trigger
Trigger cmd3: no_trigger
Trigger cmd4: no_trigger

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

Device: heizung_esszimmer_Clima-AbsCmd1
cmd1: controlManu 16.0
cmd2: controlMode auto
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 1
id: 0
comment:
cmd1 exit: 0
cmd2 exit: 0

Device: heizung_wohnzimmersofa_Clima-AbsCmd1
cmd1: controlManu 16.0
cmd2: controlMode auto
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 1
id: 0
comment:
cmd1 exit: 0
cmd2 exit: 0

Device: heizung_wohnzimmervitrine_Clima-AbsCmd1
cmd1: controlManu 16.0
cmd2: controlMode auto
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats:
repeats delay:
priority: 1
id: 0
comment:
cmd1 exit: 0
cmd2 exit: 0


werden denn die geräte entsprechend geschaltet, wenn du das MSwitch 'manuell' aud 'on' oder'off' schaltest ?

und wichtig : es wird nur dann abgeschaltet , wenn das MSwitch zu Zeitpunkt [23:59] auch auf 'on' steht. Steht es auf 'off', ggf. weil u es manuell so geschaltet hast , findet kein Schaltvorgang statt.
Trigger condition: [$SELF:state] eq "on"

wenn auf jeden Fall geschaltet werden soll, musst du das rausnehmen.

gruss Byte09