Shelly: The device is already owned by another user/account

Die Xiaomi Aqara Temperatursensoren, die auf dem Zigbee-Protokoll basierend funken, verlieren bei zu grosser Distanz immer wieder die Verbindung zum Zigbee Hub.

Die zuerst angeschauten Netatmo-Innenmodule als Ergänzung meiner drei Basisstationen sind mir als Ersatz einerseits zu klobig, andererseits auch viel zu teuer.

Nachdem ich meinen Haushalt mit unzähligen Shelly 2.5 Rollladen Schaltaktoren, mehreren Shelly 1 plus und einem Shelly 1 Pro Lichtschaltern ausgestattet habe, wurde ich auf deren Shelly H&T (H&T steht für „Humidity & Temperature“) aufmerksam.

Nach den ersten zwei Testgeräten, welche ich in Styroporschachteln auf der Terrasse installiert hatte (eine die Solarbatterie, die andere (im Winter) Getränke enthaltend), war deren Tauglichkeit gegeben, weshalb ich noch zwei weitere Shelly H&Ts bestellt habe.

Eine wichtige Einschränkung muss man sich bewusst sein: Um die Batterie möglichst lange haltbar zu machen, ist der Shelly nicht konstant im Netzwerk eingebucht, sondern überträgt nur dann Messwerte, wenn die Temperatur und/oder Luftfeuchtigkeit eine zu grosse Differenz zum vorherigen Messwert aufweist. Dies bedeutet auch, dass die „aktuellen“ Messwerte nur via Shelly Cloud API abgefragt werden können. Für meinen Anwendungszweck aber brauchbar — insbesondere, weil die Shellys bis jetzt absolut keine Probleme machen ausserhalb der Wohnung auf der Terrasse, und in Kühlschränken (Farradaysche Käfige, oder?) regelmässig Messwerte zu übermitteln.

Bei der Installation des vierten Shelly H&Ts gestern dann ein ganz komisches Verhalten der Shelly App unter iOS:

The device is already owned by another user/account

Nach etwas Googlen hatte ich die Ursache hinter der Fehlermeldung gefunden: Shelly device is already owned by another User [closed] sowie offiziell ANWEISUNG ZUR FIRMWARE-AKTUALISIERUNG BEI ID-KONFLIKT.

Kurz, soweit ich verstanden habe: Die Entwickler hinter Shelly hatten bei älteren Geräten eine zu „kurze“ eindeutige ID gewählt (vermutlich basierend der MAC-Adresse). Als dann weitere MAC-Adressbereiche registriert wurden, kam es zu überschneidungen beim Suffix.

Die Lösung: Man muss den Shelly dazu bringen, ein spezielles Firmware herunterzuladen. Das ist beim Shelly H&T nicht ganz trivial, da das Ding mit einer Batterie bestückt und nicht permanent online ist.

Zuerst baut man sich die URL zusammen. Die basiert einerseits aus der IP des Shellys (/var/log/dhcp.log ist dein Freund, wobei ich natürlich empfehle, nach der Erstinstallation via DHCP eine statische Adresse zu vergeben), andererseits aus dem Pfad auf dem Shelly, und der externen URL der Firmware. In meinem Fall sah das dann so aus:

http://10.1.2.3/ota?url=http://shelly-api-eu.shelly.cloud/firmware/longid_patch/ht-longid.zip

Die temporäre IP des Shellys lautete 10.1.2.3, der REST API-Pfad lautet /ota?url= und die URL auf die Firmware lautet ht-longid.zip.

Ich versuchte die URL in Safari auf meinem Mac mini zu öffnen, doch zuerst lud und lud Safari. Jetzt war es Zeit, den Shelly H&T zu öffnen und den langen Knopf kurz zu drücken. Die LED begann, rot zu blinken. Es ging ein, zwei Sekunden, und Safari konnte Kontakt mit dem Webserver des Shellys aufnehmen, und dem Shelly erfolgreich den Befehl geben, die Firmware herunterzuladen. Darauf wurde im Browser angezeigt:

{"status":"updating","has_update":false,"new_version":"","old_version":"20220324-134040/v1.11.8-HT-fix-g60b9bd1"}

Nach gefühlt etwa 60 Sekunden war der Shelly wieder erreichbar. Anschliessend konnte ich das Gerät erfolgreich in mein WLAN-Netzwerk einbinden und mit Shelly Cloud registrieren.

Lustigerweise meldete dieser Shelly nach der erfolgreichen Firmware-Aktualisierung noch permanente Sensorfehler für Temperatur und Luftfeuchtigkeit:

Diese Meldung ging weg, nachdem ich ihn über die Web-Oberfläche auf die Beta-Firmware aktualisiert hatte. Es könnte sein, dass ein reiner Neustart das Problem ebenfalls behoben hätte — aber das werden wir nie herausfinden.