98_MSwitch - Support

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

Vorheriges Thema - Nächstes Thema

Torsten_MG

#285
Habe den Msitch von Post 828 angelegt. Mal schauen was passiert.

Achso, um 13:55Uhr habe ich auch keine Nachricht bekommen.


EDIT:

Habe den Fehler gefunden:

Habe [vKalender_Schicht:daysleft] statt [vKalender_Schicht:t_001_daysleft] eingegeben

Torsten_MG

#286
Scheint jetzt zu funktionieren, habe um 13:55Uhr die Nachricht bekommen.

Jetzt noch eine Frage, in deinem Screenshot steht ja bei telebot MSwitch 'cmd1' hinten dran _001_summary als ich deine Config übernommen habe, ist es bei mir nicht erschienen. Siehe Foto

Byte09

Zitat von: Torsten_MG am 04 Juli 2018, 19:00:12
Scheint jetzt zu funktionieren, habe um 13:55Uhr die Nachricht bekommen.

Jetzt noch eine Frage, in deinem Screenshot steht ja bei telebot MSwitch 'cmd1' hinten dran _001_summary als ich deine Config übernommen habe, ist es bei mir nicht erschienen. Siehe Foto
Erstmal gut das es jetzt geht . Sitze aber gerade im Musical (pause) ... Insofern melde ich mich morgen . ;-)

Gruss Byte09

Gesendet von meinem SM-G900F mit Tapatalk


Torsten_MG

Zitat von: Byte09 am 04 Juli 2018, 20:05:15
Erstmal gut das es jetzt geht . Sitze aber gerade im Musical (pause) ... Insofern melde ich mich morgen . ;-)

Gruss Byte09

Gesendet von meinem SM-G900F mit Tapatalk

Kein Stress und viel Spaß

Byte09

Zitat von: Torsten_MG am 04 Juli 2018, 19:00:12
Scheint jetzt zu funktionieren, habe um 13:55Uhr die Nachricht bekommen.

Jetzt noch eine Frage, in deinem Screenshot steht ja bei telebot MSwitch 'cmd1' hinten dran _001_summary als ich deine Config übernommen habe, ist es bei mir nicht erschienen. Siehe Foto

das scheint mir ein problem mit dem darkstyle zu sein . die textarea-felder werden extrem weit auseinandergezogen und dadurch schiebt sich das entsprechende feld sehr weit nach rechts. schau mal , ob du die seite nach rechts scrollen kannst, dann sollte es zu dsehen sein.

ich passe das an.

gruss Byte09

Byte09

das problem mit dem DarkStyle sollte behoben sein.

gruss Byte09

Torsten_MG

Zitat von: Byte09 am 06 Juli 2018, 08:46:01
das problem mit dem DarkStyle sollte behoben sein.

gruss Byte09

Funktioniert!

Super!

Torsten_MG

Eine Frage noch.

Im device action rufe ich ja mit {Fahrtstrecke()} den Code in den 99_myUtils auf.
Du wolltest mal schauen, ob man das auch direkt in den MSwitch einbinden kann.

Hier nochmal der Code:
sub
Fahrtstrecke()
{
my @Strecke1 = "";
my @Strecke1a = "";
my @Strecke2 = "";
my @Strecke2a ="";

@Strecke1 =  ReadingsVal("Fahrtzeit_Arbeit","duration_in_traffic","");
@Strecke2 =  ReadingsVal("Abbelen_ohne_Arbeit","duration_in_traffic","");
@Strecke1a = split(/ /,@Strecke1);
@Strecke2a = split(/ /,@Strecke2);

if (@Strecke2a[0]<@Strecke1a[0])
{
fhem("set teleBot send Alternative Strecke @Strecke2")}
else
{
fhem("set teleBot send Standard Strecke @Strecke1")}
}

Byte09

Zitat von: Torsten_MG am 06 Juli 2018, 18:56:12
Eine Frage noch.

Im device action rufe ich ja mit {Fahrtstrecke()} den Code in den 99_myUtils auf.
Du wolltest mal schauen, ob man das auch direkt in den MSwitch einbinden kann.

Hier nochmal der Code:
sub
Fahrtstrecke()
{
my @Strecke1 = "";
my @Strecke1a = "";
my @Strecke2 = "";
my @Strecke2a ="";

@Strecke1 =  ReadingsVal("Fahrtzeit_Arbeit","duration_in_traffic","");
@Strecke2 =  ReadingsVal("Abbelen_ohne_Arbeit","duration_in_traffic","");
@Strecke1a = split(/ /,@Strecke1);
@Strecke2a = split(/ /,@Strecke2);

if (@Strecke2a[0]<@Strecke1a[0])
{
fhem("set teleBot send Alternative Strecke @Strecke2")}
else
{
fhem("set teleBot send Standard Strecke @Strecke1")}
}


es sollte gehen, wenn du den code genau so :
{
my @Strecke1 = "";
my @Strecke1a = "";
my @Strecke2 = "";
my @Strecke2a ="";
@Strecke1 =  ReadingsVal("Fahrtzeit_Arbeit","duration_in_traffic","");
@Strecke2 =  ReadingsVal("Abbelen_ohne_Arbeit","duration_in_traffic","");
@Strecke1a = split(/ /,@Strecke1);
@Strecke2a = split(/ /,@Strecke2);
if (@Strecke2a[0]<@Strecke1a[0])
{
fhem("set teleBot send Alternative Strecke @Strecke2")}
else
{
fhem("set teleBot send Standard Strecke @Strecke1")}
}


in das cmd1 eingiebst , anstatt des aufrufes der routine.

ungetestet  - bin gerade auf dem sprung . probier es einfach mal .


gruss Byte09

Torsten_MG

Zitat von: Byte09 am 06 Juli 2018, 19:25:02
...
in das cmd1 eingiebst , anstatt des aufrufes der routine.

ungetestet  - bin gerade auf dem sprung . probier es einfach mal .


gruss Byte09

Scheint zu funktionieren!

Super!

Also einfach den Code aus myUtils übernehmen!

Torsten_MG

#295
Ich habe mir heute ein neues MSwitch gemacht und da nochmal eine Frage.

Ich habe als Trigger device meinen Bewegungsmelder genommen. Zusätzlich habe ich bei Trigger condition folgendes eingetragen: [Handy_Torsten:state] eq "absent" AND [Handy_Tanja:state] eq "absent" AND [Handy_Ben:state] eq "absent" AND [Handy_Denise:state] eq "absent". Bei trigger details habe ich bei cmd1 state:motion ausgewählt

Als affected device habe ich den teleBot ausgewählt und bei cmd1 Set msg Bewegungsmelder aktiv eingetragen.

Es funktioniert soweit alles gut. Was mir nur etwas stört ist, dass es ein paar min. dauert bis die Handy´s auf present stehen und so bekomme ich, wenn jemand nach Hause kommt (die 1. Person) sofort die Nachricht geschickt wird. Gibt es eine Möglichkeit in dem MSwitch noch einen Timer einzubinden? Etwa so, dass nachdem der Bewegungsmelder etwas registriert hat, eine Zeit gewartet wird, bis er auf Anwesenheit der Handy´s prüft und dann gegebenenfalls die Nachricht rausschickt.

Hier noch die config:
#V V1.62
#S .Device_Affected -> teleBot-AbsCmd1
#S .Device_Affected_Details -> teleBot-AbsCmd1,msg,no_action,Bewegungsmelder aktiv,,delay1,delay1,000000,000000,,,,,1
#S .Device_Events -> motion:off|motion:on (to broadcast)|state:noMotion|no_trigger|motionCount:89_next:30s|brightness:75|state:motion|motionDuration:32|trigger_cnt:89
#S .First_init -> done
#S .Trigger_Whitelist -> undef
#S .Trigger_cmd_off -> no_trigger
#S .Trigger_cmd_on -> state:motion
#S .Trigger_condition -> [Handy_Torsten.state]~eq~"absent"~AND~[Handy_Tanja.state]~eq~"absent"~AND~[Handy_Ben.state]~eq~"absent"~AND~[Handy_Denise.state]~eq~"absent"
#S .Trigger_off -> no_trigger
#S .Trigger_on -> no_trigger
#S .Trigger_time ->
#S .V_Check -> V 0.3
#S Trigger_device -> FL_Taster2_Motion
#S Trigger_log -> off
#S last_event -> state:motion
#S state -> active
#A room -> Sicherheit
#A MSwitch_Mode -> Notify
#A MSwitch_Delete_Delays -> 1
#A MSwitch_Inforoom -> MSwitch
#A MSwitch_Expert -> 0
#A MSwitch_Debug -> 0
#A MSwitch_Lock_Quickedit -> 1
#A MSwitch_Condition_Time -> 1
#A MSwitch_Ignore_Types -> notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
#A MSwitch_Include_Webcmds -> 0
#A MSwitch_Include_Devicecmds -> 1
#A disable -> 0
#A MSwitch_Include_MSwitchcmds -> 0
#A MSwitch_Help -> 0
#A MSwitch_Extensions -> 0

Byte09

#296
Zitat von: Torsten_MG am 15 Juli 2018, 20:16:31
Ich habe mir heute ein neues MSwitch gemacht und da nochmal eine Frage.

Ich habe als Trigger device meinen Bewegungsmelder genommen. Zusätzlich habe ich bei Trigger condition folgendes eingetragen: [Handy_Torsten:state] eq "absent" AND [Handy_Tanja:state] eq "absent" AND [Handy_Ben:state] eq "absent" AND [Handy_Denise:state] eq "absent". Bei trigger details habe ich bei cmd1 state:motion ausgewählt

Als affected device habe ich den teleBot ausgewählt und bei cmd1 Set msg Bewegungsmelder aktiv eingetragen.

Es funktioniert soweit alles gut. Was mir nur etwas stört ist, dass es ein paar min. dauert bis die Handy´s auf present stehen und so bekomme ich, wenn jemand nach Hause kommt (die 1. Person) sofort die Nachricht geschickt wird. Gibt es eine Möglichkeit in dem MSwitch noch einen Timer einzubinden? Etwa so, dass nachdem der Bewegungsmelder etwas registriert hat, eine Zeit gewartet wird, bis er auf Anwesenheit der Handy´s prüft und dann gegebenenfalls die Nachricht rausschickt.

Hier noch die config:
#V V1.62
#S .Device_Affected -> teleBot-AbsCmd1
#S .Device_Affected_Details -> teleBot-AbsCmd1,msg,no_action,Bewegungsmelder aktiv,,delay1,delay1,000000,000000,,,,,1
#S .Device_Events -> motion:off|motion:on (to broadcast)|state:noMotion|no_trigger|motionCount:89_next:30s|brightness:75|state:motion|motionDuration:32|trigger_cnt:89
#S .First_init -> done
#S .Trigger_Whitelist -> undef
#S .Trigger_cmd_off -> no_trigger
#S .Trigger_cmd_on -> state:motion
#S .Trigger_condition -> [Handy_Torsten.state]~eq~"absent"~AND~[Handy_Tanja.state]~eq~"absent"~AND~[Handy_Ben.state]~eq~"absent"~AND~[Handy_Denise.state]~eq~"absent"
#S .Trigger_off -> no_trigger
#S .Trigger_on -> no_trigger
#S .Trigger_time ->
#S .V_Check -> V 0.3
#S Trigger_device -> FL_Taster2_Motion
#S Trigger_log -> off
#S last_event -> state:motion
#S state -> active
#A room -> Sicherheit
#A MSwitch_Mode -> Notify
#A MSwitch_Delete_Delays -> 1
#A MSwitch_Inforoom -> MSwitch
#A MSwitch_Expert -> 0
#A MSwitch_Debug -> 0
#A MSwitch_Lock_Quickedit -> 1
#A MSwitch_Condition_Time -> 1
#A MSwitch_Ignore_Types -> notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
#A MSwitch_Include_Webcmds -> 0
#A MSwitch_Include_Devicecmds -> 1
#A disable -> 0
#A MSwitch_Include_MSwitchcmds -> 0
#A MSwitch_Help -> 0
#A MSwitch_Extensions -> 0


ja , klar.

du trägst bei ''cmd1 condition:' ebenfalls folgendes ein :
[Handy_Torsten:state] eq "absent" AND [Handy_Tanja:state] eq "absent" AND [Handy_Ben:state] eq "absent" AND [Handy_Denise:state] eq "absent".

bei cmd1 (selectfeld) trägst du immidialety and delayed ein und z.b 00:01:00.
so führt er den befehl 1 minute später aus , schaut aber vorher nochmals, ob die bedingung erfüllt ist.
so sollte es eigentlich gehen  ;)

gruss Byte09


edit: die zeit ( 1min) musst du halt entsprechend anpassen , so dass es passt.

Torsten_MG

ok, vielen Dank. Werde ich gleich einpflegen und beim nächsten Fall merken ob´s dann klappt

Byte09

nachtrag:

ich würde die 3 telefone aber ggf. in eine structure setzen , das erspart jede menge abfragen.


z:B ... musst du natürlich auf deine devicenamen anpassen
defmod HomeStatus structure home_structure  HandyThomas HandySandra HandyDevon HandyJay  PreseceState
attr HomeStatus clientstate_behavior relative
attr HomeStatus clientstate_priority present absent
attr HomeStatus devStateIcon present:status_available:home absent:control_building_empty:home
attr HomeStatus event-on-change-reading .*
attr HomeStatus group .Home Status
attr HomeStatus icon system_fhem
attr HomeStatus room Anwesenheit


gruss Byte09

Byte09

#299
Zitat von: Torsten_MG am 15 Juli 2018, 20:37:21
ok, vielen Dank. Werde ich gleich einpflegen und beim nächsten Fall merken ob´s dann klappt

da fällt mir gerade nochwas ein !
du solltest in diesem MSwitch das attribut 'MSwitch_Delete_Delays' unbedingt auf 0 stellen.

wenn dieses nicht auf 0 steht, wird bei jedem neuen event ( innerhalb der minute wartezeit ) das MSwitch im grunde resettet und alle delays ( verzögerungen ) gelöscht und neu gesetzt. d.H bei regelmässigen bewegungen würdest du nur dann eine Nachricht bekommen , wenn es mindestens für die dauer der wartezeit keine neue bewegung gab. das ist wohl nicht sinn der sache .

ist das attribut auf 0 , wird die bereits gesetzte verzögerung nicht gelöscht und eine zusätzliche gesetzt.

gruss Byte09