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

nexulm

Zitat von: frank am 19 Februar 2015, 13:36:49
welche last schaltest du? nimm eine lampe mit mehr watt. durchsuche den thread nach current.
ca. 30-50W (7x 7W Energiesparlampe und 6x 5W LED),
Mehr Watt ist aus meiner Sicht zum Thema Energie sparen nicht sinnvoll/gewünscht.

Zitat von: frank am 19 Februar 2015, 13:36:49
so wird alles gelöscht. auch pairing. wenn dein chn4 nicht richtig funktioniert, frage ich mich, warum du den dann zum peeren nimmst.
Ich benutze den CHn4, da dieser doch nur in Abhängikeit des Stromwertes schalten kann, oder habe ich da was falsch verstanden.
Meine Erwartung wäre nun gewesen ich schalte an einer beliebigen Schaltstelle in meiner Wechsel- oder Kreuzschaltung das Licht ein. Der Schalter erkennt nun, dass das Licht schon an ist und bei einem erneuten "On" über CHn01 passiert nichts (v.a kein toggle auf OFF), bei "Off" über CHn02 wird das Licht ausgeschaltet.
Funktioniert dies üblicherweise so?

Zitat von: frank am 19 Februar 2015, 13:36:49
was meinst du?
Ich möchte gerne in meiner Wechsel- oder Kreuzschaltung das Licht am Funkschalter durch Taste hoch immer an und durch Taste runter immer ausschalten. Mein Funkschalter ist an erster Postion im Schaltkreis, d.h. L1 = Eingang und die Ausgänge 1/2 sind entsprechend mit dem klassischen Wechselschalter verbunden, dessen Ausgang dann mit der Lampe.

Wie setzt du den Schalter denn ein bzw. poste doch bitte mal ein getConfig von deinem xxx_Sw_02 / xxx_Sw_01!
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

Pythonf

Ich würde gerne meinen HM-LC-Sw1PBU mit meinem ISP Programmer (USBasp ASP USBISP 3.3V/5V AVR) mit dem OTA Bootloader flashen um dann die alternative FW zu installieren.
Leider habe ich absolut keine Ahnung was ich machen muss. Der ISP Programmer hat 10 Pins, die ich aber nicht zuordnen kann (Graues, flaches Kabel). Ich weiß zwar wo ich am HM-LC-Sw1PBU den Flasher anlöten muss, aber nicht mit welchen Pins. Könnt ihr mir da irgendwie weiter helfen? Und wie genau importiere ich die Dateien aus dem Git in Arduino und flashe das ganze damit?

Beste Grüße
Fabian

hexenmeister

Die Belegung des ISP-Programmers-Buchse ist doch leicht im Netzt zu finden:

(http://s6z.de/cms/images/content/arduino/USBASP_Pinbelegung.png)

(http://s6z.de/cms/images/content/arduino/USBasp_01_k.png)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

frank

ZitatMehr Watt ist aus meiner Sicht zum Thema Energie sparen nicht sinnvoll/gewünscht.
es geht ums testen der stromerkennung. mit 60 watt glühbirne scheint die fw korrekt zu arbeiten. 11 watt energiesparlampe zeigt bei mir in fhem nicht die korrekten stati an.

chn4 ist quasi ein virtueller chn. current zeigt ob strom fliesst oder nicht. je nach last irgendwelche werte. nichts genormtes. ab einem gewissen wert, einstellbar in der fw, geht der status dieses chn auf on wenn die fw-variable entsprechend deiner last richtig eingestellt ist.

chn3 ist der normale ausgang des aktors.

list chn3: meine lampe in wechselschaltung ist aus. btn2 ist gepeert mit chn3. der resultierende lampenstatus sollte an chn4 zu sehen sein. habe ich noch nie drauf geachtet. über fhem würde ich auch chn3 schalten. ist direkter.

Internals:
   .triggerUsed 1
   DEF        266EA503
   NAME       SwitchPBU01_Sw_01
   NR         385
   STATE      off
   TYPE       CUL_HM
   chanNo     03
   device     SwitchPBU01
   peerList   self02,
   Readings:
     2015-02-19 18:41:11   CommandAccepted yes
     2014-12-27 16:00:53   R-self02-lgActionType off
     2014-12-27 15:58:58   R-self02-lgCtDlyOff geLo
     2014-12-27 15:58:58   R-self02-lgCtDlyOn geLo
     2014-12-27 15:58:58   R-self02-lgCtOff geLo
     2014-12-27 15:58:58   R-self02-lgCtOn geLo
     2014-12-27 15:58:58   R-self02-lgCtValHi 100
     2014-12-27 15:58:58   R-self02-lgCtValLo 50
     2014-12-27 16:00:53   R-self02-lgMultiExec off
     2014-11-02 20:56:53   R-self02-lgOffDly 0 s
     2014-11-02 20:56:53   R-self02-lgOffTime unused
     2014-12-27 16:00:53   R-self02-lgOffTimeMode absolut
     2014-11-02 20:56:53   R-self02-lgOnDly 0 s
     2014-11-02 20:56:53   R-self02-lgOnTime unused
     2014-12-27 16:00:53   R-self02-lgOnTimeMode absolut
     2014-12-27 15:58:58   R-self02-lgSwJtDlyOff off
     2014-12-27 15:58:58   R-self02-lgSwJtDlyOn on
     2014-12-27 15:58:58   R-self02-lgSwJtOff dlyOn
     2014-12-27 15:58:58   R-self02-lgSwJtOn dlyOff
     2014-12-27 15:58:58   R-self02-shActionType jmpToTarget
     2014-12-27 15:58:58   R-self02-shCtDlyOff geLo
     2014-12-27 15:58:58   R-self02-shCtDlyOn geLo
     2014-12-27 15:58:58   R-self02-shCtOff geLo
     2014-12-27 15:58:58   R-self02-shCtOn geLo
     2014-12-27 15:58:58   R-self02-shCtValHi 100
     2014-12-27 15:58:58   R-self02-shCtValLo 50
     2014-11-02 20:56:53   R-self02-shOffDly 0 s
     2014-11-02 20:56:53   R-self02-shOffTime unused
     2014-12-27 15:58:58   R-self02-shOffTimeMode absolut
     2014-11-02 20:56:53   R-self02-shOnDly 0 s
     2014-11-02 20:56:53   R-self02-shOnTime unused
     2014-12-27 15:58:58   R-self02-shOnTimeMode absolut
     2014-12-27 15:58:58   R-self02-shSwJtDlyOff off
     2014-12-27 15:58:58   R-self02-shSwJtDlyOn on
     2014-12-27 15:58:58   R-self02-shSwJtOff dlyOn
     2014-12-27 15:58:58   R-self02-shSwJtOn dlyOff
     2014-12-27 15:59:12   R-sign          off
     2015-02-19 18:38:48   RegL_01:          08:00 00:00
     2015-02-19 18:38:56   RegL_03:self02    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:00 8B:14 8C:63 00:00
     2015-02-19 20:02:29   deviceMsg       off (to ccu)
     2015-02-19 20:02:29   level           0 %
     2015-02-19 20:02:29   pct             0
     2015-02-19 18:38:49   peerList        self02,
     2015-02-19 20:02:29   recentStateType info
     2015-02-19 20:02:29   state           off
     2015-02-19 20:02:29   timedOn         off
     2015-01-10 15:46:13   trigLast        SwitchPBU01_Btn_02 :short
     2015-01-10 15:46:13   trig_SwitchPBU01_Btn_02 short
   Helper:
     dlvl       00
     dlvlCmd    ++A0111ACE1F266EA50203000000
     peerIDsRaw ,266EA502,00000000
     Bm:
       Cul_hm_get:
         cnt        2
         dmx        0
         max        1
         tot        2
         mAr:
           HASH(0x14adb38)
           SwitchPBU01_Sw_01
           ?
       Cul_hm_set:
         cnt        20
         dmx        0
         max        234
         tot        983
         mAr:
           HASH(0x14adb38)
           SwitchPBU01_Sw_01
           on
     Role:
       chn        1
       prs        1
     Shadowreg:
Attributes:
   event-on-change-reading .*
   group      Beleuchtung
   model      HM-LC-Sw1PBU-FM-CustomFW
   peerIDs    00000000,266EA502,
   room       10_WZ


list chn4

Internals:
   .triggerUsed 1
   CHANGED
   DEF        266EA504
   NAME       SwitchPBU01_Sw_02
   NR         386
   STATE      off
   TYPE       CUL_HM
   chanNo     04
   device     SwitchPBU01
   Readings:
     2015-02-19 18:41:30   CommandAccepted yes
     2015-02-19 18:38:50   RegL_01:          82:00 83:00 84:00 85:00 86:00 87:00 88:00 89:00  8A:00 8B:00 8C:00 00:00
     2015-02-19 20:24:58   current         0
     2015-02-19 20:02:29   deviceMsg       off (to ccu)
     2015-02-19 20:02:29   level           0 %
     2015-02-19 20:02:29   pct             0
     2015-02-19 20:02:29   recentStateType info
     2015-02-19 20:02:29   state           off
     2015-02-19 20:02:29   timedOn         off
   Helper:
     dlvl       00
     dlvlCmd    ++A0111ACE1F266EA50204000000
     peerIDsRaw ,00000000
     Bm:
       Cul_hm_get:
         cnt        4
         dmx        0
         max        1
         tot        4
         mAr:
           HASH(0x14ad758)
           SwitchPBU01_Sw_02
           ?
       Cul_hm_set:
         cnt        240
         dmx        0
         max        239
         tot        1870
         mAr:
           HASH(0x14ad758)
           SwitchPBU01_Sw_02
           off
     Role:
       chn        1
       prs        1
     Shadowreg:
Attributes:
   event-on-change-reading .*
   expert     2_full
   group      Beleuchtung
   model      HM-LC-Sw1PBU-FM-CustomFW
   peerIDs    00000000,
   room       10_WZ
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

nexulm

Zitat von: frank am 19 Februar 2015, 20:30:51
es geht ums testen der stromerkennung. mit 60 watt glühbirne scheint die fw korrekt zu arbeiten. 11 watt energiesparlampe zeigt bei mir in fhem nicht die korrekten stati an.
OK, also evtl. ein Grund den Wert in den Firmware-Sourcen anzupassen und eine neue Firmware zu bauen.
Hierzu haben ich nun aber noch folgende Verständnisfrage:
Wie funktioniert die Strommessung genau bzw. wie komme ich an den Stromwert (get AZ_Schalter_Sw_02 param current) ran und werte diesen zum aktiven schalten der Ausgänge aus?
Wie häufig wird der Stromwert aktualisiert?

Wenn ich nur mit CHn3 (= _Sw_01) peere habe ich keinen Stromwert auf CHn4 (= _Sw_02) zur Verfügung. Diese steht nur zur Verfügung wenn ich den virtuellen Kanal auch peere.

Was will ich?
Eine Erkennung wenn die Lampe über den Funkschalter eingeschaltet wurde und über eine andere (klassische) Schaltstelle in der Wechsel-/Kreuzschaltung wieder ausgeschaltet wurde. In diesem Fall soll der Funkschalter dies erkennen (Strommessung) und das Licht wieder per notify (?) einschalten.

Zitat von: frank am 19 Februar 2015, 20:30:51
chn4 ist quasi ein virtueller chn. current zeigt ob strom fliesst oder nicht. je nach last irgendwelche werte. nichts genormtes. ab einem gewissen wert, einstellbar in der fw, geht der status dieses chn auf on wenn die fw-variable entsprechend deiner last richtig eingestellt ist.
Welcher Wert wurde denn hier schon erfolgreich getestet für <=40 Watt lampen?

Meine im derzeit im Einsatz befindlichen 2x HM-LC-Sw1PBU-FM funktionieren seit gestern Abend nun wieder wie mit Originalfirmware. :-)
Die notwendigen Änderungen waren das festsetzen auf den "Toggle"-Mode durch (hier am Beispiel für den Short-Press:
Toggle Function - Button 01:
set AZ_Schalter_Sw_01 regSet shActionType jmpToTarget self01;
set AZ_Schalter_Sw_01 regSet shSwJtOn dlyOff self01;
set AZ_Schalter_Sw_01 regSet shSwJtOff dlyOn self01;
set AZ_Schalter_Sw_01 regSet shSwJtDlyOn on self01;
set AZ_Schalter_Sw_01 regSet shSwJtDlyOff off self01;

Toggle Function - Button 02:
set AZ_Schalter_Sw_01 regSet shActionType jmpToTarget self02;
set AZ_Schalter_Sw_01 regSet shSwJtOn dlyOff self02;
set AZ_Schalter_Sw_01 regSet shSwJtOff dlyOn self02;
set AZ_Schalter_Sw_01 regSet shSwJtDlyOn on self02;
set AZ_Schalter_Sw_01 regSet shSwJtDlyOff off self02;
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

nexulm

Zitat von: nexulm am 20 Februar 2015, 10:59:46
Wie häufig wird der Stromwert aktualisiert?
Frage selbst beantwortet. ;-)
In den Sourcen steht 150, also alle 150s!

Darüber hinaus wird der Wert aber nicht in Abhängigkeit einer Stromänderung verschickt was für meine Anwendung aber zwingend erforderlich ist, damit ich sofort auf die Änderung (Licht aus) reagieren kann. Von daher habe ich "send message" auch in den "act on changes" Bereich aufgenommen und hoffe somit die gewünschte Funktionalität zu gewinnen!
                // Act on changes
                if (currentSense != lastCurrentSense)
                {
                  rl[1].setCurStat(currentSense?3:6);
//                  Serial << F("New Powersense: ") << currentSense << '\n';
//                  hm.sendInfoActuatorStatus(4,currentSense?0xC8:0x00,0);
hm.sendSensorData(0, 0, lastSensorImpulsLength/(50*sendSensorIntervalSec), 0, 0); // send message
                  lastCurrentSense = currentSense;
                }
                sei();

Zitat von: nexulm am 20 Februar 2015, 10:59:46Welcher Wert wurde denn hier schon erfolgreich getestet für <=40 Watt lampen?
Nach nochmaligen Querlesen des Wiki-Artikels habe ich nun den Wert 5000 (=500) auf 1000 (=100) gesetzt, da meine gesehenen Strom-Werte im Bereich 400-600 liegen
const unsigned long minImpulsLength = 1000;
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

nephdrasil

Hallo ich mal wieder,

habe es nun hinbekommen auf Ubuntu den srecord zu compilieren. Nur leider bekomme ich bei:

sudo srec_cat Bootloader-AskSin-OTA-HM_LC_Sw1PBU_FM_8k.hex -intel -fill 0xFF 0x0000 0xDFFE -Cyclic_Redundancy_Check_16_Little_Endian 0xDFFE -o  payload.bin -binary

den folgenden fehler beim Bootloader bauen.

srec_cat: Bootloader-AskSin-OTA-HM_LC_Sw1PBU_FM_8k.hex: 468: warning: The data
    presented for CRC16 calculation has at least one hole in it. This is bad. It
    means that the in-memory calculation performed by your embedded system will
    be different than the calculation performed here. You are strongly advised
    to use the "--fill 0xFF --over <inoput>" filter *before* the CRC16 filter to
    ensure both calculations are using the same byte values. See srec_info(1)
    for how to see the holes.


Kann mir jemand helfen? oder soll ich das erstmal ignorieren?
FHEM 5.5 + Fritz Box 7390 + HM-CFG-USB + HM-CC-RT-DN

Tobias

also falls es hilft, der 4k Bootloader lief bei mir auf Ubuntu sauber durch
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

nexulm

Zitat von: nephdrasil am 28 Februar 2015, 08:52:27
Kann mir jemand helfen? oder soll ich das erstmal ignorieren?
Welche Version von srecord benutzt du denn?
Ich habe die Original srecord 1.64 Version aus dem Bootloader github von hier https://github.com/jabdoa2/Asksin_OTA_Bootloader/tree/master/Contrib/bin genutzt!
Compilieren ging unter Kubuntu 14.10 problemlos. Genutzt habe ich srecord für meinen 8k Bootloader nicht, da ich das .hex file direkt mit dem Programmer programmiert habe.

Erstellung der Firmware mit dem selbst kompilierten srecord ging mit folgemdem Befehl bei mir zumindest fehlerfrei:
php hex2eq.php --inFile Asksin_HM_LC_Sw1PBU_FM_2A3363.hex --outFile Asksin_HM_LC_Sw1PBU_FM_2A3363.eq3 --spmPageSize 256 --hexEndAddress 0xDFFE --outFormat eq3 --withCrcCheck --pathTo-srec_cat <path_to_screcord_bin>
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

nephdrasil

Ich habe die 1.64 genutzt

Ich wollte denn bootloader erstmal erstellen und über Ota auf den Schalter nehmen.

Kann ich mit dem Befehl auch den bootloader erstellen?


Ich nehme an den Pfad zu srecord muss ich angeben
FHEM 5.5 + Fritz Box 7390 + HM-CFG-USB + HM-CC-RT-DN

der2of6

Hallo Zusammen,
Ich hab jetzt noch eine blöde Frage zu dem Thema:

Wenn ich die Serial und HMID vom Schalter ändern will, müss ich das im Bootloader und in der FW machen oder nur in FW?


Edit:
Mittlerweile bin ich etwas weiter, habe aber wohl irgendwo noch einen kleinen Denkfehler:

Ich habe die FW mit der orginalen HMID und Serial gebaut, den Bootoader (Mit der Serial KEQ0123456) geflashed (Via Raspi) und dann via CFG-USB2 meine Firmware OTA geflashed.

Wenn ich jetzt allerdings beim Bootloader in der /devices/HM-LC-Sw1PBU-FM.h die HMID und die Serial vom meinem Gerät eintrage, dann kann ich die FW nicht OTA flashen. Das device wird unter der serial einfach nich gefunden :(



nephdrasil

Hi,

2 Sachen über die ich auch gestolbert bin.

1. Hast du die Serial und die HM ID im bootloader angepasst?
2. es ist zwigend notwendig den notwentigen Abstand zwischen Schalter und HM-CFG-USB (mindestens 2 meter).

Poste doch mal deinen Code wie du flaschen willst.
FHEM 5.5 + Fritz Box 7390 + HM-CFG-USB + HM-CC-RT-DN

der2of6

Gut, dann nochmal Schritt für Schritt unter der Annahme, dass die FW an sich OK ist (FHEM gibt mir die richtige SN und HMID aus).

Ich habe mir die Daten für den OTA Bootloader (https://github.com/jabdoa2/Asksin_OTA_Bootloader) auf meinen Raspi geladen, avr-gcc und die benötigen Dateien installiert.
Dann in der HM-LC-Sw1PBU-FM.h die SN und die ID auf die Daten des Schalters geändert:

// 10 bytes serial number. Must be unique for each device
#define HM_SERIAL            'L', 'E', 'Q', '1', '1', '2', '2', '3', '3', '5'

// 3 bytes The device address (hm_id)
#define HM_ID                0x12, 0x34, 0x56


Dann den 4k Bootloader gebaut :

make clean HM_LC_Sw1PBU_FM

Und dann bin ich der raspi Anleitung von Mr. P gefolgt:

Setzen der FUSE
avrdude -p m644 -P gpio -c gpio -U lfuse:w:0xFD:m -U hfuse:w:0xD8:m
-> OK
Flashen des oben erstellten Bootloader:
avrdude -p m644 -P gpio -c gpio -U flash:w:bootloader_HM-LC-Sw1PBU-FM.hex

Und dann möchte ich die erstellte FW flashen

flash-ota -f eigeneFW.eq3 -s LEQ1122334



Wenn ich flash-ota starte, dann startet der den USB Adapter neu und wartet auf den Schalter.
Und ab hier passiert nichts mehr.

Wenn ich den von Mr. P gelieferten Bootloader nehme und dann via flash-ota flashe


flash-ota -f firmware_HM-LC-Sw1PBU-FM.eq3 -s KEQ0123456


dann klappt alles.


nexulm

Zitat von: nephdrasil am 28 Februar 2015, 11:16:33
Ich wollte denn bootloader erstmal erstellen und über Ota auf den Schalter nehmen.
D.h. du hast den Bootloader schon einmal per ISP auf den Schalter geflasht. Weil OTA geht erst, wenn der OTA Bootloader einmalig per Prrogrammer geflasht wurde!

Zitat von: nephdrasil am 28 Februar 2015, 11:16:33
Kann ich mit dem Befehl auch den bootloader erstellen?
Habe ich nie ausprobiert, da mir flashen eines Bootloader per OTA zu heikel war.

Zitat von: nephdrasil am 28 Februar 2015, 11:16:33
Ich nehme an den Pfad zu srecord muss ich angeben
Genau.
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

nexulm

Zitat von: der2of6 am 28 Februar 2015, 18:18:03
make clean HM_LC_Sw1PBU_FM

Und dann bin ich der raspi Anleitung von Mr. P gefolgt:

Setzen der FUSE

avrdude -p m644 -P gpio -c gpio -U lfuse:w:0xFD:m -U hfuse:w:0xD8:m

-> OK
Das sind aber die falschen Fuses, die von dir genutzten sind für den 8k Bootloader. Da bin ich auch am Anfang drauf reingefallen. Korrekt ist:
4k-Bootloader Fuses:
avrdude -p m644 -P gpio -c gpio -U lfuse:w:0xFD:m -U hfuse:w:0xDA:m -U lock:w:0x3F:m

8k-Bootloader Fuses:
avrdude -p m644 -P gpio -c gpio -U lfuse:w:0xFD:m -U hfuse:w:0xD8:m -U lock:w:0x3F:m

Zitat von: der2of6 am 28 Februar 2015, 18:18:03
Wenn ich den von Mr. P gelieferten Bootloader nehme und dann via flash-ota flashe
Ich vermute mal, dass es sich bei diesem Bootloader um die 8k Variante handelt und dann musst du zwingend vorher die richtige Fuses für den 8k-Bootloader setzen (s. oben).
Unter der Github-Adresse des Bootloader stheht aber auch der nützliche Link in der Readme zur Erklärung der Fuses:
http://eleccelerator.com/fusecalc/fusecalc.php?chip=atmega328p&LOW=E2&HIGH=D0&EXTENDED=06&LOCKBIT=2F
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