Spass mit HM-LC-Sw1-BA-PCB

1,483 views
Skip to first unread message

StefanP

unread,
Oct 24, 2012, 9:13:02 AM10/24/12
to fhem-...@googlegroups.com
Hallo liebe Gemeinde,
ich bastele mal wieder; diesmal hab ich mich o.g. HM-Einheit gewidmet (Schaltaktor für Batteriebetrieb). Ich möchte damit mein Hoftor mit einem Öffner versehen (sog. Türsummer) und da es natürlich draußen und teilw. aus Metall ist, dachte ich mir nach abwägung der Argumente (gut gegen Einbrecher, Katzen und ungebetene Gäste aber schlecht für Family und gebetene): "besser keine 230V draufgeben!" ;-. Der HM-LC-Sw1-BA-PCB arbeitet mit 5-15V also perfekt! Das ganze mit Gleichrichter verbaut in einer AP-Dose 73x73mm/IP54, Deckel aufgesägt und ein Taster für den direkt-Betrieb draufgesetzt. Bei meinen Versuchen kam ich drauf: on-for-timer funktioniert nicht (meldet "MISSING ACK"). Da ich sicherstellen will, dass der "Summer" auch wieder aus geht (also nie im Dauerbetrieb läuft, weil off-Befehl nicht mitgekriegt), hab ich mir gedacht ich schließ den Gleichrichter beim Einschalten des Summers kurz und mit dem richtigen Pufferkondensator (3300µF) geht der ganzen Elektronik die Puste aus, und der eingebaute BD4823G (Low-Voltage-Detector) auf dem Schaltaktor resettet den Prozessor. Soweit meine Theorie. In der Praxis funktioniert das auch. Die Schaltzeiten variieren zwischen ca. 2 und 4 Sekunden: alles wie gedacht. Aber leider hab' ich die Rechnung ohne eQ-3 gemacht: der Aktor zählt nämlich die Unterspannungs-Vorfälle und nach dem fünften geht er in einen Verweigerungszustand (Blinkcode einmal lang, achtmal kurz) danach muß man ihn vom Netzt trennen. Nach viel gegoogle hab' ich folgendes Dokument gefunden:
http://www.homematic-inside.de/tecbase/categories/generell/item/fehlercodes-und-ihre-bedeutungen
Darin ist der Fehlercode beschrieben. Leider reagiert er auch nach Netztrennung oft nicht mehr auf fhem. Zudem hilft auch das erfolgreiche Senden von Befehlen nicht um den Fehlerzähler zurückzusetzen (wie im Doc behauptet). Meist hilft nur neues Anlernen. Manchmal funktioniert auch das anlernen nicht, ohne fhem neu gestartet zu haben!
Nun will ich mit zwei Monoflops einen Reset-Impuls generieren, um das Abschalten nach 3 Sekunden sicher zu stellen. Hat da jemand Erfahrung mit dem Aktor und/oder einen eleganteren Vorschlag?

Vorab vielen Dank
StefanP

Dirk Hoffmann

unread,
Oct 24, 2012, 9:49:46 AM10/24/12
to fhem-...@googlegroups.com

Hi Stefan

 

on-for-timer funktionirt for HM Devices nicht auf direktem Weg. Das funktioniert nur zusammen mit einer Verknüpfung.

 

Der elegantere Vorschlag währ also eine Direktverknüpfung zwischen FHEM und HM-LC-Sw1-BA-PCB per Virtual-Button.

Dieser Direktverknüpfung könnte man über die Register eine Ausschaltzeit programmieren.

So die Theorie. Ggf. muss man sich die richtigen Register und Werte aus den XML-Files vom HM-Lan-Adapter herraussuchen.

 

Alternativ eine Direktverknüpfung mit der HM-Lan-Adapter Windows Software anlegen die Register dann auslesen und der Verknüpfung mit dem Virtual-Button zuweisen.

 

Ich vermute du benutzt den HM-Lan-Adapter, weil HM-LC-Sw1-BA-PCB und CUL zusammen noch nicht miteinander "wollen"

 

Gruß

Dirk

 

StefanP

unread,
Oct 24, 2012, 9:58:04 AM10/24/12
to fhem-...@googlegroups.com
Hallo Dirk,
Danke für die schnelle Antwort. Hört sich elegant an, die Theorie. Leider fehlt da doch arg die Praxis (jedenfalls bei mir). Was für xml-files? Virtual Button? Windows-Software muss ich erstmal suchen ich benutze eigentlich nur fhem.
Vielleicht kannst Du mir ja ein paar Tips und Quellen zum Recherchieren geben. Lan-Adapter ist übrigens richtig vermutet.

Danke
StefanP

Dirk Hoffmann

unread,
Oct 24, 2012, 10:39:01 AM10/24/12
to fhem-...@googlegroups.com

Hi Stefan

 

ich vermute du brauchst dazu die akuelle SVN Version von FHEM

Dort in commandref im Abschnitt " CUL_HM" nach "virtual <number of buttons>" suchen.

 

Man kann im FHEM Virtuelle Tasten für HM Devices anlegen.

Diese Virtuelle Taste wird dann wie eine "normale" Fernbedieung an den HM-LC-Sw1-BA-PCB angelernt.

In commandref sind auch get und set der Register veschrieben

"reg <addr> <list> <peerID>" und "regSet <regName> <value> <peerChannel>"

 

Es kann aber gut sein, das die Unterstützung vom HM-LC-Sw1-BA-PCB und seine Register erst teilweise implementiert sind.

Die Fehlenden Register müssten im 10_CUL_HM.pm dann nachgezogen werden. Das könnte ich mir am Wochenende aber mal ansehen.

 

Und die Register sind in den Geräte XML-Files beschrieben die der Windowssoftware beiliegen. Zu finden unter

C:\Programme (x86)\HomeMatic Config\devicetypes\

 

Gruß

Dirk

StefanP

unread,
Oct 24, 2012, 11:52:39 AM10/24/12
to fhem-...@googlegroups.com
Hallo Dirk,
danke für die Antwort. Ich hab' parallel auch schon etwas mit deinen ersten Stichworten recherchiert und war schon auf eine Antwort vorbereitet, die mir jede Menge Spass für die nächsten Tage ankündigt ;-)
Immer noch frage ich mich gerade: "Bau' ich's einfach mit zwei 555 nach oder grab' ich mich durch die fhem-Eingeweide?" ;-)

Jetzt bin ich ertmal still und les' ein wenig. Gut dass wir in den Herbstferien nicht weggefahren sind ;-)

Vielen Dank
StefanP

Martin

unread,
Oct 24, 2012, 5:30:31 PM10/24/12
to fhem-...@googlegroups.com

Also mein LC-SW2-FM kann schon on-for-timer, dimmer koennen es auch.. Es geht auch ein on-till (bis 24h, da ich kein Datum beruecksichtige).
Habe geradenachgesehen, der SW1-ba sollte es auch koennen.

Ueber das Paiting sollte es auch gehen. Die Register musst du nicht raussuchen, die sind in der registerliste
Siehe mal regList, regSet get reg all....

Da solltest du weiterkommen

Bitte einen trace vom NACK und von einem erfolgreichen licht einschalten

StefanP

unread,
Oct 25, 2012, 9:52:56 AM10/25/12
to fhem-...@googlegroups.com
Hallo Martin, hallo Dirk
nach einigem Gewürge mit dem Update (ich hatte nur 10_cul_hm upgedatet, lief auch aber heute Morgen war fhem not running), changed zeigte mir nur "nothing to do..."; also Komplettupdate per Löschen der filetimes.txt. Glücklich verlaufen, keine Veränderung. fhem neu gestartet: on-for-timer geht! Super

Register werden angezeigt:
fhem> set CUL_HM_switch_1B4E14 regSet ? 0 0     
supported register are OffDlyLg OffDlySh OffTimeLg OffTimeSh OnDlyLg OnDlySh OnTimeLg OnTimeSh intKeyVisib pairCentral

aber setzen kann ich (Betonung auf ich) sie noch nicht:
fhem> set CUL_HM_switch_1B4E14 regSet intKeyVisib ?
 peer required
fhem> get CUL_HM_switch_1B4E14 regList
switch -
intKeyVisib    range:0 to 1bool    : visibility of internal keys
pairCentral    range:0 to 16777215dec    : pairing to central
OffTimeSh    range:0 to 111600s    peer required    : Short:off time
OnDlyLg    range:0 to 111600s    peer required    : Long:on delay
OnTimeSh    range:0 to 111600s    peer required    : Short:on time
OffDlyLg    range:0 to 111600s    peer required    : Long:off delay
OnTimeLg    range:0 to 111600s    peer required    : Long:on time
OnDlySh    range:0 to 111600s    peer required    : Short:on delay
OffDlySh    range:0 to 111600s    peer required    : Short:off delay
OffTimeLg    range:0 to 111600s    peer required    : Long:off time

fhem> set CUL_HM_switch_1B4E14 getRegRaw List1
fhem>  set CUL_HM_switch_1B4E14 regSet intKeyVisib 1

Da hab' ich wohl noch Lernbedarf.
Trotzdem: Hauptziel "Zeitschalter ohne Löten ist erreicht".

Danke an euch beide für Kompetenz und Hilfsbereitschaft.
Nochmal zur cul_hm: Was Ihr da schon wieder alles eingebaut habt, seit Ende August: RESPEKT!

Gruß
StefanP

Martin

unread,
Oct 25, 2012, 10:21:48 AM10/25/12
to fhem-...@googlegroups.com

Hallo Martin, hallo Dirk
nach einigem Gewürge mit dem Update (ich hatte nur 10_cul_hm upgedatet, lief auch aber heute Morgen war fhem not running), changed zeigte mir nur "nothing to do..."; also Komplettupdate per Löschen der filetimes.txt. Glücklich verlaufen, keine Veränderung. fhem neu gestartet: on-for-timer geht! Super

on-till ist auch nicht schlecht - hat jemand fuer die Party gewollt. Damit auch puenktlich schluss ist - oder damit da Licht aus ist, wenn er nicht mehr stehen kann?



aber setzen kann ich (Betonung auf ich) sie noch nicht:
fhem> set CUL_HM_switch_1B4E14 regSet intKeyVisib ? 
 peer required

hier kannst du 0 oder eins angeben.Muss den Hilfetext ansehen, der ist falsch. - schon lange nicht mehr getested...
 
fhem> get CUL_HM_switch_1B4E14 regList
switch -
intKeyVisib    range:0 to 1bool    : visibility of internal keys
pairCentral    range:0 to 16777215dec    : pairing to central
OffTimeSh    range:0 to 111600s    peer required    : Short:off time
OnDlyLg    range:0 to 111600s    peer required    : Long:on delay
OnTimeSh    range:0 to 111600s    peer required    : Short:on time
OffDlyLg    range:0 to 111600s    peer required    : Long:off delay
OnTimeLg    range:0 to 111600s    peer required    : Long:on time
OnDlySh    range:0 to 111600s    peer required    : Short:on delay
OffDlySh    range:0 to 111600s    peer required    : Short:off delay
OffTimeLg    range:0 to 111600s    peer required    : Long:off time

fhem> set CUL_HM_switch_1B4E14 getRegRaw List1
fhem>  set CUL_HM_switch_1B4E14 regSet intKeyVisib 1

hat es nicht funktioniert? Die ergebnisse stehen in den Readings. 
Ich empfehle immer getConfig - holt eigentlich alles, dauert nur ein bischen laenger.

im web-interface muss man refreshen um es zu sehen

nach getConfig ist get <name> reg all
nicht schlecht.

StefanP

unread,
Oct 25, 2012, 12:10:26 PM10/25/12
to fhem-...@googlegroups.com
Hallo Martin,
nachdem ich nochmal ein bischen rumgepielt hab', ist mir gelungen ein Register zu setzen (leider nicht das was ich wollte. Ich suche nach dem Register mit dem ich die LED bei geschlossenem Schalter leuchten lasse):

fhem> set CUL_HM_switch_1B4E14 regSet intKeyVisib 1
fhem> set CUL_HM_switch_1B4E14 getConfig
fhem> get CUL_HM_switch_1B4E14  reg all
CUL_HM_switch_1B4E14 type:switch -
List:0 Peer:00000000    intKeyVisib:    value:1bool
List:0 Peer:00000000    pairCentral:    value:12247022dec

fhem> set CUL_HM_switch_1B4E14 regSet intKeyVisib 0
fhem> set CUL_HM_switch_1B4E14 getConfig
fhem> get CUL_HM_switch_1B4E14  reg all
CUL_HM_switch_1B4E14 type:switch -
List:0 Peer:00000000    intKeyVisib:    value:0bool
List:0 Peer:00000000    pairCentral:    value:12247022dec

nun habe ich aber ein neues Register und das sieht irgendwie seltsam aus:

fhem> list CUL_HM_switch_1B4E14
Internals:
   CFGFN     
   DEF        1B4E14
   IODev      egESS_HMLAN
   LASTIODev  egESS_HMLAN
   MSGCNT     77
   NAME       CUL_HM_switch_1B4E14
   NR         396
   STATE      off
   TYPE       CUL_HM
   egESS_HMLAN_MSGCNT 77
   egESS_HMLAN_RAWMSG E1B4E14,0000,108CEFDA,FF,FFB3,2FA4101B4E14BADFEE060100004E
   egESS_HMLAN_RSSI -77
   egESS_HMLAN_TIME 2012-10-25 17:56:22
   lastMsg    No:2F - t:10 s:1B4E14 d:BADFEE 060100004E
   Readings:
     2012-10-25 17:54:28   CommandAccepted yes
     2012-10-25 17:54:31   PairedTo        BADFEE
     2012-10-25 17:54:31   RegL_00:          02:80 05:00 0A:BA 0B:DF 0C:EE 12:69  00:00
     2012-10-25 17:54:33   RegL_03:CUL_HM_switch_1B4E14_chn:01  02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:14 0C:63 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:14 8C:63 00:00
     2012-10-25 16:28:26   battery         ok
     2012-10-25 17:56:22   deviceMsg       off (to egESS_HMLAN)
     2012-10-25 17:54:31   peerList        ,CUL_HM_switch_1B4E14_chn:01,
     2012-10-25 17:56:22   state           off
     Poweron:
       TIME       2012-10-25 17:52:01
       VAL       
   Helper:
     addVal     0
     mId        006C
     rxType     2
     Shadowreg:
Attributes:
   devInfo    410100
   firmware   1.4
   hmClass    receiver
   model      HM-LC-SW1-BA-PCB
   protCmdDel 7
   protLastRcv 2012-10-25 17:56:22
   protResndCnt 6
   protResndFailCnt 2
   protResndFailLast 2012-10-25 17:50:42
   protResndLast 2012-10-25 17:50:41
   protSndCnt 57
   protSndLast 2012-10-25 17:56:22
   protToutRespCnt 4
   protToutRespLast 2012-10-25 17:51:23
   room       Hof
   serialNr   JEQ0221077
   subType    switch

Das Rote war glaub ich vorher noch nicht da (!?!)

"fhem> set CUL_HM_switch_1B4E14 regSet intKeyVisib 1"
zeigt übrigens kein Fehlermeldung wenn der Aktor gar nicht da ist.
Wieviel Spass ma' doch für 17 €uronen haben kann ;-)

Gruß StefanP

StefanP

unread,
Oct 25, 2012, 12:21:17 PM10/25/12
to fhem-...@googlegroups.com
Die Party-Funktion is' echt 'ne Idee: "Ich bin schon mal im Bett! Licht lass' ich euch an bis 4" cool! Muss man aber nüchtern vorbereiten ;-)


Am Donnerstag, 25. Oktober 2012 16:21:49 UTC+2 schrieb Martin:

Martin

unread,
Oct 25, 2012, 2:12:45 PM10/25/12
to fhem-...@googlegroups.com
Hallo Stefan,

HM bieted viele Moeglichkeiten, jede Menge zum Spielen.Um es richtig zu nutzen muss man sich damit beschaefftigen. Die KompliziertenRegister habe ich nicht dekodiert!

Also,du hast die internen keys sichtbar gemacht. Ein Lichtschalter hat pro Kanal einen, ein dimmer 2...
Zugehörige Register sind bei Aktoren in List3. Also unter Reg_L3 zu finden - sollte zusammen mit der Doku noch einleuchten.
Jetzt muss klar sein, dass die Anzahl der registerSAETZE in list3 von den Anzahl der gepairten Kanaele abhaengt. In Gegensatz zu List0 (einmal je device) und List1(einmal je Kanal) gibt es die List3 einmal pro kanal UND peer!!!! Ganz wichtig zu verstehen.

Bei deinem Device ist der erste 'peer' gleich mal der eingebaute schalter. Der Peer eines Aktors ist immer ein sender oder schalter!
Nun - der eingebaute Schalter ist per default nicht sichtbar - den kann man erst sehen, wenn man intkeyvisib setzt - das und genau das macht dieser schalter. Eine bool variable, entweder 0 oder 1.

Ich denke du bist noch nicht auf der letzten Version 2011 - oder?

getConfig habe ich geaendert: Zu beginn werden alle register-listen aus den Readings geloecht um absolut sicherzustellen dass nur aktuelle Werte angezeigt werden. Das ist bei dir noch nicht der Fall.

Du hast intvisib geschalten, hat funktioniert, da du in peerlist sehen kannst, dass der Kanal genau einen Peer hat - und zwar einen virtuellen Kanal aus dem eigenen Device. Ausserdem kannst du die diesem Peer zugeordneten registerliste3 sehen. Der Name dieses Readings sollte dies deutlich machen Reg_L3:<peername>.

Dass der intkeyvisib gesetzt ist kannst du an der 02:80 in Reg_L0 ablesen. Das ist das msb aus addr 02 Liste 0 - also 0x80

In Reg_L3:<peername> kannst du jetzt die Reaktionen des schalters bei betaetigung festlegen. Also ob er toggelt, verzoegert ein und ausschalter, nach einer Zeit ausschaltet(treppenhaus) oder nach einer Zeit einschaltet (keine Ahnung was dass soll) .... nur einschalten kann.... es sind genug register da.
Wenn du 2 schalter hast und diese beiden GLEICHZEITIG pairst bekommt jeder eine andere default einstellung. Jeder Schalter ist von anderen komplett unabhaengig!.

Zum spielen empfehle ich, einen Virtuellen schalter zu benutzen und dann den internen zu nehmen.
Hast du das einsteiger-doc gelesen? Da habe ich einiges versucht zu Beschreiben.


In der neusten Version sollte- wenn du int-keyVisib ausschaltest DIESE Reg_L3 verschwinden.
Und nochmal - mein dimmer hat 8 listen REG_L3:xxxx so viele schalter habe ich auf ihn gepairt.

Wie lange hast du vor get reg all gewartet? Du musst warten bis die Daten abgeholt sind, dann sollten auch mehr register kommen. Also
intkeyvisib=1
getConfig
warten!!!!!!!!!!
get reg all

So hoffentlich habe ich dich nicht gelangweilt.Wenns klappt , lass es mich wissen

StefanP

unread,
Oct 29, 2012, 12:08:55 PM10/29/12
to fhem-...@googlegroups.com
Hallo Martin,
meine Antwort hat etwas auf sich warten lassen, weil vorgestern was EXTREM seltsames passiert ist: Nach dem Update hatte ich den Effekt dass über Nacht alle "aktiven Komponenten" in der Oberfläche verschwunden waren, es waren nur noch die logs, dummies, at-defines, plots etc. zu sehen. Ein "shutdown restart" hat das ganze behoben. Am nächsten Morgen dasselbe - dachte ich. Wieder shutdown restart aber : nix! nur die "logischen Komponenten" ich musste dann feststellen, dass die Komponenten auch aus den *.cfg-Datein verschwunden waren. Laut Logs ist das ganze um ca. 3:30h passiert da hat fhem selbsständig einen restart gemacht und das log war voll von Meldungen ich müsse für die jeweiligen noch definierten logs ersmal Komponenten definieren. Wies dazu kommen konnte is mir absolut unklar, für die Zeit hab ich ein Alibi ;-). Dadurch musste ich die Forschungsabeit erstmal einstellen und habe fhem von meiner Qnap 109 Pro II nun auf die letzte Woche gekaufte FritzBox umgezogen (wollte ich eh' aber jetzt musste ich). Evtl kannst Du da Klarheit reinbringen.
So.
Nun erstmal Danke für deine ausführliche und durchaus nicht langweilige Nachhilfe. Ja, ich habe die Einsteiger-Doc gelesen aber das ist schon eine Weile (ca. 1 Jahr) her. Aber was die Interna von fhem und Homematic betrifft bin ich eher immer noch Anfänger zumal die Dynamic der Entwicklung sicher nicht nur mich etwas abgehängt hat. Eigentlich ist es mir ein Rätsel wie man als "Hobbyprogrammierer" derartig umfangreiche Entwicklungen machen kann. Versteh's nicht falsch, ich bin ja nicht wahrhaftig bös' drum. Ich habe an meiner Installation bisher eher "zielorientiert" gearbeitet und mich weniger um die Hintergründe gekümmert. Du hast recht: Da fehlt jede Menge Wissen, die internen Register haben mich bisher überhaupt noch nicht gekümmert.
Für weitere Forschung braucht's hier wohl noch 'ne Spielumgebung, ich kann/will nicht meine produktive Umgebung auf's Spiel setzen. Da wird wohl bald ein zweiter Lan-Konfigurator fällig, den ich jetzt ans NAS hängen kann. Reicht da evtl. auch die usb-Version? Oder eher ein Cuno?

Leider ist der Urlaub schon wieder vorbei, so dass noch weniger Zeit für fhem ist.

Danke
StefanP

Martin

unread,
Oct 30, 2012, 6:14:03 AM10/30/12
to fhem-...@googlegroups.com
Stefan,

Das Einsteigerdoc habe ich (nur den HM Bereich) etwas ueberarbeitet - sollte demnaechst gepostet weren. Vor einem Jahr war keine HM teil enthalten. Jetzt ist einer drin. Ich ueberarbeite den immer etwas - aber mehr Zeit geht ind Codieren. ...
HM macht m.E. erst richtig Sinn und spass wenn man a) Rueckmendungen erwartet und die Fehlermeldungen auswertet und/oder b) die eingebauten feature in den Registern nutzt.
b) ist nicht fuer jederman - jedenfalls nicht in der Tiefe. Von HM werden recht gute defaults eingestellt. Man kann sich auch auf 'einfache Register' beschraenken. So zum Beispiel das Einstellen des Backlight - das ist nicht schwierig. Das kann man einfach auch in der Produktivumgebung probieren.

HM sollte mit HMLAN oder CUL gleich funktionieren - die Funktionen sind in CUL_HM - das ist die Schicht drueber.

Das mit den verschwundenen Entities ist beunruhigend - muss ich untersuchen

Gruss
Martin

StefanP

unread,
Nov 2, 2012, 8:18:07 AM11/2/12
to fhem-...@googlegroups.com
Hallo Martin,
hab mal wieder etwas Zeit für fhem. Das Einsteigerdoc ist ja extrem gewachsen! Cool! Ich arbeite mich gerade durch den HM-Teil, da werden doch einige Fragen beantwortet. Ach ja: Auf der wiki-Seite verweist der Link rechts oben (unter Neuigkeiten) noch auf die Version 2.01).
Zu deiner Aussage zum Testen i.d. Produktiv-Umgebung: klar man kann mit einzelnen Komponenten rel. gefahrlos rumspielen, das gefährliche ist der Update vorher. Da hab' ich jetzt schon mehrfach fhem zum Stillstand gebracht (natürlich hat es noch öfter einfach geklappt). Auch diesmal ist der beschriebene Seiteneffekt, nämlich das mir die aktiven Kommpnenten verschwunden sind fatal gewesen. Glücklicherweise war diesmal die FritzBox als Ausweichhardware vorhanden. Ich muss jetzt am WE mal auf die Qnap schwenken um zu sehen ob der Effekt reproduzierbar ist.

Gruß StefanP
Reply all
Reply to author
Forward
0 new messages