Neue Firmware für HM_LC_Sw1PBU_FM mit getrenntem Aktor, Taster + Wechselschalter

Begonnen von jab, 29 Dezember 2013, 22:04:10

Vorheriges Thema - Nächstes Thema

wires.io

Neuer Versuch, wobei "expert allReg" nur beim Switch mehr Info liefert.

Edit: Code entfernt, da für andere irrelevant. Problemlösung s.u.

frank

wegen dem prellen versuche:
R-HM_123457_Btn_02-lgMultiExec off


setze alle register peerNeedsBurst=off in allen button channels. 230v aktoren brauchen keinen burst. diese burst belasten aber alle devices, die burst nutzen, zb thermostate.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

wires.io

Danke, das hat mein Problem gelöst!

frank

Zitat von: wires.io am 28 Oktober 2020, 12:42:30
Danke, das hat mein Problem gelöst!

warum hast du alle daten in deinen antworten gelöscht?
die konversation kann doch so keiner mehr nachvollziehen.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

wires.io

Das war nicht böse gemeint. Ich wollte den Thread durch lange und teilweise falsche Listings nicht noch mehr überfrachten. Wenn Du denkst, dass es anderen hilft, stelle ich die Listings aber wieder ein.

Kurz zusammen gefasst, habe ich folgendes Problem mit Deiner Hilfe gelöst:
- Im Flur habe ich drei  HM_LC_Sw1PBU_FM mit Custom FW verbaut, einen im Keller, einen im Erdgeschoss und einen im 1. Stock.
- Am Beispiel des Schalters HM_123456 im Erdgeschoss habe ich folgende Direktverknüpfungen, die ich persönlich intuitiv finde, eingerichtet:
  - Kurzer Tastendruck unten (HM_123456_Btn_02 sh) -> lokales Licht (HM_123456) schaltet
  - Kurzer Tastendruck oben (HM_123456_Btn_01 sh) -> Licht im 1. Stock (HM_123457) schaltet
  - Langer Tastendruck unten (HM_123456_Btn_02 lg) -> Licht im Keller (HM_123459)  schaltet

Dazu muss folgende Konfiguration vorgenommen werden:

Peering

set HM_123456_Btn_02 peerChan 0 HM_123456_Sw_01 single set
set HM_123456_Btn_01 peerChan 0 HM_123457_Sw_01 single set
set HM_123456_Btn_02 peerChan 0 HM_123459_Sw_01 single set


Konfig Short / Long Press

set HM_123456_Sw_01 regSet lgActionType off self02
set HM_123459_Sw_01 regSet shActionType off HM_123456_Btn_02


Entprellen

set HM_123459_Sw_01 regSet lgMultiExec off HM_123456_Btn_02


Bursts vermeiden

set HM_123456_Btn_02 peerNeedsBurst off self02
set HM_123456_Btn_01 peerNeedsBurst off HM_123457_Sw_01
set HM_123456_Btn_02 peerNeedsBurst off HM_123459_Sw_01


JochenSi

Servus Kollegen ;-)

ich hab im Wiki ein HowTo angelegt wie man Schritt für Schritt mit VS-Code, PlatformIO und die Firmwareanpassung von Verkehrsrot für diese IDEs auf den Schalter bekommt. Für Hinweise falls doch irgendwo ein Fehler ist bin ich Dankbar. Bei mir klappt es. Danke für die Experten die das möglich gemacht haben.

https://wiki.fhem.de/wiki/HM-LC-Sw1PBU-FM_Alternative_Firmware_mit_VSCode_und_PlatformIO_flashen

Grüße Jochen

Nighthawk

Hallo zusammen,

ich nutze diese Firmware nun seit ~3 Jahren, leider kämpfe ich bis heute an der Zustandswiederherstellung nach Stromausfall.
Das heisst, Licht wurde am HM_LC_Sw1PBU_FM eingeschaltet (Relais wird geschlossen) und am entferntem Schalter ausgeschaltet, in diesem Fall bleibt das Relais angezogen (geschlossen). Wenn nun ein Stromausfall kommt, wird das Relais natürlich geöffnet und das Licht geht ungewollt an.
Hat einer von euch evtl. eine Lösung dafür gefunden?

Gruß
Alex

Verkehrsrot

Mir fällt als Workaround nur ein, vor längerer Abwesenheit den mechanischen Wechselschalters so zu schalten, dass das Relais beim HM_LC_Sw1PBU_FM abgefallen ist. Man kann es an der LED erkennen, sie zeigt den Status des Relais an: leuchtet = Relais angezogen, aus = Relais abgefallen.

Alles ziemlich dämlich. Aber gibt's für HMGW und fhem inzwischen eine bessere Wechselschaltung taugliche Lösung?

Verkehrsrot

Zitat von: JochenSi am 04 März 2021, 22:06:07
ich hab im Wiki ein HowTo angelegt wie man Schritt für Schritt mit VS-Code, PlatformIO und die Firmwareanpassung von Verkehrsrot für diese IDEs auf den Schalter bekommt.

Da war ich heute dankbar für, denn es war wieder Zeit für das Umflashen eines Schalters, nachdem sich wieder Kondensatoren verabschiedet hatten. Ohne das Wiki hätte ich meinen selbst gebauten Lösungsweg nicht wieder gefunden. So war die Sache in 20 Minuten erledigt.

JochenSi

Hallo Verkehrsrot,
es freut mich das dir die Anleitung geholfen hat. Allerdings habe ich selber vor kurzem noch einen Schalter flashen müssen und mir ist aufgefallen das Visual Studio Code scheinbar die GIT Einbindung/Handling geändert hat. Nach ausprobieren in Linux und in Windows hab ich dann die Daten manuell runtergeladen da ich es nicht nach meiner Anleitung nach hinbekommen habe. Geht das nur mir so, dass die Einbindung nicht mehr wie in dem Howto beschrieben klappt?
Wenn jemand Tipps für das Handling von VS Code incl. PlatformIO hat bitte bei mir melden weil ich das HowTo gerne aktuell halten will.

Mir ist aber auch aufgefallen, dass geflashte Schalter ihren Peer vergessen wenn es zu einem Stromausfall kommt. Muss man die Peereinstellungen noch permanent speichern?
Grüße Jochen

kingmathers

Hallo,

In der Anleitung zum Flashen mit Raspberry Pi sind leider die links zu avrdude kaputt und laut der Anleitung benötigt man die verlinkte Version. Hat eventuell jemand die Dateien noch oder einen funktionierenden Link? Den Bootloader und die Firmware konnte ich vorbereiten, nur beim Flashen kann ich die Fuses nicht richtig setzen.
Raspberry Pi B+, FS20, 1-Wire, HM
FHEM Home Control (App für Windows 10): https://forum.fhem.de/index.php/topic,49891.0.html
FHEM Arduino Library: https://forum.fhem.de/index.php/topic,94093.0.html

gregorv

Hallo,

ich versuche den HB-LC-Bl1PBU-FM (HM-LC-Bl1PBU-FM aber Taster getrennt) in FHEM einzubinden. In der HMConfig_AskSinPPCustom.pm ist aber kein Device mit der ID F337 vorhanden und Jab hat bei dem Hinweis zu HB-LC-Bl1PBU-FM eine 99_Asksin_HM_LC_Sw1PBU_FM_CustomFW.pm verlinkt, die aber, soweit ich das sehe, nur für den HM-LC-Sw1PBU-FM mit der ID FA09 funktionieren kann.
Hat jemand da schon eine Anpassung gemacht oder kann mir helfen, wie das geht ?
ich habe schon versucht aus einer Kopie Device F335 in der HMConfig_AskSinPPCustom.pm ein Device F337 zu bauen, aber es klappt nicht. FHEM legt zwar ein Device an, sieht aber nicht richtig aus. Die Channels Btn01, Btn02 und Blind werden angelegt, aber der nur Btn 2 funktioniert. Wenn ich Btn01 drücke, kommt im Channel 3: HM_D0A100_Blind Short, also sind einerseits die Cannels vertauscht und außerdem ist da auch der erwartete pos Befehl (um den Rolladen zu einer bestimmten Position zu fahren) nicht vorhanden.
Hier mein Versuch:

$HMConfig::culHmModel{"F337"} = {name=>"HM-LC-Bl1-FM-Cus",st=>'custom',cyc=>'',rxt=>'',lst=>'1,3:3p,3:1p.2p',chn=>"Btn:1:2,Blind:3:3"};
$HMConfig::culHmChanSets{"HM-LC-Bl1-FM-Cus00"}{fwUpdate} = "<filename>";
$HMConfig::culHmChanSets{"HM-LC-Bl1-FM-Cus01"} = $HMConfig::culHmSubTypeSets{"THSensor"};
$HMConfig::culHmChanSets{"HM-LC-Bl1-FM-Cus02"} = $HMConfig::culHmSubTypeSets{"THSensor"};
$HMConfig::culHmChanSets{"HM-LC-Bl1-FM-Cus03"} = $HMConfig::culHmSubTypeSets{"blindActuator"};
$HMConfig::culHmRegChan {"HM-LC-Bl1-FM-Cus01"} = $HMConfig::culHmRegType{remote};
$HMConfig::culHmRegChan {"HM-LC-Bl1-FM-Cus02"} = $HMConfig::culHmRegType{remote};
$HMConfig::culHmRegChan {"HM-LC-Bl1-FM-Cus03"} = $HMConfig::culHmRegType{blindActuator};
$customMsg{"HM-LC-Bl1-FM-Cus"} = sub {
  my ($msg,$target) = @_;
  return $msg->processRemote if $msg->isRemote;
  return $msg->processBlindStatus($target) if $msg->isStatus;
  return ();
};

Und die Device Details:

defmod HM_D0A100 CUL_HM D0A100
attr HM_D0A100 .mId F337
attr HM_D0A100 IODev CULHM
attr HM_D0A100 autoReadReg 4_reqStatus
attr HM_D0A100 expert rawReg
attr HM_D0A100 firmware 1.0
attr HM_D0A100 model HM-LC-Bl1-FM-Cus
attr HM_D0A100 room CUL_HM
attr HM_D0A100 serialNr HMD0A100TT
attr HM_D0A100 webCmd getConfig:clear msgEvents

setstate HM_D0A100 HM_D0A100_Blind Short
setstate HM_D0A100 2022-01-11 22:37:38 .D-devInfo 030100
setstate HM_D0A100 2022-01-11 22:37:38 .D-stc 30
setstate HM_D0A100 2022-01-11 22:40:35 .R-pairCentral 0xF10000
setstate HM_D0A100 2022-01-11 22:37:43 .associatedWith HM_D0A100,HM_D0A100_Blind,HM_D0A100_Btn_01,HM_D0A100_Btn_02,HM_D0A100
setstate HM_D0A100 2022-01-11 22:41:38 .protLastRcv 20220111224138
setstate HM_D0A100 2022-01-11 22:37:46 CommandAccepted yes
setstate HM_D0A100 2022-01-11 22:37:38 D-firmware 1.0
setstate HM_D0A100 2022-01-11 22:37:38 D-serialNr HMD0A100TT
setstate HM_D0A100 2022-01-11 22:41:38 IODev CULHM
setstate HM_D0A100 2022-01-11 22:40:35 PairedTo 0xF10000
setstate HM_D0A100 2022-01-11 22:40:35 RegL_00.  00:00 02:01 0A:F1 0B:00 0C:00 15:FF 18:00
setstate HM_D0A100 2022-01-11 22:41:50 cfgState PairMism
setstate HM_D0A100 2022-01-11 22:41:38 commState CMDs_done
setstate HM_D0A100 2022-01-11 22:41:38 state HM_D0A100_Blind Short


Edit: Schon etwas weiter...
Das Blind device in FHEM scheint doch OK zu sein das vermisste 'pos' heißt bei HM-Rolladen Aktoren offenbar 'pct'. also das ist doch ok. Von meinen Dooya Aktoren kenne ich das 'pos'.
Bleibt noch die Vertauschung von den Cannels Blind und Btn01.
Und das könnte eventuell am Scetch liegen. Ich sollte noch erwähnen, dass ich, da ich gar kein HB-LC-Bl1PBU-FM habe, sondern den mit Arduion MiniPro nachgebaut habe und weil der genannte Scetch für ATMEGA 644 gebaut ist, musste er natürlich umgebaut werden. Als Vorlage habe ich den HM-LC-Bl1PBU-FM von papa genommen und die zusätzlichen Codezeilen aus HB-LC-Bl1PBU-FM dort eingebaut. Beim Spielen mit der HMConfig_AskSinPPCustom.pm kann ich sogar inzwischen die Reihenfolge ändern, aber dann hat der Btn01 'Blind-Funktionen' z.B. Up Down... - ich schau mir morgen den Scetch erst nochmal an.

gregorv

OK, GELÖST.
Der Scetch ist war OK, es war doch meine AddOn Konfiguration in HMConfig_AskSinPPCustom.pm.
So geht es:

$HMConfig::culHmModel{"F337"} = {name=>"HM-LC-Bl1-FM-Cus",st=>'custom',cyc=>'',rxt=>'',lst=>'1,3:3p,3:1p.2p',chn=>"Btn:2:3,Blind:1:1"};
$HMConfig::culHmChanSets{"HM-LC-Bl1-FM-Cus00"}{fwUpdate} = "<filename>";
$HMConfig::culHmChanSets{"HM-LC-Bl1-FM-Cus01"} = $HMConfig::culHmSubTypeSets{"blindActuator"};
$HMConfig::culHmChanSets{"HM-LC-Bl1-FM-Cus02"} = $HMConfig::culHmSubTypeSets{"THSensor"};
$HMConfig::culHmChanSets{"HM-LC-Bl1-FM-Cus03"} = $HMConfig::culHmSubTypeSets{"THSensor"};
$HMConfig::culHmRegChan {"HM-LC-Bl1-FM-Cus01"} = $HMConfig::culHmRegType{blindActuator};
$HMConfig::culHmRegChan {"HM-LC-Bl1-FM-Cus02"} = $HMConfig::culHmRegType{remote};
$HMConfig::culHmRegChan {"HM-LC-Bl1-FM-Cus03"} = $HMConfig::culHmRegType{remote};
$customMsg{"HM-LC-Bl1-FM-Cus"} = sub {
  my ($msg,$target) = @_;
  return $msg->processRemote if $msg->isRemote;
  return $msg->processBlindStatus($target) if $msg->isStatus;
  return ();
};

Ich habe 'chn' bei culHmModel UND die culHmChanSets/culHmRegChan Nummerierung tauschen müssen.
Vielleicht kann martinp876 die AddOn Konfiguration in Wiki mal etwas dokumentieren - oder zumindest sagen, wo die Doku dafür liegt. Das einzige, was ich gefunden hatte war hier:
https://forum.fhem.de/index.php/topic,25702.msg186947.html#msg186947

Falls jemand an dem Scetch HM-LC-Bl1-FM-Cus (HM-LC-Bl1-FM aber Taster unabhängig) interessiert ist, hier oder per E-Mail melden. Die FHEM AddOn konfig ist ja schon oben - ich nehme sie aber erst mal aus meiner HMConfig_AskSinPPCustom.pm raus und packe sie in eine eigene pm-Datei.

Und nun kommt der nächste Kniffel Teil - ich möchte nämlich die zum Blind Device gehörenden Up/Down Tasten zusätzlich drin haben (also insgesamt vier Taster)
Und noch einen Hinweis an den Moderator - ich bin hier nicht ganz so neu, wie es scheint aber irgendwie war mein alter Account (gregor) über die Jahre nicht mehr zugänglich. Kann man die beiden zusammenführen?

frank

moin,

falls sich noch jemand am battery reading im fhem device stört, einfach folgende zeile im zusätzlichen HMConfig_HM_LC_Sw1PBU_FM_CustomFW.pm file auskommentieren:
    #push @evtEt,[$shash,1,"battery:". (($chn&0x80)?"low":"ok")]; # frank: no battery for this device

anschliessend noch reload und deletereading battery.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

ChristianOS

Hallo,
vielen Dank für den langen Thread ;) und vor allem dem Bereitstellen der Custom FW. Nach langem Lesen und viel hin-und-her habe ich nun erfolgreich einen Aktor geflashed und erfolgreich in FHEM eingebunden.

Der UP-Aktor ist in einer Wechselschaltung integriert. Einmal der Aktor und einmal ein analoger Wechselschalter. Die beiden _Btn habe ich mit _SW1 gepeert.
 
Jedoch habe ich das Verhalten, dass sobald das Licht aus ist der Status vom _Sw2 sekündlich zwischen on und off hin und herspringt, das betrifft die Reading deviceMsg, level, pct und state.
Sobald das Licht an ist, ist _Sw2 auch an. Bei Licht an hat _Sw2 einen current Value von ~3500, bei Licht aus von ~516.
Die Variable minImpulsLength in der Datei Asksin_HM_LC_Sw1PBU_FM.cpp steht auf 500. ALs Verbraucher ist eine Deckenlampe mit 4 x 7W GU10 Leuchten, sprich 28W, angeschlossen.



Christian