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

jab

Abend Peter,

so ich hab mir das gerade noch mal in Ruhe angesehen. Ich war etwas zu doof für Einheiten :-/.


1.000.000 us / 50 Hz = 20k


Da ist ein Limit von 500 vielleicht etwas klein. Du hast das ja jetzt auf 5000 erhöht. Habe das mal entsprechend umgerechnet. Für meine Lampe wäre das vermutlich zu hoch. Ich habe nur einen Wert von ca 3500 wenn die Lampe an ist. Ich werde das nächstes Wochenende bei mir mal experimentell ausprobieren.

Ist jetzt im git. Guck mal ob das so passt.


Gruß,
Jan

peterk_de

Huhu jab, danke fürs Prüfen. Ich lasse es dann mal noch im Testbed und teste es die Tage mal an verschiedenen Verbrauchern. Ich hatte ansonsten meine Version mal heute über Nacht laufen und mitgeloggt - sieht immernoch sehr gut aus. Also zumindest für mich wäre die jetzt schonmal tauglich für den Wechselschaltungs-Produktiveinsatz.

Angenommen wir finden keinen Wert der für alle taugt - oder auch so - macht das viel Aufwand den Schwellwert als Reading anzulegen? Dann könnte man schneller testen ohne immer neu flashen zu müssen. Ich hab nämlich immernoch die Vermutung, dass das dem HM-CFG-USB-2 nicht sonderlich bekommt. Die letzten 2 mal Flashen hat er nämlich schon arg rumgezickt (USB-Gerät verschwunden und so, musste ihn letztendlich neu dranstecken) - vorher gings mindestens 10 mal problemlos.
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

Samsi

Hallo,

ich will mich jetzt auch mal wieder damit beschäftigen. Ich habe mir den OTA Bootloader mal angeschaut.

mit sudo ./flash-ota -f payload.eq3 -s KEQ0123456  wird ja dann die eigentlich Firmware übertragen. Die Seriennummer KEQ0123456   habe ich nun aber  nirgends im bootloader gefunden. Dort habe ich nur einen HMID ABCDEF gefunden.

Bin da jetzt noch etwas verwirrt, weil die Seriennummer und HMID ja erst mit der eigentlichen Firmware gesetzt werden.

Grüße




FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

jab

Hi,

@Samsi:
Die HMID im Bootloader spielt keine große Rolle. Der Flasher bekommt sie wenn das Gerät sich meldet. Sie kann später anders sein. Die Seriennnummer ist aktuell etwas versteckt in eine Message. Ich werde sie noch mal konfigurierbar machen. AKtuell meldet das Gerät sich ja eh nur für 10s nach dem Reboot daher sind doppelte Seriennummern nicht so schlimm. Kann man aber noch verbessern.

@peterk_de:
Ich bin schon bei HM-CFG-USB-2 Nummer 3 ;-). Meiner hat beim flashen schon zwei mal den Geist aufgegeben. Ich habe keine Ahnung woran das liegt. Der Hersteller tauscht den aber problemlos.


Gruß,
Jan

Samsi

Hallo,

Wer wie ich mit der Arduino IDE unter windows arbeitet und den Bootloader kompilieren möchte, der muss ein paar Dinge beachten:

Um make und avrdude in der Kommandozeile zu benutzen müssen erst die Windows Path variablen angepasst werden. Normalerweise liegt die Arduino IDE nach der installation unter Win 7 in folgendem Ordner:

C:\Program Files (x86)\Arduino\......

make kommt aber mit "Program Files (x86)" gar nicht zurecht und spuckt nur fehler aus.

Deshalb muss die Path variable so angegeben werden:

;c:\PROGRA~2\Arduino\hardware\tools\avr\utils\bin;C:\PROGRA~2\Arduino\hardware\tools\avr\bin;C:\PROGRA~2\Arduino\hardware\tools\avr\etc

Dann klappt make und avrdude auch unter Windows.


Außerdem habe ich keinen USB ISP sondern benutze einen Arduino mit ArduinoISP, das setzen der Fuses funktioniert dann so:


avrdude -p m644  -c avrisp -P \\.\com13 -b 19200 -U lfuse:w:0xFD:m -U hfuse:w:0xD8:m

Ihr müsst bei euch aber evtl den COM port ändern (bei mir com13)



Das flashen des Bootloaders funktioniert dann so:

avrdude -p m644  -c avrisp -P \\.\com13 -b 19200 -V -U flash:w:bootloader.hex
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

frank

hallo samsi,

danke für die tips. auf der suche nach der lösung habe ich übrigens einen modifizierten arduinoISP-sketch bei adafruit gefunden, der wohl eine optimierte fuse behandlung enthält. falls du interesse hast https://raw.github.com/adafruit/ArduinoISP/master/ArduinoISP.ino. erklärung steht im sketch.

wie hast du denn ota update mit windows und fritzbox geplant?

gruss 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

Samsi

Letztendlich wollte ich die Firmware dann mit dem HM Firmware Updater und dem USB stick von meinem Notebook aus programmieren und nicht noch irgend etwas an der FB herumwurschteln.

Nur leider stürzt des HM Firmware Update tool beim laden der payload.eq3 ab :(

Hat jemand eine Idee?

EDIT: Hatte vergessen, das die eq3 Datei  in einem tar.gz Archiv sein muss. Jetzt hat das Update funktioniert
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

frank

hallo jan,

mein plan ist die ota-updates über fhem und cul zu machen.
damit das funktioniert muss in fhem erst ein device vorhanden sein. mit einem schalter, der nur mit bootloader geflasht ist, wird man ja in fhem kein device anlegen können. daher möchte ich bereits im angelöteten zustand, den schalter mit bootloader und firmware flashen.

spricht etwas dagegen den schalter nach flashen des bootloaders, zusätzlich mit einer firmware zu flashen? muss man dabei etwas beachten, oder kann ich die firmware genauso wie bisher (ohne bootloader) dazu flashen.

weitere einzelheiten zum flashen in fhem, sollten dann vielleicht hier http://forum.fhem.de/index.php/topic,23329.0.html besprochen werden.

gruss 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

jab

Hi,

@samsi: Ich habs mal in die Readme geschrieben. Makefile macht so ja keinen Sinn oder?

@frank: Das funktioniert glaube ich nicht ohne weiteres. Du musst dafür sorgen, dass der Flasher nicht den gesamten Flash löscht wenn du die Firmware flashst. avrdude müsste das können (Option -D), aber hab ich nicht getestet. Ansonsten ist es vermutlich einfacher das Gerät einfach manuell in FHEM zu definieren und dann zu flashen.
Ich weiß nicht ob es so ohne weiteres in FHEM geht, da HMID und Seriennummer ja aktuell nicht übereinstimmen (dem Windowstool und hmland ist das egal). Ich werde das aber noch konfigurierbar machen.


Gruß,
Jan

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

Samsi

Zitat von: jab am 07 Mai 2014, 20:56:17
Makefile macht so ja keinen Sinn oder?

Wieso soll das Makefile keinen Sinn machen? Wenn man den Arduino path so wie beschrieben in Windows setzt, dann kann man einfach in den ordner gehen in dem auch das makefile liegt und make eingeben und alles ist paletti. Oder hab ich Dich falsch verstanden?



Ich hab den Aktor jetzt geflasht und die Register alle wieder gesetzt. Ich kann am internen Taster ein und ausschalten. Wenn ich den externen 'Wechselschalter' bekomme ich aber keine neuen Status für den 2. Switch gesendet.  Sprich der 2. Switch ist immer off. Hab ich da was übersehen.  Direkt nach der Stromzufuhr kommt noch eine Message, aber nicht mehr nach dem Schalten:

2014-05-07_20:18:32 licht_kellerFlur_Sw_02 level: 0 %
2014-05-07_20:18:32 licht_kellerFlur_Sw_02 pct: 0
2014-05-07_20:18:32 licht_kellerFlur_Sw_02 deviceMsg: off (to HMLAN1)
2014-05-07_20:18:32 licht_kellerFlur_Sw_02 off

nach einem externen Schaltvorgang kommen nur die current werte:

2014-05-07_21:09:51 licht_kellerFlur_Sw_02 current: 0
2014-05-07_21:10:10 licht_kellerFlur_Sw_02 current: 0
2014-05-07_21:10:29 licht_kellerFlur_Sw_02 current: 1
2014-05-07_21:10:48 licht_kellerFlur_Sw_02 current: 281
2014-05-07_21:11:06 licht_kellerFlur_Sw_02 current: 80
2014-05-07_21:11:25 licht_kellerFlur_Sw_02 current: 342
2014-05-07_21:11:45 licht_kellerFlur_Sw_02 current: 73
2014-05-07_21:12:03 licht_kellerFlur_Sw_02 current: 0
2014-05-07_21:12:22 licht_kellerFlur_Sw_02 current: 0
2014-05-07_21:12:41 li

Irgendwie blick ich nicht mehr richtig durch ;)


Was passiert eigentlich mit den gesetzten Registern bei einem OTA flash? Bleiben die jetzt erhalten?









FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

peterk_de

Hmmmm Samsi, was hastn du da dranhängen, also was für ne Lampe? Der Grund könnte sein: Kanal Sw2 ist ja der, der den Vebraucherstatus korrekt anzeigen sollte. Unter anderen auf mein Drängen hin hat jab ja die Stromflusserkennung wesentlich weniger sensitiv gemacht, da der Schalter sonst im ausgeschaltet Zustand ständig Messages gesendet hat. Nun ja, bei mir haut das an diversen Lampen hin (mehrere 230V-Halogenlampen, andere hab ich nirgends) - allerdings nicht in der Version ausm Git, sondern die die ich gepostet habe) - jabs aktuelle habe ich noch nicht versucht. Könnte sein, dass dein Vebraucher zu geringen Strom zieht als dass der Schalter jetzt ein "an" erkennt, der max. current-Wert von 347 deutet darauf hin... Wenn du Lust hast, kannst du ja mal den Schwellwert im Source suchen und etwas senken...

Edit: +1 für Schwellwert als Reading setzbar machen ;-)
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

Samsi

@peter

Jetzt wo Du es erwähnst, das ist dieselbe LED Lampe die ich früher zum testen verwendet hatte, damals hatte Sie noch Werte um die 3400:

http://forum.fhem.de/index.php/topic,18071.msg128023/topicseen.html#msg128023

Bei der damals getesteten 60W Lampe kommen jetzt folgende Werte:

2014-05-07 22:35:52 CUL_HM licht_kellerFlur_Sw_02 current: 789
2014-05-07 22:36:10 CUL_HM licht_kellerFlur_Sw_02 current: 867
2014-05-07 22:36:29 CUL_HM licht_kellerFlur_Sw_02 current: 866
2014-05-07 22:36:48 CUL_HM licht_kellerFlur_Sw_02 current: 866

Damals waren es 6888

Sieht so aus als hättet Ihr die Berechnung um den Faktor 10 verändert.

Bei 60W kommen die Messages. Werde mal schauen ob ich das im Code finde und verändern.


FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

jab

Hi Samsi,

guck mal minImpulsLength im Code an. Probier mal kleinere Werte.

Beim OTA update bleiben Register bestehen aktuell. Ggf müsste man da noch ein erase einbauen.

Der current Wert wird jetzt anders gemittelt. Das fixe ich noch.


Gruß
Jan

Samsi

Danke Jan,

habs mal auf 1000 geändert. Schaut gut aus ;)


Beim OTA update bleiben Register bestehen aktuell. Ggf müsste man da noch ein erase einbauen.
Blos nicht ;) Ich bin froh das es so funktioniert.
Werden die nicht so mit resettet?:  Reset device (double long press)


Hat sich das mit dem Makefile geklärt?


FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM