Shelly Plug S mit HomeKit-Unterstützung nachrüsten

Der Shelly Plug S unterstützt, wie andere Shelly-Geräte, von sich aus kein HomeKit. Allerdings existiert eine alternative Firmware, über welche diese Unterstützung nachgerüstet werden kann.

Der Shelly Plug S

Zur Installation muss ermittelt werden, unter welcher IP-Adresse der Shelly Plug S erreichbar ist. Diese wird im Browser aufgerufen und anschließend sollte ein Update durchgeführt werden.

Die Firmware sollte auf die aktuelle Version geflasht werden

Ist dies geschehen, kann die Installation der alternativen Firmware durchgeführt werden. Dazu wird die IP-Adresse des Shelly Plug S mit einem neuen Parameter aufgerufen:

http://192.168.1.42/ota?url=http://rojer.me/files/shelly/shelly-homekit-ShellyPlugS.zip

Es wird anschließend ein JSON ausgegeben:

{„status“:“updating“,“has_update“:false,“new_version“:“20230913-113421/v1.14.0-gcb84623″,“old_version“:“20230913-113421/v1.14.0-gcb84623″,“beta_version“:“20231107-164219/v1.14.1-rc1-g0617c15″}

Nach etwa einer bis zwei Minuten ist das Firmware-Update komplett und eine neue Oberfläche erscheint, beim Aufruf der IP-Adresse im Browser.

Die neue Oberfläche

Mit der neuen Firmware kann der Shelly Plug S als HomeKit-Gerät eingebunden werden. Dazu muss der Setup-Button in der Weboberfläche aktiviert werden. Anschließend kann das Gerät über die Home-App unter iOS hinzugefügt werden. Es ist auch möglich, die Factory-Firmware wieder aufzuspielen, sodass der Shelly Plug S wieder wie gewöhnlich genutzt werden kann.

Zurückbehaltene Pakete unter Ubuntu aktualisieren

Unter Umständen kann es vorkommen, das bei einer Paketaktualisierung mittels apt folgende Meldung erscheint:

The following packages have been kept back:
grub-efi-amd64 grub-efi-amd64-bin grub-efi-amd64-signed gzip php8.1-bcmath php8.1-cli php8.1-common php8.1-curl php8.1-fpm php8.1-gd php8.1-gmp php8.1-imap php8.1-intl php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-phpdbg php8.1-readline php8.1-sqlite3 php8.1-xml php8.1-zip
0 upgraded, 0 newly installed, 0 to remove and 21 not upgraded.

Grund für diese Meldung kann unter anderem sein, das in der Abhängigkeitskette für eines der Pakete ein neues Paket dazugekommen ist. Daneben werden Pakete in der gleichen Version im Normalfall nicht noch einmal aktualisiert. Soll ein solches zurückgehaltenes Paket trotzdem installiert bzw. aktualisiert werden, so kann hierfür folgender Befehl genutzt werden:

apt install --only-upgrade php8.1-zip

Anschließend wird das Paket aktualisiert. Allerdings sollte diese Option mit Bedacht gewählt werden, da es unter Umständen zu Änderungen kommen kann, welche das System bzw. Teile davon in einem nicht funktionsfähigen Zustand zurücklassen, sodass anschließend nachkonfiguriert werden muss.

Probleme beim Nextcloud-Update nach einer Unterbrechung

Beim Update einer Nextcloud-Instanz wurde der Prozess des Updates beim Download der neuen Version unterbrochen. Anschließend tauchte die Meldung:

Step 4 is currently in process. Please reload this page later.

beim erneuten Aufruf des Updaters auf. Um diese Meldung zu beheben, sollte in das Datenverzeichnis der Nextcloud-Instanz gewechselt werden (meist trägt dieses den Namen data) und dort der Ordner beginnend mit der Zeichenkette updater- aufgerufen werden. In diesem Ordner befinden sich eine Datei mit dem Namen .step. Nachdem diese Datei gelöscht wurde, kann der Updater wieder geöffnet und der Vorgang erneut gestartet werden.

Livepatching unter Ubuntu aktivieren

Nach einer Aktualisierung des Linux-Kernels muss der entsprechende Rechner in vielen Fällen neugestartet werden, damit die Änderung wirksam wird. Mithilfe von Livepatching können solche Änderungen des Kernels zur Laufzeit vorgenommen werden.

ubuntu.com/livepatch

Für Ubuntu-Installationen wird hierzu ein Ubuntu-One-Konto benötigt. Für den persönlichen Gebrauch können bis zu drei Systeme mit der Livepatching-Funktionalität versehen werden. Dazu muss ein entsprechendes Token unter ubuntu.com/livepatch bezogen werden. Anschließend kann die Livepatching-Funktionalität über Snap installiert und aktiviert werden:

snap install canonical-livepatch
canonical-livepatch enable abcdefghijklmnopqrstuvwxyz123456

Successfully enabled device. Using machine-token: abcdefghijklmnopqrstuvwxyz123456

Damit ist das Livepatching auf dem System aktiviert. Über den Befehl:

canonical-livepatch status

kann der aktuelle Status des Livepatching eingesehen werden:

last check: 43 minutes ago
kernel: 4.15.0-101.102-generic
server check-in: succeeded
patch state: ✓ all applicable livepatch modules inserted
patch version: 70.1

Standardmäßig wird alle sechzig Minuten überprüft, ob neue Patches vorliegen. Über den Befehl:

canonical-livepatch help

werden die weiteren Möglichkeiten des canonical-livepatch-Kommandos erklärt und auf die entsprechende Konfiguration der Livepatching-Funktionalität eingegangen.

MikroTik-Router über das Terminal aktualisieren

Anfang des letzten Jahres schrieb ich einen Artikel darüber, wie ein MikroTik-Router über das Webinterface aktualisiert werden kann. Neben der Aktualisierung über das Webinterface, kann dieser Prozess auch direkt über das Terminal durchgeführt werden. Dazu muss sich per SSH mit dem Gerät verbunden werden:

ssh admin@192.168.1.1

Nachdem der Prompt erschienen ist, werden im ersten Schritt die Pakete aktualisiert und anschließend das System neu gestartet:

/system package update check-for-updates
/system package update download
/system reboot

Der Neustart des Routers muss hierbei bestätigt werden. Anschließend startet das System neu und installiert die aktuellen Pakete. Nach spätestens einigen Minuten sollte der Router wieder verfügbar sein, sodass sich wieder per SSH mit diesem verbunden werden kann. Im letzten Schritt wird der Bootloader des Routers aktualisiert. Die aktuelle Version kann hierbei über den Befehl:

/system routerboard print

eingesehen werden. Dabei werden eine Reihe von Informationen ausgegeben:

routerboard: yes
board-name: hAP lite
model: RouterBOARD 941-2nD
serial-number: XXXXXXXXXXXX
firmware-type: qca9531L
factory-firmware: 3.33
current-firmware: 3.33
upgrade-firmware: 6.46.1

Interessant ist hier vor allem der Eintrag current-firmware. Das eigentliche Update wird mit dem Befehl:

/system routerboard upgrade

nach einer Sicherheitsabfrage durchgeführt. Anschließend muss das System abermals neu gestartet werden:

/system reboot

Nachdem Neustart ist der Router damit auf die aktuellste Version aktualisiert.