Rolladenaktor HM-LC-BI1PBU-FM: Einstellen der Zeiten für die Laufrichtungen?

3,169 views
Skip to first unread message

mhargita

unread,
Jul 1, 2012, 6:57:53 AM7/1/12
to fhem-...@googlegroups.com
Hallo zusammen,

kann mir jemand sagen, ob es möglich ist, die Zeiten für die Laufrichtungen bei dem Rolladenaktor HM-LC-BI1PBU-FM ohne die HomeMatic-Zentrale einzustellen?

Danke & Grüße

fhem-hm-knecht

unread,
Jul 1, 2012, 11:39:13 AM7/1/12
to FHEM users
ja, mit einem HM-Lan und dem HM-Konfigurator unter Windows

standart sind 50 sec für die Fahrten eingestellt und keine
Kalibrierfahrt.

theoretisch könnte man es über fhem schicken, wenn sich jemand die
Mühe macht, zu debuggen.

Hary

Martin

unread,
Jul 2, 2012, 2:15:03 AM7/2/12
to fhem-...@googlegroups.com
Die Zeiteinstellungen des HM-LC-Bl1PBU-FM befinden sich in der Registerliste '1'. Man kann die "Hochzeit", "Runterzeit" und die Wendezeit einstellen.

Runter ist in addr 11 (0x0B) - es ist ein 2-byte wert
Hoch   ist in addr 13 (0x0D) - es ist ein 2-byte wert
Change ist in addr 15 (0x0F) - Lnge 1 Byte

Da es in FHEM noch kein high level interface zum Registerschreiben gibt, musst du es mit raw Kommandos machen.

set <HMdev> raw ++A001<HMIDlanIF>00000000050000000001        #open programming for list 1
set <HMdev> raw ++A001<HMIDlanIF>00000000080Bxa0Cxb0Dya0Eyb0Fza    #program
set <HMdev> raw ++A001<HMIDlanIF>0000000006            #finish programming


mit
xaxb = REFERENCE_RUNNING_TIME_TOP_BOTTOM in [100ms]  Bereich .1  6000.0 sec
yayb = REFERENCE_RUNNING_TIME_BOTTOM_TOP in [100ms]  Bereich .1  6000.0 sec
za   = CHANGE_OVER_DELAY in [100ms]. Bereich: unbekannt , evtl 0-25.5sec

Beispiel #program  runter 25,6sec, hoch 51,3sec, drehen 0,5 sec
set Rollo1 raw ++A00122222200000000050000000001   
set Rollo1 raw ++A00122222200000000080B010C000D020E000F05
set Rollo1 raw ++A0012222220000000006   


uebrigens war mir die Steuerung des Wenden und Einstellen der Jallousie zu unprzise. Dies kam durch die "2 tasten" Bedienung, d.hg. stopp durch entgegengesetzte Richtung. Man kann den Aktuator auch einstellen, dass die Jalousie beim 2. Drcken in die gleiche Richtung stehen bleibt.
Da musst du dann die Statemachine im Aktuator ndern. Eine steuerung ber die FHEM Zentrale war bei mir zu langsam.

Martin


Rudolf Koenig

unread,
Jul 2, 2012, 5:39:28 AM7/2/12
to fhem-...@googlegroups.com
> Da es in FHEM noch kein high level interface zum Registerschreiben gibt,
> musst du es mit raw Kommandos machen.

Sowas koennte ich einbauen, waere folgender Syntax ok?:
set <HMDev> writereg <chan> <addr> <val> [<addr> <val>...]
Dein Beispiel koennte als
set <HMdev> writereg 01 0B xaxb 0D yayb 0F za
oder als
set <HMdev> writereg 01 0B xaxbyaybza
geschrieben werden.



> #open programming for list 1

Wofuer steht "list 1" ?


> set <HMdev> raw ++A001<HMIDlanIF>00000000050000000001

Kommt mir komisch vor, ich meine nach dem HMIDlanIF muessten 6 Stellen mit dem
id des Empfaengers kommen, 000000 ist doch broadcast.

Ist eine Minute als 0258 oder als 0600 zu senden?
Wenn dies bestaetigt wird, kann ich die Befehle (also einzelkommandos)
uebernehmen.

Wozu ist CHANGE_OVER_DELAY gut?

Martin

unread,
Jul 2, 2012, 7:19:10 AM7/2/12
to fhem-...@googlegroups.com
CHANGE_OVER_DELAY ist die Zeit, die eine Jallousie zum wenden braucht. Bei Rollos (kein wenden) ist es demnach '0'.
Die Zeit ist notwendig um die korrekte Position der Jallousie zu berechnen.
Generell wissen Jalousieaktuatoren nicht, wo die Jallousie steht, die Berechnung ist rein aus der Fahrzeit kalkuliert. Wenn ich also 30% zu will, wird aus 'offen' 3/10tel der Fahrzeit nach unten gefahren.
Wenn ich aber gerade auf 50% stehe wird eben 2/10tel der Fahrzeit 'hoch' nach oben gefahren. Wenn die letzte Aktion 'runter' war wird die Change_OverTime addiert.
Die Auswirkungen sind wohl erst zu bemerken, wenn man haeuffig hoch und runter faehrt ohne in die Endstellung zu kommen. Die change zeiten addieren sich hier, in der Endstellung werden sie i.a. implizit genullt.

Das Kommando ist nicht ganz hinreichend

A) die Devices haben - je nach Type sogenannte Listen - d.h. Registersaetze. Bisher habe ich List 0 bis list 4 gesehen.
B) einige Listen (z.B. list 3) sind obendrein kanalabhaengig. Es ist z.B. pro gepairten Kanal ein Registersatz List 3 vorhanden. Ich denke, dies trifft in aehnlicher weise auch auf List 4 zu - bei Sendern. Der Kanal wird als HMid+ch angegeben.

Also wird ein Resigstersatz gekennzeichnet durch <PairingKanal><Liste>. Bei generellen Registersaetzen (Jalloisieaktuator fahrzeiten, siehe oben) kann als <PairingKanal> 00000000  (HMId 000000 und ch 00) angegeben.

Damit ist die Syntax zu erweitern auf:
set <HMDev> writereg <chan> <list> <Chan-HMDev> <addr> <val> [<addr> <val>...]


Besser ist es, wenn der Channel nicht angegeben werden muss - liegt ja schon im HMDev vor, da dies eigentlich immer eine 8-stellige Nummer ist. Somit kann man vereinfachen auf

set <HMDev> writereg <list> <Chan-HMDev> <addr> <val> [<addr> <val>...] 

mit <HMdev> des "Define" auf einen Kanal des Aktuators.


Der Ablauf/Syntax in raw ist

set <HMdev> raw ++A001<HMIDlanIF><HMIDdev+ch>05<HMIDpair+ch><list>    #open programming

set <HMdev> raw ++A001<HMIDlanIF><HMIDdev+ch>08<addr><data>[<addr><data>…]   #program

set <HMdev> raw ++A001<HMIDlanIF><HMIDdev+ch>06                                            #finish programming

 

<list>:                     Nummer der Liste. Z.B. 00,01, 02,03 oder 04

<HMIDpair+ch>:      wir nur bei List3/4 benötigt. Ansonsten kann es immer auf “ 00000000“  gesetzt werden.


Natuerlich ist dann ein Lesen der Parameter auch gewuenscht. Hier fehlen noch ein paar Funktionen in FHEM.
User, die auf der Ebene einsteigen wollen, wollen die direkt gepairten Kanaele auslesen, dann die Parameter auslesen und sich zuletzt ueber die Programmierung hermachen. Ich habe nur HM - aber fuer einen perfekten Betrieb ist ein direkt-pairing unbedigt
Richtig userfreundlich wird es erst, wenn die Register auch noch mit Namen versehen werden ;-) Erst wird es fuer einfache User nutzbar.
Ich bin noch nicht so weit, hier einen Vorschlag zu machen... bin noch mit meinen Umbau beschaefftigt.
Hier habe ich auch noch Aenderungen zu "devicepair".
Ich wollte mir die Sachen erst ansehen und dann alles in eine Konzept vorschlagen, um das Kommandset schluessig zu halten. Ich habe schon jetzt Probleme, wie man aus devicepair dieses BtnOn und BtnOff eliminieren kann (arbeite gerade an einem Vorschlag). Dies behindern Syntaktisch das pairen eines einzelnen Tasters als Toggle-Lichtschalters - oder die von HM bereitgestellte Funktion eines ein-tasten Dimmers.

Falls du einen Vorschlag oder eine test-SW hast kannst du sie mir zukommen lassen, ich werde sie bei mir probieren.

Martin

unread,
Jul 2, 2012, 7:24:46 AM7/2/12
to fhem-...@googlegroups.com
Nachtrag,

die Funktion zum schreiben ist schon in 10_CUL_HM bereitgestellt. Siehe
CUL_HM_pushConfig($$$$$$$$) 
my ($hash,$src,$dst,$chn,$peerAddr,$peerChn,$param,$content) = @_;

Es gibt aber noch kein User interface dazu, das ist, was zum 'Schreiben' fehlt

mhargita

unread,
Jul 5, 2012, 4:14:48 PM7/5/12
to fhem-...@googlegroups.com
Hallo,

vielen Dank erstmal für die wirklich sehr ausführliche und genaue Beschreibung der erforderlichen raw Befehle.

Leider bekomme ich bei dem Senden der raw Befehle immer ein MISSING ACK zurück. Hier Ausschnitt aus putty:
fhem> set rollo1 raw ++A001195A6900000000050000000001
CUL_HM rollo1 raw ++A001195A6900000000050000000001
fhem> CUL_HM rollo1 resend nr 2
CUL_HM rollo1 resend nr 3
CUL_HM rollo1 MISSING ACK
fhem>

Habe ich hier noch etwas aus Deiner Beschreibung falsch verstanden? Für <HMIDlanIF> habe ich die Adresse  verwendet die autocreate beim pairen in der fhem.cfg angelegt hat. Muss noch etwas beachtet werden damit der Aktor den raw Befehl akzeptiert?

Vielen Dank

Martin

unread,
Jul 6, 2012, 1:37:08 AM7/6/12
to fhem-...@googlegroups.com
 Sorry, mein Fehler: Habe die Adresse im ersten Teil fehlt. Also

set <HMdev> raw ++A001<HMIDlanIF><HMIDdev+ch>050000000001    #open programming

set <HMdev> raw ++A001<HMIDlanIF><HMIDdev+ch>08<addr><data><addr><data>…   #program

set <HMdev> raw ++A001<HMIDlanIF><HMIDdev+ch>06                                            #finish programming


Beispiel #program  runter 25,6sec, hoch 51,3sec, drehen 0,5 sec
set Rollo1 raw ++A00122222233333301050000000001   
set Rollo1 raw ++A00122222233333301080B010C000D020E000F05
set Rollo1 raw ++A0012222223333330106   

Channel ist bei diesem Aktuator immer 01 (hat halt nur einen Kanal), 333333 ist die HMID deines  HM-LC-BI1PBU-FM.
Ruecklesen kannst du dann mit

set <HMdev> raw ++A001<HMIDlanIF><HMIDdev+ch>040000000001


Lass mich wissen, ob es klappt.





mhargita

unread,
Jul 6, 2012, 3:02:32 PM7/6/12
to fhem-...@googlegroups.com
Hallo Martin,

leider klappt es noch nicht. Ich bekomme immer MISSING ACK.

Auszug aus der fhem.cfg:
define rollo1 CUL_HM 195A69
attr rollo1 devInfo 010100
attr rollo1 eventMap on:auf off:zu
attr rollo1 firmware 2.1
attr rollo1 hmClass receiver
attr rollo1 model HM-LC-BL1-PB-FM
attr rollo1 room Kueche
attr rollo1 serialNr JEQ0029984
attr rollo1 subType blindActuator
attr rollo1 webCmd pct:auf:zu

Ich versuche es mit:
fhem> set rollo1 raw ++A001195A6901010001050000000001

nach dem Schema:

set <HMdev> raw ++A001<HMIDlanIF><HMIDdev+ch>050000000001

wobei:
<HMdev> = rollo1
<HMIDlanIF> = 195A69
<HMIDdev+ch> = 010100 + 01

Ich habe es auch versucht HMIDlanIF und HMIDdev zu vertauschen (++A001010100195A6901050000000001). Leider ohne Erfolg.

Muss der Aktor per Config Taste vorher in den Config Modus versetzt werden?

mhargita

unread,
Jul 8, 2012, 4:33:35 PM7/8/12
to fhem-...@googlegroups.com
Problem gelöst: <HMIDlanIF> war falsch.

<HMdev> = <device name des Rollos>
<HMIDlanIF> = F1<FHTID  aus dem define des CUL>
<HMIDdev+ch> = <6-digit-hex-code aus dem define des Rollos> + 01

Danke & Grüße

Sebastian Krohe

unread,
Aug 24, 2012, 8:22:24 AM8/24/12
to fhem-...@googlegroups.com
Hiho,

ich hab das ganze auch mal probiert und bei mir kommt nur ein NACK zurück - wo liegt denn da der Fehler?

2012-08-24_14:16:16 R1 raw ++A001F110341B6EF301050000000001
2012-08-24_14:17:41 R1 raw ++A001F110341B6EF301080B010C000D020E000F05
2012-08-24_14:17:42 R1 NACK

FHTID vom CUL=1034
HMIDev= 1B6EF3

Gruß
Basti

Wot Sefak

unread,
Aug 28, 2012, 3:32:43 AM8/28/12
to fhem-...@googlegroups.com
... da schliesse ich mich an: habe gestern abend ebenfalls diese raw-Befehle abgesetzt und hatte damit keinerlei Erfolg.
Der Rollladen meldet jetzt nur noch MISSING ACK, und ich hab ihn auf die Schnelle auch nicht mehr einbinden können.
 
Ich habe keine Ahnung, wo der Fehler liegt: Syntax 1:1 nachgebildet, schliesslich auch mal mit <HMId> statt F1<FHTId>
experimentiert, aber unveränderte Meldung "Wir haben ihn verloren, Captain !"
 
Heute abend mehr dazu, ob und wie ich den Aktor "zurückhole", und wie's dann weitergeht.
 
Für Tipps dankbar:
Michael

Wot Sefak

unread,
Aug 29, 2012, 4:31:31 AM8/29/12
to fhem-...@googlegroups.com
Update:
Lt. log hatte ich mich beim finish programming vertippt, so dass die Aktion nicht zu einem Ende fand. Habe den Aktor zurückgesetzt,
und wieder neu gepaired, so dass er jetzt wieder normalen Dienst verrichtet. Ich schaffe es trotzdem nicht, ihm die Laufzeiten reinzu-
singen; ich verwende
 
set Rollo raw ++A001F1xxxxyyyyyy00050000000001
set Rollo raw ++A001F1xxxxyyyyyy00080B000C120D000E140F00
set Rollo raw ++A001F1xxxxyyyyyy0006
 
xxxx = FHTId
yyyyyy = HMdevId
runter = 18 sec
rauf = 20 sec
wenden = 0 (Rollo)
 
und ich bin zu blind, den Fehler zu sehen... Muss etwa der Aktor für raw-Befehle im config-Modus sein ? Doch nicht, oder ?
 
Michael

eppi

unread,
Aug 29, 2012, 5:56:50 AM8/29/12
to fhem-...@googlegroups.com
Hallo
Ich habe mich auch mal damit beschäftigt, jedoch noch nicht umgesetzt. Ich habe dazumal folgende Zeichnung erstellt.
Eventuell hilft sie dir weiter...
 
Gruss Dani

Wot Sefak

unread,
Aug 30, 2012, 5:35:38 AM8/30/12
to fhem-...@googlegroups.com

... leider nein.

 

Ich muss Euch mit diesem Problem weiter auf die Nerven fallen: die Integration der Rollläden ist extrem unspannend,

wenn die Laufzeiten nicht bekannt sind bzw. die Voreinstellungen nicht zum verbauten Material passen.

 

Sämtliche 12 x HM-LC-BI1PBU-FM kann ich sinnvoll nur mit on:stop:off ansprechen; pct greift (vermutlich) auf den

Standard von 50sec je Fahrtrichtung. So hoch ist unsere Hütte nicht …

 

Um die Inhouse-Akzeptanz zu verbessern, brauche ich Eure Hilfe: was ist falsch an

 

set Rollo raw ++A001F1xxxxyyyyyy00050000000001

set Rollo raw ++A001F1xxxxyyyyyy00080B000C120D000E140F00

set Rollo raw ++A001F1xxxxyyyyyy0006

 

xxxx = FHTId

yyyyyy = HMdevId

runter = 18 sec

rauf = 20 sec

wenden = 0 (Rollo)

 

???

 

Auf das Absetzen der einzelnen raw-Kommandos wird jeweils MissingAck gemeldet; ist das normal (weil der Aktor darauf

sowieso nichts zurück gibt), oder wird's dort nicht verstanden / kommt's dort womöglich gar nicht an ?

 

Michael

 

Wot Sefak

unread,
Aug 31, 2012, 3:43:48 AM8/31/12
to fhem-...@googlegroups.com
Letzte Meldung vor dem Aufgeben (in dieser Sache):
 
2 Änderungen: HMId statt FHTId, und Korrektur des falschen Hex-Wertes (ja ja ...)
 

set Rollo raw ++A001xxxxxxyyyyyy00050000000001

set Rollo raw ++A001xxxxxxyyyyyy00080B000CB40D000EC80F00

set Rollo raw ++A001xxxxxxyyyyyy0006

 

xxxxxx = HMId (F1+FHTId führt zu MissingAck)

yyyyyy = HMdevId

runter = 18 sec

rauf = 20 sec

wenden = 0 (Rollo)

 

Das Kommando wird jetzt unwidersprochen hingenommen, aber die Registerwerte werden nicht angepasst:

das Rollo will unverändert 50 sec je Richtung laufen, plus Umkehrwert von 1,5 sec

 

Ratlos:

Michael

Martin

unread,
Sep 3, 2012, 7:35:33 AM9/3/12
to fhem-...@googlegroups.com
du willst den Kanal 0 des Rollo setzen (ok hat nur einen Kanal, aber der ist 01)

set Rollo raw ++A001xxxxxxyyyyyycc050000000001

set Rollo raw ++A001xxxxxxyyyyyycc080B000CB40D000EC80F00

set Rollo raw ++A001xxxxxxyyyyyycc06

 

xxxxxx = HMId (F1+FHTId führt zu MissingAck)

yyyyyy = HMdevId

cc = channel, hier 01

habbo656

unread,
Oct 23, 2012, 3:15:15 PM10/23/12
to fhem-...@googlegroups.com

Auch ich habe lang rumprobiert und musste den Schalter ein mal Resetten, da er gar nicht mehr tat, was er tun sollte ;-)

Trotz genauem folgen der Anweisungen wollte er die Befehle nicht annehmen. Letztendlich lag die nLösung beim CUL: ich musste das Attribut hmId manuell setzen, bevor die Befehle vom Schalter akzeptiert wurden. Ich habe die Standard-ID des CUL nochmals manuell gesetzt, um mir das erneute pairen der ganzen Geräte zu sparen.

So hat es letztlich funktioniert:

attr CUL hmId F11034
set Rollo raw ++A001F110341FFFF201050000000001
set Rollo raw ++A001F110341FFFF201080B000C960D000EA00F00
set Rollo raw ++A001F110341FFFF20106

wobei
F11034 die hmId des CUL ist und
1FFFF2 die DEF des Schalters

Offenbar funktioniert das implizite setzen der hmId wie im Wiki beschrieben für deas Schreiben der RAW-Werte nicht, sie muss am CUL explizit gesetzt werden.

Ich hoffe das hilft dem Einen oder Anderen weiter :-)

Vielen Dank für die ausführliche Beschreibung bis hier her!

Martin

unread,
Oct 25, 2012, 7:35:23 AM10/25/12
to fhem-...@googlegroups.com
Bei der CUL kann ich dir nicht weiterhelfen - aber beim Setzen des Rollos.
Empfehlen wuerde ich jetzt den Stand der Technik:

get Rollo regList  #uebersicht fuer den User

set Rollo regSet driveUp 150    # in sekunden angeben
set Rollo regSet driveDown 150  # in sekunden angeben
set Rollo regSet driveTurn 0,5   # in sekunden angeben

set Rollo getConfig     # lesen der Daten aus dem Rollo
get Rollo reg all         # interpretieren der gelesenen Daten, soweit eingebaut

kossmann

unread,
Nov 26, 2012, 5:22:12 AM11/26/12
to fhem-...@googlegroups.com
Hallo zusammen,

ich steige gerade in´s gesamte Thema HomeMatic/FHEM ein und stehe noch vor der Entscheidung, ob ich mir ein CUL oder eine HMLAN zur Kommunikation mit den Aktoren (HM-LC-BI1PBU-FM, ein erster Testkandidat ist schon unterwegs zu mir) kaufen soll.

Daher hier momentan nur eine kleine Nachfrage: Lese ich richtig, dass ich die Laufzeiten auch mit einem CUL programmieren kann?

Danke und Gruß

Martin

unread,
Nov 26, 2012, 6:44:14 AM11/26/12
to fhem-...@googlegroups.com

Daher hier momentan nur eine kleine Nachfrage: Lese ich richtig, dass ich die Laufzeiten auch mit einem CUL programmieren kann?

Korrekt. CUL und HMLAN sind 'nur' interfaces (mir etwas unterschiedlichem Verhalten ). Aber die Einstellungen sind im Device und koennen von beiden  'durchregeicht' werden. Also unentschieden an dieser Stelle.

kossmann

unread,
Dec 9, 2012, 8:12:52 AM12/9/12
to fhem-...@googlegroups.com
Sehe ich es (nach einem Selbstversuch) richtig, dass man bei den 3 Werten zwar Komma-Werte angeben kann, diese aber nicht mit einem Komma, sondern einem Punkt trennt? In diesem Fall wäre ein

set Rollo regSet driveTurn 0.5

richtig.

Martin

unread,
Dec 9, 2012, 5:12:59 PM12/9/12
to fhem-...@googlegroups.com
ein Fehler in der docu. Wir habe - ich denke durchgaengig- US nomenklatur. Also immer '.'
Auch korrekt, dass ich nicht jeden wert komplet parse. 0,5 sollte demnach 0 ergeben , was gültig ist.

Gruss
Martin

Reply all
Reply to author
Forward
0 new messages