FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: trickster444 am 22 Oktober 2017, 11:17:29

Titel: S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: trickster444 am 22 Oktober 2017, 11:17:29
Hallo,

ich habe folgendes Problem. Ich will den Zustand des Homematic Fensterkontaktes in den S7 Merker M62.4 schreiben um damit meine Heizung in diesem Raum abzustellen. Der Fensterkontakt ist in der Homematic angelernt und ich sehe auch den Wechsel in FHEM von 0-->1. Leider bekomme ich diesen Wert nicht in die SPS geschrieben.

Wenn ich den Merker "defmod FensterArbeitszimmer_M_62_4" über den Set On Befehl setze dann kommt das Signal auch richtig in der SPS an.

Ich vermute es liegt an dem Notify. Hat jemand eine Idee was ich falsch mache ?

defmod ArbeitszimmerStatus notify FensterArbeitszimmer:on set FensterArbeitszimmer_M ON

defmod FensterArbeitszimmer_M_62_4 S7_DWrite flags 0 62.4

defmod FensterArbeitszimmer HMCCUDEV OEQ0164XXX
attr FensterArbeitszimmer IODev CCU2
attr FensterArbeitszimmer ccureadingfilter (STATE|LOWBAT|ON_TIME)
attr FensterArbeitszimmer icon fts_window_1w_open
attr FensterArbeitszimmer room Testraum
attr FensterArbeitszimmer statevals on:true,off:false
attr FensterArbeitszimmer webCmd on:off

Danke !!

Trickster444
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: CoolTux am 22 Oktober 2017, 11:23:25

defmod ArbeitszimmerStatus notify FensterArbeitszimmer:on

Zu mindest meine Fensterkontakte liefern ein open oder closed. Sicher das es bei dir on ist? Was liefert der Eventmonitor.
Bitte benutze Codetags, die Raute oben in der Symbolleiste des Forums.
Und ein list der Devices ist immer besser.
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: CoolTux am 22 Oktober 2017, 11:31:28
Ah sehe gerade das hast ne CCU2 angebunden.
Ok, aber gerade deswegen brauchen wir Auszug aus dem Eventmonitor und list der beiden Devices
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: trickster444 am 22 Oktober 2017, 12:23:18
So, hier nochmal der korrekte Code

defmod ArbeitszimmerStatus notify FensterArbeitszimmer:on set FensterArbeitszimmer_M_62_4 ON
attr ArbeitszimmerStatus room Testraum

setstate ArbeitszimmerStatus active
setstate ArbeitszimmerStatus 2017-10-22 11:55:20 state active



defmod FensterArbeitszimmer_M_62_4 S7_DWrite flags 0 62.4
attr FensterArbeitszimmer_M_62_4 IODev mySPS
attr FensterArbeitszimmer_M_62_4 room Testraum

setstate FensterArbeitszimmer_M_62_4 off
setstate FensterArbeitszimmer_M_62_4 2017-10-22 11:03:35 state off



defmod FensterArbeitszimmer HMCCUDEV OEQ0164649
attr FensterArbeitszimmer IODev CCU2
attr FensterArbeitszimmer ccureadingfilter (STATE|LOWBAT|ON_TIME)
attr FensterArbeitszimmer room Testraum
attr FensterArbeitszimmer webCmd on:off

setstate FensterArbeitszimmer 1
setstate FensterArbeitszimmer 2017-10-21 15:51:38 1.LOWBAT 0
setstate FensterArbeitszimmer 2017-10-21 15:51:38 1.STATE 1
setstate FensterArbeitszimmer 2017-10-21 15:51:38 hmstate 1
setstate FensterArbeitszimmer 2017-10-22 12:19:07 state Initialized



Das Fenster ist aktuell im Zustand "offen" deshalb der State"1"
Die Eventliste kann ich schicken sobald ich vor Ort bin und nicht über Fernwartung verbundenn bin.

TRICKSTER444
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: CoolTux am 22 Oktober 2017, 15:14:14
Damit kann ich nichts anfangen.
Ich bräuchte bitte ein list, kein Code.

In FHEMWEB gibst du in der Commandline ein
list DEVICENAME

Ausgabe dann hier posten.
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: trickster444 am 22 Oktober 2017, 17:16:28
Ich hoffe jetzt ist es richtig.

2017-10-22 17:14:21 S7_DWrite FensterArbeitszimmer_M_62_4 off
2017-10-22 17:14:23 S7_DWrite FensterArbeitszimmer_M_62_4 off
2017-10-22 17:14:24 S7_DWrite FensterArbeitszimmer_M_62_4 off
2017-10-22 17:14:25 S7_DWrite FensterArbeitszimmer_M_62_4 off
2017-10-22 17:14:27 S7_DWrite FensterArbeitszimmer_M_62_4 off
2017-10-22 17:14:30 HMCCUDEV FensterArbeitszimmer 1.LOWBAT: 0
2017-10-22 17:14:30 HMCCUDEV FensterArbeitszimmer 1.STATE: 0
2017-10-22 17:14:30 HMCCUDEV FensterArbeitszimmer 0
2017-10-22 17:14:30 HMCCUDEV FensterArbeitszimmer hmstate: 0
2017-10-22 17:14:30 S7_DWrite FensterArbeitszimmer_M_62_4 off
2017-10-22 17:14:31 HMCCUDEV FensterArbeitszimmer 1.STATE: 1
2017-10-22 17:14:31 HMCCUDEV FensterArbeitszimmer 1
2017-10-22 17:14:31 HMCCUDEV FensterArbeitszimmer 1.LOWBAT: 0
2017-10-22 17:14:31 HMCCUDEV FensterArbeitszimmer hmstate: 1
2017-10-22 17:14:32 S7_DWrite FensterArbeitszimmer_M_62_4 off
2017-10-22 17:14:33 S7_DWrite FensterArbeitszimmer_M_62_4 off
2017-10-22 17:14:35 S7_DWrite FensterArbeitszimmer_M_62_4 off
2017-10-22 17:14:36 S7_DWrite FensterArbeitszimmer


Internals:
   CFGFN
   DEF        OEQ0377018
   IODev      CCU2
   NAME       Garage
   NR         84837
   STATE      0
   TYPE       HMCCUDEV
   ccuaddr    OEQ0377018
   ccudevstate active
   ccuif      BidCos-RF
   ccuname    HM-LC-Sw1-FM OEQ0377018
   ccutype    HM-LC-Sw1-FM
   channels   2
   statevals  devstate
   READINGS:
     2017-10-21 19:48:38   1.STATE         0
     2017-10-21 19:48:37   1.WORKING       0
     2017-10-21 19:48:38   hmstate         0
     2017-10-21 19:48:38   state           0
   hmccu:
     dp:
       0.STICKY_UNREACH:
         OSVAL      1
         OVAL       1
         SVAL       1
         VAL        1
       0.UNREACH:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       1.STATE:
         OSVAL      1
         OVAL       1
         SVAL       0
         VAL        0
       1.WORKING:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
Attributes:
   IODev      CCU2
   icon       fts_garage
   room       Testraum



Internals:
   ADDRESS    62.4
   AREA       flags
   CFGFN
   DB         0
   DEF        flags 0 62.4
   IODev      mySPS
   LASTInputDev mySPS
   LENGTH     1
   MSGCNT     566806
   NAME       FensterArbeitszimmer_M_62_4
   NR         191296
   POSITION   500
   STATE      off
   TYPE       S7_DWrite
   mySPS_MSGCNT 566806
   mySPS_TIME 2017-10-22 16:09:04
   READINGS:
     2017-10-22 16:09:04   state           off
Attributes:
   IODev      mySPS
   room       Testraum
   webCmd     TRIGGER



Internals:
   CFGFN
   DEF        FensterArbeitszimmer:on set FensterArbeitszimmer_M_62_4 TRIGGER
   NAME       ArbeitszimmerStatus
   NOTIFYDEV  FensterArbeitszimmer
   NR         181309
   NTFY_ORDER 50-ArbeitszimmerStatus
   REGEXP     FensterArbeitszimmer:on
   STATE      active
   TYPE       notify
   READINGS:
     2017-10-22 12:57:22   state           active
Attributes:
   room       Testraum


Danke

Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: CoolTux am 22 Oktober 2017, 17:27:33
FensterArbeitszimmer_M_62_4 ist ungleich FensterArbeitszimmer
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: trickster444 am 24 Oktober 2017, 15:37:19

Hallo,

also ich habe es jetzt geschafft mit dem Notify:

defmod ArbeitszimmerStatus notify FensterArbeitszimmer set FensterArbeitszimmer_M_62_4 on

den Merker in der SPS zu setzten, leider bleibt der Merker dann immer anstehen in der SPS ist. Ich würde gerne der Merker auf "1" schalten wenn der Fensterkontakt auf "1" ist und wieder auf "0" schalten wenn der Fensterkontakt wieder auf "0" ist. Das Rücksetzten bei Notify scheint nicht zu funktionieren.

Hier nochmal der aktuelle Code.

FensterArbeitszimmer --> der Fensterkontakt der in die CCU2 geht

Internals:
   CFGFN
   DEF        OEQ0164649
   IODev      CCU2
   NAME       FensterArbeitszimmer
   NR         181091
   STATE      1
   TYPE       HMCCUDEV
   ccuaddr    OEQ0164649
   ccudevstate active
   ccuif
   ccuname    HMW-RCV-50 BidCoS-Wir:0
   ccutype    HM-Sec-SC-2
   channels
   statevals  devstate
   READINGS:
     2017-10-22 15:52:25   0.LOWBAT        0
     2017-10-23 19:26:07   1.LOWBAT        0
     2017-10-23 19:26:07   1.STATE         1
     2017-10-23 19:26:07   hmstate         1
     2017-10-23 19:26:07   state           1
   hmccu:
     dp:
       0.LOWBAT:
         OSVAL      1
         OVAL       1
         SVAL       0
         VAL        0
       1.ERROR:
         OVAL       0
         VAL        0
       1.LOWBAT:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       1.STATE:
         OSVAL      0
         OVAL       0
         SVAL       1
         VAL        1
Attributes:
   IODev      CCU2
   ccureadingfilter (STATE|LOWBAT|ON_TIME)
   room       Testraum
   webCmd     on:off


FensterArbeitszimmer_M_62_4 --> der Merker der in der SPS gesetzt werden soll

Internals:
   ADDRESS    62.4
   AREA       flags
   CFGFN
   DB         0
   DEF        flags 0 62.4
   IODev      mySPS
   LASTInputDev mySPS
   LENGTH     1
   MSGCNT     662274
   NAME       FensterArbeitszimmer_M_62_4
   NR         191296
   POSITION   500
   STATE      off
   TYPE       S7_DWrite
   mySPS_MSGCNT 662274
   mySPS_TIME 2017-10-24 15:13:04
   READINGS:
     2017-10-24 15:13:04   state           off
Attributes:
   IODev      mySPS
   room       Testraum
   webCmd     trigger


ArbeitszimmerStatus --> Notify das den Merker schalten soll wenn der Fensterkontakt geschaltet wird.

Internals:
   CFGFN
   DEF        FensterArbeitszimmer set FensterArbeitszimmer_M_62_4 on
   NAME       ArbeitszimmerStatus
   NOTIFYDEV  FensterArbeitszimmer
   NR         181309
   NTFY_ORDER 50-ArbeitszimmerStatus
   REGEXP     FensterArbeitszimmer
   STATE      2017-10-23 19:26:07
   TYPE       notify
   READINGS:
     2017-10-23 19:24:37   state           active
Attributes:
   room       Testraum


Danke.
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: CoolTux am 24 Oktober 2017, 16:23:52

defmod ArbeitszimmerStatus notify FensterArbeitszimmer.[0-1] { fhem("set FensterArbeitszimmer_M_62_4 " . ($EVENT == 1 ? "on" : "off") );
}

Wenn 1 dann sende on ansonsten Off
Passt das so? Kann gerade nicht testen.
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: trickster444 am 24 Oktober 2017, 19:45:36
 Genial !!!!! Das passt !!!

Super, vielen Dank !

Kannst du mir mal noch erklären was die Befehle genau machen ?

Trickster444
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: CoolTux am 25 Oktober 2017, 00:43:22
FensterArbeitszimmer.[0-1]
RegEx auf die er matchen/triggern soll

{ fhem("set FensterArbeitszimmer_M_62_4 "
{ Auf Perlebene gehen

fhem("
FHEM Befehl ausführen

set FensterArbeitszimmer_M_62_4
FHEM Befehl

. ($EVENT == 1 ? "on" : "off")
Punkt bedeutet String anfügen und der Rest ist eine Bedingungsabfrage


Ist einfaches Perl und schnell gelernt.



Grüße
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: trickster444 am 29 Oktober 2017, 20:45:10
Hallo CoolTux,

Ich habe noch ein Problem das der Befehl immer nur triggert wird bei Signalwechsel und nicht den Signalzustand von FensterArbeitszimmer weitergibt. Das Problem ist bei Hardwareänderungen und Neustart der SPS wird der Status des Merkers getriggert, obwohl ich nicht weiß ob das Fenster offen oder geschlossen ist.

Danke für die Hilfe im Voraus.
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: CoolTux am 30 Oktober 2017, 01:18:45
Lass uns schauen ob ich Dich richtig verstanden habe.
Wenn Du zum Beispiel FHEM neu startest, kann es sein das im Device FensterArbeitszimmer_M_62_4 ein on steht obwohl im Device FensterArbeitszimmer eine 0 steht?
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: trickster444 am 31 Oktober 2017, 14:12:30
Das Problem ist der Neustart der SPS, dann werden die Merker auf 0 gesetzt und ich bekommen dann keinen sauberen Status auch wenn der Fensterkontakt auf 1 steht. Erst wenn der Kontakt auf 0 wechselt , dann wird das Signal in der SPS getriggert. Also habe ich nach dem Neustart der SPS keinen eindeutigen Zustand ob die Fenster offen oder geschlossen sind. Ist es möglich den Status des Fensterkontaktes aus der CCU an die SPS zu schicken ? Was ich versucht habe, war der Befehlt set:on, hat aber nicht funktioniert.


Danke
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: CoolTux am 31 Oktober 2017, 14:24:47
Bekommt FHEM einen Neustart der SPS mit? Eventuell kann man hier ein Event triggern um eine Abfrage zu starten.
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: trickster444 am 31 Oktober 2017, 16:18:48
FHEM bekommt den Neustart nicht mit.
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: MarkBinary am 01 November 2017, 06:44:08
Versuch bitte deine Merker in einen Remanenz Bereich zu verschieben. Die Speicherbereiche kannst du in der Hardwareconfig einstellen.
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: MarkBinary am 01 November 2017, 07:00:07
Um den Neustart der SPS Fhem mitzuteilen, kannst du den Anlauf OB (OB100) nutzen.
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: pc1246 am 01 November 2017, 09:31:26
Moin
Wie MarkBinary schon geschrieben hat, remanente Merker nutzen, oder einen DB benutzen!
Grundsaetzlich halte ich das aber sowieso nicht fuer einen guten Plan! Was ist denn, wenn fhem mal ausfaellt? Ich weiss, dies ist unwahrscheinlich, aber durchaus moeglich! Du musst ja hierfuer auch ein Szenario entwickeln, und ich denke es ist schlimmer, wenn die Heizung nicht wieder warm wird, wenn man das Fenster schliesst, als anders herum!?
Ich werde mir bei Gelegenheit einen Watchdog implementieren, so dass meine S7 weiss, ob fhem lebt. Damit kann ich dann entscheiden, ob fhem oder die S7 steuert.
Gruss Christoph
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: trickster444 am 02 November 2017, 13:35:04
FHEM bekommt leider nichts von dem Neustart der SPS mit.
Titel: Antw:S7 300 Anbindung an Homematic Fensterkontakt
Beitrag von: pc1246 am 03 November 2017, 07:02:27
Zitat von: trickster444 am 02 November 2017, 13:35:04
FHEM bekommt leider nichts von dem Neustart der SPS mit.
Das hattest Du bereits gepostet! Hast du inzwischen etwas geaendert, wie vorgeschlagen?
Gruss Christoph