3.53.34.20201121 freigegeben

Created with Sketch.

Hallo Zusammen,

nun ist es wieder soweit und nach unzähligen Stunden der Entwicklung und Tests habe ich soeben eine neue offizielle RaspberryMatic Version (3.53.34.20201121) für alle unterstützten Hardwareplattformen freigegeben. Wie man im Versionsstring schon erahnen kann basiert diese Version nun auf der gleichlautenden 3.53.34 Version der eQ3 OCCU/CCU3 Firmware und ist folglich mit dieser 100% kompatibel und bringt dessen Verbesserungen/Bugfixes mit sich. Darüber hinaus kommt diese neue RaspberryMatic Version natürlich wieder einmal mit einigen über die Standard-CCU3/OCCU Firmware hinausgehenden Bugfixes und neuen Features daher, sodass es sich hierbei um eine MAJOR Version handelt die hoffentlich nicht nur für mich einige interessanten Dinge umgesetzt hat, sondern hoffentlich auch in der Community auf reges Interesse und Zuspruch stößst.

BITTE BEACHTEN:
Eine wichtige Änderung die mit dieser MAJOR Version daherkommt und die besondere Beachtung benötigt, ist die Umstellung von RaspberryMatic von einem 32bit Betriebssystem auf ein vollwertiges 64bit Betriebsystem, zumindest für die Hardwareplatformen die 64bit fähige Prozessoren einsetzen (RaspberryPi4, RaspberryPi3, CCU3/ELV-Charly, OVA, IntelNUC). Mit dieser Version wird RaspberryMatic also für die Zukunft fit gemacht und auch wenn die Nutzung von >4GB RAM nicht primär ausschlaggebend für diese Umstellung war/ist, so sollte sie gerade für die x86-basierten Platformen (OVA, IntelNUC) zu einem gewissen Performancegewinn führen, darüber hinaus aber eben sicherstellen das RaspberryMatic mit der reinen 64bit Zukunft weiter mithalten kann. Ein unmittelbarer Benefit davon ist z.B. das mit dieser Version es endlich wieder eine kompatible RedMatic Addon Version gibt die unter der OVA/IntelNUC Variante eingesetzt werden kann.
Für die Platformen die mit 32bit Prozessoren daher kommen ändert sich im Grunde nur für Nutzer eines RaspberryPi2 etwas. Denn hier müssten Nutzer eines RaspberryPi2 einmalig mit der Umstellung auf diese neue Version Ihre SD-Karte bzw. RaspberryMatic komplett neu flashen. Das liegt daran, das nun eine Trennung des RaspberryPi3 vs. RaspberryPi2 Images notwendig war (bisher nutzten beide das selbe). D.h. Nutzer die bisher einen RaspberryPi2 einsetzen müssten nun einmalig ein Backup Ihrer Konfiguration machen, dann die SD-Karte neu mit dem passenden “rpi2” Image via Etcher&Co beschreiben und dann das Backup einfach wieder in der WebUI zurückspielen und von da an dann immer das dazu passende “rpi2” Image verwenden. Für die anderen 32bit Hardware Platformen (RaspberryPi0, Tinkerboard) bleibt jedoch alles beim alten und das OS bleibt weiterhin ein 32bit OS.

Zusätzlich sei noch einmal auf die umfangreiche Dokumentation von RaspberryMatic hingewiesen an der andere und ich auch bereits seit einiger Zeit gearbeitet haben und die alle anderen hier im Forum bisher zur Verfügung gestellten Dokumentationen rund um RapsberryMatic ersetzen. Zu erreichen ist die neue Dokumentation nun unter folgender Stelle:

https://github.com/jens-maus/RaspberryMatic/wiki

Wie die URL schon vermuten lässt handelt es sich hierbei um einen öffentlichen Wiki an dem sich jeder gerne (nach entsprechender technischer Einarbeitung) beteiligen kann um anderen vor allem den Einstieg rund um das Thema “RaspberryMatic” zu erleichtern.

Wie immer kann die komplette Liste aller Änderungen/Bugfixes in dieser Version hier eingesehen werden:

CCU/HomeMatic-System Änderungen:

  • Aktualisierung der OCCU Umgebung auf Version 3.53.34-3 die neben einer vollen Kompatibilität zur CCU3 3.53.34 Firmware auch noch die folgenden Verbesserungen mit sich bringt:
    • Aktualisierung der “ReGaHss” Logikengine auf Version “R1.00.0388.0226 (Nov 2 2020)” die folgende Änderungen beinhaltet:
      • Problem innerhalb der “delayed” State() Funktionalität beseitigt wo “State(x, 0, true/false)” Auslösungen zu ScriptRuntimeErros führen konnte und wo das “retrigger” Argument nicht die selben Standardwerte wie die traditionellen einfachen “State(x)” Aufrufe aufwies (#942).
      • Problem beseitigt bei der die Funktion “x.DPArchive()” nur auf Datenpunkten genutzt werden konnte die vorher auch via “x.Visible()” auf “visible” gesetzt wurde. Nun arbeiten diese Funktionen vollkommen unabhängig voneinander und erlauben das ein Datenpunkt nun auch auf “non visible” steht, aber die Protokollierung eingeschalten ist (#948).
      • Beseitigung eines kürzlich aufgetretenen Bugs bei der Nutzung von “system.Exec()” in Kombination mit dem “&” Hintergrundmodus bei dem es dazu kam, das mit jeder Ausführung ein Zombie-Prozess erzeugt wurde der auch nicht nach längerer Zeit beendet wurde und somit zu Systeminstabilitäten führen konnte (viewtopic.php?f=65&t=61454&p=613916#p613916).
      • Beseitigung eines Problems in “system.Exec()” das bei jeder Ausführung nicht geschlossene stdin Pipes übergelassen hatte und somit zu Systeminstabilitäten führen konnte.
    • Übersichtlichere Darstellung der Datenpunkte in Diagrammen (bei „Mouseover“).
    • Formatierung im Dialog zur Einstellung der Pumpenschutzfunktion beim Bearbeiten einer direkten Verknüpfung mit der HmIP-FAL korrigiert.
    • Im HmIPServer kam es zu False-positive Log Meldung (“NoSuchDeviceException” im “LegacyNotificationHandler”).
    • Problem beim Dimmen von Wired Dimmaktoren mittels HmIP Funk-Fernbedienungen wurde korrigiert.
    • Bargraph der Duty Cycle Anzeige bei zusätzlichen Gateways korrigiert.
    • Beim Konfigurieren der Dimmkanäle (6,7,8) des HmIP-MP3P wurde die Ausschaltdauer nicht an das Gerät übertragen.
  • Problem bei der Erzeugung des “.nobackup” Statusfiles im NEO Server CCU Addon Setup beseitigt sodass es nun definitiv nicht mehr Teil des Systembackups werden sollte.
  • Überarbeitung des “/bin/checkUsrBackup.sh” Hilfskriptes, sodass bei beabsichtigtem Fehlen eines für HmIP-passenden Funkmodules es nicht mehr zu einer Fehlermeldung kommen sollte wenn man ein Backup wiederherstellen lässt (#890).
  • Problem beseitigt bei dem die “.doCoproFactoryReset” Statusdatei fälschlicherweise bei Einsatz eines HM-MOD-RPI-PCB nicht gelöscht wurde.
  • Anpassungen beim Funkmodulsetup sowie in der WebUI vorgenommen, sodass bei Fehlen eines RPI-RF-MOD Funkmodules die “Advanced LAN Routing” Funktionalitäten des HMIPServer deaktiviert werden und zusätzlich in der WebUI eine Warnung angezeigt wird das manche Funktionalitäten (HmIPW-DRAP, HmIP-HAP Anbindung) jedoch dieses Funkmodul zwingend voraussetzt (viewtopic.php?f=65&t=61869&p=612555#p612555).
  • Hinzufügen einer dynamischen Berechnung der Allokierung des Java Memory Heap Sizes, sodass bei Nutzung des HMIPServer je nach eingesetzter Hardware/RAM Größe es zu einer optimaleren Ausnutzung der zur Verfügung stehenden Ressourcen kommt und ggf. auch eine performantere Ausnutzung des HMIPServer möglich wird.

WebUI Änderungen:

  • Verbesserung des “0085-WebUI-AddonPopupScrollable” WebUI Patches, sodass auch andere popupTable Nutzung in der WebUI um Scrollbalken erweitert werden und damit kein Popup mehr ausserhalb des sichtbaren Bereiches landen sollten.
  • Neuer “0086-WebUI-Fix-500Error” WebUI BugFix Patch welcher sämtliche “Error 500” Fehler bei der Nutzung von “Ajax.Request()” mit einer leeren “puts” Rückgabe beseitigen sollte (#959).
  • Verbesserung des “0026-WebUI-Fix-CacheControl” WebUI Patches sodass auch für die “webui.js” und “jquery” aufrufe keinerlei “?_version_=” parameter mehr notwendig sind.
  • Neuer “0087-WebUI-Fix-DoubleSIDs” WebUI BugFix Patch welcher das doppelte hinzufügen von “?sid=@xxxxxx@” URL parametern verhindern sollte beim Aufruf der “LoadFromFile()” Funktion (#959).
  • Anpassung des “0036-WebUI-AppleIcons” WebUI Patches um mit den aktuellen Änderungen am CacheControl WebUI Patch kompatibel zu sein.
  • Neuer “0088-WebUI-Fix-MissingReportValueUsage” WebUI BugFix Patch der die fehlende “/www/api/methods/interface/reportvalueusage.tcl” JSON RPC Funktion umsetzt (#965).
  • Verbesserung des “0077-WebUI-NegateCondition” WebUI Patches sodass statt eines leeren Auswahlfeldes die Negierung einer Bedingung etwas intuitiver dargestellt wird (#966).
  • Neuer “0090-WebUI-Add-ReGaSaveButton” WebUI Patch der einen neuen “Änderungen speichern” Knopf integriert und damit es nicht mehr notwendig macht sich zwangsläufig auch zum Speichern der Einstellungen abzumelden (#979, @jp112sdl).
  • Neuer “0091-WebUI-Add-HM-OU-LED16-LedStatus” WebUI Patch der den jeweiligen LED status eines HM-OU-LED16 Gerätes auch in der WebUI entsprechend visualisiert (#985, @jp112sdl).
  • Neuer “0092-WebUI-Fix-DeviceReplacement” WebUI Bugfix Patch der das Problem beseitigen sollte das ein Gerätetausch seit einigen CCU Versionen nicht mehr korrekt in der WebUI beendet wurde (#879, @jp112sdl).
  • Neuer “0093-WebUI-AllowAdminUserChanges” WebUI Patch der es nun erlaubt den Standard “Admin” Nutzer zu löschen um ggf. die Sicherheit zu erhöhen bzw. Standard-Angriff-Szenarien zu reduzieren (#987, @jp112sdl).
  • Neuer “0094-WebUI-userSysVarTblValuesWordWrap” WebUI Patch um im Favoritenauswahldialog bei der Anzeige von Wertelisten-Systemvariablen einen Zeilenumbruch vorzunehmen um Probleme mit zu langen Wertestrings zu vermeiden (#991, @jp112sdl).

Betriebsystem Änderungen:

  • MAJOR Update des zugrundeliegenden Buildroot/Linux Betriebssystems durch Umstellung auf ein vollwertiges 64bit Betriebssystem bzw. Umgebung. Nun sollte auf 64bit fähiger Hardware wie RaspberryPi4, RaspberryPi3 (CCU3, ELV-Charly) oder x86-basierter Umgebungen (OVA, IntelNUC) ein vollwertiges 64bit Betriebsystem bzw. Umgebung zur Verfügung stehen.BITTE BEACHTEN:
    • Existierende Nutzer einer x86 OVA-basierten Variante sollten nach dem Update auf diese Version in Ihrer Virtualisierungsumgebung etwaige 64bit Einstellungen in der RaspberryMatic VM vornehmen um 64bit Optimierungen zu ermöglichen
    • Nutzer von RaspberryPi2 Hardware müssen mit dieser Version einmalig eine komplette Neuinstallation Ihrer SD-Karte unter Nutzung des neuen “rpi2” Platformimages vornehmen und in Zukunft für weitere Updates die neuen “rpi2” Images nutzen. Durch die 64bit Unterstützung war es notwendig eine Trennung des zwischen RaspberryPi2 und RaspberryPi3 Hardware vorzunehmen, sodass nun der RaspberryPi2 ein separates Platformimage nutzt.
    • Um weiterhin 32bit Anwendungen lauffähig zu halten wurde eine entsprechende 32bit Kompatibilitätsschicht umgesetzt womit auch alle gängigen CCU Addons bereits erfolgreich getestet wurden. Trotzdem soll daraufhin gewiesen werden, das es mitunter Addons/Erweiterungen geben kann die ggf. damit Probleme machen könnten oder für die es von Vorteil wäre das Addon auf 64bit Unterstützung umzustellen.
  • Hinzufügen von IPv6 “localhost” und “allnodes”/”allrouters” Definition in /etc/hosts um die generelle IPv6 Kompatibilität zu verbessern.
  • Nutzung einer dedizierten “umask” in S06InitSystem sowie explizites generieren eines /etc/config/firmware Verzeichnisses damit HMIPServer nicht mehr über dessen Fehlen benachrichtigt.
  • Um eine WiFi/WLAN Verbindung automatisch beim ersten Start von RaspberryMatic direkt einrichten/nutzen zu können (z.B. bei Nutzung eines RaspberryPi ZeroW) kann nun eine /boot/SetupWIFI Datei in der FAT32 basiertes bootfs Partition angelegt werden. Sobald in dieser Datei in der ersten Zeile die SSID und in der zweiten Zeile das Zugangspasswort vermerkt wird generiert RaspberryMatic nun automatisch die passende /etc/config/wpa_supplicant.conf Konfiguration und die startet die WLAN Verbindung entsprechend.
  • Entfernen der NETLINK Interfaceüberwachung für das “wlan0” interface das ansonsten zu regelmäßigen Neustarts von ifplugd führen konnte.
  • Hinzufügen der “-w” Option für den start von “ifplugd.eth0”. Dies sollte dem Netzwerk Setup die notwendige Zeit geben und erst mit dem Start des NTP und anderen Diensten fortfahren wenn das eth0 Interface korrekt hochgefahren wurde (siehe viewtopic.php?f=65&t=62143).
  • Entfernen aller Nutzungen der CONFIG_RTC_SYSTOHC Kerneloption sowie wiedereinführen der cron-basierten systohc RTC Clock Synchronisationen um die hardware clock Nutzung entsprechend zu verbessern.
  • Integration eines neuen ZRAM-basierten Swap Mechanismus (siehe https://github.com/StuartIanNaylor/zram-swap-config) welcher eine ZRAM-basierte Swap Partition dem System zur Verfügung stellt. Dies sollte das generelle Memory Management des Systems gerade in Situationen mit hoher Speicherauslastung verbessern.
  • Hinzufügen der “-e 1” Option für den nächtlichen BadBlocksCheck sodass bei Auftreten eines BadBlock Fehlers es zum sofortigen Abbruch und Fehlermeldung kommt, statt das gesamte Gerät nach weiteren Fehlern abzusuchen. Dies sollte harte Abstürze bei defekten SD karten vermeiden helfen und auch vermeiden das in Folge die badblocks.txt Datei das gesamte RAM aufbraucht (siehe viewtopic.php?f=65&t=62135&p=615209#p615209).
  • Aktualisierung des “linux-firmware” Paketes auf die aktuellste 20201022 Version.
  • Aktualisierung des “ethtool” Paketes auf die aktuellste 5.9 Version um weitere Fehler zu beseitigen.
  • Aktualisierung des “Monit” Paketes auf die aktuellste 5.27.1 Version zur Beseitigung einiger Fehler (#993).
  • Aktualisierung der Java Umgebung auf die jeweils aktuellste 8.50.0.xxx-ca-jdk8.0.275 LTS Version.
  • Aktualisierung der Buildroot/Linux Umgebung auf die aktuelle 2020.08.2 Version.
  • Aktualisierung des RaspberryPi Linux Kernels samt passender RaspberryPi firmware auf die aktuelle 1.20201022 Version.
  • Aktualisierung der verwendeten Linux Kernelversion auf die aktuellste LTS 5.4.x version (5.4.77) für alle unterstützen Platformen.

Mitwirkende (diese Version, alphabetisch):

Die neue Version kann wie gehabt von folgender URL als *.zip Datei für die verschiedenen RaspberryPi Modelle heruntergeladen und installiert werden:

https://github.com/jens-maus/RaspberryM … ses/latest

Zu beachten gilt, das auf Grund der Unterstützung unterschiedlicher Geräte es getrennte Installationsarchive (*.zip Dateien) gibt die für die folgende Hardware jeweils einheitlich ist:

RaspberryPi4 Model B:

Code: Alles auswählen

RaspberryMatic-3.53.34.20201121-rpi4.zip

CCU3, ELV-Charly, RaspberryPi3 Model B+, RaspberryPi3 Model B, RaspberryPi3 Model A+, RaspberryPi Compute Module 3, RaspberryPi Compute Module 3 lite:

Code: Alles auswählen

RaspberryMatic-3.53.34.20201121-rpi3.zip
RaspberryMatic-3.53.34.20201121-ccu3.tgz (nur für den initialen Umstieg von CCU3 Firmware zu RaspberryMatic)

RaspberryPi2 Model B:

Code: Alles auswählen

RaspberryMatic-3.53.34.20201121-rpi2.zip

RaspberryPi Zero W, RaspberryPi Zero, RaspberryPi Compute Module 1, RaspberryPi1 (A+/B+):

Code: Alles auswählen

RaspberryMatic-3.53.34.20201121-rpi0.zip

Tinker Board S, Tinker Board:

Code: Alles auswählen

RaspberryMatic-3.53.34.20201121-tinkerboard.zip

Intel NUC:

Code: Alles auswählen

RaspberryMatic-3.53.34.20201121-intelnuc.zip

Open Virtual Appliance (OVA) – (ESXi, VirtualBox, Proxmox, Synology, QNAP, QEmu, HyperV):

Code: Alles auswählen

RaspberryMatic-3.53.34.20201121-ova.zip
RaspberryMatic-3.53.34.20201121.ova (nur für die initiale OVA installation)

Update/Upgrade:
Das Update auf diese Version kann bei Einsatz einer Vorversion unter “Einstellungen->Systemsteuerung->Zentralen-Wartung” durch Upload der jeweiligen *.zip oder *.tgz Datei (Nicht ausgepackt!) erfolgen. Alternativ kann natürlich weiterhin auch einfach eine neue SD-Karte verwendet werden und das im Archiv befindliche *.img auf die neue SD Karte kopiert werden um dann von dort aus neu zu booten und via Backup-Restore das jeweils aktuelle Backup wiederherstellen zu lassen.

Hinweis:
Bitte beachten, dass natürlich vor jedem Update erst einmal ein manuelles Backup erfolgen sollte damit bei eventl. Fehlschlagen des WebUI-basierten Updates man mittels einer neuen SD-Karte dann sein aktuellstes Backup einfach wieder einspielen kann.

Für Bugreports und Featurerequests bitte den GitHub Issue-Tracker nutzen damit ich die Anfragen geordnet abarbeiten kann. Support- und Hilfeanfragen bei vermeintlichen Nutzungsproblemen bitte weiterhin hier als erstes im Forum platzieren und erst daraus ein Bugreport im GitHub machen wenn das Problem von anderen Nutzern bestätigt werden konnte.

Viel Spass mit der neuen RaspberryMatic Version!