meine Markise spielt verrückt

Begonnen von hobbyprovider, 31 März 2014, 21:16:56

Vorheriges Thema - Nächstes Thema

hobbyprovider

Hallo,
ich habe meine Markise mit dem Rollladen-Aktor HM-LC-Bl1PBU-FM angesteuert.
(Rollladen-Aktor mit Taster)
Funktioniert alles soweit.
Ich habe noch die Laufzeiten angepasst mit
set SW_Markise regSet driveDown 35
set SW_Markise regSet driveUp 36
set SW_Markise regSet driveTurn 2

jetzt das Problem:
Die Markise ist 25% ausgefahren und ich gebe über das Webinteface den Befehl 0% anzusteuern, läuft der Motor wie gewünscht los.
Ich will (warum auch immer) den Motor vom Schalter aus stoppen und betätige den Schalter Richtung 100%.
Jetzt stoppt der Motor wie gewünscht. Nach 2 Sekunden läüft der Motor auf 100% - stoppt für einige Sekunden - und läuft wieder auch 0%. Das ist jetzt nicht mehr was ich will...

Gibt es da einen Trick/Workaround ?

Die Logs für den Aktor:
2014-03-31 20:07:45.040 CUL_HM SW_Markise set_0%
2014-03-31 20:07:45.310 CUL_HM SW_Markise level: 25 %
2014-03-31 20:07:45.310 CUL_HM SW_Markise pct: 25
2014-03-31 20:07:45.310 CUL_HM SW_Markise deviceMsg: 25 % (to HMLAN1)
2014-03-31 20:07:45.310 CUL_HM SW_Markise 25 %
2014-03-31 20:07:45.310 CUL_HM SW_Markise timedOn: 0%
2014-03-31 20:07:45.310 CUL_HM SW_Markise motor: down:25 %
2014-03-31 20:07:58.053 CUL_HM SW_Markise level: 40 %
2014-03-31 20:07:58.053 CUL_HM SW_Markise pct: 40
2014-03-31 20:07:58.053 CUL_HM SW_Markise deviceMsg: 40 % (to HMLAN1)
2014-03-31 20:07:58.053 CUL_HM SW_Markise 40 %
2014-03-31 20:07:58.053 CUL_HM SW_Markise timedOn: 0%
2014-03-31 20:07:58.053 CUL_HM SW_Markise motor: up:40 %
2014-03-31 20:08:33.819 CUL_HM SW_Markise level: 100 %
2014-03-31 20:08:33.819 CUL_HM SW_Markise pct: 100
2014-03-31 20:08:33.819 CUL_HM SW_Markise deviceMsg: 100% (to HMLAN1)
2014-03-31 20:08:33.819 CUL_HM SW_Markise 100%
2014-03-31 20:08:33.819 CUL_HM SW_Markise timedOn: 0%
2014-03-31 20:08:33.819 CUL_HM SW_Markise motor: stop:100%
2014-03-31 20:08:34.247 CUL_HM SW_Markise level: 100 %
2014-03-31 20:08:34.247 CUL_HM SW_Markise pct: 100
2014-03-31 20:08:34.247 CUL_HM SW_Markise deviceMsg: 100% (to HMLAN1)
2014-03-31 20:08:34.247 CUL_HM SW_Markise 100%
2014-03-31 20:08:34.247 CUL_HM SW_Markise timedOn: 0%
2014-03-31 20:08:34.247 CUL_HM SW_Markise motor: down:100%
2014-03-31 20:09:23.357 CUL_HM SW_Markise level: 0 %
2014-03-31 20:09:23.357 CUL_HM SW_Markise pct: 0
2014-03-31 20:09:23.357 CUL_HM SW_Markise deviceMsg: 0% (to HMLAN1)
2014-03-31 20:09:23.357 CUL_HM SW_Markise 0%
2014-03-31 20:09:23.357 CUL_HM SW_Markise timedOn: 0%
2014-03-31 20:09:23.357 CUL_HM SW_Markise motor: stop:0%


FHEM-Log:
2014.03.31 20:07:45.052 2: CUL_HM set SW_Markise off
2014.03.31 20:07:45.055 0: HMLAN_Send:  HMLAN1 S:S19535EE3 stat:  00 t:00000000 d:01 r:19535EE3 m:16 A011 706958 20B10D 0201000000
2014.03.31 20:07:45.213 0: HMLAN_Parse: HMLAN1 R:R19535EE3 stat:0001 t:F21B4EA3 d:FF r:FFC4     m:16 8002 20B10D 706958 010132203E
2014.03.31 20:07:57.958 0: HMLAN_Parse: HMLAN1 R:E20B10D   stat:0000 t:F21B8068 d:FF r:FFC3     m:18 A410 20B10D 706958 06015010
2014.03.31 20:08:26.591 0: HMLAN_Parse: HMLAN1 R:E24AF20   stat:0000 t:F21BF045 d:FF r:FFA2     m:1E 845E 24AF20 000000 80FF4C000006001208F8FE
2014.03.31 20:08:33.634 0: HMLAN_Parse: HMLAN1 R:E20B10D   stat:0000 t:F21C0BCA d:FF r:FFC3     m:19 A410 20B10D 706958 0601C800
2014.03.31 20:08:33.643 3: CUL_HM SW_Markise repeat, level C8 instead of 00
2014.03.31 20:08:33.730 0: HMLAN_Send:  HMLAN1 S:S19541CB2 stat:  00 t:00000000 d:01 r:19541CB2 m:17 A011 706958 20B10D 0201000000
2014.03.31 20:08:34.152 0: HMLAN_Parse: HMLAN1 R:R19541CB2 stat:0001 t:F21C0DD5 d:FF r:FFC3     m:17 8002 20B10D 706958 0101C8203E
2014.03.31 20:09:23.262 0: HMLAN_Parse: HMLAN1 R:E20B10D   stat:0000 t:F21CCDAD d:FF r:FFC3     m:18 A410 20B10D 706958 06010000
2014.03.31 20:11:02.090 0: HMLAN_Parse: HMLAN1 R:E24AF20   stat:0000 t:F21E4FC7 d:FF r:FFA1     m:1F 845E 24AF20 000000 80FF4C000005001308FDFD
2014.03.31 20:12:15.282 0: HMLAN_Parse: HMLAN1 R:E20FEFE   stat:0000 t:F21F6DB9 d:FF r:FFCF     m:15 8410 20FEFE 000000 06010000
2014.03.31 20:13:23.091 0: HMLAN_Parse: HMLAN1 R:E24AF20   stat:0000 t:F22076A4 d:FF r:FFA3     m:20 845E 24AF20 000000 80FF4C000005001308F6FE
mein System:
2 vernetzte FHEM auf RPi
1.: mit Cul 868 und 433
2.: mit 1Wire-Adapter DS9490R

martinp876

hm... - Problem ist mir klar.
ich muss einmal darüber nachdenken.
Grund ist, dass manchmal ein Rollo nach einem Kommando 0% nicht fährt. Es meldet "ok, 30%". Daher wiederholt FHEM.
Sollt ein Trigger kommen, der die Fahrt stoppt passiert dies nicht (kein Wiederholer).
Nun gibt es von eingebauten Schalter aber keinen "sichtbaren" Triggern, auf den FHEM reagieren könnte.... leider.

Gruss Martin

martinp876

probiere einmal Version 5385 - sollte funktioniren, ausser du drückst sehr schnell auf Stop

hobbyprovider

Version 5385 von was ?

"schnell" ist relativ - ich benötige ca 5 Sekunden zw Kommando auf dem Webinterface und drücken des Schalters.

Wenn ich den Taster bediene kommt nach dem Stop des Modors mit einigen Sekunden Verzögerung sowas:
2014-04-01 17:24:43 CUL_HM SW_Markise level: 32 %
2014-04-01 17:24:43 CUL_HM SW_Markise pct: 32
2014-04-01 17:24:43 CUL_HM SW_Markise deviceMsg: 32 % (to HMLAN1)
2014-04-01 17:24:43 CUL_HM SW_Markise 32 %
2014-04-01 17:24:43 CUL_HM SW_Markise timedOn: 0%
2014-04-01 17:24:43 CUL_HM SW_Markise motor: stop:32 %


vielleicht verwirrt das den FHEM
mein System:
2 vernetzte FHEM auf RPi
1.: mit Cul 868 und 433
2.: mit 1Wire-Adapter DS9490R

martinp876

Sollte morgen im Update sein.
mit "version " kannst du die Versionen sehen.

5sec sollten reichen. Ich sehe, dass das Device so nach 0.5s reagiert.

hobbyprovider

Zitat von: martinp876 am 01 April 2014, 17:50:04
mit "version " kannst du die Versionen sehen.
schon klar - ich nehme an "10_CUL_HM.pm"

ich probiere es morgen auf jeden Fall aus
mein System:
2 vernetzte FHEM auf RPi
1.: mit Cul 868 und 433
2.: mit 1Wire-Adapter DS9490R

hobbyprovider

ist zwar etwas anders - aber noch nicht OK

was auffällt ist: Der Aktor schick ca 12 Sekunden nachdem der Motor stoppt einen Status. Egal ob über web oder Taster gesteuert wurde.
z.B.:
CUL_HM SW_Markise level: 100
CUL_HM SW_Markise pct: 100
CUL_HM SW_Markise deviceMsg: 100% (to HMLAN1)
CUL_HM SW_Markise 100%
CUL_HM SW_Markise timedOn: 0%
CUL_HM SW_Markise motor: stop:100%


ich habe etwas abweichendes Verhalten je nach Laufrichtung, die ich stoppen will.


Test1:
Markise steht bei 75%, ich gebe über Web den Befehl 100%
CUL_HM SW_Markise set_100%
CUL_HM SW_Markise level: 75.5
CUL_HM SW_Markise pct: 75.5
CUL_HM SW_Markise deviceMsg: 75.5 (to HMLAN1)
CUL_HM SW_Markise 75.5
CUL_HM SW_Markise timedOn: 0%
CUL_HM SW_Markise motor: up:75.5

nach 3 Sekunden stoppe mit dem Taster und der Motor stoppt
nach die 12 Sek läuft der Motor bis 100% und ich sehe:
CUL_HM SW_Markise level: 84.5
CUL_HM SW_Markise pct: 84.5
CUL_HM SW_Markise deviceMsg: 84.5 (to HMLAN1)
CUL_HM SW_Markise 84.5
CUL_HM SW_Markise timedOn: 0%
CUL_HM SW_Markise motor: stop:84.5
CUL_HM SW_Markise level: 84.5
CUL_HM SW_Markise pct: 84.5
CUL_HM SW_Markise deviceMsg: 84.5 (to HMLAN1)
CUL_HM SW_Markise 84.5
CUL_HM SW_Markise timedOn: 0%
CUL_HM SW_Markise motor: up:84.5

nach meinem Verständnis sagt ihm aber keiner was von 100%


Test 2:
Markise steht bei 66%, ich gebe über Web den Befehl 75%:
CUL_HM SW_Markise level: set_75
CUL_HM SW_Markise set_75
CUL_HM SW_Markise level: 66
CUL_HM SW_Markise pct: 66
CUL_HM SW_Markise deviceMsg: 66 (to HMLAN1)
CUL_HM SW_Markise 66
CUL_HM SW_Markise timedOn: 0%
CUL_HM SW_Markise motor: up:66

ich stoppe mit Taster, der Motor stoppt und nach 12 Sek sehe ich
CUL_HM SW_Markise level: 73
CUL_HM SW_Markise pct: 73
CUL_HM SW_Markise deviceMsg: 73 (to HMLAN1)
CUL_HM SW_Markise 73
CUL_HM SW_Markise timedOn: 0%
CUL_HM SW_Markise motor: stop:73

aber der Motor bleibt stehen - keine weiteren Meldungen


Test 3:
Markise steht bei 75%, ich gebe über Web den Befehl 25%: (Markise soll also diemal hoch fahren)
CUL_HM SW_Markise level: set_25
CUL_HM SW_Markise set_25
CUL_HM SW_Markise level: 75
CUL_HM SW_Markise pct: 75
CUL_HM SW_Markise deviceMsg: 75 (to HMLAN1)
CUL_HM SW_Markise 75
CUL_HM SW_Markise timedOn: 0%
CUL_HM SW_Markise motor: down:75

nach stoppen über Taster fährt der Motor SOFORT Richtung 100%
gibt nach 12 Sek einen Zwischenstatus:
CUL_HM SW_Markise level: 60.5
CUL_HM SW_Markise pct: 60.5
CUL_HM SW_Markise deviceMsg: 60.5 (to HMLAN1)
CUL_HM SW_Markise 60.5
CUL_HM SW_Markise timedOn: 0%
CUL_HM SW_Markise motor: up:60.5

12 Sek nach stopp bei 100%:
CUL_HM SW_Markise level: 100
CUL_HM SW_Markise pct: 100
CUL_HM SW_Markise deviceMsg: 100% (to HMLAN1)
CUL_HM SW_Markise 100%
CUL_HM SW_Markise timedOn: 0%
CUL_HM SW_Markise motor: stop:100%
mein System:
2 vernetzte FHEM auf RPi
1.: mit Cul 868 und 433
2.: mit 1Wire-Adapter DS9490R

hobbyprovider

ich hatte schon die Idee ein NOTIFY auf "SW_Markise motor: stop:" zu setzen und damit noch mal ein "stop" zu schicken.
leider schickt der Aktor nach dem stop-Befehl eine Bestätigung:
CUL_HM SW_Markise set_stop

CUL_HM SW_Markise level: 100
CUL_HM SW_Markise pct: 100
CUL_HM SW_Markise deviceMsg: 100% (to HMLAN1)
CUL_HM SW_Markise 100%
CUL_HM SW_Markise timedOn: 0%
CUL_HM SW_Markise motor: stop:100%

damit hätte ich eine Endlosschleife....
mein System:
2 vernetzte FHEM auf RPi
1.: mit Cul 868 und 433
2.: mit 1Wire-Adapter DS9490R

martinp876

hi,

ich habe es gerade einmal probiert... und kann es nicht nachvollziehen.
Natürlich kannst du so ein Verhalten in deinem Rollo intern programmiert haben....

Also mache doch einmal einen deine teste und zeichne die Rohmessages auf - damit ich sehen kann, wer was sendet.

Gruss Martin

hobbyprovider

#9
Hallo Martin,
bin erst jetzt wieder dazu gekommen zu testen.....
Ich glaube das Problem ist an anderer Stelle zu suchen.
Da ich zu faul war zwischen PC und Markisenschalter hin und her zu rennen und mein Tablet leer war, habe ich "set SW_Markise 100%" auf meinen 12-Tasten-Sender gelegt.
Damit tritt das Problem NICHT auf !
Auf meinem Webinterface habe ich diese Einstellungen für den Markisenschalter:
attr SW_Markise webCmd stop:0%:25%:50%:75%:100%:stop
und dabei tritt das Problem nur auf, wenn ich 100% klicke. Bei 50 u 75% ist alles OK.

Dass der Motor bei Laufrichtung x% > 0% sofort die Laufrichung ändert, scheint am Aktor zu liegen.
Ich habe mal zw. Starten des Motors via Web und stoppen via Taster mein HMLAN abgeschaltet und das Phenomen tritt trotzdem auf. Ebenfalls beim Starten des Motors über 12-Tasten-Sender.

Wenn Du willst, ziehe ich Dir trotzdem die Logs

Ulf
mein System:
2 vernetzte FHEM auf RPi
1.: mit Cul 868 und 433
2.: mit 1Wire-Adapter DS9490R

martinp876

Also, dass ich es verstanden habe:
wenn du vom Web 100% setzt, die Markise fährt, HMLAN wird abgetrennt, RC12 sendet stop => Rollo stoppt, Rollo fährt weiter

korrekt verstanden?

Dann scheint es an der Programmierung IM BL-Aktor zu liegen...
kannst du
- intKeysVisib = visib setzen
- alle Register posten (z.B. mit set hm -f SW_Markise Register)

Mal sehen, ob was zu sehen ist.

Gruss Martin

hobbyprovider

Zitat von: martinp876 am 06 April 2014, 09:44:42
korrekt verstanden?

ich glaube nicht...
- Wenn ich vom RC12 aus 100% setze, am Taster des Aktors stoppe, dann ist alles OK
- Wenn ich vom Web 100% setze, am Taster des Aktors stoppe, dann Fährt die Markise nach einiger Zeit weiter
- Wenn ich vom Web 100% setze, HMLAN trenne, dann am Taster des Aktors stoppe, dann ist alles OK
sobald ich den HMLAN wieder Stecke fährt die Markise wieder an, ohne dass irgendwas gedrückt wurde.

den Rest liefere ich nach
mein System:
2 vernetzte FHEM auf RPi
1.: mit Cul 868 und 433
2.: mit 1Wire-Adapter DS9490R

hobbyprovider

Zitat- alle Register posten (z.B. mit set hm -f SW_Markise Register)
den Befehl verstehe ich nicht

Hier die Register:

fhem> get SW_Markise reg all

SW_Markise type:blindActuator -

list:peer       register         :value
   0:           confBtnTime      :255 min
   0:           intKeyVisib      :visib
   0:           localResDis      :off
   0:           localResDis      :off
   0:           pairCentral      :0x706958
   1:           driveDown        :35 s
   1:           driveTurn        :2 s
   1:           driveUp          :36 s
   1:           refRunCounter    :0
   1:           sign             :off
   1:           statusInfoMinDly :3 s
   1:           statusInfoMinDly :3 s
   1:           statusInfoRandom :0 s
   1:           statusInfoRandom :0 s
   1:           transmitTryMax   :6
   1:           transmitTryMax   :6
   3:self01     lgActionType     :jmpToTarget
   3:self01     lgBlJtDlyOff     :refOff
   3:self01     lgBlJtDlyOn      :dlyOff
   3:self01     lgBlJtOff        :dlyOff
   3:self01     lgBlJtOn         :dlyOff
   3:self01     lgBlJtRampOff    :rampOff
   3:self01     lgBlJtRampOn     :on
   3:self01     lgBlJtRefOff     :rampOff
   3:self01     lgBlJtRefOn      :on
   3:self01     lgCtDlyOff       :geLo
   3:self01     lgCtDlyOn        :geLo
   3:self01     lgCtOff          :geLo
   3:self01     lgCtOn           :geLo
   3:self01     lgCtRampOff      :geLo
   3:self01     lgCtRampOn       :geLo
   3:self01     lgCtRefOff       :geLo
   3:self01     lgCtRefOn        :geLo
   3:self01     lgCtValHi        :100
   3:self01     lgCtValLo        :50
   3:self01     lgDriveMode      :direct
   3:self01     lgMaxTimeF       :0.4 s
   3:self01     lgMultiExec      :on
   3:self01     lgOffDly         :0 s
   3:self01     lgOffLevel       :0 %
   3:self01     lgOffTime        :111600 s
   3:self01     lgOffTimeMode    :absolut
   3:self01     lgOnDly          :0 s
   3:self01     lgOnLevel        :100 %
   3:self01     lgOnTime         :111600 s
   3:self01     lgOnTimeMode     :absolut
   3:self01     shActionType     :jmpToTarget
   3:self01     shBlJtDlyOff     :refOff
   3:self01     shBlJtDlyOn      :dlyOff
   3:self01     shBlJtOff        :dlyOff
   3:self01     shBlJtOn         :dlyOff
   3:self01     shBlJtRampOff    :rampOff
   3:self01     shBlJtRampOn     :on
   3:self01     shBlJtRefOff     :rampOff
   3:self01     shBlJtRefOn      :on
   3:self01     shCtDlyOff       :geLo
   3:self01     shCtDlyOn        :geLo
   3:self01     shCtOff          :geLo
   3:self01     shCtOn           :geLo
   3:self01     shCtRampOff      :geLo
   3:self01     shCtRampOn       :geLo
   3:self01     shCtRefOff       :geLo
   3:self01     shCtRefOn        :geLo
   3:self01     shCtValHi        :100
   3:self01     shCtValLo        :50
   3:self01     shDriveMode      :direct
   3:self01     shMaxTimeF       :25.5 s
   3:self01     shOffDly         :0 s
   3:self01     shOffLevel       :0 %
   3:self01     shOffTime        :111600 s
   3:self01     shOffTimeMode    :absolut
   3:self01     shOnDly          :0 s
   3:self01     shOnLevel        :100 %
   3:self01     shOnTime         :111600 s
   3:self01     shOnTimeMode     :absolut
   3:self02     lgActionType     :jmpToTarget
   3:self02     lgBlJtDlyOff     :dlyOn
   3:self02     lgBlJtDlyOn      :refOn
   3:self02     lgBlJtOff        :dlyOn
   3:self02     lgBlJtOn         :dlyOn
   3:self02     lgBlJtRampOff    :off
   3:self02     lgBlJtRampOn     :rampOn
   3:self02     lgBlJtRefOff     :off
   3:self02     lgBlJtRefOn      :rampOn
   3:self02     lgCtDlyOff       :geLo
   3:self02     lgCtDlyOn        :geLo
   3:self02     lgCtOff          :geLo
   3:self02     lgCtOn           :geLo
   3:self02     lgCtRampOff      :geLo
   3:self02     lgCtRampOn       :geLo
   3:self02     lgCtRefOff       :geLo
   3:self02     lgCtRefOn        :geLo
   3:self02     lgCtValHi        :100
   3:self02     lgCtValLo        :50
   3:self02     lgDriveMode      :direct
   3:self02     lgMaxTimeF       :0.4 s
   3:self02     lgMultiExec      :on
   3:self02     lgOffDly         :0 s
   3:self02     lgOffLevel       :0 %
   3:self02     lgOffTime        :111600 s
   3:self02     lgOffTimeMode    :absolut
   3:self02     lgOnDly          :0 s
   3:self02     lgOnLevel        :100 %
   3:self02     lgOnTime         :111600 s
   3:self02     lgOnTimeMode     :absolut
   3:self02     shActionType     :jmpToTarget
   3:self02     shBlJtDlyOff     :dlyOn
   3:self02     shBlJtDlyOn      :refOn
   3:self02     shBlJtOff        :dlyOn
   3:self02     shBlJtOn         :dlyOn
   3:self02     shBlJtRampOff    :off
   3:self02     shBlJtRampOn     :rampOn
   3:self02     shBlJtRefOff     :off
   3:self02     shBlJtRefOn      :rampOn
   3:self02     shCtDlyOff       :geLo
   3:self02     shCtDlyOn        :geLo
   3:self02     shCtOff          :geLo
   3:self02     shCtOn           :geLo
   3:self02     shCtRampOff      :geLo
   3:self02     shCtRampOn       :geLo
   3:self02     shCtRefOff       :geLo
   3:self02     shCtRefOn        :geLo
   3:self02     shCtValHi        :100
   3:self02     shCtValLo        :50
   3:self02     shDriveMode      :direct
   3:self02     shMaxTimeF       :25.5 s
   3:self02     shOffDly         :0 s
   3:self02     shOffLevel       :0 %
   3:self02     shOffTime        :111600 s
   3:self02     shOffTimeMode    :absolut
   3:self02     shOnDly          :0 s
   3:self02     shOnLevel        :100 %
   3:self02     shOnTime         :111600 s
   3:self02     shOnTimeMode     :absolut

fhem>
mein System:
2 vernetzte FHEM auf RPi
1.: mit Cul 868 und 433
2.: mit 1Wire-Adapter DS9490R

martinp876

ok, dann hört es sich doch nach einem Problem aus FHEM an.
also zeichne einmal die Rohmessages auf, von dem Fall mit dem Problem

http://www.fhemwiki.de/wiki/Homematic_Nachrichten_sniffen

Gruss Martin

hobbyprovider

der Fehler ist weg....      :o

das habe ich in der Zwischenzeit gemacht:
1.: Reboot des RPI (ist nicht das erste mal während der Tests - Fehler blieb bisher unverändert)
2.: alle Logs in eine Datei (z.B.: define FileLog_SW_Markise FileLog ./log/fhem-%Y-%m.log SW_Markise)
     vorher hatte ich 3 Log-Files (z.B.: ...log/aktoren-%Y...)
     testweise wieder auf mehrere Logfile verteilt - Fehler immer noch weg

un' nu' ?

Ich warte bis der Fehler wieder auftritt und melde mich wieder
mein System:
2 vernetzte FHEM auf RPi
1.: mit Cul 868 und 433
2.: mit 1Wire-Adapter DS9490R