Gelöst - MySensors Schalter/Taster und Aktor

Begonnen von jeti, 14 Mai 2015, 15:08:43

Vorheriges Thema - Nächstes Thema

jeti

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.

Puschel74

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.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

jeti

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

Puschel74

#3
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.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

jeti

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");
  }
}

Puschel74

Aus der fhem.cfg kopiert fehlt aber das define vorne dran.

Aber was geht nun nicht?
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

jeti

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'

Puschel74

#7
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.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

jeti

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!!!!

Puschel74

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  ???
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

jeti

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

Puschel74

#11
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.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

jeti

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?

Puschel74

#13
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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

jeti

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... ???