98_MSwitch - Support

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

Vorheriges Thema - Nächstes Thema

Torsten_MG

#390
update all gemacht und shutdown restart.

Bleibt bei V1.73

Aber die Daten bleiben drin! Habe mehrere shutdown restart gemacht!

Byte09

Zitat von: Torsten_MG am 02 September 2018, 13:33:20
update all gemacht und shutdown restart.

Bleibt bei V1.73

Aber die Daten bleiben drin! Habe mehrere shutdown restart gemacht!

ok, die versionsnummer wird er beim nachsten update incl. strukturupdate automatisch fixen. das ist kein drama, hauptsache die daten bleiben jetzt erhalten .

ist mir aber fast unerklärlich  ---  aber egal ( nicht nachvollziehbar ), solange einzelfall.

gruss Byte09

Torsten_MG

ich habe da direkt noch etwas  ;D

da ich gerade ein bisschen mit mqtt rumspiele, habe ich das in meinem MSwitch für die Lampe im Flur mit eingebaut. Das was soll funktioniert auch, aber selsamerweise bekomme ich auch fehlerhafte Meldungen.

Und zwar, wenn jemand durch den Bewegungsmelder läuft, dann wird der Publish angestoßen, obwohl ich in cmd1 condition folgendes eingetragen habe:
[FL_Lampe:state] eq "on"

bzw.
[FL_Lampe:state] eq "off"
Der State der Lampe ändert sich aber nicht!

#V V1.73
#S .Device_Affected -> FL_Lampe-AbsCmd1,FL_Lampe-AbsCmd2,FL_Lampe-AbsCmd3,FL_Lampe_D-AbsCmd1,FL_Lampe_D-AbsCmd2,Mosquitto-AbsCmd1,Mosquitto-AbsCmd2
#S .Device_Affected_Details -> FL_Lampe-AbsCmd1,MSwitchtoggle,no_action,on/off,,delay1,delay1,000000,000000,[$EVTPART1]#[sp]eq#[sp]"FL_Taster1"#[sp]OR#[sp][$EVTPART1]#[sp]eq#[sp]"FL_Taster2_01"#[sp]OR#[sp][$EVTPART1]#[sp]eq#[sp]"FL_Taster2_02"#[sp]OR#[sp][$EVTFULL]#[sp]eq#[sp]"MQTT_dummy#[dp]FL_Lampe#[dp]on"#[sp]OR#[sp][$EVTFULL]#[sp]eq#[sp]"MQTT_dummy#[dp]FL_Lampe#[dp]off",,,,1|FL_Lampe-AbsCmd2,pct,no_action,50~3600~1,,delay1,delay1,000000,000000,[$EVTPART1]#[sp]eq#[sp]"FL_Taster2_Motion"#[sp]AND#[sp][$EVTPART2]#[sp]eq#[sp]"trigger_cnt"#[sp]AND#[sp][[FL_Lampe_D#[dp]Licht_an]-[FL_Lampe_D#[dp]Licht_aus]]#[sp]AND#[sp][FL_Lampe#[dp]state]#[sp]eq#[sp]"off",,0,0,1|FL_Lampe-AbsCmd3,off,no_action,,,delay1,delay1,000000,000000,[$EVTPART1]#[sp]eq#[sp]"FL_Taster2_Motion"#[sp]AND#[sp][$EVTPART3]#[sp]eq#[sp]"noMotion"#[sp]AND#[sp][[FL_Lampe_D#[dp]Licht_an]-[FL_Lampe_D#[dp]Licht_aus]]#[sp]#[sp]AND#[sp][FL_Lampe#[dp]state]#[sp]ne#[sp]"off"#[sp]AND#[sp][FL_Lampe#[dp]state]#[sp]ne#[sp]"on",,,,1|FL_Lampe_D-AbsCmd1,on,no_action,,,delay1,delay1,000000,000000,[FL_Lampe#[dp]state]#[sp]eq#[sp]"on",,0,0,1|FL_Lampe_D-AbsCmd2,off,no_action,,,delay1,delay1,000000,000000,[FL_Lampe#[dp]state]#[sp]eq#[sp]"off",,0,0,1|Mosquitto-AbsCmd1,publish,no_action,/Smarthome/FL_Lampe/State2~off,,delay1,delay1,000000,000000,[FL_Lampe#[dp]state]#[sp]eq#[sp]"on",,,,1|Mosquitto-AbsCmd2,publish,no_action,/Smarthome/FL_Lampe/State2~on,,delay1,delay1,000000,000000,[FL_Lampe#[dp]state]#[sp]eq#[sp]"off",,,,1
#S .Device_Events -> no_trigger
#S .First_init -> done
#S .Trigger_Whitelist -> FL_Taster1,FL_Taster2_01,FL_Taster2_02,FL_Taster2_Motion,MQTT_dummy
#S .Trigger_cmd_off -> no_trigger
#S .Trigger_cmd_on -> no_trigger
#S .Trigger_condition ->
#S .Trigger_off -> no_trigger
#S .Trigger_on -> *
#S .Trigger_time ->
#S .V_Check -> V 1.2
#S Trigger_device -> all_events
#S Trigger_log -> off
#S last_event -> FL_Taster2_Motion:state:noMotion
#S state -> on
#A MSwitch_Include_MSwitchcmds -> 1
#A MSwitch_Extensions -> 1
#A MSwitch_Debug -> 0
#A MSwitch_Include_Webcmds -> 1
#A MSwitch_Delete_Delays -> 1
#A MSwitch_Inforoom -> MSwitch
#A MSwitch_Include_Devicecmds -> 1
#A MSwitch_Help -> 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 room -> 01_Flur->Licht,MSwitch
#A MSwitch_Activate_MSwitchcmds -> 1
#A MSwitch_Mode -> Full
#A MSwitch_Expert -> 1


Der Übersicht halber habe ich noch 2 Fotos den neuen Device action beigefügt

Byte09

das ist für mich so schwer nachzuvollziehen , da ich alles per dummy anlegen müsste. Die Abfrage der Bedingungen habe ich eben in allen möglichen variationen geprüft, da gibt es keine fehler. d.H es hakt irgendwo in deinen einstellungen. d.h in dem moment , in dem er an die entsprechende prüfung kommt und den befehl ausführt muss das geprüfte device den verlangte status haben .

schaue mir das gerne an ,brauche dafür aber die rawdefinitionen aller beteiligten devices . Alternativ mal per teamviewer drübeschauen.

das problem ist , dass ich das MSwitch nicht anlegen kann, wenn nicht alle beteiligten devices vorhanden sind.

gruss Byte09

Byte09

#394
PS: du kannst mal angehängte version einspielen. stell das device auf verbose 3 . jede conditionprüfung wird dann im log protokoliert.

dann schau mal im log, wie denn der finalstring aussieht und ob das ergebniss zu entsprechender prüfung true oder false ist.

gruss Byte09

- DIESE VERSION BITTE ANSONSTEN NICHT EINSPIELEN -

edit : Anhang gelöscht !

Torsten_MG

#395
Das taucht nun im Event Monitor auf

2018-09-02 16:13:54 MSwitch FL_Licht EVENT: FL_Taster2_Motion:trigger_cnt:213
2018-09-02 16:13:54 MSwitch FL_Licht EVTFULL: FL_Taster2_Motion:trigger_cnt:213
2018-09-02 16:13:54 MSwitch FL_Licht EVTPART1: FL_Taster2_Motion
2018-09-02 16:13:54 MSwitch FL_Licht EVTPART2: trigger_cnt
2018-09-02 16:13:54 MSwitch FL_Licht EVTPART3: 213
2018-09-02 16:13:54 MSwitch FL_Licht last_event: FL_Taster2_Motion:trigger_cnt:213
2018-09-02 16:13:54 MSwitch FL_Licht on
2018-09-02 16:13:54 MSwitch FL_Licht Exec_cmd: set FL_Lampe_D off ,set Mosquitto publish /Smarthome/FL_Lampe/State2 on


Das Problem ist, warum kommt da auch set Mosquitto publish /Smarthome/FL_Lampe/State2 on


ich habe auch hier wieder das Problem, dass on und off vertauscht sind, siehe Fotos oben.


Da die Lampe nicht auf on gesetzt wird, scheint er alle Komandos für Lampe off zu senden, siehe set FL_Lampe_D off

Byte09

#396
wie gesagt , ich kann das device nicht anlegen . poste doch mal ein screen , dieser drei befehle ( anhang ) .

die vertauschung on und off  kommt daher , da du die zuordnung cmd1 und cmd2 vertauscht hast . ein on des MSwitch devices wird immer mit ausführung des cmd1 quittiert, ein off mit cmd2 . du musst die cmds nur tauschen.

gruss Byte09

PS:hast du einen reload des moduls gemacht nach einspielen ? es werden keine conditions protokoliert ?

Torsten_MG

#397
Zitat von: Byte09 am 02 September 2018, 16:27:49
... poste doch mal ein screen , dieser drei befehle ( anhang ) .

..


Torsten_MG

Hier noch der Log

2018.09.02 16:39:03 5: TSCUL_Read CUL1: /AF0011475B7E9000D98844157C3AE00000003DF6D5032

2018.09.02 16:39:03 4: TSCUL_Parse: CUL1  069109 A F001 14081956 00 0D 98 8441 57C3AE 000000 03DF6D50 -49dB -49
2018.09.02 16:39:03 5: CUL1: dispatch A0D98844157C3AE00000003DF6D50::-49:CUL1:
2018.09.02 16:39:03 3: FL_Licht MSwitch_Notif: Befehlsausfuehrung -> set FL_Licht on FL_Taster2_Motion:trigger_cnt:223 2159
2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter condition, name: [$EVTPART1] eq "FL_Taster2_Motion" AND [$EVTPART3] eq "noMotion" AND [[FL_Lampe_D:Licht_an]-[FL_Lampe_D:Licht_aus]]  AND [FL_Lampe:state] ne "off" AND [FL_Lampe:state] ne "on", FL_Licht
2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter event: FL_Taster2_Motion:trigger_cnt:223
2018.09.02 16:39:03 3: Aufruf Checkcondition - finalstring if (ReadingsVal('FL_Licht', 'EVTPART1', 'undef') eq "FL_Taster2_Motion" && ReadingsVal('FL_Licht', 'EVTPART3', 'undef') eq "noMotion" && (1514919600 < 1514907540 && 1514907540 < 1514959200)  && ReadingsVal('FL_Lampe', 'state', 'undef') ne "off" && ReadingsVal('FL_Lampe', 'state', 'undef') ne "on"){$answer = 'true';} else {$answer = 'false';} 
2018.09.02 16:39:03 3: Aufruf Checkcondition - return false
2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter condition, name: [FL_Lampe:state] eq "on", FL_Licht
2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter event: FL_Taster2_Motion:trigger_cnt:223
2018.09.02 16:39:03 3: Aufruf Checkcondition - finalstring if (ReadingsVal('FL_Lampe', 'state', 'undef') eq "on"){$answer = 'true';} else {$answer = 'false';} 
2018.09.02 16:39:03 3: Aufruf Checkcondition - return false
2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter condition, name: [$EVTPART1] eq "FL_Taster2_Motion" AND [$EVTPART2] eq "trigger_cnt" AND [[FL_Lampe_D:Licht_an]-[FL_Lampe_D:Licht_aus]] AND [FL_Lampe:state] eq "off", FL_Licht
2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter event: FL_Taster2_Motion:trigger_cnt:223
2018.09.02 16:39:03 3: Aufruf Checkcondition - finalstring if (ReadingsVal('FL_Licht', 'EVTPART1', 'undef') eq "FL_Taster2_Motion" && ReadingsVal('FL_Licht', 'EVTPART2', 'undef') eq "trigger_cnt" && (1514919600 < 1514907540 && 1514907540 < 1514959200) && ReadingsVal('FL_Lampe', 'state', 'undef') eq "off"){$answer = 'true';} else {$answer = 'false';} 
2018.09.02 16:39:03 3: Aufruf Checkcondition - return false
2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter condition, name: [$EVTPART1] eq "FL_Taster1" OR [$EVTPART1] eq "FL_Taster2_01" OR [$EVTPART1] eq "FL_Taster2_02" OR [$EVTFULL] eq "MQTT_dummy:FL_Lampe:on" OR [$EVTFULL] eq "MQTT_dummy:FL_Lampe:off", FL_Licht
2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter event: FL_Taster2_Motion:trigger_cnt:223
2018.09.02 16:39:03 3: Aufruf Checkcondition - finalstring if (ReadingsVal('FL_Licht', 'EVTPART1', 'undef') eq "FL_Taster1" || ReadingsVal('FL_Licht', 'EVTPART1', 'undef') eq "FL_Taster2_01" || ReadingsVal('FL_Licht', 'EVTPART1', 'undef') eq "FL_Taster2_02" || ReadingsVal('FL_Licht', 'EVTFULL', 'undef') eq "MQTT_dummy:FL_Lampe:on" || ReadingsVal('FL_Licht', 'EVTFULL', 'undef') eq "MQTT_dummy:FL_Lampe:off"){$answer = 'true';} else {$answer = 'false';} 
2018.09.02 16:39:03 3: Aufruf Checkcondition - return false
2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter condition, name: [FL_Lampe:state] eq "off", FL_Licht
2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter event: FL_Taster2_Motion:trigger_cnt:223
2018.09.02 16:39:03 3: Aufruf Checkcondition - finalstring if (ReadingsVal('FL_Lampe', 'state', 'undef') eq "off"){$answer = 'true';} else {$answer = 'false';} 
2018.09.02 16:39:03 3: Aufruf Checkcondition - return true
2018.09.02 16:39:03 3: FL_Licht MSwitch_Set: Befehlsausfuehrung -> set FL_Lampe_D off  L:1238
2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter condition, name: [FL_Lampe:state] eq "on", FL_Licht
2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter event: FL_Taster2_Motion:trigger_cnt:223
2018.09.02 16:39:03 3: Aufruf Checkcondition - finalstring if (ReadingsVal('FL_Lampe', 'state', 'undef') eq "on"){$answer = 'true';} else {$answer = 'false';} 
2018.09.02 16:39:03 3: Aufruf Checkcondition - return false
2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter condition, name: [FL_Lampe:state] eq "off", FL_Licht
2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter event: FL_Taster2_Motion:trigger_cnt:223
2018.09.02 16:39:03 3: Aufruf Checkcondition - finalstring if (ReadingsVal('FL_Lampe', 'state', 'undef') eq "off"){$answer = 'true';} else {$answer = 'false';} 
2018.09.02 16:39:03 3: Aufruf Checkcondition - return true
2018.09.02 16:39:03 3: FL_Licht MSwitch_Set: Befehlsausfuehrung -> set Mosquitto publish /Smarthome/FL_Lampe/State2 on L:1238

Byte09

hier kannst du doch klar sehen ,woher der mosquito befehl kommt :

2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter condition, name: [FL_Lampe:state] eq "off", FL_Licht
2018.09.02 16:39:03 3: Aufruf Checkcondition - Parameter event: FL_Taster2_Motion:trigger_cnt:223
2018.09.02 16:39:03 3: Aufruf Checkcondition - finalstring if (ReadingsVal('FL_Lampe', 'state', 'undef') eq "off"){$answer = 'true';} else {$answer = 'false';}
2018.09.02 16:39:03 3: Aufruf Checkcondition - return true
2018.09.02 16:39:03 3: FL_Licht MSwitch_Set: Befehlsausfuehrung -> set Mosquitto publish /Smarthome/FL_Lampe/State2 on L:1238


es wird geprüft ob FL_Lampe aus ist . offensichtlich ist diese aus und der befehl set Mosquitto publish /Smarthome/FL_Lampe/State2 on wird ausgeführt .

ich steige irgendwie noch überhaupt nicht hinter die problematik.

gruss Byte09

Torsten_MG

Mein Problem ist, das der Aufruf/Befehl ausgeführt wird, wenn jemand tagsüber durch den BWM läuft. Der wird aber nur für abends/nachts gebraucht wo das Licht gedämmt automatisch eingeschaltet werden soll.

Gesendet von meinem SM-J730F mit Tapatalk


Byte09

Zitat von: Torsten_MG am 02 September 2018, 16:57:39
Mein Problem ist, das der Aufruf/Befehl ausgeführt wird, wenn jemand tagsüber durch den BWM läuft. Der wird aber nur für abends/nachts gebraucht wo das Licht gedämmt automatisch eingeschaltet werden soll.

Gesendet von meinem SM-J730F mit Tapatalk

dann setze doch in den entsprechenden cmd noch eine bedingung , die ihn nur zu bestimmten zeiten ausführen lässt AND [20:00-23:00] oder per sunset AND [{ sunset() }-{ sunrise() }]

gruss Byte09

Torsten_MG

Zitat von: Byte09 am 02 September 2018, 17:06:19
dann setze doch in den entsprechenden cmd noch eine bedingung , die ihn nur zu bestimmten zeiten ausführen lässt AND [20:00-23:00] oder per sunset AND [{ sunset() }-{ sunrise() }]

gruss Byte09
Die Idee hatte ich am Anfang auch, aber der Publish soll ja immer gesendet werden, wenn sich der state der Lampe ändert.

Dann muß ich mir was anderes einfallen lassen.

Gesendet von meinem SM-J730F mit Tapatalk


Byte09

Zitat von: Torsten_MG am 02 September 2018, 17:12:15
Die Idee hatte ich am Anfang auch, aber der Publish soll ja immer gesendet werden, wenn sich der state der Lampe ändert.

Dann muß ich mir was anderes einfallen lassen.

Gesendet von meinem SM-J730F mit Tapatalk

offenbar möchtest du ja verschiedene aktionen ausführen , je nach nacht/tag bzw Lichtverhältnissen.  Wenn dem so ist , solltest du eine Aktion ggf. in ein komplett eigenständiges MSwitch auslagern ?!

gruss Byte09

Torsten_MG

Habe es jetzt ganz anders gelöst. Der Weg war viel einfacher.[emoji16]

Da ich ja MQTT_GENERIC_BRIDGE installiert habe, brauchte ich ja im Lampen Device nur mqttPublish zu aktivieren [emoji41]

Gesendet von meinem SM-J730F mit Tapatalk