Skip to content

YAHM Module: HM MOD RPI PCB

Leonid Kogan edited this page May 17, 2016 · 4 revisions

Mit Hilfe dieses Moduls wird das HM-MOD-RPI-PCB Raspberry Funkmodul innerhalb des LXC Containers aktiviert.

Die Portierung/Anpassung dieses Modul von LXCCU wurde von dem User Leon265130 des Homematic-Forums beigesteuert.

Installation

Folgende Einstellungen werden durch das YAHM Modul bei der Installation automatisch gesetzt.

Deaktivierung der seriellen Konsole

Die serielle Konsole im Raspbian muss deaktiviert wird, damit diese für das Modul zur Verfügung steht

Hierzu werden in der Datei /boot/cmdline.txt alle Einträge mit den Werten: console=serial0 oder console=ttyAMA0 entfernt

Anpassung Bluetooth (Rpi3)

Sollte ein Raspberry 3 gefunden werden, muss zusätzlich Bluetooth angepasst werden, da dieser die gleichen GPIO Pins verwendet, wie das Raspberry Funkmodul.

Zur Anpassung des BT Moduls wird ein so genanntes Overlay pi3-miniuart-bt-overlay für Kernel < 4.1 bzw. pi3-miniuart-bt für Kernel > 4.1 in die Datei /boot/config.txt eingetragen, damit beim Start die GPIO Pins des BT Module von Raspberry 3 anders belegt werden und für das Modul zur Verfügung stehen.

Anlegen Geräte und Sym-Links im LXC Container (LXC)

Damit das Funk-Modul innerhalb des LXC Containers funktioniert, müssen hierfür einige Geräte angelegt werden. Zusätzlich zur Kompatibilität mit den CCU2 Backups werden einige Symlinks angelegt, die die Hardware der CCU2 nachbilden.

mknod -m 666 /dev/ttyAMA0 c 204 64
ln -s /dev/ttyAMA0 /dev/mmd_bidcos
ln -s /sys/class/gpio/gpio18/value /dev/ccu2-ic200

Anpassung /etc/config/rfd.conf

Nach der Installation von YAHM werden durch eine Patch/Skript Datei alle Einstellungen für Interface 0 (Interner Funkmodul) des RFD Prozesses entfernt, da nicht jeder Benutzer ein Raspberry Funkmodul besitzt und Einträge ohne Funkmodul zum einem Fehler im System führen werden. Diese Änderung wird durch das Modul rückgängig gemacht.

[Interface 0]
Type = CCU2
Description = CCU2-Coprocessor
ComPortFile = /dev/mmd_bidcos
AccessFile = /dev/null
ResetFile = /dev/ccu2-ic200

Installation Startup Skriptes (Host)

Es wird ein Skript unter /etc/init.d/hm-mod-rpi-pcb angelegt, welches die notwendigen Exports im SYSFS des Raspbian setzt, auf diese Weise kann nach dem Reboot auf das Modul zugegriffen werden.

#!/bin/sh
### BEGIN INIT INFO
# Provides:       hm-mod-rpi-pcb yahm
# Required-Start: udev mountkernfs $remote_fs
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: Enables GPIO 18 as reset Interface for HM RF Module for Raspberry
# Description:
### END INIT INFO

. /lib/lsb/init-functions

case "$1" in
  start)
    log_daemon_msg "Enables GPIO 18 as Reset Interface for Homematic RF wireless module"
    printf " Enables GPIO 18 as Reset Interface for Homematic RF wireless module"
    if [ ! -d /sys/class/gpio/gpio18 ]
      then
      echo "Preparing GPIO for HM-MOD-UART..."
      echo 18 > /sys/class/gpio/export
      echo out > /sys/class/gpio/gpio18/direction
      printf "Preparing GPIO for HM-MOD-UART done!"
    fi
    # hold reset until rfd starts
    echo 0 > /sys/class/gpio/gpio18/value
    log_end_msg 0
    ;;
  *)
    echo "Usage: $0 start" >&2
    exit 3
    ;;
esac

Deinstallation

Bei der Deinstallation werden die oben genannten Änderungen Rückgängig gemacht. Sollte die serielle Konsole weiterhin deaktiviert bleiben, muss diese nachträglich manuell deaktiviert werden. (z.B. mit raspi-config)