2023-12-17 CCU3 RedMatic Update

CCU3 auf einem Switch

Großupgrade

Für meine Hausautomatisation verwende ich eine ⎇Homematic IP CCU3 und programmiere diese mit ⎇Node-RED bzw. ⎇RedMatic. Bei RedMatic handelt es sich um eine Zusatzsoftware für die CCU3, welche die nötigen Node-RED-Komponenten und Homeatic-Nodes in einem einfach zu installierendem Paket bereitstellt. Leider handelt es sich bei dem offiziellen GitHub-Projekt um Abandonware. Das wird mir jetzt zum Problem, wo ich mein Yamaha CD-NT670D per ⎇node-red-contrib-musiccast steuern möchte, was eine neuere Node-Red Version voraussetzt, als RedMatic mitliefert.

Glücklicherweise stellt im ⎇HomeMatic-Forum der User Henke für das CCU3 Alternativbetriebssystem ⎇RaspberryMatic eine Upgrademöglichkeit bereit. (Hier eine Erklärung was RaspberryMatic ist: https://www.verdrahtet.info/2020/02/09/ccu-oder-raspberrymatic/ )

Wem der Wechsel des Betriebssystems zu heiß ist, für den bleibt IMHO nur eine Node-RED Installation auf einem Zweitsystem. Zum Beispiel auf einem weiteren ⎇RaspberryPi. Interessant könnte hier auch der ⎇node-red-contrib-ccu Fork sein.

Hier meine Installationslogs des Upgradeprozesses:

Update von:
- CCU3 3.73.9
- RedMatic 7.2.1
- Node-Red 1.2.9
auf
- RaspberryMatic 3.73.9.20231130
- RedMatic 7.3.4
- Node-Red 3.1.3

Wechsel auf RaspberryMatic

1. In Node-Red alle Flow exportieren: ≡ > Exportieren > alle Flows > Download
2. ≡ > Einstellungen > Palette: Notieren was installiert ist
3. CCU3 Einstellungen > Systemsteuerung > Sicherheit > Backup erstellen
4. Ich weiß nicht, ob die Deinstallation von Zusatzsoftware wirklich nötig ist, aber ich habe erst gar keine Experimente gemacht und sie vorübergehend deinstalliert.
  CCU3 Einstellungen > Systemsteuerung > Zusatzsoftware:
    Redmatic deinstallieren
    Mosquitto deinstallieren
5. CCU3 Einstellungen > Systemsteuerung > Zentralen-Wartung > Neustart
6. RaspberryMatic herunterladen
  https://github.com/jens-maus/RaspberryMatic/releases
  https://github.com/jens-maus/RaspberryMatic/releases/download/3.73.9.20231130/RaspberryMatic-3.73.9.20231130-ccu3.tgz
  https://github.com/jens-maus/RaspberryMatic/releases/download/3.73.9.20231130/RaspberryMatic-3.73.9.20231130-ccu3.tgz.sha256
7. RaspberryMatic-3.73.9.20231130-ccu3.tgz.sha256 prüfen
8. CCU3 Einstellungen > Systemsteuerung > Zentralen-Wartung > Heruntergeladene Software auswählen: RaspberryMatic-3.73.9.20231130-ccu3.tgz
  Hochladen (⌛8 Minuten), Sytem-Backup erstellen: Nein
  Lizenzvertrag zustimmen > Installieren
  Update starten (⌛8 Minuten)
  Login-Seite neu laden. Jetzt muss links oben RaspberryMatic stehen.
RespberryMatic-Logo auf CCU3-Loginseite

mosquitto installieren

9. mosquitto 1.5.8+4 herunterladen:
  https://github.com/homematic-community/ccu-addon-mosquitto
  https://github.com/homematic-community/ccu-addon-mosquitto/releases/download/1.5.8%2B4/mosquitto-1.5.8+4.tar.gz
10. CCU3 Einstellungen > Systemsteuerung > Zusatzsoftware > Datei auswählen: mosquitto-1.5.8+4.tar.gz
  Installieren (⌛ zwei Sekunden)
  Installation starten (⌛ zwei Sekunden)
  (Aus der vorangegangenen Config ist die Firewallfreigabe noch aktiv. Bei einer Erstinstallation entsprechend der Webseiten-Readme folgen.)

RedMatic 7.2.1 installieren

11. RedMatic 7.2.1 herunterladen:
  https://github.com/rdmtc/RedMatic
  https://github.com/rdmtc/RedMatic/releases/latest
  https://github.com/rdmtc/RedMatic/releases/download/v7.2.1/redmatic-7.2.1.tar.gz
  https://github.com/rdmtc/RedMatic/releases/download/v7.2.1/redmatic-7.2.1.tar.gz.sha256
12. redmatic-7.2.1.tar.gz.sha256 prüfen
13. CCU3 Einstellungen > Sysemsteuerung > Zusatzsoftware > Datei auswählen: redmatic-7.2.1.tar.gz
  Installieren (⌛ mehrere Sekunden)
  Installation starten (⌛4 Minuten + Neustart = 6 Minuten)
14. Node-RED Beispiel Flows löschen: ≡ > Flows > Löschen
15. Backup einspielen: ≡ > Import > select a file to import: Bei Punkt 1. exportierte flows.json wählen
  Import
  Some of the nodes you are importing already exist in your workspace.: View nodes...
    Nicht angewählte Nodes anwählen und links replace aktivieren.
Konfigurations-Nodes
    Import selected
  (Letzten Beispiel Flow löschen)
16. Deploy ⏷ > Voll > deploy
17. Debuging log prüfen und ggf. korrigieren.
  (Bei mir kam z.B. ein Fehler wegen fehlendem Längen- und Breitengrad des sun-position Nodes. Ansonsten lief alles wieder wie davor!)

RedMatic auf 7.3.4 updaten

18. CCU3 Einstellungen > Systemsteuerung > Sicherheit > Backup erstellen
19. CCU3 Einstellungen > Systemsteuerung > RedMatic:
  Authentifizierung Admin: Keine Authentifizierung
  Node-RED Prozess: Neustart > Normal
20. RedMatic 7.3.4 also Update-Flow herunterladen:
  https://homematic-forum.de/forum/viewtopic.php?f=77&t=80581
    flow-update RedMatic_v7_3_4-4.zip
21. Node-Red ≡ > Import > select a file to import: flow-update RedMatic_v7_3_4-4.json
  Import
22. deploy
23. Flow "node.js aktualisieren" auswählen
24. Kommentare prüfen
25. In den folgenden Schritten wird die CCU3-Daten aus dem Internet laden. Wer seine CCU3 z.B. per Firewall vom Internet fern hält, muss sie jetzt temporär freigeben, sonst endet man mit einer defekten Node-Red Installation!
26. "Patch 7.3.4"-Injection klicken (⌛26 Minuten)
  "Verbindung zum Server verloren..." ist normal. Warten...
27. Node-Red Seite neu laden!
28. "Update NodeRed, selten nötig"-Injection klicken (⌛ mehrere Minute)
29. CCU3 Einstellungen > Systemsteuerung > Zentralen-Wartung > Neustart
30. CCU3 Einstellungen > Systemsteuerung > RedMatic:
  Authentifizierung Admin: Username/Passwort individuell (ReGaHSS (CCU WebUI User nutzen) gibt es nicht mehr.)
  Node-RED Prozess: Neustart > Normal

Partition vergrößern

Vermutlich wird nun unter
CCU3 Einstellungen > Systemsteuerung > Zentralen-Wartung
angezeigt, das der Speicherplatz für Updates zu gering ist.
Verfügbarer Speicherplatz: 1.76 GB (> 1.8 GB erforderlich)
Betroffen ist hier die Partition /usr/local, welcher von der Ursprünglichen Installation nur 2GB zugewiesen bekam. Zum Glück handelt es sich bei dieser Partition um die letzte auf der Partitionstabelle. Und danach ist auf dem internen Speicher der CCU3 (von insgesamt 8GB) noch freier Platz. Die Partition kann also vergrößert werden.

31. CCU3 Einstellungen > Systemsteuerung > Sicherheit > SSH aktivieren
32. CCU3 Einstellungen > Systemsteuerung > Zentralen-Wartung > Neustart im abgesicherten Modus
33. ssh root@ccu3 (Benutzer: root, Passwort: Admin-Kennwort)
34. Situation prüfen:

# df -h /usr/local
Filesystem                Size      Used Available Use% Mounted on
/dev/mmcblk0p3            2.0G    191.9M      1.8G  10% /usr/local

Die Partition /usr/local hat nur 2GB.

# mount | grep /usr/local
/dev/mmcblk0p3 on /usr/local type ext4 (rw,noatime,nodiratime,commit=30)

Das Dateisystem ist ext4.

# fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 7.4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xdeedbeef

Device         Boot   Start     End Sectors  Size Id Type
/dev/mmcblk0p1 *          1  524288  524288  256M  c W95 FAT32 (LBA)
/dev/mmcblk0p2       524289 2621440 2097152    1G 83 Linux
/dev/mmcblk0p3      2621441 6815744 4194304    2G 83 Linux

Der interne Speicher (hier 7.4 GiB) hat noch Platz.

# umount /dev/mmcblk0p3
umount: can't unmount /usr/local: Device or resource busy

root@CCU3:~# lsof | grep /usr/local
1677    /opt/java-azul/bin/java 72      /usr/local/etc/config/eshlight/mapdb/storage.mapdb
1677    /opt/java-azul/bin/java 73      /usr/local/etc/config/eshlight/mapdb/storage.mapdb.p
1677    /opt/java-azul/bin/java 74      /usr/local/etc/config/eshlight/mapdb/storage.mapdb.t

35. Es wird noch auf Dateien auf der Partition zugegriffen. Dienste beenden und Partition trennen:
# cd /etc/init.d
# ./S00watchdog stop
# ./S62HMServer stop
# lsof | grep /usr/local
# umount /dev/mmcblk0p3
36. Jetzt ganz langsam und genau. Es muss die Partition /dev/mmcblk0p3 gelöscht werden, um sie dann auf demselben Startsektor neu anzulegen. Der Endsektor muss größer sein. Am einfachsten die maximale Größe (Vorauswahl) verwenden:

# fdisk /dev/mmcblk0

Welcome to fdisk (util-linux 2.39.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap
partitions on this disk.


Command (m for help): p

Disk /dev/mmcblk0: 7.4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xdeedbeef

Device         Boot   Start     End Sectors  Size Id Type
/dev/mmcblk0p1 *          1  524288  524288  256M  c W95 FAT32 (LBA)
/dev/mmcblk0p2       524289 2621440 2097152    1G 83 Linux
/dev/mmcblk0p3      2621441 6815744 4194304    2G 83 Linux

Command (m for help): d
Partition number (1-3, default 3): 3

Partition 3 has been deleted.

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): 3
First sector (2621441-15523839, default 2623488): 2621441
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2621441-15523839, default 15523839):

Created a new partition 3 of type 'Linux' and of size 6.2 GiB.
Partition #3 contains a ext4 signature.

Do you want to remove the signature? [Y]es/[N]o: n

Command (m for help): p

Disk /dev/mmcblk0: 7.4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xdeedbeef

Device         Boot   Start      End  Sectors  Size Id Type
/dev/mmcblk0p1 *          1   524288   524288  256M  c W95 FAT32 (LBA)
/dev/mmcblk0p2       524289  2621440  2097152    1G 83 Linux
/dev/mmcblk0p3      2621441 15523839 12902399  6.2G 83 Linux

Command (m for help): w
The partition table has been altered.
Syncing disks.

37. Das Dateisystem vergrößern:
# resize2fs /dev/mmcblk0p3
resize2fs 1.47.0 (5-Feb-2023)
Resizing the filesystem on /dev/mmcblk0p3 to 6451196 (1k) blocks.
The filesystem on /dev/mmcblk0p3 is now 6451196 (1k) blocks long.
Nochmal als Bildschirmfoto der SSH-Sitzung:
fdisk und resize2fs SSH-Sitzung

38. Neustarten:
# reboot

Verfügbarer Speicherplatz: 5.86 GB (> 1.8 GB erforderlich)

RedMatic 7.3.4 installiert

Welcome to Node-RED 3.1

⍈Homepage

#