Ich möchte euch hier eine interessante Variante vorstellen, zu der ich mich veranlasst sah, weil ich im Gartenhaus einige Homematic, sowie Homematic IP Aktoren verbaut habe. Trotz externer Antenne und verändertem Standort der Homematic Zentrale im Haus, kam es immer wieder zu Kommunikationsproblemen. Für die verwendeten Homematic Aktoren wäre der Einsatz eines weiteren LAN-Gateways im Gartenhaus eine gute Möglichkeit, das Problem zu beheben. Diese Lösung funktioniert jedoch nicht für die eingesetzten Homematic IP Aktoren, weil ein LAN-Gateway das Funkprotokoll von Homematic IP nicht „verlängert“. Es existiert zwar die Möglichkeit eine Homematic IP Steckdose als Repeater zu verwenden, was aber aufgrund einer notwendigen Ausseninstallation und der Tatsache, das es sich um einen Innensteckdose handelt, nicht so einfach machbar. Genau aus diesem Grund habe ich mir überlegt, eine weitere Homematic Zentrale in Form einer vorhandenen CCU2 im Gartenhaus zu installieren. Damit kann ich dann alle Komponenten im Garten durch die geringere Entfernung der zweiten CCU jederzeit erreichen und steuern. Es beschreibe euch in diesem Artikel auch die Möglichkeit, von einer CCU mit einer weiteren CCU zu kommunizieren. Es ist sogar möglich über eine Fernbedienung im Haus auf der Haupt-CCU eine Aktion auszulösen, welche dazu führt, das auf der zweiten CCU die dort angelernten Aktoren gesteuert werden können.

Ausgangslage

Wie oben bereits beschrieben, verwende ich im Garten mehrere Homematic IP Dimmaktoren, um diverse Beleuchtungen im Garten automatisch zu steuern. Dies gelingt leider nicht immer, weil es öfter als mir lieb ist, zu Kommunikations Problemen kommt. Das gleiche gilt auch für die im Garten eingesetzten Homematic Aktoren. Der Plan ist nun, eine zweite Homematic Zentrale zu etablieren und die zum Garten gehörenden Aktoren zu steuern. Aufgrund des Mischbetriebes von Homematic und Homematic IP Aktoren ist nur diese Variante möglich. Das liegt daran, das wie in der Einleitung bereits beschrieben ein LAN-Gateway nicht die vorhandenen Homematic IP Aktoren ansprechen kann. Auch das oben aufgezeigte Problem mit der Homematic IP Innensteckdose im Aussenbereich als Repeater einzusetzen war für mich nicht sehr ratsam. Natürlich erfordert dies eine einmaligen hörenen Implementationsaufwand, weil man die auf der Haupt-Zentrale im Haus definierten Aktoren dort abgelernt und an der zweiten CCU angelernt werden müssen. Zusätzlich sind die Programme auf der Haupt Zentrale zu löschen oder zu deaktivieren und auf der Zweit Zentrale anzulegen.

Hardware Varianten

Bei dem Einsatz von zwei CCUx in einer Installation ist es möglich sowohl die Master-CCU, wie auch die Zweit-CCU auf diversen Plattformen zu betreiben. Ich habe bei mir ein ASUS Tinker Board S als Master und habe das hier beschriebene Verfahren sowohl mit einer CCU2, einer CCU3 und einer piVCCU3-, sowie einer RaspberryMatic Installation auf einem Raspi PI 3B+ betrieben. Aufgrund der Tatsache, das eine nagelneue CCU2 mit einem 12monatigen Zugang über CloudMatic aktuell zum gleichen Preis wie ein HomeMatic LAN-Gateway zu erwerben ist, bietet sich diese Variante an. Wenn ihr noch einen ungenutzen Rapsberry Pi herumliegen habt, könnt ihr diesen natürlich auch verwenden. Die Entscheidung auf welcher Basis ihr die Zweit-CCU aufbaut ist sehr individuell und hängt von den jeweiligen Anforderungen des Anwenders ab. Aufgrund der Tatsache, das ich noch eine CCU2 ungenutzt im Schrank hatte, habe ich mich für diese Variante entschieden. Die zweite CCU soll bei mir alle Aktoren im Garten steuern und daher reicht auch von der Geschwindigkeit her eine CCU2 vollkommen aus.

Vergleich CCU2 und HomeMatic LAN-Gateway

Hier möchte ich euch die Wichtigsten Unterschiede beim Einsatz einer zweiten CCU2 im Gegensatz zum Einsatz eines LAN-Gateways aufzeigen:

CCUxLAN-Gateway
HomeMatic Protokoll verlängernJAJA
HomeMatic IP Protokoll verlängernJANEIN
WebUI OberflächeJANEIN
Nutzung eigener Logik (Direktverknüpfungen)JANEIN
Nutzung eigener Logik (Programme)JANEIN
Reduzierung des Duty CyclesJAJA
Externer ZugriffJANEIN
Zugriff über SSHJAJA
Installation von AddOns möglichJANEIN
Zustandsinfos via MailJANEIN
Zustandsinfos via PUSH NachrichtenJANEIN
Kontrolle der VerbindungJAJA
Kommunikation zwischen Master und xxxJANEIN

Ich habe bereits zwei LAN-Gateways im Einsatz und sie verrichten Beide den ihnen zugedachten Job einwandfrei. Der Duty Cyyle der Master CCU wird deutlich reduziert und auch die Kommunikationsprobleme zu weiter entfernten Aktoren sind gleich null. Einen habe ich über eine alte CCU2 realisiert (zum Artikel). Das zweite LAN-Gateway läuft über einen Raspberry Pi 3B (zum Artikel). Aber durch die oben beschriebene Situation, das ich im Garten in der Hauptsache HomeMatic IP Aktoren eingesetzt habe, macht den Einsatz eines weiter LAN-Gateways nicht möglich, weil wie schon oft beschrieben, eine Verlängerung des HomeMatic IP Funk-Protokolls damit nicht möglich ist.

Wenn ihr euch den oben aufgeführten Vergleich einer LAN-Gateway Lösung und den Einsatz einer zweiten CCU anschaut, spricht eigentlich Alles für den Einsatz einer zweiten CCU. Ich habe mich bemüht das Ganze sehr objektiv zu vergleichen, aber eindeutiger Punktsieger ist für mich die zweite CCU. Es gibt mir deutlich mehr Möglichkeiten und wie man diese nutzt, hängt von der entsprechenden Umgebung bzw. dem Anwender ab.

Zweite CCU im gleichen Netz

Technisch ist es überhaupt kein Problem eine zweite CCUx im gleichen Netz zu betreiben. Das Einzige was nicht funktioniert ist die Tatsache, das die installierten Aktoren ausschließlich auf einer der beiden CCUs angelernt sein dürfen. Es empfiehlt sich auch, den beiden CCUs jeweils eine feste IP Adresse zu vergeben und einen eindeutigen Namem im Netz. Wollt ihr wie bei mir bereits angelernte Aktoren auf der zweiten CCU anlernen, müsst ihr die betroffenen Aktoren im ersten Schritt auf der aktuellen Master CCU ablernen bzw. löschen. Anschließend könnt ihr diese dann auf der zweiten CCU anlernen und anschließend steuern. Diese Steuerung kann auf der zweiten CCU in der gewohnten Art und Weise über Direktverknüpfungen oder WebUI Programme stattfinden.

Das erhöht auch nach der Einrichtung den Aufwand der Kontrolle bzw. Übersicht ein wenig, weil man auf zwei CCUs nachschauen muss, ob alles einwandfrei funktioniert. Aber auch dafür habe ich eine Lösung gefunden, welche es euch ermöglicht, auf der zweiten CCU Aktionen durchzuführen und die Master CCU darüber zu informieren. Genauso könnt ihr beispielsweise auf der Master CCU eine Aktion auslösen, welche dann auch Aktionen auf der Zweit CCU auslöst.

Wie genau das funktioniert, werde ich später in Form eine sogenannten HeartBeat erklären. Dabei fragt die Master CCU in Zyklus von 15 Minuten die Zweit CCU ab und wenn von dort keine Rückmeldung kommt, bekomme ich eine PUSH Meldung auf mein Handy. Die weiteren oben beschriebenen Möglichkiten werden ich in einem Folgeartikel beschreiben.

Kommunikation zwischen den beiden CCUs

Voraussetzung für eine Kommunikation zwischen den beiden CCUs ist die Installation des CUx-Daemon (CUxD) AddOns auf beiden CCUs. Auf meiner Master RaspberryMatic Installation war dies bereits vorhanden (siehe Artikel). Auf der zweiten CCU musste ich CUxD noch installieren und ein entsprechendes Gerät einrichten (siehe Artikel). Wichtig dabei ist zu beachten, das es unterschiedliche Versionen von CUxD gibt, die von der Plattform abhängen. Die korrekte Version sowie eine Dokumentation findet ihr auf der CUx-Daemon-Website. Wenn auf beiden Systemen der CUxD AddOn installiert ist und die CCUs neu gestartet sind, sind die Voraussetzungen für eine Kommunikation gegeben

Systemvariablen austauschen

Die Kommunikation zwischen den CCUs findet über Systemvariablen statt. Diese können mittels CUxD von einer CCU zur anderen CCU übertragen werden. Dabei ist die entsprechende IP-Adresse der empfangenden CCU von Bedeutung.

Damit das funktioniert, ist es ganz wichtig, das die Systemvariablen auf beiden Systemen mit exakt dem gleichen Namen und dem gleichen Datentyp angelet worden sind. In meinem hier beschriebenen Beispiel geht es um den sogenannten HeartBeat.

Hier seht ihr die beiden Systemvariblen auf der Master-CCU (RaspberryMatic)
Hier seht ihr die beiden Systemvariblen auf der Zweit-CCU (CCU2)

Wie oben bereits beschireben, ist es ganz wichtig, die Systemvariablen auf beiden Systemen absolut identisch zu halten. Namen und Variablentyp müssen übereinstimmen.

HeartBeat Abfrage auf Master auslösen

Auf der Master CCU läuft im Zyklus von 15 Minuten ein Programm, was den HeartBeat Prozess auslöst. Dabei geht es darum, das die Master-CCU prüft ob von der zweiten CCU noch eine Status Meldung zurück kommt. Das heißt, das Master-System schickt eine Systemvariable mit einem bestimmten Inhalt an die zweite CCU. Diese Änderung der Systemvariable auf dem Zweitsystem löst dort ein Programm aus, welches dann eine Rückmeldung bei der Master-CCU durchführt. Nachfolgend seht ihr einen Ausdruck des WebUI Programmes. Wenn euch der Ausdruck des Programmes gefällt, hier mehr Information.

Programm „HeartBeat Abfrage CCU Garten“ auf der Master-CCU – (c) technikkram.net

Erklärung des Programmes

  • Bedingung
    • Als Bedingung für die Ausführung des Programmes gibt es als erstes die Zeitsteuerung, mittels der im Zyklus von 15 Minuten das Programm auf der Master-CCU gestartet wird. Zusätzlich frage ich noch die Steuerungs-Systemvariable „X_HeartBeat_Kontrolle“ ab. Steuerungs-Systemvariable deshalb, weil ich in meiner Installation diese Variablen immer mit einem „X“ im Namen beginnen. Dieses „X“ steht für eXecution und soll bedeuten, das ich über solche Varibalen steuere, ob Programme oder Aktionen auf dem System laufen oder nicht. So habe ich auch von unterwegs über Handy die Möglichkeit diese Variable im konkreten Fall von „aktiv“ auf „inaktiv“ zu setzen. Es ist für mich wichtig, das ich auch unterwegs mitbekomme, das sich die Zweit-CCU nicht mehr beim Master meldet. Über diese Steuerungsvaribale habe ich die Möglichkeit die Abfrage des HeartBeats zu stoppen, damit ich unterwegs nicht alle 15 Minuten eine PUSH Nachricht aufs Handy bekomme.
  • Aktivität
    • In der Zeile 1 wird die Variable „HeartBeat_CCU_Garten_Abfrage“ auf den Wert „Abfrage offen“ gesetzt;
    • In der Zeile 2 wird mit einer Verzögerung von 1 Sekunde das entsprechende Sktipt ausgelöst (Beschreibung später);
    • In der Zeile 3 wird mit einer Verzögerung von 10 Sekunden die Variable „HeartBeat_CCU_Garten_Meldung“ auf den Wert „Meldung prüfen“ gesetzt;
    • In der Zeile 4 wird mit einer Verzögerung von 15 Sekunden die Variable „HeartBeat_CCU_Garten_Meldung“ auf den Wert „Meldung nicht prüfen“ gesetzt;

Beschreibung Script

  • Zeilen
    • 1. Zeile: Dokumentationszeile zur Beschreibung des Scriptes;
    • 2. Zeile: Den Inhalt der Systemvariable „HeartBeat_CCU_Garten_Abfrage“ auslesen;
    • 3. Zeile: HTTP Befehl zusammen setzen. Wichtig dabei die IP-Adresse der Zweit-CCU 192.168.1.18 und den Port 8181 zu verwenden;
    • 4. Zeile: Absetzen des HTTP Befehl mittels CUxD Gerätes;

HeartBeat Abfrage auf Zweit-CCU beantworten

Auf der Zweit-CCU wird durch die Änderung der Systemvariablen „HeartBeat_CCU_Garten_Abfrage“ auf den Wert „Abfrage offen“ über das Programm von der Master-CCU das Programm „Skript – HeartBeat CCU Garten“ ausgelöst. Das heißt, das Master-System schickt eine Systemvariable mit einem bestimmten Inhalt an die zweite CCU. Diese Änderung der Systemvariable auf dem Zweitsystem löst dort ein Programm aus, welches dann eine Rückmeldung bei der Master-CCU durchführt. Nachfolgend seht ihr einen Ausdruck des WebUI Programmes:

Programm „Skript – HeartBeat CCU Garten“ auf der Zweit-CCU – (c) technikkram.net

Erklärung des Programmes

  • Bedingung
    • Als Bedingung für die Ausführung des Programmes dient die Systemvariable „HeartBeat_CCU_Garten_Abfrage“. Wird der Wert durch das Programm auf dem Master-System auf „Abfrage offen“ gesetzt, rennt das Programm los.
  • Aktivitäten
    • In der Zeile 1 wird die Variable „HeartBeat_CCU_Garten_Abfrage“ auf der Zweit-CCU sofort auf den Wert „Abfrage erledigt“ gesetzt;
    • In der Zeile 2 wird mit einer Verzögerung von 1 Sekunde das entsprechende Sktipt ausgelöst (Beschreibung später);

Beschreibung Script

  • Zeilen
    • 1. Zeile: Dokumentationszeile zur Beschreibung des Scriptes;
    • 2. Zeile: Den Inhalt der Systemvariable „HeartBeat_CCU_Garten“ auslesen – Wert wird bei Start der CCU auf „aktiv“ gesetzt;
    • 3. Zeile: HTTP Befehl zusammen setzen. Wichtig dabei die IP-Adresse der Master-CCU 192.168.1.50 und den Port 8181 zu verwenden;
    • 4. Zeile: Absetzen des HTTP Befehl mittels CUxD Gerätes;

HeartBeat Rückmeldung auf Master auswerten

Auf der Master-CCU wird durch die Aktualisierung der Systemvariablen „HeartBeat_CCU_Garten“ auf den Wert „aktiv“ durch das Programm von der Zweit-CCU auf der Master-CCU das Programm „HeartBeat CCU Garten Rückmeldung“ ausgelöst. Dieses Programm setzt dann die Systemvariable „HeartBeat_CCU_Garten_Abfrage“ auf den Wert „Abfrage erledigt“. Nachfolgend seht ihr einen Ausdruck des WebUI Programmes:

Programm „HeartBeat CCU Garten Rückmeldung“ auf der Master-CCU – (c) technikkram.net

Erklärung des Programmes

  • Bedingung
    • Bei Aktualisierung der Systemvariable „HeartBeat_CCU_Garten“ auf den Wert „aktiv“ wird das Programm ausgelöst;
  • Aktivität
    • Die Systemvariable „HeartBeat_CCU_Garten_Abfrage“ wird auf den Wert „Abfrage erledigt“ gesetzt;

Push Nachricht wenn keine Rückmeldung

Das gesamte bisher beschriebene Verfahren läuft innerhalb von einer bis maximal zwei Sekunden ab, wie ihr später anhand der Screenshots des Systemprotokolles sehen könnt. Um sicher zu gehen, das wenn die Rückmeldung von der Zweit-CCU nicht innerhalb von 10 Sekunden erfolgt, setze ich im ersten Programm des Verfahrens auch die Systemvariable „HeartBeat_CCU_Garten_Meldung“ auf den Wert „Meldung prüfen“. Diese Änderung der Systemvariable löst dann nach 10 Sekunden das nachfolgende Programm aus:

Programm „HeartBeat CCU Garten Push Versand“ auf der Master-CCU – (c) technikkram.net

Erklärung des Programmes

  • Bedingung
    • Wenn die Aktualisierung der Systemvariable „HeartBeat_CCU_Garten_Meldung“ auf den Wert „Meldung prüfen“ statfindet, wird das Programm ausgelöst;
    • Zusätzlich wird die Systemvariable „HeartBeat_CCU_Garten_Abfrage“ auf den Wert „Abfrage offen“ geprüft – Dieser Wert hat nur Bestand, wenn die Rückmeldung nicht innerhalb von 10 Sekunden gekommen ist.
  • Aktivität
    • Wenn die beiden Bedingungen erfüllt sind, wird eine PUSH Nachricht mit dem Inhalt „INFO – CCU Garten meldet sich nicht bei Zentrale zurueck“ an mein Handy geschickt. Eine Beschreibung zum Versand von PUSH Nachrichten findet ihr in diesem Artikel.

Systemprotokolle

Nachfolgend zeige ich euch ein paar Screenshots aus dem Systemprotokoll der beiden Systeme. Darin könnt ihr den Ablauf der Aktion auf der Master-CCU und der Zweit-CCU erkennen und sehen wir schnell das Ganze funktioniert.

Systemprotokoll der Master-CCU

Zeit Datum Kanal / Systemvariable AktivitätBeschreibung
18:15:0017.03.2019HeartBeat_CCU_Garten_AbfrageAbfrage offenAbfrage an Zwei-CCU senden
18:15:0117.03.2019HeartBeat_CCU_GartenaktivRückmeldung von Zweit-CCU
18:15:0117.03.2019HeartBeat_CCU_Garten_AbfrageAbfrage erledigtVariable auf Master ändern
18:15:1017.03.2019HeartBeat_CCU_Garten_MeldungMeldung prüfenPrüfung starten
18:15:1517.03.2019HeartBeat_CCU_Garten_MeldungMeldung nicht prüfenPrüfung beenden

Systemprotokoll der Zweit-CCU

Zeit Datum Kanal / Systemvariable AktivitätBeschreibung
18:15:0117.03.2019HeartBeat_CCU_Garten_AbfrageAbfrage offenRückmeldung starten
18:15:0117.03.2019HeartBeat_CCU_Garten_AbfrageAbfrage erledigtRückmeldung erledigt

Fazit

Im ersten Moment hört sich das mit dem HeartBeat vielleicht ein wenig kompliziert an, aber wenn ihr es anhand des Artikels Schritt für Schritt einrichtet, werdet ihr anschließen genauso begeistert sein wie ich. Es funktioniert bei mir seid 3 Wochen absolut zuverlässig und wirklich flott innerhalb einer Sekunde. Bei mir war es die Lösung für die Aktoren im Garten. Genauso kann eine zweite CCU auch die Lösung in einem größeren Objekt mit schwierigen Funkbedingungen sein.

Genauso perfekt uns schnell funktioniert es, eine Aktion auf der Zweit CCU auszulösen und den Status (beispielsweise „Bewegung erkannt“ an den Master weiter zugeben. Auch das Auslösen einer Aktion oder Programmes auf der Master CCU kann dazu verwendet werden auf der Zweit CCU ebenfalls eine Aktion oder ein Programm auszulösen. Das würde den Rahmen dieses Artikel jedoch sprengen, daher werde ich noch in dieser Woche einen weiteren Artikel genau mit diesem Inhalt veröffentlichen.

Viel Spass beim ausprobieren und endlich können wir auch HomeMatic IP Aktoren, welche von unserer HomeMatic Zentrale zu weit weg sind, zuverlässig bedienen und überwachen.

11 Kommentare
  1. Avatar
    Kulli sagte:

    Ich vermute es gibt oben 2 Fehler:
    – Bei „HeartBeat Abfrage auf Zweit-CCU beantworten “ muss bei Aktivität die Systemvariable HeartBeat_CCU_Garten anstatt HeartBeat_CCU_Garten_Abfrage gesetzt werden.

    – In dem dazugehörigen Script muss anders als in der Beschreibung die IP der Master CCU angesprochen werden.

    Antworten
    • Werner
      Werner sagte:

      Hallo Kai,

      vielen Dank für das genaue Lesen des Artikels und deine Information.

      Ich habe mir das gerade nochmal angesehen. Bei den Variablen ist alles korrekt. Auf der Zweit-CCU steht die Systemvariable „HeartBeat_CCU_Garten“ ab dem Start der CCU2 immer auf „aktiv“. Was durch die Abfrage vom Master „offen“ ist, ist die Systemvariable „HeartBeat_CCU_Garten_Abfrage“. Daher muss diese auf der Zweit-CCU auf „erledigt“ gesetzt und an die Master übertragen werden. Die Systemvariable „HeartBeat_CCU_Garten“ kann ja bei einem Ausfall der Zweit-CCU nicht mehr auf „inaktiv“ gesetzt werden. Daher gehe ich den Umweg über die andere Variable mit der Abfrage. Kommt die Meldung nicht auf der Master-CCU an, stimmt was nicht.

      Aber bei der Beschreibung ist mir ein kleiner Fehler unterlaufen:

      ALT = 3. Zeile: HTTP Befehl zusammen setzen. Wichtig dabei die IP-Adresse der Zweit-CCU 192.168.1.50 und den Port 8181 zu verwenden;
      NEU: – 3. Zeile: HTTP Befehl zusammen setzen. Wichtig dabei die IP-Adresse der Master-CCU 192.168.1.50 und den Port 8181 zu verwenden;

      Ich habe das im Artikel geändert.

      Grüße
      Werner

      Antworten
      • Avatar
        Kulli sagte:

        Hi,
        schön wenn ich helfen konnte :)
        Aber bei mir kam alle 15 Minuten die Push Nachricht. Wo setzt du den oben in der Beschreibung den Status „HeartBeat_CCU_Garten“ = aktiv, den du wiederum bei „HeartBeat Rückmeldung auf Master auswerten“ auswertest?

        Antworten
  2. Avatar
    Eddie sagte:

    Gibt es denn schon Ansätze, dass Homematic IP Komponenten auf LAN-Gateways laufen? Das muss doch möglich sein und nachentwickelt werden. Mir ist klar, dass die IP-Komponenten eine Repeaterfunktion haben, aber das hilft aber lange nicht in allen Lebenslagen vor allem dann nicht, wenn man eine Unmenge an IP Aktoren hat. Abgelegene Gartenhäuser oder Keller in Mehrfamilienhäusern sind gute Beispiele hierfür…

    Antworten
  3. Avatar
    Stefan sagte:

    Hallo Werner,

    das wäre Klasse wenn Du in einen extra Artikel informieren könntest wie man eine Systemvariable von einer CCU in die andere kopieren kann.

    mit diesen Heartbeat blicke ich nicht ganz durch.

    Antworten
  4. Avatar
    Mathias sagte:

    Eine Frage bleibt dann doch offen.
    Wie werden Zustände von der einen auf die andere CCU übertragen?
    Fallbeispiel:
    Ich habe Fenstersensoren auf der einen, sowie auf der anderen CCU.
    Wie kann ich jetzt z.B. die Alarmanlage scharf schalten wenn alle Fenster geschlossen sein müssen, bzw wie wird Alarm ausgelöst, wenn das Programm und einige Fenstersensoren auf der CCU-1 liegen, aber der Fenstersensor auf der CCU-2 ausgelöst wird?
    Gruß,
    Mathias

    Antworten
    • Werner
      Werner sagte:

      Hallo Mathias,
      ich habe da einige Lösungen im Kopf, welche ich in den nächsten Tagen hier mal präsentieren werde.
      Gruß
      Werner

      Antworten

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

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

Ich akzeptiere die Speicherung der Daten.