Selbstbau P44-LC-X oder P44-DSB-X

P44-LC-X und P44-DSB-X sind kostenlose Firmware-Images (Dateien), die auf eine SD-Flash-Karte kopiert werden können um einen RaspberryPi entweder als Digital Strom-Gateway oder als eigenständiges (Licht-) Steuergerät zu verwenden.

Matter-Unterstützung als beta verfügbar!

Die P44-LC-X und P44-DSB-X-Image gibts auch als Beta-Versionen mit matter-Integration (Details siehe hier)

Was braucht es?

  • Einen RaspberryPi B,B+, 2 oder 3. P44-DSB/LC-X ist eine sehr gute Möglichkeit, auch die älteren B-Modelle noch lange Zeit sinnvoll zu nutzen. Im Gegensatz zum heutigen Raspberry Pi OS und auch dem älteren Raspian ist das P44-DSB/LC-X winzig (~40 Megabytes anstatt mehrere Gigabytes) und auch punkto Performance sehr genügsam.

  • Eine passende SD-(Micro-)Karte. Auch hier tut es fast jede je produzierte Karte, weil (s. oben) das ganze Image nur 40 Megabytes gross ist. Wer noch 1G oder 2G-Karten hat, kann die verwenden. Auch die bei Rpi-Projekten üblicherweise kritische Flash-Abnutzung ist bei P44-DSB/LC-X kaum ein Thema. Das OpenWrt-Betriebssystem und die plan44-Software ist so konzipiert, dass i.d.R. nur bei Konfigurationsänderungen auf die Karte geschrieben wird.

  • Einen Computer mit SD-Kartenleser.

  • Software zum Schreiben vom SD-Karten-Images. Eine angesichts des Funktionsumfangs zwar sehr fette (265MBytes!!), aber auf allen Plattformen lauffähige Lösung ist etcher, die in den folgenden Schritten verwendet wird.

  • Das richtige P44 Image. je nach Anwendung:

Wenn das alles bereitliegt, kanns losgehen:

SD-Karte flashen

Das folgende Video zeigt die einzelnen Schritte - auf macOS - aber das funktioniert auch auf Linux und Windows sehr ähnlich:

  • Download eines Images von plan44.ch, Auswahl s. oben.
  • Download des Tools etcher zum Flashen von SD-Karten,
  • Flashen der SD-Karte mit etcher.

Jetzt ist die SD-Karte bereit und kann in den RaspberryPi eingesetzt werden!

Raspberry Pi starten und Weboberfläche im LAN finden

Nun kann der Raspberry ans LAN angeschlossen (mit einem Ethernetkabel) und mit eingesetzter SD-Karte gestartet werden. Wer einen HDMI-Bildschirm angeschlossen hat, kann dem Startvorgang zuschauen, der etwa 30 Sekunden dauert - aber im Normalfall ist das nicht notwendig. P44-xx-X-Images starten auch ohne angeschlossenen Bildschirm. Die ganze Bedienung erfolgt über das Netzwerk mit einem Web-Browser.

Wie viele andere Netzwerkgeräte bezieht P44-xx-X eine IP-Adresse via DHCP vom Router im LAN. Wenn diese IP-Adresse bekannt ist, kann sie in einem Browser eingegeben werden, und die Weboberfläche erscheint (bzw. die Login-Aufforderung, s. dazu unten).

Nur, normalerweise ist am Anfang die IP-Adresse eben nicht bekannt. Wie lässt sich nun das Gerät im Netzwerk finden?

  • Im Fall von P44-DSB-X meldet es sich automatisch beim Digital Strom-Server an und ist über dessen Weboberfläche (dS Konfigurator) erreichbar, s. z.B. die Anleitung zum P44-DSB-E-Produkt.

  • Im Fall des eigenständigen P44-LC-X gibt es verschiedene Möglichkeiten, die richtige Webadresse zu finden. Das folgende Video zeigt zwei Methoden für macOS, eine für Linux und eine für Windows, nämlich:

    • für macOS: mit der App Localsites von plan44.ch; kostet CHF 1 im Appstore, ist aber OpenSource für kostenloses Selbercompilieren.
    • für macOS: mit der kostenlosen App Discovery - DNS-SD Browser
    • für Linux am Beispiel Ubuntu: Mit der GUI-App Avahi Zeroconf Browser (Natürlich geht es auch über die Command-Line mit avahi-browse)
    • für Windows schliesslich: P44-LC-X unterstützt uPnP-SD und erscheint in der Netzwerkumgebung.

Wenn das obige nicht klappen sollte, gibt es zwei weitere Methoden:

  • Wer Zugriff auf die Weboberfläche des LAN-Routers hat, findet dort normalerweise eine "DHCP Client-Liste", welche die im LAN gefundenen Geräte mit ihrer IP-Adresse anzeigt.

  • Schliesslich kann am RaspberryPi ein HDMI-Bildschirm und eine USB-Tastatur angeschlossen werden. Auf diese Weise kommt man direkt in die OpenWrt-Systemkonsole (Bootvorgang durchlaufen lassen, dann Enter drücken). 8-ung: Auf dieser Kommandozeile kann man alles machen, auch das Gerät komplett "bricken". Aber durch Eingabe von ip addr (Enter) auch die IP-Adresse erfahren; es ist diejenige, die für eth0: angezeigt wird.

Erste Schritte

Login in die Weboberfläche

Wer über eine der oben beschriebenen Methoden die richige URL für den Web-Browser gefunden hat, findet sich vor einer Login-Abfrage.

  • für P44-DSB-X ist das Standard-Login vdcadmin mit gleichlautendem Passwort vdcadmin.
  • für P44-LC-X ist das Standard-Login p44lcadmin mit gleichlautendem Passwort p44lcadmin.

Nach erfolgreichem Login erscheint die Startseite. Bei P44-LC ist die Weboberfläche dunkel, bei P44-DSB hell.

P44-xx-X default screens

Für viele Anwendungen braucht es nichts weiter als diese Weboberfläche. Mit dem im folgenden Abschnitt beschriebenen Zugang via ssh kann aber die OpenWrt-Linux Kommandozeile direkt benutzt werden für weitergehende Konfiguration, Experimente, Installation von zusätzlichen OpenWrt-Paketen und vieles mehr. Es lohnt sich, auch diese Möglichkeit auszuprobieren.

Passwort ändern!

Ein P44-DSB-X- oder P44-LC-X-Gerät hängt am LAN und damit normalerweise auch am Internet. Je nach Konfiguration des LAN und des Geräts kann es auch aus dem Internet erreicht werden. Deshalb sollte das Passwort für die Weboberfläche geändert werden auf ein individuelles Passwort! Dies kann auf dem System-Tab mit dem Knopf Change Web access password... gemacht werden.

P44-xx-X web password change

Login per ssh - Kommandozeile

Der Zugang per ssh ist für die meisten Anwendungen zwar nicht notwendig, aber dennoch oft praktisch. Insbesondere kann via ssh das Log des Geräts laufend angezeigt werden, anstatt die entsprechenden Seiten im Webbrowser immer wieder laden zu müssen.

Angenommen 1.2.3.4 sei die IP-Adresse des P44-xx-X, dann lautet der ssh-Link:

ssh://root@1.2.3.4

Auf Betriebssystemen mit Unix-Kommandozeile (macOS, Linux, FreeBSD, OpenBSD, Windows mit installiertem cygwin oder msys etc.) kann eine ssh-Verbindung einfach mit

ssh root@1.2.3.4

geöffnet werden. Auf Windows fehlt dieses Standardtool, man kann sich mit putty behelfen.

Das Standardpasswort bei P44-DSB-X und P44-LC-X für dieses root-Login lautet eXperiment. Klappt das Login, sieht das etwa so aus:

BusyBox v1.30.1 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 P44-LC-X 1.6.2, r11364-ef56c85848
 -----------------------------------------------------
root@p44_lc_x_40472953:~#

Je nach Betriebssystem stehen auch bequemere Möglichkeiten bereit, eine ssh-Verbindung anhand der DNS-SD oder uPnP-SD-Infos zu clicken anstatt die IP-Adresse manuell einzugeben. Die Terminal.app von macOS etwa zeigt im LAN verfügbare Geräte unter dem Menupunkt Neue entfernte Verbindung... (Cmd-Shift-K). In putty lassen sich Verbindungsdaten speichern, um sie nur einmal eingeben zu müssen.

Passwort ändern!

Ein P44-DSB-X- oder P44-LC-X-Gerät hängt am LAN und damit normalerweise auch am Internet. Je nach Konfiguration des LAN und des Geräts kann nicht nur die Weboberfläche, sondern auch der ssh-Port aus dem Internet erreicht werden. Der root-Zugriff via ssh gibt komplette Kontrolle über das Gerät, deshalb ist es an dieser Stelle noch wichtiger, dass Passwort zu ändern!. Das geht über die Eingabe von passwd (Enter). Danach wird das neue Passwort abgefragt, und in einem zweiten Schritt überprüft.

Also empfiehlt es sich, als erstes ein eigenens root-Passwort zu setzen:

root@p44_lc_x_40472953:~# passwd
Changing password for root
New password: (unsichtbare Eingabe)
Retype password: (unsichtbare Eingabe)
passwd: password for root changed by root

Laufendes Log anzeigen via Kommandozeile

Um beim Experimentieren zu sehen, was das Gerät so macht, ist es praktisch, ein fortlaufendes Log in einem Konsolen/Terminal-Fenster zu haben. Dazu gibts den Befehl p44l. Ohne Parameter eingegeben zeigt dieser die letzten 10 Log-Zeilen und laufend alle neu dazukommenden (bis zum Abbruch mit Ctrl-C).

root@p44_lc_x_40472953:~# p44l
[2021-12-14 18:40:16.779 N] === collected devices from all vdcs -> initializing devices now

[2021-12-14 18:40:16.779 N] vDChost 39497DAA195757CFC0A27D142CDD84C000 (RPi 3B+ Lego blau): Starting global main script
[2021-12-14 18:40:16.800 W] LEDchains: Specified area needs 23 more LEDs than actually are available: WS2813.GRB:rpi:300:0:17:0:19:X
[2021-12-14 18:40:16.816 N] vDChost 39497DAA195757CFC0A27D142CDD84C000 (RPi 3B+ Lego blau): Global mainscript script finished running, result=undefined [undefined] // no return value
[2021-12-14 18:40:16.816 N] === initialized all collected devices
[2021-12-15 11:47:55.755 N] avahi: starting client
[2021-12-15 11:47:56.686 N] discovery: successfully published services as 'plan44.ch P44-LC-X "RPi 3B+ Lego blau" #40472953'.
[2021-12-15 12:17:49.972 N] vDC 72A98353DB885951800CECB2CB0FB17A00 (RPi 3B+ Lego blau hue): starting in-operation recollect
[2021-12-15 12:17:49.973 N] vDC 72A98353DB885951800CECB2CB0FB17A00 (RPi 3B+ Lego blau hue): in-operation recollect done
^C

p44l kann auch mit einem Parameter aufgerufen werden, z.B. p44l 6, um den loglevel zu ändern und dann das Log anzuzeigen. Standardmässig ist der loglevel auf 5 gesetzt, was LOG_NOTICE bedeutet (nur wichtige Zustandsänderungen werden angezeigt). Um genauer zu verfolgen, was passiert, ist Level 6, LOG_INFO zu empfehlen. Superdetailliert ist Level 7 LOG_DEBUG,dann leided aber u.U. auch die Performance wegen dem vielen Log-Output. Der Loglevel kann auch in der Weboberfläche geändert werden, sowie über die p44script-Funktionen loglevel() und logleveloffset(). Mit p44l -h werden noch weitere Optionen von p44l angezeigt.

Neueste Firmware laden

Die Firmware für P44-DSB und P44-LC wird laufend weiterentwickelt. Die zum Download bereitstehenden Disk-Images werden aber nicht laufend aktualisiert, deshalb sollte nach der Inbetriebnahme die Funktion Check for new firmware version... im System-Tab aufgerufen werden, um die neueste Version zu installieren. Die aktuellen Release-Notes sind auch hier zu finden.

Wer immer die allerneuesten Erweiterungen und Verbesserungen ausprobieren möchte, kann auf Anfrage per E-Mail unter Angabe der Seriennummer sein/ihr Gerät für Beta-Testing-Versionen freischalten lassen. Die (englischen) Release-Notes der Beta-Versionen sind hier zu finden).

Was geht out-of-the box?

Sowohl P44-DSB-X als auch P44-LC-X sind für selbst gebaute Licht-, Sensor- und Eingabegeräte gedacht. Das heisst, "out of the box" gibt es noch nicht allzu viel auszuprobieren. Die interessanten Dinge kommen erst, wenn z.B. Smart-LED-Streifen an den RaspberryPi angeschlossen sind. S. dazu die Anleitungen unter Projekte.

Zwei Ausnahmen gibt es:

  • wer Philips/Signify hue-Leuchten und die entsprechende hue-Bridge hat, kann diese Leuchten direkt mit ein paar Clicks als Leuchten in eine P44-DSB-X oder P44-LC-X aufnehmen. Wie das geht, erklären die entsprechenden Anleitungen zu den kommerziellen plan44-Produkten (Anleitung P44-DSB-E, Anleitung P44-LC-DE).

  • Um auch ohne Hardware die Bedienung auszuprobieren, gibt es die console devices. Die verhalten sich im System wie richtige Geräte (Lampen, Eingänge, etc.), sind aber nur simuliert, und zeigen ihren Zustand im Log. So wird zum Beispiel eine simulierte Farblampe erstellt:

Simulierte Farblampe mit Konsolenausgabe

Nach dem Erstellen erscheint eine Farbleuchte in der Liste, die via das Zahnrädchen-Icon auch in Helligkeit und Farbe eingestellt werden kann. Im laufenden Log (s. oben) sieht das dann etwa so aus:

[2021-12-15 17:19:07.324 N] --- added device: 9D126FB8D8BB5A98800108D97590E47A00 (not yet initialized)
[2021-12-15 17:19:07.425 N] --- initialized device: vdSD 9D126FB8D8BB5A98800108D97590E47A00 - NOT YET announced
                            - Output Channels: 6
                            - has output printing channel value(s) to console
[2021-12-15 17:19:07.547 N] vdSD 9D126FB8D8BB5A98800108D97590E47A00 (Test-Light): changes to PRESENT
>>> Console device Test-Light: channel brightness set to 47.45, transition time = 0.000 Seconds: ########################
>>> Console device Test-Light: channel hue set to 3.60, transition time = 0.000 Seconds: #
>>> Console device Test-Light: channel hue set to 21.60, transition time = 0.000 Seconds: ###
>>> Console device Test-Light: channel hue set to 43.20, transition time = 0.000 Seconds: ######
>>> Console device Test-Light: channel hue set to 64.80, transition time = 0.000 Seconds: #########
>>> Console device Test-Light: channel hue set to 72.00, transition time = 0.000 Seconds: ##########
>>> Console device Test-Light: channel hue set to 75.60, transition time = 0.000 Seconds: ###########

Wie weiter?

Wer sich eine P44-DSB-X ausgewählt hat, ist vermutlich schon von Digital Strom her mit dem Konzept von Räumen und Szenen vertraut.

In Fall des eigenständigen P44-LC-X funktioniert das sehr ähnlich, nur gibt es kein übergeordnetes Home-Automation-System, sondern alles findet im P44-LC-X selber statt - Anlegen von Räumen, Zuordnung von Geräten (Leuchten, Taster u.A.) zu den Räumen, und dann die Erstellung von Szenen in den Räumen. Wie das geht, beschreibt das Manual zum P44-LC-DE (nur die Erklärungen zu DALI und EnOcean sind für ein Selbstbau-P44-LC-X nicht relevant).

Wenn alles soweit geklappt hat und plusminus klar ist (die Details klären sich dann mit der Übung...), dann ist es jetzt Zeit, ein Projekt in Angriff zu nehmen!

Für Diskussionen und Fragen zu P44-DSB-X und P44-LC-X gibt es auch den entsprechenden Bereich im plan44.ch-Forum.

Projekte

Hardware aufbauen und Konfigurieren

Weitere geplante Tutorials

  • Detaileinstellungen der LED-Fackel
  • farbige Lampe mit Effekten
  • Kanäle animieren per script
  • "Expressive Pixels" Anzeige
  • Programmatische Effekte mit canvas-View

Feedback und Vorschläge zu diesem Tutorial nehme ich gerne entgegen!