Rolladenaktor HM-LC-BL1PBU-FM --> manuelles Ausfahren begrenzen?

Begonnen von justcallmeal, 05 Juli 2019, 11:00:14

Vorheriges Thema - Nächstes Thema

justcallmeal

Hallo zusammen,

ich möchte den "mechanischen Taster" an einem meiner Rolladensteuerungen auf einen bestimmten pct-Wert beim Ausfahren begrenzen, so dass er bei manueller Bedienung beim Ausfahren eben nicht ganz ausfährt, sondern pct 3 ansteuert.
Ist das möglich? Wenn ja, wo steht's, oder wie geht's?

Vielen Dank für Tips!

VG,
al

HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.

Hollo

Nur so Gedanken...
kann man vielleicht die "Steuereingänge" sehen und auswerten...
und daraus dann irgendwie so ein notify machen, mit dem bei gewünschtem pct_max gestoppt wird..?
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Beta-User

ungeprüft: Müßte über eine Registereinstellung für ein (invisib-) self01-sh-OffLevel (oder was in der Art) gehen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Otto123

Hi,
es gibt die Register OnLevel und OffLevel- wie Beta-User schon sagt. Damit könnte das gehen. Die stehen ja per default auf 0 bzw 100 %
Die Idee von Hollo geht eigentlich nicht, da die internen Tasten nicht direkt auswertbar sind. Nur indirekt über den Status und der wird zeitverzögert übertragen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

martinp876

Die Vorredner habenso weit recht.
Also erst einmal die Aktionen der internen Taster sichtbar machen:
- intKeyVisib:visib
dann ein getConfig um die aktuellen settings einzulesen und bearbeiten zu können.
die max/min position kann man dann setzen mit
- shOnLevel 100
- lgOnLevel 100
- shOffLevel 3
- lgOffLevel 3

Das funktioniert nun allerdings nur theortisch. Das liegt an der konzeptionell schlechten Kopplung des Aktors mit dem Rollo.
Hintergrund: Die HM Aktoren haben "nur" eine Zeitsteuerung um die Position des Rollos zu bestimmen. Der reale Wert steht nicht zu Verfügung. Daher kann HM mit quasi jedem Rollo/Jalousie/Markise - aber eben ungenau.
Was fehlt ist:
+ Aufroll Durchmesser: Bei gleicher Fahrzeit ändert sich die Position schneller, wenn die "rolle" voller ist. Wird nicht berücksichtig
+ Anlaufverzögerung des Motors: Schaltet der Aktor ein braucht der Motor zeit zum Anfahren und Bremsen. Es ist also ein Unterschied ob ich 10 mal 2s fahre oder 1 mal 20s. Der Aktor berücksichtigt das nicht.
=> HM kann die Position des Rollos nur ungefähr bestimmen.

HM kann die Postion indirekt synchronisieren, indem man den Rollo in die Endposition fahren lässt. Dazu muss man - um sicher zu sein, einmal in beide Endpositionen fahren um eine plus oder minus Differenz auszugleichen.
Typisch stellt man den Aktor auch ein, dass die Endposition leicht überschritten wird. Braucht der Rollo alo real 80sec zur komplett-fahrt stellt man 81sec ein.

Fährt man nun häufig zwischen 0<x<100 - also ohne die Endposition zu erreichen bekommt man zwangsläufig einen Fehler in der Position. HM bietet hier die "referenzfahrt" an. Man kann nach X fahrten ohne Endposition den Aktor beauftragen, einmal eine Referenzfahrt durchzuführen.

- refRunCounter: X

Die optimale Einstellung hängt somit (wie immer) von deinen Anforderungen ab. Insbesonderen der doch kleine wert von 3%.

a) refRunCounter= 1: Wenn du den Taster schaltest wir eine Referenzfahrt durchgeführt und dann in die Position gefahren
b) du fährst typisch eh aus eine Endposition in diese Stellung. Alles gut, nutze die On/Off level register.

Und dann: Bei meinen Rollos stelle ich die Endposition am Rollo selbst ein. Das ist bei HM unabdingbar. Wäre das in deinem Fall die Lösung?

justcallmeal

#5
Zitat von: martinp876 am 07 Juli 2019, 11:40:21
Und dann: Bei meinen Rollos stelle ich die Endposition am Rollo selbst ein. Das ist bei HM unabdingbar. Wäre das in deinem Fall die Lösung?

Hallo zusammen,

zunächst mal vielen Dank für Eure wertvollen Tips. Ich bin noch nicht dazu gekommen etwas davon umzusetzen, aber ich stehe kurz davor ;)
@Martin877: In meinem Fall geht es um eine Markise auf der Terrasse, die unterhalb eines Glasdaches montiert ist. An der äußeren Traverse des Glasdachs habe ich in der Sommersaison eine Halterung für ein TV montiert, wogegen die Markise bei komplettem Ausfahren stößt. Bei Pct 3 hält sie ca. 2-3 cm davor. Ich habe versucht den Endanschlag des Somfy-Markisenmotors entsprechend zu ändern, was mir aber nach mehrmaligen Versuchen mit Anleitung usw. nicht wirklich gelungen ist. Seither bediene ich hauptsächlich per fhem-Frontend mit webCmd pct 3, was gut funktioniert, zumal die Markise hingegen beim Einfahren eigentlich fast immer komplett eingefahren wird, was wohl auch der Initialisierung zugute kommt.
Meine Frau hingegen verwendet hauptsächlich den Taster direkt am Aktor, so dass es häufig vorkommt, dass die Markise in der Endposition anschlägt und dann etwas schief hängt ;)

Das nur kurz zur Erklärung.

VG und schönen Sonntag,
al

....Nachtrag:
habe gerade mal die readings visible gemacht und ein getconfig abgesendet. Leider finde ich in den readings kei lgOffLevel. Hier die Readings vom HM-Aktor:

Internals:
   CUL_0_MSGCNT 69
   CUL_0_RAWMSG A1A8E840065FB6C0000002B006A4F45513233343039373630010100::-52.5:CUL_0
   CUL_0_RSSI -52.5
   CUL_0_TIME 2019-07-07 13:22:49
   DEF        65FB6C
   FUUID      5cffbd4e-f33f-53a6-1874-f7f309a2b767f599
   IODev      CUL_0
   LASTInputDev CUL_0
   MSGCNT     69
   NAME       Markise
   NOTIFYDEV  global
   NR         829
   NTFY_ORDER 50-Markise
   STATE      on
   TYPE       CUL_HM
   chanNo     01
   lastMsg    No:8E - t:00 s:65FB6C d:000000 2B006A4F45513233343039373630010100
   peerList   self01,self02,
   protLastRcv 2019-07-07 13:22:49
   protRcv    69 last_at:2019-07-07 13:22:49
   protSnd    76 last_at:2019-07-07 13:22:25
   protState  CMDs_done
   rssi_CUL_0 cnt:14 min:-62 max:-55 avg:-57.64 lst:-57
   rssi_at_CUL_0 cnt:69 min:-60 max:-50 avg:-54.18 lst:-52.5
   READINGS:
     2019-07-07 13:20:20   CommandAccepted yes
     2019-07-07 13:22:26   D-firmware      2.11
     2019-07-07 13:22:26   D-serialNr      OEQ2340976
     2019-07-07 13:22:21   PairedTo        0x060463
     2019-06-11 17:11:03   R-driveDown     39 s
     2019-06-11 16:42:24   R-driveTurn     0.5 s
     2019-06-11 17:11:03   R-driveUp       42 s
     2019-06-11 16:42:23   R-pairCentral   0x060463
     2019-07-06 15:05:38   R-self01-lgActionType jmpToTarget
     2019-07-06 15:05:38   R-self01-lgOnLevel 100 %
     2019-07-06 15:05:38   R-self01-shActionType jmpToTarget
     2019-07-06 15:05:38   R-self01-shOnLevel 100 %
     2019-07-06 15:05:40   R-self02-lgActionType jmpToTarget
     2019-07-06 15:05:40   R-self02-lgOnLevel 100 %
     2019-07-06 15:05:40   R-self02-shActionType jmpToTarget
     2019-07-06 15:05:40   R-self02-shOnLevel 100 %
     2019-06-11 16:42:24   R-sign          off
     2019-07-07 13:22:21   RegL_00.         00:00 02:81 0A:06 0B:04 0C:63 15:FF 18:00
     2019-07-07 13:22:22   RegL_01.         00:00 08:00 09:00 0A:00 0B:01 0C:86 0D:01 0E:A4 0F:05 10:00 30:06 56:00 57:24
     2019-07-07 13:22:24   RegL_03.self01   00:00 01:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:44 0C:54 0D:93 0E:00 0F:00 11:C8 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 1A:00 1B:00 1C:00 1D:FF 1E:93 1F:00 81:00 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:44 8C:54 8D:93 8E:00 8F:00 91:C8 92:00 93:00 94:00 95:00 96:00 97:00 98:00 99:00 9A:00 9B:00 9C:00 9D:04 9E:93 9F:00
     2019-07-07 13:22:25   RegL_03.self02   00:00 01:00 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:11 0C:12 0D:68 0E:00 0F:00 11:C8 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00 1A:00 1B:00 1C:00 1D:FF 1E:68 1F:00 81:00 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:11 8C:12 8D:68 8E:00 8F:00 91:C8 92:00 93:00 94:00 95:00 96:00 97:00 98:00 99:00 9A:00 9B:00 9C:00 9D:04 9E:68 9F:00
     2019-07-07 13:21:09   deviceMsg       on (to vccu)
     2019-07-07 13:21:09   level           100
     2019-07-07 13:21:09   motor           stop:on
     2019-07-07 13:21:09   pct             100
     2019-07-07 13:22:31   peerList        self01,self02,
     2019-06-22 12:46:29   powerOn         2019-06-22 12:46:29
     2019-07-07 13:21:09   recentStateType info
     2019-07-07 13:21:09   state           on
     2019-07-07 13:21:09   timedOn         off
   helper:
     HM_CMDNR   142
     cSnd       0106046365FB6C010465FB6C0103,0106046365FB6C010465FB6C0203
     dlvlCmd    ++A01106046365FB6C0201C80000
     mId        0005
     peerFriend peerSens,peerVirt
     peerIDsRaw ,65FB6C01,65FB6C02,00000000
     peerOpt    3:blindActuator
     regLst     0,1,3p
     rxType     1
     supp_Pair_Rep 0
     dir:
       cur        stop
       rct        up
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +65FB6C,00,00,00
       nextSend   1562498569.24272
       rxt        0
       vccu       vccu
       p:
         65FB6C
         00
         00
         00
       prefIO:
         CUL_0
     mRssi:
       mNo        8E
       io:
         CUL_0:
           -46.5
           -46.5
     prt:
       bErr       0
       sProc      0
       rspWait:
     q:
       qReqConf   
       qReqStat   00
     regCollect:
     role:
       chn        1
       dev        1
       prs        1
     rssi:
       CUL_0:
         avg        -57.6428571428571
         cnt        14
         lst        -57
         max        -55
         min        -62
       at_CUL_0:
         avg        -54.1884057971014
         cnt        69
         lst        -52.5
         max        -50
         min        -60
     shadowReg:
     tmpl:
Attributes:
   IODev      CUL_0
   IOgrp      vccu:CUL_0
   autoReadReg 4_reqStatus
   expert     2_raw
   firmware   2.11
   icon       markise_out
   model      HM-LC-BL1PBU-FM
   peerIDs    00000000,65FB6C01,65FB6C02,
   room       1_Ruth,CUL_HM,Garten,Rolladen
   serialNr   OEQ2340976
   subType    blindActuator
   webCmd     pct 3:on:off:stop
HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.

justcallmeal

So Leute, ich hab's Dank Eurer Hilfe hingekriegt!

Auch wenn in den sichtbar gemachten Registern kein "off"-Wert zu finden war, funktionierte die Umprogrammierung des internen Tasters mit dem Befehl:

set Markise regSet lgOffLevel 3 self01
set Markise regSet shOffLevel 3 self01


Vielen Dank für Euren Support!

VG,
al
HM-Sen-DB-PCB, HM-Sec-SCo, HM-MOD-Re-8, HM-SEC-SC-2, HM-Sen-MDIR-O, HM-LC-Sw1PBU-FM, HM-LC-RGBW-WM, HM-ES-PMSw1-SM, HM-LC-Sw1-DR, div. Shellies u.v.m.