Einleitung - jens-maus/RaspberryMatic GitHub Wiki
Bei RaspberryMatic handelt es sich um ein alternatives, OpenSource-basiertes Betriebssystem für die kommerziell entwickelten CCU3 bzw. ELV-Charly Zentralen zur Cloudfreien Nutzung von HomeMatic/BidCos-RF bzw. homematicIP Hardware der Firmengruppe eQ3/ELV. RaspberryMatic hat sich zum Ziel gesetzt, nicht nur den kompletten Funktionsumfang einer HomeMatic CCU SmartHome-Zentrale für eine Cloudfreie Nutzung von HomeMatic/homematicIP Geräten für frei erhältliche Single-Board-Computern (SBC) wie z.B. den RaspberryPi, ASUS Tinkerboard oder aber auch als virtualisierte Variante für moderne Virtualisierungsumgebungen (z.B. Proxmox VE, VirtualBox, vmWare ESXi, etc.) nutzbar zu machen. Des Weiteren bringt es auf verschiedenen Ebenen (WebUI, Linux-Betriebsystem, etc.) Verbesserungen bzw. Bugfixes mit, welche in der originalen CCU3 Firmware von eQ3/ELV (noch) nicht vorhanden sind.
Für die Kommunikation mit HomeMatic/homematicIP Geräten macht sich RaspberryMatic zu nutze, dass es seit vielen Jahren von eQ3/ELV neben USB-basierter Funk/Kommunikationshardware (HmIP-RFUSB
, HM-CFG-USB
) auch GPIO-basierte Funkmodule (RPI-RF-MOD
, HM-MOD-RPI-PCB
) gibt, die direkt auf die GPIO Schnittstelle eines SBC gesteckt werden können und zur Kommunikation mit BidCos-RF/HomeMatic (HmRF) und/oder homematicIP (HmIP) Komponenten genutzt werden können. Des Weiteren können diese auch mittels geeigneter GPIO Adapterplatinen wie z.B. HB-RF-USB
/HB-RF-USB-2
mittels USB oder auch via Ethernet/LAN (HB-RF-ETH
) betrieben werden und erlauben somit auch den Einsatz entweder als voll virtuelle Maschine unter einer Virtualisierungsumgebung wie Proxmox VE oder auch als Docker Container innerhalb eines bereits bestehenden Betriebssystemes wie RaspberryPi OS oder als Add-on innerhalb von HomeAssistant.
RaspberryMatic wird in Form kompletter Images (*.img
bzw. *.ova
) verteilt, die mit geeigneten Tools (z.B. Etcher, Raspberry Pi Imager) auf eine microSD Karte, USB-Stick/Festplatte, eMMC oder aber auch als komplette virtuelle Maschine genutzt werden kann und somit als eigenständiges Betriebssystem für die Kommunikation/Steuerung/Konfiguration von HomeMatic-Komponenten zum Einsatz kommt. Es verfolgt den Ansatz einer komplett eigenständigen Distribution und benötigt keinerlei Host-Betriebssystem wie z.B. Raspbian/Debian. Dies bringt eine Reihe von Vorteilen mit sich, die die Stabilität und Performance erhöht – hat jedoch auch den Nachteil das Drittsoftware (wie z.B. ioBroker, apache, mysql, etc.) nur über das integrierte "CCU-Addon" System auf demselben System betrieben werden kann. Insofern hat RaspberryMatic den Anspruch ein vollwertiger Betriebssystemersatz einer CCU-Zentrale zu sein und nicht ein bereits existierendes Linux-System um die Funktionalität einer CCU-Zentrale zu erweitern.
RaspberryMatic lässt sich momentan auf folgender, kommerziell erhältlicher Kompletthardware (Rechner + HomeMatic-Kommunikationsmodul) installieren:
oder auf folgender selbst zusammengestellter SBC/Kommunikations Hardware- bzw. unter folgenden Virtualisierungsumgebungen installieren:
-
Hardware/Virtualisierungsumgebung:
-
Hardware:
-
Virtualisierungsumgebung:
-
-
Eine microSD/USB-Stick/SSD/eMMC oder virtuelle Festplattengröße von minimal 8 GB.
-
Um die Kommunikation mit HomeMatic/BidCos-RF/homematicIP bzw. HomeMatic-Wired/homematicIP-Wired Geräten der Firma eQ3/ELV zu ermöglichen, muss eine oder eine Kombination der folgenden Funk/Wired-Access-Hardware zum Einsatz kommen:
RF-/Funkmodule:
HomeMatic
FunkhomematicIP
FunkHomeMatic
WiredhomematicIP
WiredEmpfohlen: RPI-RF-MOD GPIO Radio Module HAT ✅ ✅ ✅ + HMW-LGW
✅ + HmIPW-DRAP
HmIP-RFUSB USB Radio Module Stick ✅
(seit 3.61.7)✅ ✅ + HMW-LGW
(seit 3.61.7)✅ + HmIPW-DRAP
(seit 3.61.7)Limitierte Funktionalität: HM-MOD-RPI-PCB GPIO Radio Module HAT ✅ ✅ ✅ + HMW-LGW
❌ HmIP-RFUSB-TK
Telekom OEM VersionUSB Radio Module Stick ❌ ✅ ❌ ❌ HM-CFG-USB-2
(nicht mehr verfügbar)USB Radio Module Stick ✅ ❌ ✅ + HMW-LGW
❌ Nicht nutzbar: PB-HULIP/TRXC2-USB
(unsupported! see here)USB Radio Module Stick ❌ ❌ ❌ ❌ PB-HUL/HB-OCCU-USB
(unsupported! see here)USB Radio Module Stick ❌ ❌ ❌ ❌ USB/LAN Adapter Platinen (für RPI-RF-MOD / HM-MOD-RPI-PCB):
HomeMatic
FunkhomematicIP
FunkHomeMatic
WiredhomematicIP
WiredEmpfohlen: HB-RF-USB-2
(Discussion)USB Radio Module Adapter ✅ ✅ ✅ + HMW-LGW
✅ + RPI-RF-MOD
+ HmIPW-DRAP
HB-RF-ETH
mind. 3.55.10+ (Discussion)LAN Radio Module Adapter ✅ ✅ ✅ + HMW-LGW
✅ + RPI-RF-MOD
+ HmIPW-DRAP
Unterstützt: HB-RF-USB
(Discussion)USB Radio Module Adapter ✅ ✅ ✅ + HMW-LGW
✅ + RPI-RF-MOD
+ HmIPW-DRAP
Wired/RS485 LAN/Access-Gateway:
HomeMatic
FunkhomematicIP
FunkHomeMatic
WiredhomematicIP
WiredHmIPW-DRAP LAN Wired Access Point ❌ ❌ ❌ ✅ + RPI-RF-MOD
/ HmIP-RFUSB
HMW-LGW LAN Wired-Gateway ❌ ❌ ✅ ❌ RF-/Funk LAN/Access-Gateway/Repeater:
HomeMatic
FunkhomematicIP
FunkHomeMatic
WiredhomematicIP
WiredHmIP-HAP
mind. 3.53.30+LAN HmIP Access Point ❌ ✅ + RPI-RF-MOD
/ HmIP-RFUSB
❌ ❌ HM-LGW LAN RF-Gateway ✅ ❌ ✅ + HMW-LGW
❌ Nicht mehr käuflich verfügbar: HM-CFG-LAN
(nur mit FW 0.965)LAN RF-Gateway ✅ ❌ ✅ + HMW-LGW
❌ HM-Sys-sRP-Pl HomeMatic-RF Repeater ✅ ❌ ✅ + HMW-LGW
❌ Nicht nutzbar: HmIP-WLAN-HAP WLAN HmIP Access Point ❌ ❌ ❌ ❌
RaspberryMatic ist systembedingt zu der Betriebssystemsoftware einer CCU-Zentrale der Firma eQ3/ELV (CCU2/CCU3) (die den gleichen Versionsstand hat) 100% kompatibel. Dies bedeutet, dass nicht nur dieselben HomeMatic/homematicIP Geräte angelernt/genutzt werden können, auch verhält sich RaspberryMatic in Punkto Funktionalität und WebUI vollkommen kompatibel. Des Weiteren kann die komplette Konfiguration zwischen der Standard Betriebssystemsoftware von eQ3/ELV und RaspberryMatic ausgetauscht werden und ein Wechsel zwischen den beiden Betriebssystemen ist somit jederzeit möglich.
Darüber hinaus bringt RaspberryMatic jedoch eine ganze Reihe von Verbesserungen/Erweiterungen, neuen Features und teilweise bereits integrierten Bugfixes mit sich, die entweder noch nicht in der originalen CCU Firmware von der Firma eQ3/ELV übernommen wurde oder aus kommerzieller Sicht nicht übernommen werden soll.
Ein Auszug über diese teilweise exklusiven Features die RaspberryMatic gegenüber einer CCU2/CCU3 Zentrale mit sich bringt kann hier eingesehen werden:
- Lauffähig auf allen RaspberryPi und ASUS Tinkerboard Single-Board-Computer Modellen
- Kann als virtualisierte x86 Variante unter Virtualisierungsumgebungen wie vmWare ESXi, Proxmox, VirtualBox, Synology VMM, etc. betrieben werden.
- Nutzung der onboard-LEDs zur Darstellung des Gesundheitsstatus des laufenden Systems, sodass die grüne LED im Normalzustand im Rhythmus der Systemauslastung blinkt und die rote LED entweder beim Hochfahren regelmäßig blinkt oder einen Fehler signalisiert.
- Entgegen der Standard-CCU können mit RaspberryMatic mehrere angeschlossene Funkmodule zu einem System kombiniert werden. So kann z.B. ein
HmIP-RFUSB
zusammen mit einemHM-CFG-USB-2
betrieben werden, um jeweils homematicIP und HomeMatic/BidCos-RF Geräte anzusteuern und damit auch ein optimiertes DutyCycle Verhalten zu gewährleisten. - Eine RaspberryMatic Zentrale kann auch in Kombination mit einem
HM-MOD-RPI-PCB
Funkmodul zu einem reinen LAN-Gateway (HM-LGW-O-TW-W-EU
) umgewandelt werden, sodass dieses als zusätzliche LAN Gateway für die HomeMatic/BidCos-RF Kommunikation mit einem Haupt-CCU System genutzt werden kann. - Unterstützung um RaspberryMatic auch komplett ohne GPIO/USB Funkmodul zu betreiben und als reine LAN-basierte Haupt-CCU zu verwenden und somit mit BidCos-RF LAN Gateways (
HM-LGW-O-TW-W-EU
) in einem Netzwerk zu betreiben. - Unterstützung um das System auch via externer USB angeschlossener Geräte (USB-Stick, USB-SSD, etc.) zu betreiben oder auf einem etwaigen internen eMMC Speicher (z.B. ASUS Tinkerboard S) zu installieren.
- Mögliche WLAN/WiFi Anbindung mittels der onboard WiFi Funktionalitäten eines RaspberryPi, ASUS Tinkerboard oder via extern angeschlossener USB-WLAN Sticks.
- Mögliche Bluetooth Nutzung der onboard Bluetooth Funktionalität eines RaspberryPi, ASUS Tinkerboard oder via extern betriebener USB-Bluetooth Sticks.
- Möglichkeit des sogenannten "USB Gadget" Betriebes, um einen RaspberryPi Zero bzw. RaspberryPi Zero W via USB Kabel an ein anderes System anzuschliessen (Linux/macOS/Windows) und dieses als Ethernet-Router zu verwenden.
- Unterstützung für die Inbetriebnahme einer unterbrechungsfreien Stromversorgung (USV) via folgender Lösungen in Betrieb zu nehmen:
- Network UPS Tools (NUT)– Um eine externe USV via USB oder Netzwerk (z.B. Synology NAS)
- GPIO-basierte USV Systeme die direkt auf den GPIO Bus eines RaspberryPi/Tinkerboard gesteckt werden:
- S.USV
- PiUSV+
- PiModules UPS PIco
- StromPi2
- StromPi3 (muss im sogn. 'Serialless' Modus mit aktueller Firmware betrieben werden)
- Unterstützung für folgende sogenannte Hardware Attached on Top (HAT) Boards die auf den GPIO eines RaspberryPi/Tinkerboard gesteckt werden und folgende Zusatzfunktionalität bieten:
- PiDesktop – Gehäuse mit HAT uns separatem Power-Button und zusätzliche RTC-Clock (PCF8563)
- PiFace Shim RTC – RealTimeClock (RTC) HAT für RaspberryPi
- DS3231 – RealTimeClock (RTC) HAT für RaspberryPi
- DS1307 – RealTimeClock (RTC) HAT für RaspberryPi
- Integration der aktuellsten Community-Versionen der Logikengine (ReGaHss) zur Bereitstellung aktuellster Bugfixes und neuer Features in der WebUI Logikschicht.
- Zusätzlich installierte Hilfsprogramme für die Nutzung z.B. via Kommandozeile:
-
wiringPi
- GPIO Bibliothek sowie Tools um direkt auf den GPIO Bus zugreifen zu können. -
chrony
- Nutzung von Chrony statt ntpd als Haupt-NTP daemon. -
jq
- JSON Parsing Werkzeug -
ethtool
- Kommandozeilen-Tool, um zusätzliche Informationen über die Netzwerkanbindung zu erhalten -
f2fs
- F2FS Dateisystem zur optimierten Nutzung von angebundenen Flash-basierten USB Laufwerken. -
triggerAlarm.tcl
– Erlaubt das nutzerspezifische Auslösen von WebUI-Alarmmeldungen -
updateAddonContig.tcl
– Vereinfachtes Tool zum Hinzufügen/Entfernen zusätzliche Buttons in der WebUI-Systemsteuerung
-
- Nutzung der jeweils aktuellsten Buildroot/Linux Grundbetriebssystemversion für eine optimierte Systemsicherheit.
- Nutzung des jeweils aktuellsten Linux LTS Kernels für eine verbesserte Systemintegration.
Integration von inzwischen über 40 zusätzlichen Drittanbieter Modifikationen an der WebUI, um die folgenden zusätzlichen Features/Verbesserungen zu erhalten:
- Möglichkeit, die Servicemeldungen für ausgewählte Geräte komplett zu deaktivieren/verbergen. Dies erlaubt nicht verwendete Geräte in eine Art "Ruhemodus" zu versetzen, sodass diese nicht dauernd Servicemeldungen bis zu Ihrer Wiederverwendung generieren.
- Direkte Auflistung von wichtigen Statusmeldungen (z.B. "config pending", "unreach", etc.) innerhalb der WebUI-Geräteliste sowie direkte Darstellung der RSSI Sende/Empfangswerte der angelernten funk-basierten HomeMatic/homematicIP Geräte.
- Zusätzliche Darstellung des Batterielevels und Ventilöffnungsgrades in der WebUI-Darstellung von Heizkörperventilaktoren (
HM-CC-RT-DN
,HMIP-eTRV
). - Komplett redesignter, verbesserter Skript-Editor auf Basis von "CodeMirror" welche die folgenden Verbesserungen gegenüber dem rudimentären Skripting Editor der Standardsoftware mit sich bringt:
- Anzeige der Liniennummern
- Syntax-Highlighting
- integrierte, RegEx-basierte Suchen&Ersetzen Funktion sowie Anzeige der Matches via Scrollbalken
- integrierte "command completion", um beim Editieren von Skripten bereits Vorschläge für Funktionsnamen zu erhalten
- Klammer-basiertes Code-folding zur besseren Strukturierung von Skripten
- Klammer-Hervorhebungen, um die jeweilige öffnende/ schliessende Klammer in einem Code Block während des Editierens hervorzuheben
- Automatisches Hinzufügen von schliessenden Klammerungen zur Vermeidung von Syntax Fehlern
- Aktivierbarer Fullscreen-Modus, um größere Skripte innerhalb der WebUI in einer verbesserten Ansicht zu erhalten
- Integration zusätzlicher Tastatur-Abkürzungen (z.B.
Ctrl-Q
: Automatisches Folding/Unfolding)
- Möglichkeit, in WebUI Programmen in Bedingungen zusätzlich "gleich" und "ungleich" Vergleiche durchzuführen.
- Möglichkeit, direkt von der WebUI aus einen erzwungenen Bootvorgang in das Recovery-System durchzuführen, ohne dass die Taste des Funkmodules dafür gedrückt sein muss.
- Integration von verbesserten Routinen für den Datei Upload/Download größerer Dateien von/zur WebUI.
- CCU-Addon Pakete können ohne einen erzwungenen Neustart direkt von der WebUI aus installiert und genutzt werden.
- Zusätzliche Anzeige der Anzahl vorher bereits durchgeführten Sicherheitsschlüsseländerungen (wenn diese Funktion aktiviert wurde).
- Möglichkeit, alle als Nutzerfavoriten hinzugefügten Systemvariablen in der WebUI alphabetisch sortieren zu lassen.
- Repariertes Browser-Cache-Handling, damit nach einem Firmware-Update nicht mehr ein manuelles Löschen des Browser Caches notwendig ist.
- Hinzugefügte "Apple-Touch" Icons Funktionalität, um bei Hinzufügen der WebUI als iOS-Favorite auf einem iPad/iPhone ein entsprechendes Icon zu erhalten.
- Integration verschiedenen zentraler Bugfixes, die ansonsten an verschiedenen Stellen WebUI-Probleme mit genutzten Leerzeichen oder Sonderzeichen hervorrufen.
- Systemvariablen können nun trotz einer vorherigen Zuordnung einer Variablen zu einem Gerät noch zusätzlich als Nutzerfavorit konfiguriert und entsprechend angezeigt werden.
- Verschiedenste Layout/Ansichts-Verbesserungen bei sämtlichen Tabellenanzeigen innerhalb der WebUI.
- Verbesserte bzw. beschleunigte Anzeigen der Sortierung bzw. Filterung in WebUI-Tabellenansichten.
- Verbesserungen in der "DevConfig" Erweiterung, sodass hier korrekterweise nun auch die RSSI Werte von homematicIP Geräten angezeigt werden kann.
- Automatische Generieren eine
DutyCycle
Systemvariablen für das onboard Funkmodul sowie jeden weiteren LAN-RF-Gateway zur direkten Überwachung der vorgeschriebenen Funkauslastung sowie automatische WebUI-Alarmierung falls der DutyCycle Wert über 98% steigt und damit ein vorübergehendes Aussetzen der Funkkommunikation bevorsteht.
- Die notwendigen Sicherheitszertifikate für die Nutzung einer verschlüsselten HTTPS-basierten Verbindung werden direkt innerhalb von RaspberryMatic generiert, statt diese Zertifikate auf unsicherem Wege über externe Server generieren zu lassen.
- Auslieferung einer entsprechenden
robots.txt
Datei um etwaige Web-Crawler davon abzubringen, ein System mit in die Suche zu integrieren, falls dieses fälschlicherweise über das Internet verfügbar gemacht wurde. - Bei nicht mehr verfügbarem/freiem Arbeitsspeicher werden die notwendigen HomeMatic Dienste nun als eines der letzten Diensten vorzeitig beendet, sodass sichergestellt sein sollte, dass Dienste von etwaigen speicherhungrigen Addons zuerst beendet werden sollten, um somit nicht die generelle Stabilität zu gefährden.
- Durchführen automatischer nächtlicher Konfigurations-Backups, sobald ein USB Stick mit ausreichend Speicherplatz angeschlossen ist.
- Möglichkeit, die automatischen nächtlichen Konfigurations-Backups auf andere externe Geräten durchführen zu lassen (z.B. angebundenes NAS/NFS-Laufwerk).
- Möglichkeit, manuelle Konfigurations-Backups mittels der SSH Kommandozeile durchzuführen (
createBackup.sh
,restoreBackup.sh
)
- Keine web-basierte Konfigurations-/Setupmöglichkeit für die WLAN/Bluetooth Anbindung (WIP)
- Keine web-basierte Konfigurations-/Setupmöglickkeit für die Inbetriebnahme als reiner LAN-Gateway (WIP)
- Keine web-basierte Konfigurations-/Setupmöglichkeit für die Konfiguration der NUT-basierten USV Anbindung (WIP)
RaspberryMatic wird als vollwertiges OpenSource Projekt entwickelt und steht unter der Apache-2.0 Lizenz zur Verfügung. Somit kann RaspberryMatic als freie Software von Jedermann unentgeltlich bezogen und zeitlich unbegrenzt eingesetzt werden. Teile der in RaspberryMatic eingesetzten Software stehen jedoch selbst unter anderen OpenSource Lizenzen (wie LPGPL, GPL, BSD, etc.) zur Verfügung und werden somit auch unter den jeweiligen Lizenzbedingungen dieser zusätzlich mit ausgelieferten Software vertrieben. Des Weiteren werden die in RaspberryMatic mit enthaltenen HomeMatic spezifischen Softwarekomponenten, die aus dem von eQ3 im Rahmen des OCCU Projekt stammen, unter den Bedingungen der HomeMatic Software Lizenzbedingungen mit ausgeliefert.
Copyright 2015-2023 Jens Maus <[email protected]> and Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
RASPBERRMATIC WIRD OHNE JEDE AUSDRÜCKLICHE ODER IMPLIZIERTE GARANTIE BEREITGESTELLT, EINSCHLIEẞLICH DER GARANTIE ZUR BENUTZUNG FÜR DEN VORGESEHENEN ODER EINEM BESTIMMTEN ZWECK SOWIE JEGLICHER RECHTSVERLETZUNG, JEDOCH NICHT DARAUF BESCHRÄNKT. IN KEINEM FALL SIND DIE AUTOREN ODER COPYRIGHTINHABER FÜR JEGLICHEN SCHADEN ODER SONSTIGE ANSPRÜCHE HAFTBAR ZU MACHEN, OB INFOLGE DER ERFÜLLUNG EINES VERTRAGES, EINES DELIKTES ODER ANDERS IM ZUSAMMENHANG MIT DER SOFTWARE ODER SONSTIGER VERWENDUNG DER SOFTWARE ENTSTANDEN.
Bei RaspberryMatic handelt es sich um ein freies OpenSource Software Projekt, das zwar entsprechend der Apache-2.0 Lizenz eine kommerzielle Wiederverwendung bzw. Vermarktung rechtlich erlaubt. Es soll hier jedoch auch erwähnt werden, dass die inzwischen im Internet vielfach verfügbaren kommerziellen Angebote zum Kauf einer kompletten "RaspberryMatic CCU-Zentrale" in keiner Weise mit den Entwicklern von RaspberryMatic abgestimmt sind oder gar irgendwelche finanziellen Beteiligungen an den jeweiligen Verkäufen solcher vertriebenen Komplett-RaspberryMatic-Pakete existieren.
Des Weiteren schliessen die RaspberryMatic Entwickler (auch entsprechend der Apache-2.0 Lizenz) jegliche Haftung gegenüber dem Käufer solcher kommerziell vertriebener RaspberryMatic Zentralen aus und behalten sich das Recht vor, etwaige Support/Hilfeanfragen mit dem Hinweis zu verweigern, dass bei diesen kommerziell erworbenen Zentralenlösungen keine Garantie für die korrekte Funktion gegeben werden kann, wenn nicht die offiziellen RaspberryMatic Versionen selbstständig installiert wurden.