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

der2of6

Danke für den Tipp mit der Fuse.


avrdude -p m644 -P gpio -c gpio -U lfuse:w:0xFD:m -U hfuse:w:0xDA:m -U lock:w:0x2F:m

Bootloader:
avrdude -p m644 -P gpio -c gpio -U flash:w:bootloader_HM-LC-Sw1PBU-FM_4k.hex

./flash-ota -f payload.eq3 -s LEQxxxxxxx


ZitatWaiting for device with serial LEQXXXXXXX
Device with serial LEQXXXXXXX (hmid: xxxxxx) entered firmware-update-mode
Adding HMID
Initiating remote switch to 100k
Entering 100k-mode
Has the device switched?
Yes!
Flashing 80 blocks: 0080/0080 -
Entering 10k-mode

Allerdings scheint der Bootloader die FW jetzt nicht zu booten.

Ich hab den schalte vom Strom genommen, aber er funkt nicht

ZitatDie LED blinkt einmal lang, dann 2x kurz

Irgendwo scheint noch was zu fehlen.
Hast du noch einen Tipp?

Beim 8k bootloader mit entsprechenden fuses passiert das gleiche, als ob er die FW nicht starten möchte.

Carsten

Hallo,

kann es sein, dass im Wiki die Switches vertauscht sind oder habe ich was falsch verdrahtet?
Im Wiki steht Sw_01 sei der virtuelle Schalter und Sw_02 das Relais. Bei mir verhält es sich aber genau anders herum. Wenn ich am anderen Schalter ausschalte, geht Sw_02 aus und Sw_01 schaltet dann genau invertiert.


Tobias

Zitat von: Carsten am 01 März 2015, 16:34:34
Hallo,

kann es sein, dass im Wiki die Switches vertauscht sind oder habe ich was falsch verdrahtet?
Im Wiki steht Sw_01 sei der virtuelle Schalter und Sw_02 das Relais. Bei mir verhält es sich aber genau anders herum. Wenn ich am anderen Schalter ausschalte, geht Sw_02 aus und Sw_01 schaltet dann genau invertiert.

Also ich versteh es so, das es GENAU SO sein soll. SW1 ist der virtuelle Schaltrer, der schaltet dann invertiert wenn du am anderen Kreuzschalter ausschaltest. Der SW2 geht dann auch korrekterweise auf "aus"
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Carsten

Zitat von: Tobias am 03 März 2015, 11:22:16
Also ich versteh es so, das es GENAU SO sein soll. SW1 ist der virtuelle Schaltrer, der schaltet dann invertiert wenn du am anderen Kreuzschalter ausschaltest. Der SW2 geht dann auch korrekterweise auf "aus"
Genau das passiert ja nicht. Wenn ich den anderen Schalter ausschalte, bleibt SW1 wie er ist und SW02 wechselt.

Ich hab das vielleicht unglücklich formuliert. Was ich mit invertiert meinte war, dass wenn der normale Schalter in Stellung 2 ist, SW01 invertiert zum eigentlichen Licht läuft.
Also

SW01    |    SW02    |   Wechselschalter   |  Licht
an      |    an      |       Stellung 1    |   an
an      |    aus     |       Stellung 2    |   aus
aus     |    aus     |       Stellung 1    |   aus
aus     |    an      |       Stellung 2    |   an

nexulm

Zitat von: der2of6 am 01 März 2015, 14:43:34
Allerdings scheint der Bootloader die FW jetzt nicht zu booten.

Ich hab den schalte vom Strom genommen, aber er funkt nicht

Irgendwo scheint noch was zu fehlen.
Hast du noch einen Tipp?

Beim 8k bootloader mit entsprechenden fuses passiert das gleiche, als ob er die FW nicht starten möchte.
Wie hast du die Firmware denn geflasht? Mit dem Programmer (Raspi) oder OTA?
Oder ist das Problem "nur", dass der OTA flasher nicht loslegt weil möglicherweise die angebene Serial-ID (LEQ.../KEQ...) nicht übereinstimmt?
BeagleBone Black (Debian), FHEM SVN
HmLAN, 12x HM-LC-Bl1PBU-FM, 7xCC-RT-DN, >10x HM-SEC-SC-2, 3x HM-LC-SW1-FM, 1x HM-SEC-SD, 2x MK1010W, DM800, Yamaha RX-V771

der2of6

Zitat von: nexulm am 03 März 2015, 14:15:39
Wie hast du die Firmware denn geflasht? Mit dem Programmer (Raspi) oder OTA?
Oder ist das Problem "nur", dass der OTA flasher nicht loslegt weil möglicherweise die angebene Serial-ID (LEQ.../KEQ...) nicht übereinstimmt?

Ich flashe OTA. Der Flash läuft auch durch, nur wenn ich den Schalter dann vom Strom nehme und "neustarte" dann scheint er die Firmware nicht zu starten. Der Schalter lässt sich in FHEM nicht anlernen.

nexulm

Zitat von: der2of6 am 03 März 2015, 16:14:39
Ich flashe OTA. Der Flash läuft auch durch, nur wenn ich den Schalter dann vom Strom nehme und "neustarte" dann scheint er die Firmware nicht zu starten. Der Schalter lässt sich in FHEM nicht anlernen.

Reset:

set <HM-LC-SW1PBU-FM_Device> reset


Neu-Anlernen:

set <HM-LC-SW1PBU-FM_Device> getConfig
set <HM-LC-SW1PBU-FM_Device> regSet pairCentral <6-stellige HM/CUL-ID>


Wenn das alles nicht hilft bitte den Output von...

set <HM-LC-SW1PBU-FM_Device> getConfig

...posten und...
fhem.log-Auszug
... was beim set <HM-LC-SW1PBU-FM_Device> regSet pairCentral <6-stellige HM/CUL-ID> passiert!
BeagleBone Black (Debian), FHEM SVN
HmLAN, 12x HM-LC-Bl1PBU-FM, 7xCC-RT-DN, >10x HM-SEC-SC-2, 3x HM-LC-SW1-FM, 1x HM-SEC-SD, 2x MK1010W, DM800, Yamaha RX-V771

der2of6

Es läuft jetzt :)
Danke an alle, die geholfen haben!

Ich habe den Bootloader noch mal neu geflashed mit den Richtigen Fuses und dann die Firmware noch mal neu gebaut und die Checksumme neu erstellt.

Jetzt wird er in FHEM erkannt. Wahrscheinlich hab ich da mal irgendwo einen Wurm reingebracht.

Geholfen hat mir dabei auch diese Seite: https://adke.org/?p=199
Kurz und Knapp nochmal alles beschrieben.

Eine Frage bleibt jetzt aber doch noch, bevor ich die Kabel wieder ablöte: Wie bekomme ich den Schalter wieder in den Bootloader Modus um dann mal eine neue FW zu flashen?

nexulm

Zitat von: der2of6 am 03 März 2015, 16:45:48
Eine Frage bleibt jetzt aber doch noch, bevor ich die Kabel wieder ablöte: Wie bekomme ich den Schalter wieder in den Bootloader Modus um dann mal eine neue FW zu flashen?
Die Firmware besitzt wohl noch keinen eigenen Rücksprung in den Bootloader-Mode (soweit mein Verständnis ohne die Sourcen zu studieren)!

Es hilft immer den Schalter stromlos zu machen (z.B. Sicherung raus) und während der Strom wieder am Schalter angelegt wird muss der ota-flash wartend aktiv sein.
Der Bootloader wird dann bei PowerUp gestartet und sendet einen Update Request und wartet 10s. Dann sollte der der Firmwareflash-Vorgang wie zuvor auch mit eingebauten Schalter funktionieren!
BeagleBone Black (Debian), FHEM SVN
HmLAN, 12x HM-LC-Bl1PBU-FM, 7xCC-RT-DN, >10x HM-SEC-SC-2, 3x HM-LC-SW1-FM, 1x HM-SEC-SD, 2x MK1010W, DM800, Yamaha RX-V771

der2of6

Da war ich dann etwas zu ungeduldig. Beim zweiten Versuch hat das Update dann auch geklappt :)

Dann weiter mit den doofen Fragen:

Ich hab mir jetzt einen kleinen Testaufbau gemacht. Den Sw1PBU_FM zusammen mit einem "analogen" schalter in einer Wechselschaltung.

Wie muss ich jetzt die internen Taster peeren, damit ich damit das licht an und aus schalten kann?

Mit dem Code aus dem Wiki kann ich die Lampe nur einschalten,wenn der "analoge" schalter richtig steht.
Ausschalten geht gar nicht.

set CUL_HM_HM_LC_Sw1PBU_FM_CustomFW_Btn_01 peerChan 0 CUL_HM_HM_LC_Sw1PBU_FM_CustomFW_Sw_01 dual set
Übers Webinterface klappt alles am Switch_02 (Ein/Aus/Stromerkennung)

Wenn ich die Lampe dann über den "analogen" Schalter ausschalte, dann kann ich die Lampe über die Taster gar nicht mehr einschalten.
Über FHEM wird alles erkannt.

Irgendwo muss da noch ein kleiner Fehler drin sein.


frank

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

Carsten

Hallo,

scheint bei Dir genauso verdreht zu sein, wie bei mir.
Ist Sw_01 nach drücken des ( HM-)Schalters in FHEM denn an oder aus? Geht das Licht an, wenn der analoge Schalter in der "falschen" Position ist und du Sw_01 in FHEM togglest?

Das Wiki geht glaube ich davon aus, dass der Sw_01 der virtuelle Switch ist. Ist es aber bei mir ( und bei dir ja scheinbar auch ) scheinbar nicht.
Daher hab ich dann mit Sw_02 gepeert.

Ich vermute, dass du wenn du das änderst immer einschalten kannst, wenn das Licht aus ist.

Das Problem, dass nur Ein aber nicht aus geht könnte daran liegen, was im Wiki unter Advanced Settings beschrieben ist. Bei mir funktionierte ohne das nur der untere Schalter.
Nachdem ich das geändert habe, ists allerdings immer noch nicht 100 %tig. Im Moment kann ich mit dem unteren Schalter toggeln und mit dem oberen nur Einschalten.  ;D

P.S.: Wo ist bei den HM-Schaltern eigentlich unten und oben? Gilt die Schrift auf der Vorder- oder Rückseite? Ich habs so installiert, dass die Schrift vorne lesbar ist.

nexulm

Zitat von: Carsten am 05 März 2015, 18:24:59
P.S.: Wo ist bei den HM-Schaltern eigentlich unten und oben? Gilt die Schrift auf der Vorder- oder Rückseite? Ich habs so installiert, dass die Schrift vorne lesbar ist.
Bezogen auf Ansicht von vorne (Config-Taster oben links), dann ist die Zuordnung wie im Wiki beschrieben:
Kanal           Bezeichnung
Button_1 Taster oben
Button_2 Taster unten
BeagleBone Black (Debian), FHEM SVN
HmLAN, 12x HM-LC-Bl1PBU-FM, 7xCC-RT-DN, >10x HM-SEC-SC-2, 3x HM-LC-SW1-FM, 1x HM-SEC-SD, 2x MK1010W, DM800, Yamaha RX-V771

der2of6

Zitat von: Carsten am 05 März 2015, 18:24:59

Das Wiki geht glaube ich davon aus, dass der Sw_01 der virtuelle Switch ist. Ist es aber bei mir ( und bei dir ja scheinbar auch ) scheinbar nicht.
Daher hab ich dann mit Sw_02 gepeert.

Ich vermute, dass du wenn du das änderst immer einschalten kannst, wenn das Licht aus ist.
Ich habe den Schalter jetzt auch mal mit SW_02 gepeert und genau dieses Ergebnis. Ein geht immer, aus nimmer ;)

Zitat
Das Problem, dass nur Ein aber nicht aus geht könnte daran liegen, was im Wiki unter Advanced Settings beschrieben ist. Bei mir funktionierte ohne das nur der untere Schalter.
Nachdem ich das geändert habe, ists allerdings immer noch nicht 100 %tig. Im Moment kann ich mit dem unteren Schalter toggeln und mit dem oberen nur Einschalten.  ;D

Das war ein guter Hinweis, nach langen kämpfen mit den Registern habe ich jetzt (hoffentlich) die Lösung gefunden:


set CUL_HM_HM_LC_Sw1PBU_FM_CustomFW_Sw_02 regSet shActionType  jmpToTarget self01;
set CUL_HM_HM_LC_Sw1PBU_FM_CustomFW_Sw_02 regSet shSwJtOn      dlyOff      self01;
set CUL_HM_HM_LC_Sw1PBU_FM_CustomFW_Sw_02 regSet shSwJtOff     off       self01;
set CUL_HM_HM_LC_Sw1PBU_FM_CustomFW_Sw_02 regSet shSwJtDlyOn   off          self01;
set CUL_HM_HM_LC_Sw1PBU_FM_CustomFW_Sw_02 regSet shSwJtDlyOff  off         self01;


Sorgt bei mir dafür, dass ich mit einem Schalter das Licht einschalten und mit dem anderen Ausschalten kann.

Der Status der Lampe und des Wechselschalters (AN/AUS) wird dabei berücksichtigt.

Ich hoffe ich finde die Tage dann nochmal Zeit um das Wiki zu erweitern, damit sich nicht jeder einen Wolf suchen muss.

frank

ZitatSorgt bei mir dafür, dass ich mit einem Schalter das Licht einschalten und mit dem anderen Ausschalten kann.
falls deine set-befehle erfolgreich waren, schaltest du mit deinem self01 definitiv nur aus.
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