98_MSwitch - Support

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

Vorheriges Thema - Nächstes Thema

Byte09

Zitat von: det. am 27 August 2018, 20:13:45
Und ich hatte gedacht, das muss so sein  :D :D  Hatte heute früh, als mein Sonos keinen Ton spielte nach dem PC Start einfach die Mswitch Einstellungen mit restore zurückgeholt. Gut wenn man sie gepieichert hat...
Definitiv ! Sonst geht es halt nur über die fhem.save ... aber kennen wir ja ;-)

Gruss Byte09

Gesendet von meinem SM-G900F mit Tapatalk


Byte09

ab morgigem fhemupdate werden in Freecmds Kommentarzeilen akzeptiert. Wie in Perl beginnen diese mit einer Raute und enden mit Zeilenumbruch.
Dieses ist sowoh im Perlmodus "{}" als auch im Fhemmodus möglich.
Entsprechende Zeilen werden vor intern Befehlsausführung komplett entfernt.

anzeige der aktuellen systemzeit im Fenster "show active timer".

gruss Byte09


Byte09

#377
nur mal so ein codeschnipsel , ggf. such ja mal jemand so etwas.

da die dunklen monate wieder vor der tür stehe und ich es leid bin , nach hause zu kommen , wohnzimmer - volle beleuchtung, fernseher an  - aber leer. beide kinder in ihren zimmern , natürlich auch alles an  habe ich mal ein MSwitch gebastelt, was entsprechend alles Abschaltet ( bis auf eine Minimalbeleuchtung ) , wenn in einem gewissen zeitraum keine bewegung mehr festgestellt wird. wird nach der abschaltung wieder bewegung registriert, schaltet alles in den zustand , der bei abschaltung aktuell war ( nur für einen eingestellten zeitraum - hier 1800 sekunden -, danach schaltet es alles ab und reagiert auch nicht mehr auf bewegungen , bis manuell wieder etwas angeschaltet wurde ).

unterschieden wird hier noch nach 2 modi - ferneher an / fernseher nicht an - und die zeiten , in denen eine bewegung registriert werden muss, um nicht abzuschalten, werden unterschiedlich ( falls man beim fernsehen nicht zum zappeln neigt ) gesetzt.

ich setze das MSwitch seit einiger Zeit in drei Zimmern ( kinderzimmer / Wohnzimmer ) ein und es läuft ( nach anpassung der erkennungszeiten ) zuverlässig.

aufgrund der raumgrösse betreibe ich im wohnzimmer 3 bewegungsmelder ( zonen ) die zur einer struktur zusammengefasst sind. zur überprüfung , ob das MSwitch überhaupt aktiv werden muss sind ebenso alle geräte , die berücksichtigt werden sollen zur einer struktur zusammengefasst ( wenn sowieso alles aus ist , muss das Device ja nicht aktiv werden).

weiterhin gibt es einen dummy "energy_save" , mit dem ich das ganze aktivieren/deaktivieren kann.

da es doch recht komplex ist und natürlich diverse spezifische gerätenamen enthält , habe ich nur mal ein screenshot in den anhang gestellt. Falls jemand interesse hat , stelle ich gerne ein abgespecktes configfile zur verfügung , dass sich dann entsprechend erweitern , anpassen lässt.

gruss Byte09



.

Byte09

kommendes update

mit dem nächsten Update ändere ich die EVENT-Readings , wenn das MSwitch über Zeitsteuerung 'ausgelöst' wird.

Bei 'Auslösung ' um z.b 17:59 werden die Readings wie folgt aussehen, wobei "timetest" in diesem Fall der Name des MSwitch-Devices ist:

EVENT timetest:execute_timer_P1:17:59
EVTFULL timetest:execute_timer_P1:17:59
EVTPART1 timetest
EVTPART2 execute_timer_P1
EVTPART3 17:59


"execute_timer_P1" bis "execute_timer_P4" ist der auslösende Zweig .

somit ist es möglich , in einem device welches zu mehreren Zeiten auslöst, verschiedene Aktionen auszuführe , indem in den Conditions auf die konkrete Zeit (EVTPART3) geprüft wird und jeder Zeit eine Aktion zugeordnet wird.

bisher lieferte eine zeitgesteuerte Auslüsung keine Zeit in den EVENTparts .

weiterhin stehen alle EVENTS ($EVENT, $EVTFULL, $EVTPART1, $EVTPART2, $EVTPART3) als vordefinierte Variablen in den Freecmds zur verfügung . Diese werden in Freecmd mit dem Inhalt der jeweiligen Readings ersetzt.

Gruss Byte09

Byte09

@ christian ,

da ist unerklärlicher weise beim einspielen was schief gegangen. kann ich noch nicht nachvollziehen.

geh mal in dem device bitte auf get_config

ersetze dort das angezeigte gegen
#V V1.74
#S .Device_Affected -> FreeCmd-AbsCmd1,FreeCmd-AbsCmd2,FreeCmd-AbsCmd3,FreeCmd-AbsCmd4,FreeCmd-AbsCmd5,Ikeadimmer1-AbsCmd1
#S .Device_Affected_Details -> FreeCmd-AbsCmd1,cmd,cmd,{[cnl]my~$ziel[se][cnl]my~$soll[se][cnl][cnl]$ziel~=~ReadingsVal("Ikeadimmer1"#[ko]"ziel"#[ko]0)[se]~#~bis~wohin~gedimmt~werden~soll[cnl]$soll~=~ReadingsVal("trafo_wohnzimmer"#[ko]"pct"#[ko]0)[se]~#~zustand~der~lampe[cnl][cnl]if~($soll~<=~$ziel~)~#~lösche~wiederholung~wenn~ziel~erreicht[cnl]~{[cnl]~fhem("set~Ikeadimmer1~del_delays")[se][cnl]~return[se][cnl]~}[cnl][cnl]if~($soll~>~5){$soll~=~$soll~-5}~else~{$soll=0}[se]~#~setze~zustand~der~lampe~-5[cnl]fhem("set~trafo_wohnzimmer~pct~$soll")[se][cnl]},,delay1,delay1,000000,000000,,,0,0,4|FreeCmd-AbsCmd2,cmd,cmd,setreading~Ikeadimmer1~ziel~90,,delay1,delay1,000000,000000,[$EVTPART3]#[sp]eq#[sp]"18#[dp]00",,,,1|FreeCmd-AbsCmd3,cmd,cmd,setreading~Ikeadimmer1~ziel~60,,delay1,delay1,000000,000000,[$EVTPART3]#[sp]eq#[sp]"18#[dp]25",,,,1|FreeCmd-AbsCmd4,cmd,cmd,setreading~Ikeadimmer1~ziel~40,,delay1,delay1,000000,000000,[$EVTPART3]#[sp]eq#[sp]"22#[dp]25",,,,1|FreeCmd-AbsCmd5,cmd,cmd,setreading~Ikeadimmer1~ziel~0,,delay1,delay1,000000,000000,[$EVTPART3]#[sp]eq#[sp]"23#[dp]55",,,,1|Ikeadimmer1-AbsCmd1,exec_cmd1,no_action,,,delay1,delay1,000000,000000,[trafo_wohnzimmer#[dp]pct]#[sp]>=#[sp]0,,,,2
#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 -> undef
#S .Trigger_off -> no_trigger
#S .Trigger_on -> no_trigger
#S .Trigger_time -> on~off~ononly[09:15][18:00][18:25][22:25][23:55]~offonly
#S .V_Check -> V 1.2
#S Trigger_device -> no_trigger
#S Trigger_log -> off
#S last_event -> Ikeadimmer1-AbsCmd1_conditionon
#S state -> active
#A MSwitch_Safemode -> 0
#A MSwitch_Help -> 0
#A disable -> 0
#A MSwitch_Delete_Delays -> 0
#A MSwitch_Mode -> Notify
#A MSwitch_Lock_Quickedit -> 1
#A MSwitch_Extensions -> 0
#A MSwitch_Include_MSwitchcmds -> 0
#A MSwitch_Inforoom -> MSwitch
#A MSwitch_Debug -> 0
#A MSwitch_Include_Devicecmds -> 1
#A MSwitch_Include_Webcmds -> 1
#A room -> 1_Test
#A MSwitch_Ignore_Types -> notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
#A MSwitch_Expert -> 1


und drücke auf save changes.

gib mir bitte dann bescheid, ob er das device nun korrekt hat.

gruss Byte09

ChristianH

@Bytes01 - sieht im WebGui schon mal besser aus ... bin mir noch nicht ganz schlüssig, wie ich das testen kann.

Christian

Byte09

#381
ersetze di auslösezeiten
'[09:15][18:00][18:25][22:25][23:55]'

einfach gegen eine naheliegende zeit [11:50] und schalte die lampe auf 100 %.
'modify trigger device' drücken zum speichern.

wenn er dann auslöst und keine weitere zeitzuordnung in den freecmds findet sollte er die lampe bis auf 0 runterdimmen, bzw. bis auf den wert , der im reading 'ziel' steht ( falls bereits vorhanden)

die zeiten kannst du dann ja wieder ersetzen

gruss Byte09

Byte09

PS: setze mal die attribute Mswitch_help und MSwitch_debug auf 1 , dann bekommst du entsprechende hilfetexte und prüfoptionen

gruss Byte09

ChristianH

Habe die 18:00 Bedingung auf 14:05 gesetzt und "Check Condition" gemacht:

Zitateingehender String:
[$EVTPART3] eq "14:05"

If Anweisung Perl:
if (ReadingsVal('Ikeadimmer1', 'EVTPART3', 'undef') eq "14:05"){$answer = 'true';} else {$answer = 'false';}

Bedingung ist nicht Wahr und wird nicht ausgeführt

Trotz Debug keine Ausgabe in den Logs

Christian

Byte09

#384
Zitat von: ChristianH am 01 September 2018, 14:09:25
Habe die 18:00 Bedingung auf 14:05 gesetzt und "Check Condition" gemacht:

Trotz Debug keine Ausgabe in den Logs

Christian

diese bedingung lässt sich mit check condition nicht prüfen. Debug 1 betrifft nicht das logverhalten , sondern nur das gui .

das eventpart3 wird nur dann gesetzt , wenn das MSwitch über den 'execute 'cmd1' at :'  auch um 14:05 ausgelöst hat. dann werden diereadings entsprechend aktualisiert , und nur dann trifft auch die bedingung zu .

in den reading siehst du dann aber , ab der befehl ausgeführt wurde 'Exec_cmd'.


gruss Byte09

ps_: wenn du möchtest können wir mal eine Teamviewer Sitzung machen , dann schaue ich es mir direkt an , muss aber erstmal schnell einkaufen.

Byte09

Zitat von: ChristianH am 01 September 2018, 14:09:25
Habe die 18:00 Bedingung auf 14:05 gesetzt und "Check Condition" gemacht:

Trotz Debug keine Ausgabe in den Logs

Christian

wenn du mal bei dir schaust ist da keine verzögerung eingetragen . siehe bild . trage da bitte 8 sekunden ein , dann sollte es passen.

gruss Byte09

Torsten_MG

Ich habe da noch ein Problem gefunden.

Habe es mehrfach getestet.

Immer wenn ich ein Shutdown restart auslöse, verliert folgendes MSwitch seine trigger details:

#V V1.73
#S .Device_Affected -> no_device
#S .Device_Affected_Details -> FreeCmd-AbsCmd1,cmd,cmd,set~BD_Lampe~off,set~BD_Lampe~on,delay1,delay1,000000,000000,,,,,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 -> V 1.2
#S Trigger_device -> BD_Taster1
#S Trigger_log -> off
#S last_event -> BD_Taster1_01
#S state -> off
#A MSwitch_Extensions -> 0
#A MSwitch_Activate_MSwitchcmds -> 1
#A room -> 01_Bad
#A MSwitch_Delete_Delays -> 1
#A MSwitch_Ignore_Types -> notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
#A MSwitch_Lock_Quickedit -> 1
#A MSwitch_Mode -> Full
#A MSwitch_Include_MSwitchcmds -> 0
#A verbose -> 0
#A disable -> 0
#A MSwitch_Include_Devicecmds -> 1
#A MSwitch_Include_Webcmds -> 0
#A MSwitch_Debug -> 0
#A MSwitchcmd -> 1
#A MSwitch_Expert -> 0
#A MSwitch_Inforoom -> MSwitch
#A MSwitch_Help -> 0


nach restore ist aber alles wieder da!

#V V1.73
#S .Device_Affected -> BD_Lampe-AbsCmd1,FreeCmd-AbsCmd1
#S .Device_Affected_Details -> FreeCmd-AbsCmd1,cmd,cmd,set~BD_Lampe~off,set~BD_Lampe~on,delay1,delay1,000000,000000,,,,,1
#S .Device_Events -> BD_Taster1_02 Short#[tr]no_trigger#[tr]BD_Taster1_01 Short
#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 -> BD_Taster1_02 Short
#S .Trigger_on -> BD_Taster1_01 Short
#S .Trigger_time ->
#S .V_Check -> V 1.2
#S Trigger_device -> BD_Taster1
#S Trigger_log -> off
#S last_event -> BD_Taster1_02
#S state -> off
#A MSwitch_Extensions -> 0
#A MSwitch_Activate_MSwitchcmds -> 1
#A room -> 01_Bad
#A MSwitch_Delete_Delays -> 1
#A MSwitch_Ignore_Types -> notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
#A MSwitch_Lock_Quickedit -> 1
#A MSwitch_Mode -> Full
#A MSwitch_Include_MSwitchcmds -> 0
#A verbose -> 0
#A disable -> 0
#A MSwitch_Include_Devicecmds -> 1
#A MSwitch_Include_Webcmds -> 0
#A MSwitch_Debug -> 0
#A MSwitchcmd -> 1
#A MSwitch_Expert -> 0
#A MSwitch_Inforoom -> MSwitch
#A MSwitch_Help -> 0

Byte09

Zitat von: Torsten_MG am 02 September 2018, 10:27:19
Ich habe da noch ein Problem gefunden.

Habe es mehrfach getestet.

Immer wenn ich ein Shutdown restart auslöse, verliert folgendes MSwitch seine trigger details:

#V V1.73
#S .Device_Affected -> no_device
#S .Device_Affected_Details -> FreeCmd-AbsCmd1,cmd,cmd,set~BD_Lampe~off,set~BD_Lampe~on,delay1,delay1,000000,000000,,,,,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 -> V 1.2
#S Trigger_device -> BD_Taster1
#S Trigger_log -> off
#S last_event -> BD_Taster1_01
#S state -> off
#A MSwitch_Extensions -> 0
#A MSwitch_Activate_MSwitchcmds -> 1
#A room -> 01_Bad
#A MSwitch_Delete_Delays -> 1
#A MSwitch_Ignore_Types -> notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
#A MSwitch_Lock_Quickedit -> 1
#A MSwitch_Mode -> Full
#A MSwitch_Include_MSwitchcmds -> 0
#A verbose -> 0
#A disable -> 0
#A MSwitch_Include_Devicecmds -> 1
#A MSwitch_Include_Webcmds -> 0
#A MSwitch_Debug -> 0
#A MSwitchcmd -> 1
#A MSwitch_Expert -> 0
#A MSwitch_Inforoom -> MSwitch
#A MSwitch_Help -> 0


nach restore ist aber alles wieder da!

#V V1.73
#S .Device_Affected -> BD_Lampe-AbsCmd1,FreeCmd-AbsCmd1
#S .Device_Affected_Details -> FreeCmd-AbsCmd1,cmd,cmd,set~BD_Lampe~off,set~BD_Lampe~on,delay1,delay1,000000,000000,,,,,1
#S .Device_Events -> BD_Taster1_02 Short#[tr]no_trigger#[tr]BD_Taster1_01 Short
#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 -> BD_Taster1_02 Short
#S .Trigger_on -> BD_Taster1_01 Short
#S .Trigger_time ->
#S .V_Check -> V 1.2
#S Trigger_device -> BD_Taster1
#S Trigger_log -> off
#S last_event -> BD_Taster1_02
#S state -> off
#A MSwitch_Extensions -> 0
#A MSwitch_Activate_MSwitchcmds -> 1
#A room -> 01_Bad
#A MSwitch_Delete_Delays -> 1
#A MSwitch_Ignore_Types -> notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
#A MSwitch_Lock_Quickedit -> 1
#A MSwitch_Mode -> Full
#A MSwitch_Include_MSwitchcmds -> 0
#A verbose -> 0
#A disable -> 0
#A MSwitch_Include_Devicecmds -> 1
#A MSwitch_Include_Webcmds -> 0
#A MSwitch_Debug -> 0
#A MSwitchcmd -> 1
#A MSwitch_Expert -> 0
#A MSwitch_Inforoom -> MSwitch
#A MSwitch_Help -> 0


schaue ich mir nach dem frühstück an

gruss Byte09

Byte09

ich habe versucht da bei mir nachzubauen ( ua. mit dummys ) , kann das problem aber nicht nachstellen.

versuch bitte mal folgendes . lösche das ganze device. danach leg es neu an und spiele das vorhandene configfile ein. dann bitte ein update auf die aktuelle version 1.74 machen und das attribut MSwitch_startdelay auf 0 setzen .

schau ob es dann nach einem restart geht.

sollte es dann immer noch fehlerhaft sein , kann ich es nur prüfen , wenn du mir ein log verbose 5 des gesamten startvorganges schickst. da dieser vermutlich extrem gross ist müsstest du mir diesen bitte per mail schicken . Mailadresse:Byte009@web.de

danach bitte wieder deas loglevel runtersetzen .

gruss Byte09

Torsten_MG

Ok. Probiere ich später mal aus

Gesendet von meinem SM-J730F mit Tapatalk