Installation des Busware COC auf dem Raspberry Pi für die Nutzung mit FHEM

Momentan beschäftige ich mich ein wenig mit Heimautomation. Da ich zur Miete wohne, kommt es leider nicht in Frage ein KNX/EIB-System zu installieren, da alle Teile wieder abnehmbar sein müssen. Daher muss ich eine Funklösung her. Als Software verwende ich FHEM, einen in Perl geschrieben Server, welcher die Verwaltung der Geräte übernimmt. Als Funk-Sender & -Empfänger kommt bei mir ein Busware COC zum Einsatz. Auf der Wiki-Seite von Busware wird wunderbar erläutert, wie man diese Einrichtung vollzieht, ich rate auf jeden Fall dazu, dort immer die aktuellsten Schritte nachzuvollziehen. Das folgende Tutorial ist auf dem Stand vom 09.05.2013.

Zunächst starte ich mit einem Raspbian auf dem ich das fhem-Debian-Paket installiere. Für die folgende Schritte wechsle ich auf den User „root“! Die folgenden Schritte sind natürlich auf eigene Gefahr!

Nachdem man die ersten Schritte auf dem System getan hat (SSH-Server einschalten usw.) kommt man dann zur Einrichtung des COC. Zunächst sollte man zuvor avrdude installieren, da man ohne dieses Tool nichts flashen kann:

apt-get install avrdude

Nun muss man zunächst einen Seriellen Port freimachen. Dazu muss man zunächst /etc/inittab editieren und die folgenden Zeilen mit einem Kommentar versehen:

T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

Sodass diese so aussieht:

# T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

Anschließend muss man alle Einträge mit ttyAMA0 aus der Datei /boot/cmdline.txt entfernen. Meine Zeile sah vorher so aus:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Und danach dann so:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Jetzt einmal rebooten und nach dem Boot wieder zu User „root“ wechseln! Anschließend sollte man FHEM erstmal stoppen:

/etc/init.d/fhem stop

Dann wird die Firmware geflashed. Dazu muss man zunächst wissen, ob man einen COC mit 1-Wire oder ohne gekauft hat. Hat man einen mit, so muss man diese Datei herunterladen (COC.hex) andernfalls diese Datei (COC.radio_only.hex). Da ich keine 1-Wire-Extension gekauft hatte, nehme ich letztere:

wget "http://culfw.svn.sourceforge.net/viewvc/culfw/trunk/culfw/Devices/COC/COC.radio_only.hex?revision=HEAD" -O COC.radio_only.hex

Nun muss man den COC mit ein paar Kommandos ansteuern um den Bootloader anzusprechen:

echo "calling COC bootloader..."
if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi
echo out > /sys/class/gpio/gpio17/direction
echo out > /sys/class/gpio/gpio18/direction
echo 0 > /sys/class/gpio/gpio18/value
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio18/value

Und nun wird die Firmware geflashed (Achtung Dateiname am Ende bei dem anderen Gerätetyp tauschen!):

avrdude -p atmega1284p -P /dev/ttyAMA0 -b 38400 -c avr109 -U flash:w:COC.radio_only.hex

Dies sieht wie folgt aus:

COC-Firmware
COC-Firmware

Abschließend muss man nun noch die Datei /etc/init.d/fhem ein wenig abändern. Suche:

start)

Ersetze durch:

start)
	echo "resetting 868MHz extension..."
	if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
	if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi
	echo out > /sys/class/gpio/gpio17/direction
	echo out > /sys/class/gpio/gpio18/direction
	echo 1 > /sys/class/gpio/gpio18/value
	echo 0 > /sys/class/gpio/gpio17/value
	sleep 1
	echo 1 > /sys/class/gpio/gpio17/value
	sleep 1

Dies initialisiert die COC-Erweiterung bei jedem Start von FHEM. Wenn man nun noch möchte, kann man einen Watchdog-Prozess installieren, welcher den Raspberry bei dauerhafter hoher CPU-Last durchpustet. Dies ist auf der Busware-Seite ganz unten beschrieben. Dort findet sich auch, wie man die Ansteuerung der 1-Wire und RTC Module vornimmt.

Veröffentlicht von

Uli

IT-Nerd und Admin

19 Gedanken zu „Installation des Busware COC auf dem Raspberry Pi für die Nutzung mit FHEM“

  1. Hallo Uli,
    vielen Dank für deine Anleitung.

    Leider hänge ich bei „Nun muss man den COC mit ein paar Kommandos ansteuern um den Bootloader anzusprechen“ fest.

    Wenn ich „avrdude -p atmega1284p -P /dev/ttyAMA0 -b 38400 -c avr109 -U flash:w:COC.radio_only.hex“ eingebe kommt die Fehlermeldung:

    calling COC bootloader...
    Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding

    Was kann ich tun?

    1. Hi Cornelius,

      unter welchem User führst du das aus? Kann es sein, dass du nicht als root unterwegs bist?

      Viele Grüße,
      Uli

      Edit: Ich habe das oben auch hinzugefügt, danke für den Hinweis!

      1. Danke für den Hinweis.

        Habs noch mal als root probiert.

        Leider ist das Ergebnis das gleiche.

        Mit welchen Befehlen hast du denn den COC mit ein paar Kommandos ansteuern um den Bootloader anzusprechen?

        1. Hi Cornelius,

          starte den Raspberry Pi erstmal einmal durch, damit wir wieder bei Null sind.

          Dann führe die Befehle ab „calling COC bootloader“ nochmal nacheinander aus, das spricht den Bootloader an. Und anschließend nochmal den avrdude-Befehl. Das sollte dann funktionieren.

          Viele Grüße,
          Uli

          1. So ich bin alles als root noch mal durchgegangen.
            Ergebnis wie vorher
            „programmer is not responding“

            Noch ne Idee?

            2te Frage: Kann ich mit dem COC überhaupt im 433er Band senden?

            1. Hi Cornelius,

              ich sehe, dass du dich schon an das richtige Forum gewandt hast, ansonsten hätte ich dich da hin verwiesen.

              Ein paar Fragen hab ich noch:

              1. Leuchtet die LED des COC permanent?
              2. Hast du ein COC ohne 1-Wire/RTC Support?

              Viele Grüße,
              Uli

    2. @Cornelius: bin auch auf die Anleitung gestoßen, alles so beschrieben und am ende kommt bei mir auch „programmer is not responding“.
      hast du es inzwischen hinbekommen und wenn ja wie?
      danke.

      1. ich nochmal, ich habe es doch noch hinbekommen. ich hatte erst mal alles nicht als root ausgeführt und dann klappte es nicht. also musste ich erst ein root Passwort anlegen und hatte nochmal neu gebootet und vergessen fhem zu stopen. daher die Fehlermeldung. jetzt hat das update geklappt.

        danke für die Anleitung !

  2. Hi Uli,

    ist ja interessant 😉 Genau dafür habe ich mich vor ca. 2 Monaten auch entschieden. Bei mir läuft FHEM auf der FritzBox 7390 😉
    Super zufrieden damit.

    Gruss und weiter so!
    Tim

  3. Hi Uli,
    Ich habe mich auch vor kurzem für den RasPi mit COC-nur_Funk entschieden. Vorher hatte ich FHEM auf einer Fritz!Box, das war mir aber zu langsam und unzuverlässig (good luck to Tim!!!) Außerdem fühle ich mich auf einem richtigen Debian-System wohler als auf Systemen mit kastriertem BusyBox.
    Läuft mit dem Image von busware.de. War einfach: Image von busware.de ziehen, mit Win32DiskImager auf SDHC-card schreiben, einschieben, starten und freuen. Mein COC war offensichtlich schon mit Firmware bespielt.
    Ich würde aber noch weitere Änderungen im Init-Skript von FHEM vornehmen: Zum einen, um die Zeit vor Start von FHEM richtig zu setzen. Das ist bei einem RasPi ohne RTC ziemlich wichtig, damit FHEM nicht ins Schleudern kommt. Zum Anderen sollte FHEM beim Boot-Prozess später gestartet werden. Dazu gibt’s Änderungen im Init-Skript, die im FHEM-Forum beschrieben sind.
    Vorsicht: beim Update von FHEM mittels Debian-Package wird (momentan) das init-Skript aus dem Package eingespielt, so dass lokal vorgenommene Änderungen am Init-Skript verloren gehen.
    Gruß und noch viel Spaß mit dem RasPi!
    Helmut
    P.S.: vielleicht noch der Hinweis auf die Leistungsaufnahme: 3,05 W mit Steckernetzteil!

    1. Kann mich absolut nicht beklagen was Performance angeht! Läuft bisher absolut stabil und ohne jegliche Ausfälle. Einschränkungen auch Keine. Aber ein RasPi wird für den SiriProxy wahrscheinlich dennoch seinen Platz finden 😉

  4. Hallo Andre,

    kannst Du mir verraten wie Du das COC auf der RCU zum laufen gebracht hast?
    Ich habe den busware Kernel und Version 2.5.4 des homematic updates, aber ich habe keinen COC Zugriff. Unter der Raspian Version von busware klappt es.

  5. HAllo,
    habe Problem wie oben beschrieben. Flash zeigt „programmer not responding“
    Erst mal – wie bekomme ich raus was für ein Board ich habe ? Habe es zu geburtstag bekommen und ausser board und Rechnung mit fast null Infos habe ich nichts –
    Es ist von Busware – COC erweiterung . Konnte aber kein Bild sehen was meines zeigt. Meins hat keinee BAtterie usw. — ist von 3.2013 drauf steht V1.1. Muss ich da überhaupt was draufspielen ? geht dies ?
    Wie komme ich nun mit der Fehlersuche weiter. Bin nicht grad der Linux guru, habs aber trotzdem geschafft eine Webserver usw am laufen zu haben.
    uname -a
    Linux raspi 3.6.11-busware+ #3 PREEMPT Tue Apr 2 23:37:43 CEST 2013 armv6l GNU/Linux

    i2cdetect -y 1 zeigt bei mir nichts ( keine Adresse — weshalb ?? )

    Hilfe wäre super

  6. Hallo zusammen,
    ich bin am überlegen ob ich mir nicht http://shop.busware.de/product_info.php/products_id/77 zulege.
    Wie ich sehe habt ihr schon Erfahrungen mit dem COC. Eine frage habe ich aber noch:
    CC1101 radio frontend (433/868/915MHz) w/ m1284p co-processor << bedeutet dies, dass ich alle 3 Frequenzen benutzen kann? Auf der Seite kann ich nur die 868 auswählen, kann mir da jemand weiterhelfen?
    Busware wurde vor einer Woche angefragt – Bis jetzt keine Antwort 🙁

    Gruß und DANKE

    Daniel

Schreibe einen Kommentar zu Daniel Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.