NEWS
[HowTo] Migration: Linux SBC (RasPi)-> Windows-PC
-
Motivation
Seit 2 Jahren betreibe ich ioBroker stabil auf einem Orange Pi Plus 2e, siehe auch https://forum.iobroker.net/topic/5639/orange-pi-plus-2e . Dank eMMC und history Daten auf einer kleinen SSD hatte ich keine der SD-Karten-Themen, die ich mit dem Raspi sowohl unter CCU.IO als auch unter ioBroker hatte. Also im Grunde eine empfehlenswerte Sache. Aber
Mit 2GB Speicher doch etwas eng und das Warten auf die FLOT Charts etc. ist meine Lebenszeit.- Die Adapter werden immer leistungsfähiger und leistungshungriger
- Die Entwickler haben inzwischen meist kräftige Maschinen
- Security wird auch eher mehr und braucht auch Ressourcen
- Mein OPi hatte immer wieder "Reconnect DB" was auch zu Fehleinträgen in history und damit zu Fehlern in den FLOT Charts führte. Neuere HM-Adapter haben das Thema deutlich verschärft. Einer der Hauptgründe fürs upgrade
Ein upgrade sollte her, wenn auch nicht dringend. Single Board Computer (SBC) mit ordentlich Speicher etc sind aber unappetitlich teuer und oft etwas störrisch.
Viele user hier greifen dann zu einem NUC o.ä. und rüsten den mit Proxmox aus. Eine interessante Lösung, aber ich wollte es einfacher. Und das geht - und dazu noch billiger und bequemer.
Einfacher heißt für mich auch Windows. Nichts gegen Linux oder armbian, aber das ist eben nicht mainstrean und nicht meine "Alltagswelt".
@Stabilostick hat nun dankenswerterweise einen sehr leistungsfähigen ioBroker Windows Installer entwickelt ( https://forum.iobroker.net/topic/22866/aufruf-iobroker-für-windows-version-1-5-x ), der sich auch für meine Migration geeignet hat.
Edit 2019-08-25: Mittlerweile gibt es den Installer in der Version 1.5.14, welcher die Migration etwas vereinfacht https://forum.iobroker.net/topic/24647/aufruf-iobroker-für-windows-version-1-5-14?page=1 . Nur spart man sich jetzt das vorinstallierten von ioBroker auf Windows und solche Sachen wie „iobroker host this“. Es reicht nun, ioBroker auf dem SBC anzuhalten, dessen Ordner iobroker-data auf einen Datenträger bzw. NAS zu kopieren, worauf Windows zugreifen kann und dann einfach dort den neuen Installer mit der Migrationsfunktion zu starten.
Eigentliche Zielgruppe dieses Installers sind ioBroker Interessierte, die eine einfache Installation auf z.B. einem vorhandenen (alten, herumliegenden) Notebook oder Windows Rechner ohne großen Aufwand und HW-Gebastel haben möchten. Eine klasse Sache, wie ich finde, denn schließlich haben viele so einen alten Win Rechner noch irgendwo. Und für ioBroker muß es nicht das neueste Modell sein.
Normalerweise greife ich auf einen solchen Windows-Rechner remote über UltraVNC o.ä. zu. Ganz bequem von meinem Haupt-Notebook aus. Kann man auch mit den SBCs über Putty etc machen. Aber wenn es mal ganz tief im Fundament klemmt, dann gehe ich halt zum Notebook und habe alles vor Ort: Tastatur, Bildschirm - und das Debugging kann starten, bis remote wieder läuft.
Ich habe zuerst eine (nicht produktive) Testinstallation auf einem alten Pentium Core Duo (ca. 10 Jahre alt, 4GB) vorgenommen und das hat problemlos funktioniert.
Da ich noch andere Windows-Programme 24/7 betreiben möchte, habe ich mir einen gebrauchten Lenovo X250 i5 8GB besorgt mit Dockingstation als USB Hub. Da ist man mit 8 bis 15W Leistungsaufnahme dabei. Erträglich.
Die ioBroker history Daten werden über einen USB-Sata-Adapter auf eine kleine 60GB SSD geschrieben. Das hat sich schon beim OPi bewährt und kostet heute nicht mehr die Welt.
Die Vorteile eines solchen Systems:- Notebook ist entweder vorhanden oder kann relativ günstig erstanden werden
- Ordentliche Rechnenleistung (z.B i5) und genügend Speicher (8GB)
- Hardware "out of the Box" fertig, keine Bastelei
- Headless wird durch remote desktop oder ultraVNC ersetzt. Headless ist zwar faszinierend, aber RKD ist deutlich angenehmer und effizienter. Im praktischen Alltagsbetrieb ein riesiger Vorteil
- Je nach Budget und Risikobereitschaft bekommt man acuh bei gebrauchten Notebooks Garantie
- Gehäuse ist dabei
- Gute und geeignetes Netzteil ist ebenfalls mit dabei
- Kühlung ist bereits integriert
- Notstromversorgung ist in Form des eingebauten Akkus schon vorhanden
- Gut mit gängigen remote Tools wie UltraVNC, Windows Remote Desktop (s. https://forum.iobroker.net/post/269831) administrerbar
- Für Erstinstallation und evtl. Bootproblemen ist Tastatur und Bildschirm schon da
- Kompakt
- Verlustleistung erträglich
- Windows meist inclusive. DAS professionelle, bekannte, gut gepflegte und mächtige OS
Bei mir kamen noch ein paar spezifische Anforderungen hinzu
- Steuerbarkeit von Updates / Vermeidung unkontrollierter reboots
- Übernahme der Funktionalitäten, Daten, Programme vom SBC (OPi)
- Übernahme der IP-Adresse vom OPi, damit alle anderen Systeme und Sensoren unverändert weiter arbeiten können
- Ggf. Portwechsel um Konflikte mit einem anderen Programmpaket auf demselben Rechner zu vermeiden
- RFLink muß funktionieren. Hierzu wird ein USB Port benötigt. Funktioniert
- history Daten auf eine externen SSD abspeichern
- regelmäßige Backups. Backitup-Adapter, RoboCopy, Robomirror (basiert auf RoboCopy) möglich
- Falls doch mal der Rechner ausfallen sollte: Windows Rechner / Notebooks sind schnell angeschafft oder befinden sich noch im Haushalt. Anders als exotische SBCs aus USA, China, Korea etc.
Das Upgrade scheint bisher gelungen zu sein. @Stabilostick hat die Migrationsschritte schon aufgelistet https://forum.iobroker.net/topic/22866/aufruf-iobroker-für-windows-version-1-5-x/5 Diese Anleitung reicht im Prinzip. Falls dabei Fragen oder Unsicherheiten aufkommen, hier ein Protokoll mit ein paar Ergänzungen, wie es bei mir ablief:
Vorbereitung
Während der Kenrphase der Migration ist der alte ioBroker angehalten und der neue noch nicht in Betrieb. Es werden also keine Daten gesammelt. Um diesen Verlust so klein wie möglich zu halten, werden möglichst viele zeitraubenden Vorgänge in die Vorbereitungsphase verlegt. In dieser Phase ist der alte ioBroker noch in Betrieb.- Vorbereitungen via WLAN durchführen, noch kein LAN-Kabel anschließen, wenn man die IP vom alten Rechner übernehmen möchte. Falls das doch schon mal dran war muß der Rechner mal vom LAN genommen werden und die zugehörige IP Adresse im Router gelöscht werden. Für die FritzBox ist das etwas weiter unten für den SBC beschrieben, dessen IP man ja (wahrscheinlich) übernehmen möchte
- Windows auf den neuesten Stand bringen
- UltraVNC installieren, damit man remote auf den ioBroker Windows Rechner zugreifen kann
*MAC-Adresse des Ethernetports des Windows Rechners ermitteln -> Eingabeaufforderung -> ipconfig -all - Zur Sicherheit, falls Rückfall erforderlich, IP Adresse des SBC mit ifconfig abfragen und notieren
- Prüfen der Version der msiexec.exe : -> Eingabeaufforderung -> msiexec.exe
- WinSCP installieren, um die Daten vom SBC übernehmen zu können
- history Daten vom SBC auf den Windows Rechner kopieren. Der aktuelle Tag muß später bei angehaltenem ioBroker nochmals nachkopiert werden
- Vorinstallation des ioBrokers auf dem Windows Rechner:
- Installer runterladen, bei mir Runterladen, bei mir http://iobroker.live/images/win/iobroker-1.5.11.0a-windows-installer.exe **
- Starten: Es kommt ein Fenster: Der Computer wurde durch den Windows Defender geschützt….
- -> Weitere Informationen klicken. Der Herausgeber ioBroker GmbH wird angezeigt
- "Trotzdem ausführen" auswählen und ja, wir möchten das zulassen
- Lizenz akzeptieren
- "einfaches Setup" wählen: Edit: Mit dem neuen Installer kann man auch Migration auswählen, wodurch einige der folgenden Schritte entfallen
- Instanzname vergeben. Bei mir z.B. ioBrMain
- Die Installation startet und dauert. Faszinierend, was da alles im log abläuft. Respekt an die Entwickler!
- History-Daten übertragen, falls noch nicht geschehen
Edit: Folgende Schritte werden durch den neuen Installer mit Migrationsfunktion wohl überflüssig - Stoppe den ioBroker-Dienst der installierten Instanz
- Dazu -> Windows-Taste -> Dienste -> ioBroker Auswählen ->Rechte Maustaste -> Anhalten
- Setze die Startart des Dienstes auf „manuell“
- Im Dienste Programm -> Rechte Maustaste -> > Eigeschaften -> Drop down Starttyp auf manuell
- Benenne den Ordner iobroker-data im Instanzverzeichnis um. -> als Administrator
- Kopiere vom SBC (OPi) den Ordner iobroker-data komplett in den Instanzordner auf Windows. (WinSCP als Administrator starten, oder FAT32 - USB-Stick, oder NAS o.ä.)
- War bei mir unter /opt/ioBroker/
Edit: Edit: Obige Schritte werden durch den neuen Installer mit Migrationsfunktion wohl überflüssig
- War bei mir unter /opt/ioBroker/
Migration
- SBC (OPi) ioBroker anhalten: via Putty o.ä. iobroker stop
- Letzen Tag der history Daten auf den Windows Rechner kopieren
- SBC (OPi) runterfahren: shutdown now
- SBC vom Ethernet nehmen, Versorgung weg
- Ändern der IP des Ethernet Adapters des Windows Rechners auf die des SBC (OPi). Damit kann das gesamte Umfeld wie intelligente WLAN-Sensoren, Browsereinstellungen, sonstige Bridges unverändert bleiben. Bei mir über die Funktionalitäten des Routers Fritzbox auf der Seite -> Heimnetz -> Netzwerk
- Den SBC (OPi) von der Liste löschen. Dazu so lange warten (und aktualisieren) bis der grüne Punkt in der Zeile verschwunden ist und der SBC zu den ungenutzen Verbindungen eingeordnet wird. Dann wird auch das rote Kreuz zum Löschen angeboten. Das dauert einige Minuten (5 bis 10). Voraussetzung: Der SBC muß auch tatsächlich vom Netz sein.
- Über die FritzBox Funktionalität "Gerät hinzufügen" die MAC Adresse des Windows Rechners der gewohnten ioBroker IP Adresse zuordnen. Der Windows Rechner erscheint dann in der Geräteliste als Gerät, aber inaktiv ohne Verbindung
- Ethernetleitung and den Windows Rechner anschließen
- Jetzt kann auch eine UltraVNC-Verbindung über die ioBroker (Ethernet) IP Adresse aufgebaut werden.
- Windows-Taste bzw. Startmenue -> ioBroker
- Es öffnet sich eine ioBroker-eigene DOS-Box (Eingabeaufforderung):
- iobroker host this ausführen, um den Hostnamen im ioBroker auf den des Windows-Rechners zu ändern.
- Optional: Falls die ioBroker Ports (8081) durch andere Programme blockiert, kann man jetzt die Ports ändern:
- iobroker set admin.0 --port <dein_port_für_admin> um den Admin-Port anzupassen.
- iobroker list instances für eine Instanzübersicht.
- Dann den ioBroker-Dienst der Instanz wieder auf automatisch stellen und starten.
- Logs prüfen. Wenn der Dienst nicht startet, auch die Logs im Ordner daemon.
- Die fehlenden Adapter werden vom ioBroker beim Start erkannt und automatisch nachinstalliert. Das kann etwas dauern, auf langsamen Systemen auch gerne länger. Der Fortschritt ist im Log erkennbar. Faszinierend, was da alles gemacht wird
- Bei mir ist die Installation zwischendurch abgeschmiert neu gestartet
- Bei mir lief erst mal Flot und , Vis sowie Web Adapter nicht. Vielleicht hatte ich zu wenig Geduld. ioBroker neu gestartet. Über Startmenue und die damit geöffnete DOS-Box ioBroker restart.
-> WebServer war dennoch nicht in den Instanzen -> WebServer manuell hinzugefügt aus Adapterliste
Danach tauchten web.0 als grün und web.1 als rot auf. Web.1 gelöscht - Edit: Ähnlich bin ich auch beim Tradfri-Adapter vorgegangen. Der war nicht mehr in den Instanzen zu sehen, aber es gab Fehlermeldungen im Log. Ein Zufügen einer neuen Tradfri-Instanz aus der Adapter Seite hat auch die alte Instanz .0 wieder sichtbar gemacht.
- Edit: Einen interessanten Fall hatte ich mir noch mit dem Material Adapter eingebrockt. Die registrierte Version konnte nicht installiert werden. Hatte diese Version im Altsystem temporär vom "Latest" Repository geholt und dafür gab es im Windows "Default" Repository keine Entsprechung. Also Repository temporär auf "Latest" gestellt und Material Adapter in der höchsten verfügbaren Version installieren
- Optional: JS Scripte untersuchen, ob auf Linux-Kommandos oder shell-Skripte zurückgegriffen wird
- Log beobachten. Besonders bei alten und gwachsenen Systemen wie bei dem Meinen können durch eine Migration schon noch einige latente Ungereimtheiten ans Tageslicht kommen. Das ist dann aber nicht dem Installer anzulasten.
Hinweis für den Betrieb mit "kleinen" CPUs
Der "info" Adapter hat Potential die CPU-Last hochzutreiben und so für Schwierigkeiten zu sorgen. Deshalb empfehle ich, zumindest zu Beginn "Aktuelle Systemdaten nicht laden" anzuhaken. Wenn man die Infos haben möchte, dann die Aktualisierungszeit auf max. (derzeit 10 Sekunden) stellen.
Viel Erfolg mit ioBroker auf einem Windows-Rechner! -
Könntest Du bitte die fehlenden Abbildungen hinzufügen?
-
Welche Abbildungen? Sorry, habe zwar alles mitprotokolliert aber keine Screenshots gemacht. Welche wären denn sinnvoll (gewesen)?
-
-> Weitere Informationen klicken4d18-ac5a-1970e68da9ad-grafik.png](Lade 0% hoch) -> Weitere Informationen klicken. Der Herausgeber ioBroker GmbH wird angezeigt
Ich dachte, Du wolltest da ein Bild hinzufügen...
-
Danke und sorry! Nein, das war wohl ein Artefakt der Übertragung von meinem OneNote, mit dem ich den Verlauf dokumentiert habe, auf die Foren-SW. Wobei ich keinen Ahnung habe, wer die Metainfo kreiert hat, OneNote oder Foren-SW. Wahrscheinlich letztere. OneNote erzeugt zwar beim Einkopieren nach OneNote die Quelle als Metadatum aber bei Auskopieren aus OneNote z.B. nach Word habe ich das noch nie gesehen - und ist mir leider auch beim Durchesen durchgeschlüpft.
Ansonsten braucht man aus inhaltlichen Gründen wirklich keine Bilder. Es geht ja praktisch alles automatisch und die Bedienelemente sind Standard Windows. Obwohl - vielleicht gibt es noch Windows-Nutzer, die die DOS-Box ("Eingabeaufforderung") noch nie gesehen haben. Aber ob die sich an ioBroker wagen?
Tja und schon hätten wir die nächste Idee: ioBroker GUI, welches die DOS-Box (Console) verkleidet. Ähnlich wie z.B. Exiftoolgui. Nicht, daß ich das bräuchte. Aber wenn man noch mehr Technikfremde oder zumindest die Post-DOS Generation ansprechen möchte - Warum nicht? -
Anbei die Leistungsaufnahme des Lenovo X250 i5 5300U 8GB 500GB HDD mit der Lenovo UltraDock und einer zusätzlichen SSD. Derzeit läuft darauf ioBroker und einige Tools zur Administration.
Wer wirklich das letzte Watt rausholen will, der kann auch die Dockingstation und die zusätzliche SSD verzichten. Da sind dann nochmals 3W Einsparung drin. Und zuvor noch den Flugmodus aktivieren, also alle Funkverbindungen aus. Die waren hier leider noch aktiviert,
Wenn ich mit UltraCNC auf den Rechner gehe, dann geht das Display an (niedirge Helligkeitsstufe) und meist wird dann auch etwas mehr an Rechenleistung abverlangt. Daher einige der "Leistungsspitzen" -
Kennst Du den Windows Remote Desktop? Wenn beide Rechner mit Windows laufen, dann versuche es ggf. statt mit UltraVNC mit dem Befehl
mstsc.exe
. -
@Stabilostick Remote Desktop kenne ich vom Hörensagen. Hatte aber gelesen, daß es nur mit Win Pro geht. Das hat zwar mein X250-"Server" aber nicht mein "Standard-Notebook" (Client). Erste Versuche waren auch gescheitert, weshalb ich auf UltraVNC zurückgefallen bin.
Habe es jetzt nochmals versucht und es funktioniert - allerdings nur als user "admin" und nicht unter meinem eigentlichen User. Keine Ahnung warum und ob das irgendwelche Rechte-Auswirkungen hat, wenn ich was installiere.
Hat aber gegenüber UltraVNC den Vorteil, daß die Bidschirmskalierung viel besser paßt und ich auch die Quittierungstöne höre.
Danke für den Tipp! -
Evtl. Remote Desktop für Home-Versionen: https://github.com/stascorp/rdpwrap
-
Danke! Aus dessen Readme
Using the same user simultaneously for local and remote logon (see configuration app)
schließe ich, daß der serienmäßige Remote Desktop das nicht kann. Da ich auf allen Win Maschinen den selben user verwende lief das nicht. Mit admin ging es dann.
Ab creators update scheint die Modifikation auch nicht mehr zu gehen.
Also Strategie: Wenn ich etwas unter meinem User installieren möchte -> UltraVNC und zum Nachschauen etc. Remote Desktop unter admin oder einem anderen, speziell eigerichteten User. -
Vielleicht eine kurze Zwischenbilanz nach einer Woche:
Alles läuft flüssig und responsiv. 37 FLOT Charts werden auf einen Aufruf recht flott geladen - allerdings in Chrome; Firefox scheint bei einem der letzten Udates diese Fähigkeit verloren zu haben.
Die gefürchteten "Reconnect DB" mit history restarts und den zusätzlichen Datenpunkten sind bisher nicht aufgetreten. Der OPi hat das leider nicht mehr so gekonnt.
Habe jetzt gestern noch ein weiteres, deutlich rechenzeitintensiveres Programm auf den Rechner migriert und beobachte wie das weiter geht. -
Noch ein paar Eindrücke aus dem Alltagsbetrieb:
- Headless wird durch remote desktop oder ultraVNC ersetzt. Headless ist zwar faszinierend, aber Remote Desktop ist deutlich angenehmer und effizienter. Im praktischen Alltagsbetrieb ein riesiger Vorteil . Ein Trend der auch auf dem generell sehr hilfreichen Ubuntu Wiki zu sehen ist. Viele Einstellungen werden auch dort zuerst für eine Desktop Version erklärt
- Durch die vereinfachten Analysmöglichkeiten fand ich auch die Ursache warum der OPi in die "Überlast" kam. Hätte man man auch headless auf dem Opi finden können, aber per Remote Desktop fiel das ganz einfach als Beifang bei anderen Arbeiten an
- Stromsparen mit Flugmodus aktivieren, wenn Wifi und Bluetooth nicht gebraucht wird