Skip to content

Homematic_XMLRPC_installation_instructions

Jan Lapp edited this page Nov 26, 2019 · 1 revision

Homematic XMLRPC installation instructions

 - Translation pending -

For the usage of the driver see HomeMaticXmlRpc.

Prerequisites

Installation des HomeMatic-Funkmoduls für den Raspberry Pi 2

ACHTUNG! Für den RPI 3 siehe unten!

  1. Login als root

  2. raspi-config öffnen (Achtung! Dabei muss die /boot Partition beschreibbar sein, sonst werden die Änderungen nicht gespeichert!)

    1. Advanced Options 

    2. Serial

    3. Would you like a login shell to be accessible over serial? auf "No" setzen

    4. raspi-config verlassen

  3. Falls noch nicht geschehen, System herunterfahren und Funkmodul einstecken.

  4. Reboot durchführen. Mit sudo su als root einloggen. Das Verzeichnis /opt/hm anlegen.

  5. Mit wget https://github.com/eq-3/occu/archive/master.zip die aktuelle Version der OCCU herunterladen.

  6. Das Archiv mit unzip master.zip entpacken.

  7. In den entpackten Ordner occu-master wechseln.

  8. Im Unterordner arm-gnueabihf ./install.sh aufrufen. Verzeichnis /opt/hm muss zuvor erstellt worden sein, sonst kommt jetzt eine Fehlermeldung.

  9. Mit mit ln -s /opt/hm/etc/config /etc/config einen symbolischen Link anlegen.

  10. Mit einem Textediitor die Datei /etc/config/rfd.conf öffnen und entsprechend der Tabelle in "neu" ändern. 

    alt neu
    [Interface 0]
    Type = CCU2
    ComPortFile = /dev/ttyAPP0
    AccessFile = /dev/null
    ResetFile = /dev/ccu2-ic200
    [Interface 0]
    Type = CCU2
    ComPortFile = /dev/ttyAMA0
    AccessFile = /dev/null
    ResetFile = /sys/class/gpio/gpio18/value
  11. Damit ist der für das Funkmodul zuständige Prozess rfd fertig konfiguriert. Damit der rfd aber mit dem Modul kommunizieren kann, muss er in der Lage sein, einen Reset-Befehl an das Funk-Modul zu senden. Um den Reset des Moduls auszulösen, muss der GPIO-Pin 18 auf High (1) gesetzt werden. Der muss mit den folgenden Befehlen darauf vorbereitet werden.

    1. echo 18 > /sys/class/gpio/export

    2. echo out > /sys/class/gpio/gpio18/direction

  12. Da die GPIO-Einstellungen nach einem Neustart des RPI verloren gehen, kann man die Konfiguration mit einem einfachen Initscript, welches man z.B. als /etc/init.d/mod-hm-uart speichert, automatisieren: 

    /etc/init.d/mod-hm-uart
    #!/bin/sh
    # description: GPIO fuer HM-MOD-UART initialisieren

    ### BEGIN INIT INFO
    # Provides:             hm-mod-uart
    # Required-Start:       $local_fs $remote_fs
    # Required-Stop:        $local_fs $remote_fs
    # Default-Start:        2 3 4 5
    # Default-Stop:         0 1 6
    # Short-Description:    Initialize HN-MOD-UART
    ### END INIT INFO

    set -e

    case "$1" in
    'start')
            echo "Preparing GPIO for HM-MOD-UART..."
            if [ ! -d /sys/class/gpio/gpio18 ] ; then
                     echo 18 > /sys/class/gpio/export
                     echo out > /sys/class/gpio/gpio18/direction
                    RETVAL=$?
            fi
            ;;
    *)
            echo "Usage: $0 { start }"
            RETVAL=1
            ;;
    esac
    exit $RETVAL
  13. Mit update-rc.d mod-hm-uart defaults wird das Script aktiviert.

  14. Manuell lässt sich rfd wie folgt starten:

    1. export HM_HOME=/opt/hm

    2. export LD_LIBRARY_PATH=$HM_HOME/lib

    3. $HM_HOME/bin/rfd -c -l 0 -f /opt/hm/etc/config/rfd.conf

  15. Wenn soweit alles geklappt hat, sollte die Ausgabe von rfd wie folgt beginnen: 

    rfd
    root@raspi-2:~/occu-master/arm-gnueabihf# $HM_HOME/bin/rfd -c -l 0 -f /opt/hm/etc/config/rfd.conf
    2015/09/27 17:55:12.354 BidCoS-Service started
    2015/09/27 17:55:12.356 XmlRpc Server is listening on TCP port 2001
    2015/09/27 17:55:12.396 () CCU2CommController::handleIdentifyEvent(): Handling incoming identify event.
    2015/09/27 17:55:12.398 () CCU2CommController::handleIdentifyEvent(): Coprocessor entered bootloader. Starting application.
    2015/09/27 17:55:12.399 () CCU2CommController::startCoprocessorApp(): Trying to start coprocessor application
    2015/09/27 17:55:12.900  CCU2CommController::startCoprocessorAppThreadFunction(): Send start command
    2015/09/27 17:55:13.337 () CCU2CommController::handleIdentifyEvent(): Handling incoming identify event.
    2015/09/27 17:55:13.337 () CCU2CommController::handleIdentifyEvent(): Coprocessor entered application. Life is good.
    2015/09/27 17:55:13.363 CCU2CommController::init(): Coprocessor Bootloader Version is: 1.0.3
    2015/09/27 17:55:13.363 CCU2CommController::init(): Coprocessor Firmware Version is: 1.2.1
  16. Sollte alles einwandfrei laufen, empfiehlt es sich, noch ein kleines Initscript zu erstellen, um einen automatischen Start beim Booten des Raspberrys zu ermöglichen. Dazu kann man eine Datei /etc/init.d/rfd mit folgendem Inhalt anlegen:

    /etc/init.d/rfd

    #!/bin/sh -
    ### BEGIN INIT INFO
    # Provides:             rfd
    # Required-Start:       $local_fs $remote_fs
    # Required-Stop:        $local_fs $remote_fs
    # Default-Start:        2 3 4 5
    # Default-Stop:         0 1 6
    # Short-Description:    Start rfd
    ### END INIT INFO
    
    
    start() {
            echo -n "Starting rfd: "
            export HM_HOME=/opt/hm
            export LD_LIBRARY_PATH=$HM_HOME/lib
            start-stop-daemon -S -m -p /var/run/rfd.pid --exec $HM_HOME/bin/rfd -- -l 0 -f /opt/hm/etc/config/rfd.conf &
            echo "OK"
    }
    stop() {
            echo -n "Stopping rfd: "
            start-stop-daemon -K -q -p /var/run/rfd.pid
            echo "OK"
    }
    restart() {
            stop
            start
    }
    
    
    case "$1" in
      start)
            start
            ;;
      stop)
            stop
            ;;
      restart|reload)
            restart
            ;;
      *)
            echo "Usage: $0 {start|stop|restart}"
            exit 1
    esac
    
  17. Aktiviert wird das Script mit update-rc.d rfd defaults. 

 

Quelle: Einrichten der OCCU mit dem Funkmodul HM-MOD-RPI-PCB

 

Testen lässt sich die Schnittstelle (u.a.) mit XML-RPC test utility für Windows. Alternativ (und deutlich komfortabler) geht es auch mit XML-RPC Client für Chrome.

Der OGEMA-Treiber für das Homematic-Funkmodul ist hierbeschrieben.

Weitere Quellen: 


Installation des HomeMatic-Funkmoduls für den Raspberry Pi 3

Beim RPI 3 wurde die Benutzung der seriellen Schnittstelle in Verbindung mit Bluetooth im Vergleich zum  RPI 2 geändert. Diese Änderung müssen wir quasi rückgängig machen nach dieser bzw. dieser Anleitung. Folgendermaßen:

  1.  Falls noch nicht geschehen: aktuelles raspbian installieren (Jessy, Basis debian 8). Updaten:

    Als root

    apt-get update
    apt-get upgrade
    apt-get install rpi-update
    rpi-update 
    reboot
    
  2. Als root: 

    /boot/config.txt ergänzen um

    enable_uart=1
    dtoverlay=pi3-miniuart-bt
    core_freq=250
    

    in /boot/cmdline.txt löschen:

    console=serial0,115200 
    

     

  3. serial-getty deaktivieren und Bluetooth auf ttyS0 legen (falls es überhaupt installiert ist):

    Als root:

    systemctl disable serial-getty@ttyAMA0.service
    sed -i s/ttyAMA0/ttyS0/ /lib/systemd/system/hciuart.service
    
  4. Reboot

  5. Weiter mit Schritt 3 in der Anleitung für den RPI 2 !

Device codes

The device types are shown in the resource Homematic with the following names. The serial number is a code like "MEQ1529699" that is printed on a label on the device.

Device Type Name Remarks
Thermostat HM_HM_CC_RT_DN_<serialNr>  
Power Meter HM_HM_ES_PMSw1_Pl_<serialNr>  
Homematic Radio Adapter at OGEMA-Gateway HM_HM_RCV_50_BidCoS_RF usually not relevant for applications
Motion Detector HM_HM_Sec_MDIR_2_<serialNr> Brigtnesse sensor not supported yet
Door/Window Sensor HM_HM_Sec_SCo_<serialNr>  
Temperature/Humdity Sensor HM_HM_WDS10_TH_O_<serialNr>  

Getting started with the HomeMatic driver (USB version; outdated)

  • Check the "official" Homematic page (currently not up to date)
  • If you have a new Homematic USB stick you have to connect it once to a PC and start the Homematic configuration software (e.g. from http://www.eq-3.de/Downloads/Software/Konfigurationsadapter/Konfigurationsadapter_USB/HM-CFG-USB_Usersoftware_V1_517_eQ-3_141120.zip). The status bar at the bottom should say "Verbunden mit XXX@USB" at the end of the start-up procedure. Usually you have to finish the driver installation procedure for each new USB stick you connect to a windows PC (even if you have connected other eq3-sticks before). You may skip looking for a driver in windows updates (where nothing will be found anyways). Still it might take a couple of minutes after you connect the USB stick to your PC. After starting the software the USB stick has got an own address, which is required for correct operation with the OGEMA driver (otherwise you may loose a lot of messages and the power meter cannot be switched, ...)
  • Connect the Homematic USB stick to your Raspberry, start it, log in, check "lsusb" - there should be a device with id 1b1f:c00f
  • Now you have to give the standard user "pi" permission to access the USB stick. Way 1: Go to http://usb4java.org/faq.html, create the file /etc/udev/rules.d/99-userusbdevices.rules given there (you might have problems with root permission using WinSCP, so for windows users way 2 is recommended, but may also be the easiest way for all) with an adapted content: *SUBSYSTEM=="usb",ATTR{idVendor}=="1b1f",ATTR{idProduct}=="c00f",MODE="0660",GROUP="plugdev" *The value for plugdev might have to be adjusted if you are not using Raspian as operating system for the Raspberry or if you are using a different user from "pi" Way 2: Copy the file that can be found in https://www.ogema-source.net/svn/svnrep-iwes-experimental/trunk/dnestle-tutorial-2.0/datalog-rundir/config/99-userusbdevices.rules (potentially also in the default rundir in the future) via WinSCP to the directory you are working in your Putty session anyways (connect via Putty if you are not already) . Then enter: sudo cp 99-userusbdevices.rules /etc/udev/rules.d/
  • (debugging tool, logs HM messages: hmland http://forum.fhem.de/index.php/topic,13071.0.html)
  • Now unplug and plug again the USB stick, now you should be able to run the OGEMA-Demokit (clean recommended)
  • You should now be able to pair a Homematic plug by typing into the OSGi console after complete startup of the demokit: "hmll:enablePairing"
  • After also starting pairing mode at the Homematic plug by pressing the button for several seconds (starts blinking yellow), you should get first a message on the console that a new device was found and then also messages when new measurement values are received.
  • Note that currently your devices paired in Homematic are not stored persistently automatically. So you have to re-pair them even if you start without clean. To avoid that type "hmll:cacheDevices" in the console or go the application DeviceConfiguration->Low level driver(Homematic)->Caching Devices

 


 

Erfahrungen mit der Installation eines HomeMatic-Heizkörperthemostats

Beschreibung in der HomeMatic-Anleitung grundsätzlich nicht schlecht, es fehlen aber einige wichtige Informationen. Hilfreich ist auf jeden Fall in Film, z.B. dieser hier:

EQ3-Heizkörperventil ohne Funk installieren

Wichtige Informationen:

  • Zumindest zum Lösen der Schraube des alten Ventils wird i.d.R. eine Wasserpumpenzange (alternativ ggf. Gripzange) o.ä. benötigt (auch wenn EQ3 / ELV teilweise etwas anderes behaupten bzw. suggeriert wird, dass man ganz ohne Werkzeug auskommt). Die Montage des Thermostats mit Überwurfmutter dürfte mittlerweile die gängigste Variante sein und die große Mutter ist meist so fest angezogen, dass man eine Zange benötigt.
  • Da das Thermostat vor der Demontage voll aufgedreht werden muss und das Ventil ohne Kopf auch voll aufgedreht bleibt, wird der ganze Heizkörper und insbesondere das Ventil schnell recht heiß (zumindest während der Heizperiode, je nach Vorlauftemperatur im System). Auch deshalb ist das Arbeiten mit einer Zange ggf. einfacher, als sich die Finger zu verbrennen oder Handschuhe zu verwenden
  • Die HomeMatic-Thermostate müssen nicht auf das Ventil aufgeklemmt werden, sondern können rein durch die Überwurfmutter festgezogen werden. Auch hierzu ist eine Zange empfehlenswert, da in jedem Fall das Thermostat so festgezogen werden sollte, dass es festsitzt und nicht wackelt und dies mit bloßer Hand ggf. nicht erreicht wird. Das HomeMatic-Thermostat kann nach der Installation trotzdem noch einen deutlich größeren Abstand vom Ventil/Heizkörper haben, als der ursprüngliche Thermostat - dies wird offenbar vom HomeMatic-System bei der Adaptierfahrt nach der Installation ausgeglichen.
  • Man sollte nach der Installation testen, ob das Ventil richtig geschlossen wird. Dazu mit der linken Taste auf manuellen Betrieb schalten ("Manu") und auf sehr niedrige Temperatur (5°C) oder "Off" schalten und warten, ob der Heizkörper komplett abkühlt. Außerdem mit Boost-Funktion testen, ob der Heizkörper schnell warm wird. Letzteres ist aber vermutlich selten ein echtes Problem.
  • Wenn man während der Installation versehentlich auf die mittlere Taste drückt, wird ggf. zu früh die Adaptierfahrt gestartet. Dann noch mal mit der mittleren Taste zurück auf "INS" schalten und warten, bis der Stift wieder komplett eingefahren ist.
  • Wenn man Samstag Vormittags installiert und/oder testet (beliebte Zeit zum Heimwerkern...), sollte man beachten, dass Sa 11:00 die Entkalkungsfahrt automatisch durchgeführt wird - in dieser Zeit wird kurzzeitig voll geheizt.
  • Beim Testen ist weiterhin zu beachten, dass das Thermostat bei manuellen Anpassungen der Temperatur teilweise erst nach 1 bis 2 Minuten reagiert und auf/zu fährt, vermutlich um zu vermeiden, ständig hin und her zu fahren, wenn z.B. Kinder daran herumdrehen. Die Boost-Funktion scheint aber sofort aktiviert zu werden.

/etc/init.d/mod-hm-uart

Next

 


  • HomeMaticXmlRpc: usage of the driver
  • Back to Public Applications and Drivers

Attachments:

{width="8" height="8"} xmlrpc_100.zip (application/zip) {width="8" height="8"} HM_XmlRpc_API.pdf (application/pdf) {width="8" height="8"} 142141_hm_rpi_pcb.pdf (application/pdf) {width="8" height="8"} 142141_hm_rpi_pcb_schaltplan.pdf (application/pdf)

Clone this wiki locally