technikkram.net
  • Home
  • smartkram
  • Themenfelder
    • Smart Home
      • Homematic & Homematic IP
      • Smart Home Zentrale
      • Home Assistant
      • MQTT & Messaging
      • Zigbee & Thread
      • Shelly Geräte
      • KNX Gebäudeautomation
      • Matter & Thread
      • Apple HomeKit
    • Server & DevOps
      • Docker & Container
      • Proxmox VE
      • Linux Administration
      • Monitoring & Observability
      • Kubernetes & K3s
      • Raspberry Pi
    • Netzwerk
      • UniFi Netzwerk
      • Netzwerk Grundlagen
      • WLAN Optimierung
      • VLAN Konfiguration
      • Firewall & Security
      • Managed Switches
    • Sicherheit
      • Überwachungskameras
      • IT-Security
      • Videoüberwachung
      • Alarmanlagen
      • Zutrittskontrolle
    • Energie & Solar
      • Energiemanagement
      • Solar & Photovoltaik
    • NAS & Storage
      • NAS Systeme
      • Backup & Recovery
      • Synology NAS
      • Storage Lösungen
  • Archiv
  • Kontakt
    • Datenschutz
    • Impressum
  • Click to open the search input field Click to open the search input field Suche
  • Menü Menü
  • Link zu Facebook
  • Link zu X
  • Link zu Mail
  • Link zu Rss dieser Seite
Werner
Smart Home, Software & Co

HomeMatic & RaspberryMatic: AddOn CUx-Daemon (CUxD) – System.Exec ersetzen

HomeMatic & RaspberryMatic: AddOn CUx-Daemon (CUxD) – System.Exec ersetzen - Cuxd01

Was ist der CUx-Daemon

Die HomeMatic Zusatzsoftware CUx-Daemon (kurz CUxD) ist eine universelle Schnittstelle zwischen der HomeMatic Zentrale (CCU2 & RaspberryMatic) und den Komponenten anderer Haussteuerungs- bzw. Smart Home-Systeme. Hierzu zählen unter anderem die Systeme ELV FS20, FHT, HMS und EM/ESA, aber auch Komponenten des EnOcean-Systems und vieles mehr. Durch Einbindung dieser eigentlich inkompatiblen Produkte lässt sich der Umfang des HomeMatic Systems über die Grenzen hinweg erweitern.

Sowohl die HomeMatic Zentrale auf der CCU2 wie auch RaspberryMatic sind beide Linux-basiert, so dass es hier recht einfach ist, zusätzliche Programmmodule einzubinden. In die Systemsoftware für das HomeMatic System wurden zudem vorausschauend systemoffene Schnittstellen implementiert, die den Zugriff auf die verschiedenen Systemschichten der CCU-Software durch Zusatzbausteine erlauben. Dies ermöglicht u. a. die Anbindung von Cloud-Diensten, Apps und diverser Zusatzsoftware, so auch der Software CUx-Daemon.

Aufgrund des großen Funktionsumfangs und der Komplexität kann ich hier nicht alle Möglichkeiten aufzeigen. Ich möchte hier beschreiben, wie man das „SYSTEM.EXEC“ mit Hilfe von CUxD ablösen kann.

Auch ELV kann aufgrund des großen Funktionsumfangs und der Komplexität zu dieser Zusatzsoftware leider keinerlei Support übernehmen. Bei allen Fragen zu CUxD steht euch allerdings das HomeMatic-Forum zur Verfügung, welches durch viele erfahrene User und auch den Entwickler selbst betreut wird und somit als Support-Plattform dient.


Warum den CUx-Daemon einsetzen

Wie oben bereits kurz erwähnt, verwende ich in all meinen HomeMatic-Scripten, wo ich eine Systemfunktion aufrufe den Befehl „SYSTEM.EXEC“. Nachfolgend ein Screenshot eine Scripts zur Versendung einer PUSH Nachricht per TELEGRAM App.

Nachteile des Befehls „SYSTEM.EXEC“

  • Der Befehl ist weder dokumentiert noch offiziell unterstützt
  • Die CCU-Logikschicht bleibt während der gesamten Ausführungszeit des aufgerufenen Programmes stehen
  • Längere Programm Ausführungszeiten oder wiederholte Aufrufe eines Programmes oder parallele Ausführung führen zu einer Instabilität der CCU
  • Konsequenzen dieser Probleme können sein, dass Programme nicht mehr ausgeführt werden, die WebUI Oberfläche nicht mehr reagiert und letztlich, das die CCU stehen bleibt und neu gestartet werden muss.

Der CUx-Daemon bietet eine alternative Möglichkeit um Systembefehle auszuführen. Dafür muss CUxD installiert, sowie ein entsprechendes CUxD-Gerät definiert werden. Wie das funktioniert, beschreibe ich im weiteren Verlauf dieses  Artikels. Wenn das alles erledigt ist, kann die „SYSTEM.EXEC“ Funktion ersetzt werden.

Ein weiterer Grund mich mehr mit CUxD zu beschäftigen ist mein aktuelles Projekt, die Einbindung meiner SONOS Lautsprecher in HomeMatic. Dazu werden auch eine Vielzahl von Systemfunktionen über „SYSTEM.EXEC“ aufgerufen, welche ich von Beginn an auf CUxD umstellen möchte.

Installation CUx-Daemon (CUxD)

AddOn herunterladen – Achtung, es existieren hier verschiedene Versionen für die unterschiedlichen Plattformen CCU1/CCU2 und RaspberryMatic.

Downloadlink für CUxD Software und Handbuch

Die Installation auf der CCU/RASPBERRYMATIC erfolgt über das WebUI-Menü „Systemsteuerung > Zusatzsoftware“.

Bei der Installation werden alle CUxD-Dateien auf der CCU/RASPBERRYMATIC im Verzeichnis „/usr/local/addons/cuxd/“ installiert.

Um den CUxD RPC-Server automatisch beim Hochfahren der CCU/RASPBERRYMATIC zu starten, wird zusätzlich die Startdatei cuxdaemon in dem Verzeichnis „/usr/local/etc/config/rc.d/“ abgelegt. Zusätzlich trägt sich der CUxD bei jedem Start als eigener RPC-Server in die Datei /etc/config/InterfacesList.xml ein. Diese Datei wird bei jedem CCU-Start neu geschrieben. Die CCU/RASPBERRYMATIC überprüft beim Neustart zuerst alle bereits vorhandenen Schnittstellen (Wired, Funk). Das dauert je nach Anzahl der installierten HomeMatic-Geräte mehrere Minuten.


Nach erfolgreicher Installation und einem Neustart der CCU/RASPBERRYMATIC ist im WebUI Menü „Zusatzsoftware“ jetzt „CUx-Daemon“ zu finden. Um im nächsten Schritt das erste CUxD-Gerät anzulegen, bitte auf den Button „CUx-Daemon“ klicken.

Gerät im CUx-Daemon anlegen

Im Primary Menü von CUx-Daemon auf den Button „Geräte“ klicken, um ein neues Gerät anzulegen. 

Dann erscheint das Menü in dem ihr die Eingaben im folgenden Screenshot eintragen solltet.

Das Feld Name bitte leer lassen, wird dann automatisch generiert!

Nach der Auswahl der gezeigten Parameter bitte auf den Button „Gerät auf CCU erzeugen !“ drücken.

Das neue Gerät taucht dann automatisch in der WebUI unter „Einstellungen > Geräte – Posteingang“ auf und kann dort ohne weitere Konfiguration mit „FERTIG“ bestätigt werden.

Anschließend findet ihr das neue CUxD-Gerät unter „Einstellungen > Geräte“ wie jedes andere Gerät/Aktor auch. Aber auch hier ist keine weitere Anpassung erforderlich. Wir nutzen dieses virtuelle Gerät um Systemfunktionen innerhalb eines Scriptes aufzurufen.

Nach erfolgreicher Erstinstallation des CUxD muss die CCU/RASPBERRYMATIC nach dem Anlegen des ersten CUxD-Gerätes ein zweites Mal durchgestartet werden. Erst danach ist das CUxD-Interface vollständig betriebsbereit und kann auch Befehle von der CCU/RASPBERRYMATIC empfangen.

Erstinstallation:

  1. CUxD installieren (automatischer Neustart der CCU/RASPBERRYMATIC)
  2. CUxD Gerät(e) anlegen und im Posteingang der CCU/RASPBERRYMATIC bestätigen
  3. CCU/RASPBERRYMATIC ein weiteres Mal durchstarten!
  4. das CUxD-Interface ist jetzt funktionsbereit.

SYSTEM.EXEC ersetzen durch CUxD

Nachfolgend zeige ich beispielhaft für zwei Funktionen anhand von Vorher/Nachher auf, wie die Umstellung von „SYSTEM.EXEC“ auf CUxD realisiert werden kann. Weitere Beispiele werden folgen.

VORHER – PUSH Nachricht an  TELEGRAM versenden mit SYSTEM.EXEC

! Push Versand TELEGRAM  -  INFO: Test SYSTEM.EXEC !!!

string stderr;

string stdout;

string url="\"https://api.telegram.org/bot111111111:aaaaaaa-bbbbbbbbbbbbbbbbbbbbbbbbbbb/sendMessage?chat_id=222222222&text= INFO:  Test SYSTEM.EXEC \"";

system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);

NACHHER – PUSH Nachricht an TELEGRAM versenden mit CUx-DAEMON

! Push Versand  TELEGRAM -  INFO: Test CUx-Daemon !!!

string url = "wget --no-check-certificate --quiet -O /dev/null \"https://api.telegram.org/bot111111111:aaaaaaa- bbbbbbbbbbbbbbbbbbbbbbbbbbb/sendMessage?chat_id=222222222&text= INFO:  Test CUx-Daemon \""; dom.GetObject("CUxD.CUX2801001:2.CMD_EXEC").State (url);

VORHER – MAIL über CloudMatic versenden mit SYSTEM.EXEC

! Mail Versand Cloudmatic -  INFO  -  Test Mail-Versand SYSTEM.EXEC

string MailEmpfaenger = "vorname.nachname@xxxxxxxx.de";

! Hier den Betreff der Mail angeben

string MailBetreff = " INFO  -  Test Mail-Versand SYSTEM.EXEC ";

! Hier den Inhalt der Mail angeben

string MailText;

MailText = "INFO - Test Mail-Versand SYSTEM.EXEC\r\n";

! Den Rest bitte 1:1 kopieren

string stdout;

string stderr;

string teilstr;

string sendmail = "";

string sendbetreff = "";

string mailto = "";

foreach(teilstr, MailBetreff.Split(" "))

{ sendbetreff = sendbetreff # "+" # teilstr; }

foreach(teilstr, MailText.Split(" "))

{ sendmail = sendmail # "+" # teilstr; }

foreach(teilstr, MailEmpfaenger.Split(" "))

{ mailto = mailto # "+" # teilstr; }

system.Exec ("/bin/sh /etc/config/addons/mh/email.sh "# sendbetreff # " " # sendmail # " " # mailto, &stdout, &stderr);

NACHHER – MAIL über CloudMatic versenden mit CUx-DAEMON

! Mail Versand Cloudmatic -  INFO  -  Test Mail-Versand CUx-Daemon

string MailEmpfaenger = "vorname.nachname@xxxxxxxx.de";

! Hier den Betreff der Mail angeben

string MailBetreff = " INFO  -  Test Mail-Versand CUx-Daemon ";

! Hier den Inhalt der Mail angeben

string MailText;

MailText = "INFO - Test Mail-Versand CUx-Daemon\r\n";

! Den Rest bitte 1:1 kopieren

string teilstr;

string sendmail = "";

string sendbetreff = "";

string mailto = "";

foreach(teilstr, MailBetreff.Split(" "))

{ sendbetreff = sendbetreff # "+" # teilstr; }

foreach(teilstr, MailText.Split(" "))

{ sendmail = sendmail # "+" # teilstr; }

foreach(teilstr, MailEmpfaenger.Split(" "))

{ mailto = mailto # "+" # teilstr; }

dom.GetObject("CUxD.CUX2801001:3.CMD_EXEC").State("/bin/sh /etc/config/addons/mh/email.sh "# sendbetreff # " " # sendmail # " " # mailto);

Interessante Links zum CUx-Daemon

Wie bereits erwähnt ist dieses AddOn Paket sehr umfangreich und die hier beschrieben Funktion ist nur ein kleiner Teil der Möglichkeiten. Von der Firma ELV existiert eine sehr interessante vierteilige Dokumentationsreihe zum CUx-Daemon. Hier stelle ich für Interessenten die entsprechenden Links zur Verfügung:

CUxD – das Leatherman für die HomeMatic CCU – Teil 1

CUxD – das Leatherman für die HomeMatic CCU – Teil 2

CUxD – das Leatherman für die HomeMatic CCU – Teil 3

CUxD – das Leatherman für die HomeMatic CCU – Teil 4

HomeMatic/Raspberry Komponenten

Bezeichnung Amazon ELV-Shop ELV-Bausatz
16 GB SD-Karte Link nicht verfügbar nicht verfügbar
16 GB USB Stick Link nicht verfügbar nicht verfügbar
CCU2 Link Link Bausatz
Raspberry Pi 2 Link Link nicht verfügbar
Raspberry Pi3 Link Link nicht verfügbar
Raspberry Pi Zero W Link nicht verfügbar nicht verfügbar
H-Tronic Funk-Antenne 868 MHz Link nicht verfügbar nicht verfügbar
HM Raspberry Funkmodul nicht verfügbar nicht verfügbar Link

Das könnte dich auch interessieren

  • Homematic CCU2 komplett auf CCU3 migrieren ohne Geräteverlust – Homematic CCU2 kaufen zu CCU3 Migration - Beide Zentralen nebeneinander mit Migrationspfeil
    Homematic CCU2 kaufen auf CCU3 migrieren: Komplette…
    3. April 2026 Die CCU2 zu CCU3 Migration erfordert eine systematische Herangehensweise, um Geräteverluste zu vermeiden Die Homematic CCU2 zu CCU3 Migration kaufen…
  • Node-RED vs Home Assistant: Automation-Plattform für Smart Home wählen – Node-RED vs Home Assistant Interface-Vergleich für Smart Home Automation-Plattformen
    Node-RED vs Home Assistant: Die richtige…
    4. April 2026 Vergleich der Benutzeroberflächen von Node-RED und Home Assistant für Smart Home Automation Die Wahl zwischen Node-RED und Home Assistant ist…
  • Smart Home Sprachsteuerung Architektur-Diagramm mit Alexa, Google Assistant, Home Assistant und vernetzten Geräten
    Sprachsteuerung einrichten: Alexa und Google Home
    9. April 2026 Google Nest Mini für Sprachsteuerung von Philips Hue Lampen und smarten Geräten“ src=“ Modernes Smart Home Setup mit Alexa Echo…
  • Docker Nginx Reverse Proxy Netzwerk-Architektur Diagramm mit Port-Mapping und Backend-Verbindungen
    Nginx Reverse Proxy in Raspberry Pi OS Docker…
    4. April 2026 Nginx Reverse Proxy Container mit typischen Netzwerk-Verbindungsproblemen und Fehlerzuständen Ein Nginx Reverse Proxy in Docker Container nicht erreichbar zu beheben…
  • Homematic Wired Bus Terminierung mit Multimeter prüfen – Multimeter zeigt 120 Ohm Widerstandsmessung an Homematic Wired Bus Terminierung
    Homematic Wired Bus Terminierung mit Fluke 115…
    3. April 2026 Präzise Multimeter-Messung zeigt korrekte 120 Ohm Terminierung zwischen Bus+ und Bus- Klemmen Die Homematic Wired Bus Terminierung mit Multimeter prüfen…
  • Smart Home Sicherheitssystem für Einsteiger ohne Vorkenntnisse aufbauen – Smart Home Sicherheitssystem Dashboard auf Tablet mit Home Assistant Interface, Kamera-Feeds und Sensor-Status
    Smart Home Sicherheitssystem für Einsteiger ohne…
    6. April 2026 Professionelles Smart Home Sicherheitssystem Dashboard mit Live-Kamera-Feeds und Sensor-Status-Übersicht Ein Smart Home Sicherheitssystem für Einsteiger ohne Vorkenntnisse ist wie ein…
9. August 2017/5 Kommentare/von Werner
Schlagworte: CUxD, Homematic, RaspberryMatic, Software
Eintrag teilen
  • Teilen auf Facebook
  • Teilen auf X
  • Teilen auf WhatsApp
  • Teilen auf Pinterest
  • Teilen auf LinkedIn
  • Per E-Mail teilen
https://technikkram.net/wp-content/uploads/2017/08/CUXD01.png 563 1735 Werner https://technikkram.net/wp-content/uploads/2019/05/technikkram_transparent.png Werner2017-08-09 14:51:412017-08-09 20:45:26HomeMatic & RaspberryMatic: AddOn CUx-Daemon (CUxD) – System.Exec ersetzen
5 Kommentare
  1. Fred
    Fred sagte:
    1. Februar 2018 um 21:38

    Hi Werner,
    ich habe heute versucht die Cloudmatic Pushbenachrichtigung auf den CuxD umzustellen. Wie mache ich es denn wenn ich zwei Geräte benachrichtigen will oder wie oben in deinem Beispiel an zwei E-Mailempfänger eine Mail verschicken möchte?

    Einfach eine zweite Variable mit E-Mailempfänger anlegen und Aufruf
    dom.GetObject(„CUxD.CUX2801001:3.CMD_EXEC“).State(„/bin/sh /etc/config/addons/mh/email.sh „# sendbetreff # “ “ # sendmail # “ “ # mailto);

    duplizieren und mailto durch z. B. mailto2 ersetzen?

    Gruß
    Fred

    Antworten
    • Werner
      Werner sagte:
      2. Februar 2018 um 0:11

      Hallo Fred,

      wenn ich dich richtig verstehe, versendest du bisher sowohl Push als auch Mail Benachrichtigungen via system.exec? Auch an zwei Empfänger?

      Sei so gut und sende mir deinen aktuellen, funktionierenden Code an die Mail Adresse werner(@)technikkram.net

      Danke und Gruss
      Werner

      Antworten
  2. Bernd
    Bernd sagte:
    8. Januar 2018 um 15:04

    Hallo Werner,
    Danke für die obigen sehr gut beschriebenen Ausführungen!

    Ich habe nun von der CCU2 auf den Raspi mit Raspberrymatic gewechselt. Bis auf CUxD hat auch alles wunderbar funktioniert.
    CUxD habe ich auch auf die Rasperrymatic-Variante aktualisiert. Man kann diese auch Öffnen, und sich die Geräte, Log etc. ansehen.
    Es werden allerdings irgendwie keine Befehle versendet, z.B. Telegram-Nachrichten oder Abruf von Wetterdaten aus wunderground.com.
    Woran kann das liegen?
    Hier die Infos aus dem Log:
    Telegram
    Jan 8 12:33:20 homematic-raspi daemon.info cuxd[1614]: system(wget –no-check-certificate –quiet -O /dev/null „https://api.telegram.org/botXXXXXXXXXXXXXXXXXXXXXXXX/sendMessage?chat_id=XXXXXXXXXXX&text=Dies%20ist%20eine%20Push%2DTestnachricht“) exit(4) 0s

    Wunderground
    Jan 8 12:33:27 homematic-raspi daemon.info cuxd[1622]: pclose(wget -q -O – ‚http://api.wunderground.com/api/XXXXXXXXXXXXX/conditions/lang:DL/q/Germany/MUENCHEN.xml‘) exit(4) 0s

    Unter CUxD-Setup sind noch die Infos aus der CCU drinnen, z.B.
    MOUNTCMD=ln -s /media/sd-mmcblk0 /tmp/sd
    UMOUNTCMD=rm -f /tmp/sd
    Kann das so bleiben?

    Wäre prima, wenn Sie einen entscheidenen Hinweis hätten, dass meine Kommunikation in die Außenwelt mit Telegram und Wunderground wieder funktioniert.

    Viele Grüße
    Bernd

    Antworten
  3. Dieter
    Dieter sagte:
    5. Oktober 2017 um 16:46

    Hallo Werner,
    danke für deine tollen Beiträge, auch zum Thema Smart-Home.
    Aktuell habe ich entsprechend deines Posts einen Cux-Daemon(CuxD) auf meinem
    RaspberryMatic (CCU2 -Alternative) mit Funkmodul installiert.
    Basis ist das aktuelle fertige Image von J.Maus.
    Alles funktioniert prima ,allerdings startet der Cux-Daemon in meinem Browser nicht.
    Kann dies etwas mit meinem Raspberry P1 B+ zu tun haben?

    Gruß,
    Dieter

    Antworten
  4. Waldemar
    Waldemar sagte:
    6. September 2017 um 9:36

    Hallo Werner,
    bin mal gespannt, was ich hier alles lernen und nutzen kann.

    Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar Antwort abbrechen

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

  •  
Smartkram Shop

Kategorien

Allgemein Apple Apps CCU2 CCU3 Charly debmatic EQ-3 Firmware Foto und Video Gadgets Gaming Geschenke Hardware Hausinstallation Haussicherheit HB-RF-USB Homematic Homematic IP Homematic IP Access Point Homematic IP wired iOS KNX Media Center Mediola Mobile Multimedia Netzwerk Neuigkeiten Nützliches Online Services piVCCU piVCCU3 Provider Rabatte & Co Raspberrymatic Security smarte Beleuchtung Smart Home Software & Co Testberichte Tipps & Tricks Wearables Windows Zubehör
© Copyright - technikkram.net -
  • Link zu Facebook
  • Link zu X
  • Link zu Mail
  • Link zu Rss dieser Seite
Nach oben scrollen Nach oben scrollen Nach oben scrollen