FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: jeti am 14 Mai 2015, 15:08:43

Titel: Gelöst - MySensors Schalter/Taster und Aktor
Beitrag von: jeti am 14 Mai 2015, 15:08:43
Hallo zusammen,

ich bin gerade dabei "alles" über mysensors zu steuern.
Allgemein sind Sensoren kein Problem, auch keine Schalter.
Wo ich nun hänge ist das schalten eines Relais (bzw LED).

Ich kann mittels einem Taster und ReadingsVal einen Status auf "on" und damit eine LED anschalten.
und das ganze mit einem zweiten Taster wieder ausschalten.

sieht im code so aus:

define Licht_Buero_an_state notify MYSENSOR_104:.* {if(ReadingsVal('MYSENSOR_104','tripped','on') eq 'off') {fhem('set MYSENSOR_100 switch1 on')}}
define Licht_Buero_aus_state notify MYSENSOR_104:.* {if(ReadingsVal('MYSENSOR_104','tripped1','on') eq 'off') {fhem('set MYSENSOR_100 switch1 off')}}

MYSENSOR_104 tripped* sind 4 taster welche "verkehrt herum sind" also on ist off  ::) (muss ich noch auf aktiv high umbauen)
MYSENSOR_100 switch1 ist eine LED

was muss ich ändern damit ich mit nur einem Taster die LED ein und wieder ausschalten kann (auch mit dem Hintergedanken mit mehrere Schaltern eine Wechselschaltung aufzubauen)

vielen Dank im Voraus

anbei die Lösung:

im DEF des notify:

MYSENSOR_104:tripped1.* {
  if($EVTPART1 eq "off") {
    if(ReadingsVal("MYSENSOR_100","switch1","undef") eq "off") {
      fhem("set MYSENSOR_100 switch1 on");
    }
    else {
      fhem("set MYSENSOR_100 switch1 off");
    }
  }
}


das Problem war der $EVENT,  da dieser bei MYSENSOR das "on/off" nicht im ersten Bestandteil hat.
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: Puschel74 am 14 Mai 2015, 16:08:56
MYSENSOR_104:tripped1.* {
  if($EVENT eq "off") {
    fhem("set MYSENSOR_100 switch1 on");
  }
  else {
    fhem("set MYSENSOR_100 switch1 off");
  }
}

Bedinung:
MYSENSOR_104 sendet als Reading tripped1 und das Event ist off oder on.
Einfach in der Detailansicht deines notify auf DEF klicken und den Code reinkopieren.
Fehlermeldungen aus dem Logfile bitte hier posten.
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: jeti am 14 Mai 2015, 16:44:07
aha also mit Event,
aber leider noch nicht funktional:

habe die notify nun so definiert:

MYSENSOR_104:tripped.* {\
  if($EVENT eq "off") {\
    fhem("set MYSENSOR_100 switch1 on");;\
  }\
  else {\
    fhem("set MYSENSOR_100 switch1 off");;\
  }\
}


Meldung im Log:

2015.05.14 16:38:56 5: Triggering Licht_Buero_an_aus
2015.05.14 16:38:56 4: Licht_Buero_an_aus exec {
  if($EVENT eq "off") {
    fhem("set MYSENSOR_100 switch1 on");;
  }
  else {
    fhem("set MYSENSOR_100 switch1 off");;
  }
}
2015.05.14 16:38:56 5: Cmd: >{
  if($EVENT eq "off") {
    fhem("set MYSENSOR_100 switch1 on");
  }
  else {
    fhem("set MYSENSOR_100 switch1 off");
  }
}<
2015.05.14 16:38:56 5: Cmd: >set MYSENSOR_100 switch1 off<
2015.05.14 16:38:56 5: MYSENSORS send: Rx: fr=100 ci=001 c=001(C_SET         ) st=002(V_LIGHT         ) ack=0 '0'

2015.05.14 16:38:56 5: SW: 3130303b313b313b303b323b300a
2015.05.14 16:38:56 5: Triggering MYSENSOR_100 (1 changes)
2015.05.14 16:38:56 5: Notify loop for MYSENSOR_100 switch1: off
2015.05.14 16:38:56 5: MYSENSORS/RAW: /0;0;3;0;9;send: 0-0-100
2015.05.14 16:38:56 5: MYSENSORS/RAW: 0;0;3;0;9;send: 0-0-100/-100 s=1,c=1,t=
2015.05.14 16:38:56 5: MYSENSORS/RAW: 0;0;3;0;9;send: 0-0-100-100 s=1,c=1,t=/2,pt=0,l=1,st=o
2015.05.14 16:38:56 5: MYSENSORS/RAW: 0;0;3;0;9;send: 0-0-100-100 s=1,c=1,t=2,pt=0,l=1,st=o/k:0

2015.05.14 16:38:56 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'send: 0-0-100-100 s=1,c=1,t=2,pt=0,l=1,st=ok:0'

2015.05.14 16:38:56 5: MYSENSORS gateway MS_gateway: send: 0-0-100-100 s=1,c=1,t=2,pt=0,l=1,st=ok:0
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: Puschel74 am 14 Mai 2015, 16:46:07
Ich sehe in meinem Beitrag weder 2 ; noch ein \
Wenn du das DEF bearbeitet hast dann hast du es nicht so bearbeitet wie ich es dir beschrieben habe und wenn du die fhem.cfg direkt bearbeitet hast fehlt in deinem Code etwas.
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: jeti am 14 Mai 2015, 16:48:59
Hallo,

ich habe das DEF bearbeitet, aber aus der fhem.cfg kopiert:
hier die DEF

MYSENSOR_104:tripped.* {
  if($EVENT eq "off") {
    fhem("set MYSENSOR_100 switch1 on");
  }
  else {
    fhem("set MYSENSOR_100 switch1 off");
  }
}
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: Puschel74 am 14 Mai 2015, 17:00:20
Aus der fhem.cfg kopiert fehlt aber das define vorne dran.

Aber was geht nun nicht?
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: jeti am 14 Mai 2015, 18:28:01
mit dem im ersten Beitrag definierten notify kann ich mit dem tripped den switch1 anschalten und mit dem tripped1 wieder ausschalten.
ich will aber mit dem tripped den switch1 ein UND ausschalten können.
Mit deinem code bekomme ich keine Reaktion im switch1 und folgenden Inhalt im Logfile:

2015.05.14 18:26:14 5: MYSENSORS/RAW: /0;0;3;0
2015.05.14 18:26:14 5: MYSENSORS/RAW: 0;0;3;0/;9;read: 104-1
2015.05.14 18:26:14 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-1/04-0 s=0,c=1,t=
2015.05.14 18:26:14 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c=1,t=/16,pt=2,l=2:0

2015.05.14 18:26:14 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:0'

2015.05.14 18:26:14 5: MYSENSORS gateway MS_gateway: read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:0
2015.05.14 18:26:14 5: MYSENSORS/RAW: /104;0;1;0;16
2015.05.14 18:26:14 5: MYSENSORS/RAW: 104;0;1;0;16/;0

2015.05.14 18:26:14 5: MYSENSORS Read: Rx: fr=104 ci=000 c=001(C_SET         ) st=016(V_TRIPPED       ) ack=0 '0'

2015.05.14 18:26:14 5: MYSENSORS/RAW: /0;0;3;0;9;
2015.05.14 18:26:14 5: MYSENSORS/RAW: 0;0;3;0;9;/read: 104-104-0
2015.05.14 18:26:14 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0/ s=0,c=1,t=16,
2015.05.14 18:26:14 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c=1,t=16,/pt=2,l=2:1
1
2015.05.14 18:26:14 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:1'

2015.05.14 18:26:14 5: MYSENSORS gateway MS_gateway: read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:1
2015.05.14 18:26:14 5: MYSENSORS/RAW: 1/04;0;1;0;16;1

2015.05.14 18:26:14 5: MYSENSORS Read: Rx: fr=104 ci=000 c=001(C_SET         ) st=016(V_TRIPPED       ) ack=0 '1'
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: Puschel74 am 14 Mai 2015, 18:34:57
MYSENSOR_104:.* {
  if(ReadingsVal('MYSENSOR_104','tripped','undef') eq 'off') {
    if(ReadingsVal('MYSENSOR_100','switch1','undef') eq 'off') {
      fhem('set MYSENSOR_100 switch1 on');
    }
    else {
      fhem('set MYSENSOR_100 switch1 off');
    }
  }
}

Noch ein Versuch.
So 1:1 in das DEF kopieren.

Da du in deinem ersten Beitrag beide male auf eq off prüfst versuchen wir hier mal zu prüfen ob sich MYSENSOR_100 so auslesen lässt.
Wenn nicht dann mach mal bitte den EventMonitor  ::) auf - lös dein notify aus und zeig mal was dort genau auftaucht.
Auch zeig mal einen Screenshot was der MYSENSOR_100 so an Readings hat.

OT:
Das man hier aber für jeden immer und immer wieder alles nochmal runterbeten muss
Sei so nett und sag mir mal was an meinem angepinnten Beitrag hier im Anfängerbereich unverständlich ist.
Irgendwas muss ich dort ja unleserlich beschrieben haben weil die Grundlagen immer wieder auf neue erstmal abgeholt werden müssen.
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: jeti am 14 Mai 2015, 18:45:27
auf off prüfen ist noch korrekt...
hier der Event monitor:

Events (Filter:.*):
2015-05-14 18:45:08 dummy Fenster_Buero geschlossen
2015-05-14 18:45:08 MYSENSORS_DEVICE MYSENSOR_100 switch1: off
2015-05-14 18:45:08 MYSENSORS_DEVICE MYSENSOR_104 tripped: off
2015-05-14 18:45:08 dummy Fenster_Buero geschlossen
2015-05-14 18:45:08 MYSENSORS_DEVICE MYSENSOR_104 tripped: on


im Anhang der Screenshot von MYSENSOR_100

vielen Dank für deine Hilfe!!!!
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: Puschel74 am 14 Mai 2015, 18:49:02
MYSENSOR_104:tripped.* {
  if($EVENT eq 'off') {
    if(ReadingsVal('MYSENSOR_100','switch1','undef') eq 'off') {
      fhem('set MYSENSOR_100 switch1 on');
    }
    else {
      fhem('set MYSENSOR_100 switch1 off');
    }
  }
}

Sollte eigentlich auch klappen  ???
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: jeti am 14 Mai 2015, 18:51:41
leider nein...


2015-05-14 18:50:13 dummy Fenster_Buero geschlossen
2015-05-14 18:50:13 MYSENSORS_DEVICE MYSENSOR_104 tripped: off
2015-05-14 18:50:13 dummy Fenster_Buero geschlossen
2015-05-14 18:50:13 MYSENSORS_DEVICE MYSENSOR_104 tripped: on


nur zur Sicherheit:

set MYSENSOR_100 switch1 on

und

set MYSENSOR_100 switch1 off


geht
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: Puschel74 am 14 Mai 2015, 19:03:36
MYSENSOR_104:.* {
  Log(3,"$NAME - $EVENT");
  if(ReadingsVal('MYSENSOR_104','tripped','on') eq 'off') {
    if(ReadingsVal('MYSENSOR_100','switch1','undef') eq 'off') {
      fhem('set MYSENSOR_100 switch1 on');
    }
    else {
      fhem('set MYSENSOR_100 switch1 off');
    }
  }
}

Dann versuchen wirs mal so - post die Ausgabe aus dem FHEM-Logfile bitte.
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: jeti am 14 Mai 2015, 19:13:59
leider auch nicht:
Event Monitor

2015-05-14 19:08:16 MYSENSORS_DEVICE MYSENSOR_100 switch1: off
2015-05-14 19:08:16 MYSENSORS_DEVICE MYSENSOR_104 tripped: off
2015-05-14 19:08:16 MYSENSORS_DEVICE MYSENSOR_104 tripped: on

Log file:

2015.05.14 19:08:16 5: MYSENSORS/RAW: /0;0;
2015.05.14 19:08:16 5: MYSENSORS/RAW: 0;0;/3;0;9;read: 104
2015.05.14 19:08:16 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104/-104-0 s=0,c=1
2015.05.14 19:08:16 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c=1/,t=16,pt=2,l=2:
2015.05.14 19:08:16 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:/0
104;0;1;0
2015.05.14 19:08:16 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:0'

2015.05.14 19:08:16 5: MYSENSORS gateway MS_gateway: read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:0
2015.05.14 19:08:16 5: MYSENSORS/RAW: 104;0;1;0/;16;0

2015.05.14 19:08:16 5: MYSENSORS Read: Rx: fr=104 ci=000 c=001(C_SET         ) st=016(V_TRIPPED       ) ack=0 '0'

2015.05.14 19:08:16 5: MYSENSORS send: Rx: fr=100 ci=001 c=001(C_SET         ) st=002(V_LIGHT         ) ack=0 '0'

2015.05.14 19:08:16 5: SW: 3130303b313b313b303b323b300a
2015.05.14 19:08:16 5: MYSENSORS/RAW: /0;0;3;0;9;send: 0-0-100-100 s=1,
2015.05.14 19:08:16 5: MYSENSORS/RAW: 0;0;3;0;9;send: 0-0-100-100 s=1,/c=1,t=2,pt=0,l
2015.05.14 19:08:16 5: MYSENSORS/RAW: 0;0;3;0;9;send: 0-0-100-100 s=1,c=1,t=2,pt=0,l/=1,st=ok:0

2015.05.14 19:08:16 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'send: 0-0-100-100 s=1,c=1,t=2,pt=0,l=1,st=ok:0'

2015.05.14 19:08:16 5: MYSENSORS gateway MS_gateway: send: 0-0-100-100 s=1,c=1,t=2,pt=0,l=1,st=ok:0
2015.05.14 19:08:16 5: MYSENSORS/RAW: /0;0;3;0;9;read
2015.05.14 19:08:16 5: MYSENSORS/RAW: 0;0;3;0;9;read/: 104-104-0 s=0
2015.05.14 19:08:16 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0/,c=1,t=16,pt=2,
2015.05.14 19:08:16 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c=1,t=16,pt=2,/l=2:1
104;0
2015.05.14 19:08:16 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:1'

2015.05.14 19:08:16 5: MYSENSORS gateway MS_gateway: read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:1
2015.05.14 19:08:16 5: MYSENSORS/RAW: 104;0/;1;0;16;1

2015.05.14 19:08:16 5: MYSENSORS Read: Rx: fr=104 ci=000 c=001(C_SET         ) st=016(V_TRIPPED       ) ack=0 '1'

Damit du mich nicht noch weiter abhängst... ???
Du versuchst über einen Event "tripped off" und einer Abfrage "steht switch1 auf off" -> dann setze switch1 auf "on" wenn nicht setze ihn auf "off" zu realisieren, korrekt?
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: Puschel74 am 14 Mai 2015, 19:21:33
ZitatDu versuchst über einen Event "tripped off" und einer Abfrage "steht switch1 auf off" -> dann setze switch1 auf "on" wenn nicht setze ihn auf "off" zu realisieren, korrekt?
So war mein Gedankengang - ja.

Da im Logfile aber nichts auftaucht wird das notify nicht ausgelöst.

Und das
define Licht_Buero_an_state notify MYSENSOR_104:.* {if(ReadingsVal('MYSENSOR_104','tripped','on') eq 'off') {fhem('set MYSENSOR_100 switch1 on')}}
funktioniert hast du gesagt?
Wenn ja mach mal das
define Licht_Buero_an_state notify MYSENSOR_104:.* {if(ReadingsVal('MYSENSOR_104','tripped','on') eq 'off') {Log(3,'$NAME - $EVENT'}}
und schau nochmal ins Logfile.

Edith:
Wo kommt das her  ???
Zitat2015-05-14 19:08:16 MYSENSORS_DEVICE MYSENSOR_100 switch1: off
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: jeti am 14 Mai 2015, 19:27:58
ja

define Licht_Buero_an_state notify MYSENSOR_104:.* {if(ReadingsVal('MYSENSOR_104','tripped','on') eq 'off') {fhem('set MYSENSOR_100 switch1 on')}}

geht
und das Logfile zu:

define Licht_Buero_an_state notify MYSENSOR_104:.* {if(ReadingsVal('MYSENSOR_104','tripped','on') eq 'off') {Log(3,'$NAME - $EVENT'}}


2015.05.14 19:26:07 5: MYSENSORS/RAW: /0;0;3;0;9;rea
2015.05.14 19:26:07 5: MYSENSORS/RAW: 0;0;3;0;9;rea/d: 104-104-0 s
2015.05.14 19:26:07 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s/=0,c=1,t=16,pt=
2015.05.14 19:26:07 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c=1,t=16,pt=/2,l=2:0
104
2015.05.14 19:26:07 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:0'

2015.05.14 19:26:07 5: MYSENSORS gateway MS_gateway: read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:0
2015.05.14 19:26:07 5: MYSENSORS/RAW: 104/;0;1;0;16;0

2015.05.14 19:26:07 5: MYSENSORS Read: Rx: fr=104 ci=000 c=001(C_SET         ) st=016(V_TRIPPED       ) ack=0 '0'

2015.05.14 19:26:07 5: MYSENSORS/RAW: /0;0;3
2015.05.14 19:26:07 5: MYSENSORS/RAW: 0;0;3/;0;9;read: 104-
2015.05.14 19:26:07 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-/104-0 s=0,c=1,
2015.05.14 19:26:07 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c=1,/t=16,pt=2,l=2:1
2015.05.14 19:26:07 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:1/
104;0;1;0;
2015.05.14 19:26:07 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:1'

2015.05.14 19:26:07 5: MYSENSORS gateway MS_gateway: read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:1
2015.05.14 19:26:07 5: MYSENSORS/RAW: 104;0;1;0;/16;1

2015.05.14 19:26:07 5: MYSENSORS Read: Rx: fr=104 ci=000 c=001(C_SET         ) st=016(V_TRIPPED       ) ack=0 '1'


ich weiß auch nicht woher das kommt... ???
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: Puschel74 am 14 Mai 2015, 19:32:33
define Licht_Buero_an_state notify MYSENSOR_104:.* {if(ReadingsVal('MYSENSOR_104','tripped','on') eq 'off') {Log(5,'$NAME - $EVENT'}}
Letzter Versuch und dann kann ich dir leider nicht weiter helfen.

Meine Codebeispiele funktionieren mit meinen Geräten einwandfrei.
MYSENSOR kenn ich leider nicht aber das im Logfile nichts auftaucht wundert mich doch sehr  :o

Edith: Es sei den du hast verbose auf 5 gestellt  ;)
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: jeti am 14 Mai 2015, 19:35:55
auch nichts... ???

2015.05.14 19:34:14 5: MYSENSORS/RAW: /0;0;3;
2015.05.14 19:34:14 5: MYSENSORS/RAW: 0;0;3;/0;9;read: 104-1
2015.05.14 19:34:14 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-1/04-0 s=0,c=1,t
2015.05.14 19:34:14 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c=1,t/=16,pt=2,l=2:0

2015.05.14 19:34:14 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:0'

2015.05.14 19:34:14 5: MYSENSORS gateway MS_gateway: read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:0
2015.05.14 19:34:14 5: MYSENSORS/RAW: /104;0;1;0;1
2015.05.14 19:34:14 5: MYSENSORS/RAW: 104;0;1;0;1/6;0

2015.05.14 19:34:14 5: MYSENSORS Read: Rx: fr=104 ci=000 c=001(C_SET         ) st=016(V_TRIPPED       ) ack=0 '0'

2015.05.14 19:34:14 5: MYSENSORS/RAW: /0;0;3
2015.05.14 19:34:14 5: MYSENSORS/RAW: 0;0;3/;0;9;read: 104-
2015.05.14 19:34:14 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-/104-0 s=0,c=1,t
2015.05.14 19:34:14 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c=1,t/=16,pt=2,l=2:1

2015.05.14 19:34:14 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:1'

2015.05.14 19:34:14 5: MYSENSORS gateway MS_gateway: read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:1
2015.05.14 19:34:14 5: MYSENSORS/RAW: /104;0;1;0;1
2015.05.14 19:34:14 5: MYSENSORS/RAW: 104;0;1;0;1/6;1

2015.05.14 19:34:14 5: MYSENSORS Read: Rx: fr=104 ci=000 c=001(C_SET         ) st=016(V_TRIPPED       ) ack=0 '1'

mal gucken ob hier noch jemand so Hilfsbereit ist wie du, vielen Dank!
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: Puschel74 am 14 Mai 2015, 19:52:07
Wirklich letzer Versuch  ::)

Definier mal einen Dummy:
define Schalter dummy
attr Schalter webCmd on:off

Dann änder das notify nochmal bitte:
Schalter:.* {
  Log(3,"$NAME - $EVENT");
  if($EVENT eq "off") {
    fhem("set MYSENSOR_100 switch1 off");
  }
  else {
    fhem("set MYSENSOR_100 switch1 on");
  }
}

Und lass mal schauen was dann kommt.

Das gibt es doch nicht das dein Code funktioniert aber keine Einträge im Logfile auftauchen.
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: jeti am 14 Mai 2015, 20:13:15
so gehts!
also wenn ich den "dummy schalter" schalte!

hier das Log dazu (1*an und 1*aus)

2015.05.14 20:13:20 4: HTTP FHEMWEB:192.168.1.124:56813 GET /fhem?cmd.Schalter=set%20Schalter%20on&room=Licht&XHR=1
2015.05.14 20:13:20 5: Cmd: >set Schalter on<
2015.05.14 20:13:20 4: dummy set Schalter on
2015.05.14 20:13:20 5: Triggering Schalter (1 changes)
2015.05.14 20:13:20 5: Notify loop for Schalter on
2015.05.14 20:13:20 5: Triggering Licht_Buero_an_aus
2015.05.14 20:13:20 4: Licht_Buero_an_aus exec {
  Log(3,"$NAME - $EVENT");;
  if($EVENT eq "off") {
    fhem("set MYSENSOR_100 switch1 off");;
  }
  else {
    fhem("set MYSENSOR_100 switch1 on");;
  }
}
2015.05.14 20:13:20 5: Cmd: >{
  Log(3,"$NAME - $EVENT");
  if($EVENT eq "off") {
    fhem("set MYSENSOR_100 switch1 off");
  }
  else {
    fhem("set MYSENSOR_100 switch1 on");
  }
}<
2015.05.14 20:13:20 3: Schalter - on
2015.05.14 20:13:20 5: Cmd: >set MYSENSOR_100 switch1 on<
2015.05.14 20:13:20 5: MYSENSORS send: Rx: fr=100 ci=001 c=001(C_SET         ) st=002(V_LIGHT         ) ack=0 '1'

2015.05.14 20:13:20 5: SW: 3130303b313b313b303b323b310a
2015.05.14 20:13:20 5: Triggering MYSENSOR_100 (1 changes)
2015.05.14 20:13:20 5: Notify loop for MYSENSOR_100 switch1: on
2015.05.14 20:13:20 4: 1605:FHEMWEB:192.168.1.124:56813: /fhem?cmd.Schalter=set%20Schalter%20on&room=Licht&XHR=1 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2015.05.14 20:13:20 5: MYSENSORS/RAW: /0;0;3;0;9;send: 0-0-100-100 s=1,c=1,t=2,pt=0,l=1,st=ok:1

2015.05.14 20:13:20 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'send: 0-0-100-100 s=1,c=1,t=2,pt=0,l=1,st=ok:1'

2015.05.14 20:13:20 5: MYSENSORS gateway MS_gateway: send: 0-0-100-100 s=1,c=1,t=2,pt=0,l=1,st=ok:1
2015.05.14 20:13:20 4: HTTP FHEMWEB:192.168.1.124:56813 GET /fhem?cmd.Schalter=set%20Schalter%20off&room=Licht&XHR=1
2015.05.14 20:13:20 5: Cmd: >set Schalter off<
2015.05.14 20:13:20 4: dummy set Schalter off
2015.05.14 20:13:20 5: Triggering Schalter (1 changes)
2015.05.14 20:13:20 5: Notify loop for Schalter off
2015.05.14 20:13:20 5: Triggering Licht_Buero_an_aus
2015.05.14 20:13:20 4: Licht_Buero_an_aus exec {
  Log(3,"$NAME - $EVENT");;
  if($EVENT eq "off") {
    fhem("set MYSENSOR_100 switch1 off");;
  }
  else {
    fhem("set MYSENSOR_100 switch1 on");;
  }
}
2015.05.14 20:13:20 5: Cmd: >{
  Log(3,"$NAME - $EVENT");
  if($EVENT eq "off") {
    fhem("set MYSENSOR_100 switch1 off");
  }
  else {
    fhem("set MYSENSOR_100 switch1 on");
  }
}<
2015.05.14 20:13:20 3: Schalter - off
2015.05.14 20:13:20 5: Cmd: >set MYSENSOR_100 switch1 off<
2015.05.14 20:13:20 5: MYSENSORS send: Rx: fr=100 ci=001 c=001(C_SET         ) st=002(V_LIGHT         ) ack=0 '0'

2015.05.14 20:13:20 5: SW: 3130303b313b313b303b323b300a
2015.05.14 20:13:20 5: Triggering MYSENSOR_100 (1 changes)
2015.05.14 20:13:20 5: Notify loop for MYSENSOR_100 switch1: off
2015.05.14 20:13:20 4: 1605:FHEMWEB:192.168.1.124:56813: /fhem?cmd.Schalter=set%20Schalter%20off&room=Licht&XHR=1 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2015.05.14 20:13:20 5: MYSENSORS/RAW: /0;0;3;0;9;send: 0-0-100-100 s=1,c=1,t=2,pt=0,l=1,st=ok:0

2015.05.14 20:13:20 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'send: 0-0-100-100 s=1,c=1,t=2,pt=0,l=1,st=ok:0'

2015.05.14 20:13:20 5: MYSENSORS gateway MS_gateway: send: 0-0-100-100 s=1,c=1,t=2,pt=0,l=1,st=ok:0
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: Puschel74 am 14 Mai 2015, 20:17:37
Zitatso gehts!
Alles andere hätte mich auch schwer an mir zweifeln lassen.

Dann ziehen wir das mal langsam auf:
MYSENSOR_104:.* {
  Log(3,"$NAME - $EVENT");
}

Den EventMonitor sollten wir nicht mehr brauchen - das FHEM-Logfile müsste reichen.
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: jeti am 14 Mai 2015, 20:23:58
logfile:

2015.05.14 20:22:32 5: MYSENSORS/RAW: /0;0;3;0;9;read
2015.05.14 20:22:32 5: MYSENSORS/RAW: 0;0;3;0;9;read/: 104-104-0 s=
2015.05.14 20:22:32 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=/0,c=1,t=16,pt=2
2015.05.14 20:22:32 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c=1,t=16,pt=2/,l=2:0
104;
2015.05.14 20:22:32 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:0'

2015.05.14 20:22:32 5: MYSENSORS gateway MS_gateway: read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:0
2015.05.14 20:22:32 5: MYSENSORS/RAW: 104;/0;1;0;16;0

2015.05.14 20:22:32 5: MYSENSORS Read: Rx: fr=104 ci=000 c=001(C_SET         ) st=016(V_TRIPPED       ) ack=0 '0'

2015.05.14 20:22:32 5: Triggering MYSENSOR_104 (1 changes)
2015.05.14 20:22:32 5: Notify loop for MYSENSOR_104 tripped: off
2015.05.14 20:22:32 5: Triggering Gast_notify_NA
2015.05.14 20:22:32 4: Gast_notify_NA exec {if(ReadingsVal('MYSENSOR_104','tripped2','on') eq 'off') {fhem('set Gast NA')}}
2015.05.14 20:22:32 5: Cmd: >{if(ReadingsVal('MYSENSOR_104','tripped2','on') eq 'off') {fhem('set Gast NA')}}<
2015.05.14 20:22:32 5: Triggering Gast_notify_weg
2015.05.14 20:22:32 4: Gast_notify_weg exec {if(ReadingsVal('MYSENSOR_104','tripped1','on') eq 'off') {fhem('set Gast weg')}}
2015.05.14 20:22:32 5: Cmd: >{if(ReadingsVal('MYSENSOR_104','tripped1','on') eq 'off') {fhem('set Gast weg')}}<
2015.05.14 20:22:32 5: Triggering Licht_Buero_an_aus
2015.05.14 20:22:32 4: Licht_Buero_an_aus exec {
  Log(3,"$NAME - $EVENT");;
}
2015.05.14 20:22:32 5: Cmd: >{
  Log(3,"$NAME - $EVENT");
}<
2015.05.14 20:22:32 3: MYSENSOR_104 - tripped: off
2015.05.14 20:22:32 5: MYSENSORS/RAW: /0;
2015.05.14 20:22:32 5: MYSENSORS/RAW: 0;/0;3;0;9;read: 1
2015.05.14 20:22:32 5: MYSENSORS/RAW: 0;0;3;0;9;read: 1/04-104-0 s=0,c
2015.05.14 20:22:32 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c/=1,t=16,pt=2,l=
2015.05.14 20:22:32 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c=1,t=16,pt=2,l=/2:1
104;0;1
2015.05.14 20:22:32 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:1'

2015.05.14 20:22:32 5: MYSENSORS gateway MS_gateway: read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:1
2015.05.14 20:22:32 5: MYSENSORS/RAW: 104;0;1/;0;16;1

2015.05.14 20:22:32 5: MYSENSORS Read: Rx: fr=104 ci=000 c=001(C_SET         ) st=016(V_TRIPPED       ) ack=0 '1'

2015.05.14 20:22:32 5: Triggering MYSENSOR_104 (1 changes)
2015.05.14 20:22:32 5: Notify loop for MYSENSOR_104 tripped: on
2015.05.14 20:22:32 5: Triggering Gast_notify_NA
2015.05.14 20:22:32 4: Gast_notify_NA exec {if(ReadingsVal('MYSENSOR_104','tripped2','on') eq 'off') {fhem('set Gast NA')}}
2015.05.14 20:22:32 5: Cmd: >{if(ReadingsVal('MYSENSOR_104','tripped2','on') eq 'off') {fhem('set Gast NA')}}<
2015.05.14 20:22:32 5: Triggering Gast_notify_weg
2015.05.14 20:22:32 4: Gast_notify_weg exec {if(ReadingsVal('MYSENSOR_104','tripped1','on') eq 'off') {fhem('set Gast weg')}}
2015.05.14 20:22:32 5: Cmd: >{if(ReadingsVal('MYSENSOR_104','tripped1','on') eq 'off') {fhem('set Gast weg')}}<
2015.05.14 20:22:32 5: Triggering Licht_Buero_an_aus
2015.05.14 20:22:32 4: Licht_Buero_an_aus exec {
  Log(3,"$NAME - $EVENT");;
}
2015.05.14 20:22:32 5: Cmd: >{
  Log(3,"$NAME - $EVENT");
}<
2015.05.14 20:22:32 3: MYSENSOR_104 - tripped: on


notify wird ausgelöst  :)
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: Puschel74 am 14 Mai 2015, 20:33:51
Und schon haben wir den üblen Täter  ::)
$NAME               - $EVENT
MYSENSOR_104 - tripped: on

Das Event ist nicht on sondern tripped: on
d.h. EVTPART0 ist tripped und EVTPART1 ist on.

MYSENSOR_104:.* {
  Log(3,"$NAME - $EVENT -- $EVTPART0 --- $EVTPART1");
}

Nur um ganz sicher zu gehen.
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: jeti am 14 Mai 2015, 20:49:19
und nochmal:


2015.05.14 20:36:50 5: MYSENSORS/RAW: /0;0;
2015.05.14 20:36:50 5: MYSENSORS/RAW: 0;0;/3;0;9;read: 104
2015.05.14 20:36:50 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104/-104-0 s=0,c=1,
2015.05.14 20:36:50 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c=1,/t=16,pt=2,l=2:
2015.05.14 20:36:50 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:/0
104;0;1;0;
2015.05.14 20:36:50 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:0'

2015.05.14 20:36:50 5: MYSENSORS gateway MS_gateway: read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:0
2015.05.14 20:36:50 5: MYSENSORS/RAW: 104;0;1;0;/16;0

2015.05.14 20:36:50 5: MYSENSORS Read: Rx: fr=104 ci=000 c=001(C_SET         ) st=016(V_TRIPPED       ) ack=0 '0'

2015.05.14 20:36:50 5: Triggering MYSENSOR_104 (1 changes)
2015.05.14 20:36:50 5: Notify loop for MYSENSOR_104 tripped: off
2015.05.14 20:36:50 5: Triggering Gast_notify_NA
2015.05.14 20:36:50 4: Gast_notify_NA exec {if(ReadingsVal('MYSENSOR_104','tripped2','on') eq 'off') {fhem('set Gast NA')}}
2015.05.14 20:36:50 5: Cmd: >{if(ReadingsVal('MYSENSOR_104','tripped2','on') eq 'off') {fhem('set Gast NA')}}<
2015.05.14 20:36:50 5: Triggering Gast_notify_weg
2015.05.14 20:36:50 4: Gast_notify_weg exec {if(ReadingsVal('MYSENSOR_104','tripped1','on') eq 'off') {fhem('set Gast weg')}}
2015.05.14 20:36:50 5: Cmd: >{if(ReadingsVal('MYSENSOR_104','tripped1','on') eq 'off') {fhem('set Gast weg')}}<
2015.05.14 20:36:50 5: Triggering Licht_Buero_an_aus
2015.05.14 20:36:50 4: Licht_Buero_an_aus exec {
  Log(3,"$NAME - $EVENT -- $EVTPART0 --- $EVTPART1");;
}
2015.05.14 20:36:50 5: Cmd: >{
  Log(3,"$NAME - $EVENT -- $EVTPART0 --- $EVTPART1");
}<
2015.05.14 20:36:50 3: MYSENSOR_104 - tripped: off -- tripped: --- off
2015.05.14 20:36:50 5: MYSENSORS/RAW: /0;0;3;0;
2015.05.14 20:36:50 5: MYSENSORS/RAW: 0;0;3;0;/9;read: 104-104
2015.05.14 20:36:50 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104/-0 s=0,c=1,t=1
2015.05.14 20:36:50 5: MYSENSORS/RAW: 0;0;3;0;9;read: 104-104-0 s=0,c=1,t=1/6,pt=2,l=2:1

2015.05.14 20:36:50 5: MYSENSORS Read: Rx: fr=000 ci=000 c=003(C_INTERNAL    ) st=009(I_LOG_MESSAGE   ) ack=0 'read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:1'

2015.05.14 20:36:50 5: MYSENSORS gateway MS_gateway: read: 104-104-0 s=0,c=1,t=16,pt=2,l=2:1
2015.05.14 20:36:50 5: MYSENSORS/RAW: /104;0;1;0;16;
2015.05.14 20:36:50 5: MYSENSORS/RAW: 104;0;1;0;16;/1

2015.05.14 20:36:50 5: MYSENSORS Read: Rx: fr=104 ci=000 c=001(C_SET         ) st=016(V_TRIPPED       ) ack=0 '1'

2015.05.14 20:36:50 5: Triggering MYSENSOR_104 (1 changes)
2015.05.14 20:36:50 5: Notify loop for MYSENSOR_104 tripped: on
2015.05.14 20:36:50 5: Triggering Gast_notify_NA
2015.05.14 20:36:50 4: Gast_notify_NA exec {if(ReadingsVal('MYSENSOR_104','tripped2','on') eq 'off') {fhem('set Gast NA')}}
2015.05.14 20:36:50 5: Cmd: >{if(ReadingsVal('MYSENSOR_104','tripped2','on') eq 'off') {fhem('set Gast NA')}}<
2015.05.14 20:36:50 5: Triggering Gast_notify_weg
2015.05.14 20:36:50 4: Gast_notify_weg exec {if(ReadingsVal('MYSENSOR_104','tripped1','on') eq 'off') {fhem('set Gast weg')}}
2015.05.14 20:36:50 5: Cmd: >{if(ReadingsVal('MYSENSOR_104','tripped1','on') eq 'off') {fhem('set Gast weg')}}<
2015.05.14 20:36:50 5: Triggering Licht_Buero_an_aus
2015.05.14 20:36:50 4: Licht_Buero_an_aus exec {
  Log(3,"$NAME - $EVENT -- $EVTPART0 --- $EVTPART1");;
}
2015.05.14 20:36:50 5: Cmd: >{
  Log(3,"$NAME - $EVENT -- $EVTPART0 --- $EVTPART1");
}<
2015.05.14 20:36:50 3: MYSENSOR_104 - tripped: on -- tripped: --- on


Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: Puschel74 am 14 Mai 2015, 20:59:14
Zitatund nochmal:
Danke.

Dann sollte das hoffentlich klappen:
MYSENSOR_104:.* {
  if($EVTPART1 eq "off") {
    if(ReadingsVal("MYSENSOR_100","switch1","undef") eq "off") {
      fhem("set MYSENSOR_100 switch1 on");
    }
    else {
      fhem("set MYSENSOR_100 switch1 off");
    }
  }
}

Wenn nicht müssen wir MYSENSOR_100 zerpflücken anfangen aber lt. deinem Screenshot sollte das so funktionieren.
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: jeti am 14 Mai 2015, 21:17:12
es geht perfekt, nun nochmal alles nachvollziehen! vielen Herzlichen Dank!

um noch deine OT Frage zu beantworten:
Die ganze Thematik ist extrem Umfangreich (vorallem auch wenn meine rudimentäre Programmierschulungen schon Jahre her sind) und ich bin trotz lesen des PDFs und durchforsten der Referenz oft noch wie der Ochs vor dem Scheunentor  :-[
Daher bin ich über Leute wie dich sehr dankbar!

viele Grüße!
Titel: Antw:MySensors Schalter/Taster und Aktor
Beitrag von: Puschel74 am 14 Mai 2015, 21:51:43
Zitates geht perfekt,
Das freut mich.

Zitatnun nochmal alles nachvollziehen!
Ist nicht schwer.
$EVENT kann mehrere Bestandteile haben - $EVTPART0 ... $EVTPARTx
Je nachdem wie das Event durch das Device generiert wird.
Meine Geräte haben in $EVENT idR bereits on oder off stehen - deine eben nicht.
Das lässt sich aber schön mit einer Logausgabe überprüfen - und darauf dann das notify (oder DOIF) aufbauen.

Zitatvielen Herzlichen Dank!
Gern geschehen.

Eine Bitte noch - siehe auch mein angepinnter Beitrag  :P
Bearbeite noch deinen ersten Beitrag - stell den funktionierenden Code dort ein und wirf evtl. noch die eine oder andere Erklärung ein.
Dann dem Titel ein (Gelöst) vorne dran - nicht schliessen!
Nachfolgende finden dann die Frage - den Versuch - die Lösung und die Erklärung dazu ohne gleich den gesamten Beitrag lesen zu müssen.
Die nächsten Anfänger werden es dir danken  ;)

ZitatDaher bin ich über Leute wie dich sehr dankbar!
Wenn du wüsstest - ich kann auch anders  8)