- Per SSH auf den Server mit der HomeAssistant Instanz verbinden
- Auf den User wechseln der die Instanz ausführt.
- Das HACS Script herunterladen und ausführen
wget -O - https://get.hacs.xyz | bash -
wget -O - https://get.hacs.xyz | bash -
Vorbereiten und Abhängigkeiten Installieren
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y python3 python3-dev python3-venv python3-pip bluez libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata
System User Anlegen
sudo useradd -rm homeassistant
oder mit
sudo adduser --system homeassistant
sudo addgroup homeassistant
Verzeichnisse Anlegen und Berechtigungen erteilen
sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant
Wechseln auf den User homeassistant und die Installation ausführen
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv /srv/homeassistant
source bin/activate
[HINWEIS]: Nach dem Aktivieren des virtual environment sieht der Terminal Prompt nun etwa so aus
(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $)
python3 -m pip install wheel
pip3 install homeassistant
Die Installation ist ab diesem Punkt abgeschlossen und wir könnten den HomeAssistant nun mit der Eingabe von hass
starten.
HomeAssistant ist dann unter http://ServerIP:8123 erreichbar
[HINWEIS]: Wenn man wie oben den HomeAssistant gestartet hat, erscheint der Hinweis das keine Config gefunden wurde und eine angelegt wird. Dies geschieht dann im HomeVerzeichnis des Users homeassistant! /home/homeassistant/.homeassistant
Sollte man nun voreilig schon die ersten Gehversuche gewagt haben oder sogar schon einiges Eingerichtet haben kann auf einen Extra Config Ordner verzichtet werden und der Service wie folgt anlegt / eingerichtet werden.
Als erstes wechselt ihr auf euren Benutzer (nicht den HomeAssistant)
wechselt in das Verzeichnis /etc/systemd/system und legt dort die Datei homeassistant.service an.
sudo nano /etc/systemd/system/homeassistant.service
Description=Home Assistant
After=network.target mosquitto.service
[Service]
Type=simple
User=homeassistant
ExecStart=/srv/homeassistant/bin/hass -c /home/homeassistant/.homeassistant --log-file /home/homeassistant/hass.log
[Install]
WantedBy=multi-user.target
Nun wird systemd durch und aktvieren unseren homeassistant.service
sudo systemctl --system daemon-reload
sudo systemctl enable homeassistant
sudo systemctl start homeassistant
Wenn homeassistant nicht starten sollte kann das mittels Log überprüft werden.
sudo systemctl status homeassistant
[Quellen]:
https://wiki.instar.com/de/Software/Linux/Home_Assistant/
https://www.home-assistant.io/installation/linux#install-home-assistant-core
Es geht um diesen tolle Projekt hier: HIER
Auf YouTube gibt es ein schönes deutschsprachiges Tutorial Video dazu: HIER
Da ich sowohl unter Windows wie auch MacOS meine Probleme beim Flashen hatte, hier meine Vorgehensweise auf dem Mac:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
$ brew install python
$ python3 -m pip install pyserial
$ ls -la /dev/cu.*
python3 ./esptool-3.2/esptool.py \
--port /dev/cu.usbserial-2240 write_flash \
0x01000 ./AI-on-the-edge-device-9.2.0/firmware/bootloader.bin \
0x08000 ./AI-on-the-edge-device-9.2.0/firmware/partitions.bin \
0x10000 ./AI-on-the-edge-device-9.2.0/firmware/firmware.bin
weitere Quellen:
Die Befehle haben sich ab Tasmota 9.5 geändert!!
Nicht immer ist die aktuellste Version auch die empfohlene Version für ioBroker.
Nun ja, sollte es dennoch passiert sein, hier ein möglicher Weg zum downgrade:
node -v
Die angezeigte Version ist jene, welche grad aktiv auf der Maschine läuft.
Um einfach zwischen den Versionen wechseln zu können, wird das Programm „n“ installiert.
sudo npm install -g n
sudo n stable
Um zu einer einer bestimmten Version von Node zu wechseln:
sudo n 10.16.0
Anleitung:
Befehle für den Master
iobroker multihost enable
iobroker restart
iobroker list hosts
iobroker stop
iobroker host remove <name>
iobroker restart
Befehle für den Slave
iobroker multihost connect
iobroker restart
In meinem Fall gehe ich davon aus, das ein neu aufgesetztes System vor mir liegt.
Der ioBroker benötigt einaktuelles nodeJS, dies in der Code-Zeile vorher anpassen!
apt-get update
apt-get dist-upgrade
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
apt install -y nodejs
curl -sL https://iobroker.net/install.sh | bash -
Und fertig.
Kurzfassung:
cd /opt/iobroker
iobroker backup
iobroker stop
sudo apt-get update && sudo apt-get upgrade
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v
curl -sL https://iobroker.net/fix.sh | bash -
npm rebuild
iobroker start
Quelle: https://forum.iobroker.net/topic/22867/how-to-node-js-für-iobroker-richtig-updaten
1. Einleitung
Node.js ist die Laufzeitumgebung der Programmiersprache JavaScript, in der ioBroker geschrieben ist. Ohne Node.js funktioniert ioBroker nicht.
Wie bei vielen Open-Source-Technologien üblich, entwickelt sich Node.js schnell weiter. Kleinere Updates, die die Stabilität und Sicherheit steigern oder gar neue Funktionen hinzufügen, erscheinen fast wöchentlich.
Node.js-Versionen mit gerader Hauptversionsnummer werden als LTS-Versionen (Long Term Support) bezeichnet und einige Jahre gepflegt (z.B. 8.x). In 2017 war das Node.js 8, 2018 kam Node.js 10 hinzu und im Oktober 2019 wird Node.js 12 den LTS-Status erhalten.
Im gleichem Zug erreichen frühere LTS-Versionen ihr Lebensende (EOL, End of Life). So hat Node.js 6 im April 2019 den EOL-Status erhalten und bekommt damit keine Updates mehr.
Alle Node.js-Versionen mit ungeraden Versionsnummern sind Entwicklungsversionen und sollten nicht produktiv genutzt werden.
Auch ioBroker wird stetig weiterentwickelt und nutzt die neuen Funktionen aktueller Node.js-Versionen. Obwohl der ioBroker js-controller mit Versionen 1.4.x bzw. 1.5.x noch Node.js 4 unterstützt, fordern neue Adapter immer häufiger mindestens Node.js 8 als Grundvoraussetzung.
Ab der kommenden Version 2.0 des js-controllers (das Freigabedatum ist noch nicht bekannt) sind die Anpassungen so tiefgreifend, dass die Node.js-Versionen 4 und 6 nicht mehr unterstützt werden können.
Alle paar Jahre steht also für eine ioBroker-Installation ein Update von Node.js an. Dieser Artikel soll zusammenfassen wir man dazu am besten vorgeht.
2. Wer sollte updaten?
Aktuell empfehlen wir, bei ioBroker-Neuinstallationen mindestens Node.js 10. zu verwenden. Es sind zwei Adapter bekannt, die nicht mit Node 10 funktionieren: sma-em und wetty. Sollen diese installiert werden, ist Node 8.16 die richtige Wahl. Der Einsatz von Node.js 12 ist vorerst nur für ioBroker-Testsystemen sinnvoll.
Windows-Anwendern empfehlen wir, auf jeden Fall am Test des neuen Windows-Installers teilzunehmen: https://forum.iobroker.net/post/266623
Der zukünftige Windows-Installer für ioBroker wird eine Funktion erhalten, bestehende Installationen automatisch auf aktuelle js-controller- und Node.js-Versionen zu migrieren, ohne dass man die Kommandozeile bemühen muss.
Bevor man beginnt, sollte man in der Befehlszeile mit dem Befehl
node -v
überprüfen, welche Version von Node.js gerade installiert ist. Eine gute Idee ist es, diese Versionsangabe auch mit der Node.js-Version im Übersichts-Fenster des ioBroker-Admins für diesen Host zu vergleichen. Sollten sich die Versionen unterscheiden, sind mehrere Node.js-Varianten installiert, was zu Problemen führen kann.
Grundsätzlich gilt: Sollte das ioBroker-System stabil laufen, muss Node.js auch nicht auf Gedeih und Verderb upgedated werden. Wenn aber die Installation bestimmter Adapter fehlschlägt (wohlmöglich sogar mit entsprechender Fehlermeldung) oder eine Node-Version < 4 für einen js-controller > Version 1.4.x eingesetzt wird, sollte über ein Node.js-Update nachgedacht werden. Es sind auch Probleme für die Node.js-Versionen 8.0 – 8.12 mit volllaufendem RAM bekannt, so dass wir auch hier ein Update empfehlen.
Wie bereits gesagt: Sollte das ioBroker-System stabil laufen und ist die Installation technisch nicht gefordert, muss Node.js auch nicht auf Gedeih und Verderb upgedated werden.
3. Was sollte ich vor dem Update tun?
Hinweis: Falls die Version des js-controllers <= 1.5.12 ist, muss VOR dem Update in den Einstellungen der Admin-Instanz "Verschlüsselung (https) benutzen"
ausgeschaltet werden. Das in ioBroker bis dahin integrierte Zertifikat kann zu Problemen beim Starten des Admin bei Node.js-Versionen >= 10 führen.
Damit es nach dem Update zu keinen Inkompatibilitäten oder Probleme kommt sollte man alle Adapter prüfen und aktualisieren. Vor allem Adapter mit nativen Bestandteilen, wie alles mit Serialport oder Bluetooth können Probleme bereiten. Hier am besten die Adapter-Readme’s per Admin oder im GitHub prüfen, ob neue Versionen zur Verfügung stehen die die geplante Node.js Version explizit erst unterstützen. Auch wenn diese Versionen ggf. noch im „Latest“ Repository sind muss man diese vorher aktualisieren. Alternativ wartet man mit der ganzen Update-Aktion bis die neuen Versionen im „Stable“ Repository sind, schreibt den Entwickler dazu an oder fragt im Forum nach.
Wenn man diesen Schritt nicht durchführt kann es zu unnötigen Problemen beim update der Adapter kommen!
4. Step-by-step-Anleitung für Unix-Systeme
cd /opt/iobroker iobroker backup
ausgeführt werden. Das Backup sollte aktuell sein, damit möglichst keine Daten verloren gehen.iobroker stop
Bitte anschließend im Webbrowser prüfen, dass der ioBroker-Admin danach wirklich nicht mehr startet. Sollte er weiterhin aufrufbar sein, dann den Rechner neu starten und nochmals „iobroker stop“ ausführen und erneut testen. Für die Techniker unter uns: Man kann auch mit einem Tool wie „top“ prüfen, ob noch Prozesse existieren, die mit „io.“ beginnen. Die dann mit einem beherzten „sudo kill -9 <ProzessID>“ zwangsbeenden.curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - sudo apt-get install -y nodejs
Für macOS gibt einen Installer auf https://nodejs.org/en/download/ , den man einfach ausführt.Ob die Aktualisierung geklappt hat, kann man wieder mit dem Befehlnode -v
überprüfen.curl -sL https://iobroker.net/fix.sh | bash -
Er stellt unter anderem die für den Betrieb von ioBroker notwendigen Sicherheitseinstellungen wieder her.cd /opt/iobrokersudo mv reinstall.sh reinstall.dossudo tr -d '\r' < reinstall.dos > reinstall.shsudo chmod +x reinstall.sh
korrigiert werden, damit es funktioniert.c) Reset aller Module in node_modulescd /opt/iobroker sudo rm -r node_modules/
Nachdem der Befehl abgesetzt wurde, fragt das Programm, ob in den Ordner „hinabgestiegen“ werden soll (sofern es ein tieferer Unterordner ist) und ob der (schreibgeschützte) Ordner wirklich gelöscht werden soll – beides bestätigt man mit „Ja“ (j) oder „Yes“ (y).Danach installiert man den Controller in der relevanten Version (hier z.B. 1.5.11 der aktuell die „Stable“-Version ist):npm install iobroker.js-controller@1.5.11 --production
Anschließend startet man ioBroker.iobroker start
ioBroker wird korrekterweise feststellen, dass die Adapter, die er starten will, nicht installiert sind – und diese einfach automatisch nachinstallieren. Je nach System kann dies einige Zeit dauern – gern auch ein paar Stunden (oder bei langsamen SD-Karten die ganze Nacht). Aber danach ist alles aktualisiert. Der Installationsfortschritt ist im Admin im Log-Fenster zu sehen.Zu beachten ist, dass Adapter, die man manuell von GitHub installiert hat, den Fehler Can not parse null/io-package.json:Error: ENOENT: no suche file or directory ...
im ioBroker-Log erzeugen.yourself
zu suchen. Hier werden ggf. npm-Module angezeigt, die nicht automatisch installiert wurden. Sie können/sollten manuell über die Kommandozeile mit npm i <Packetname>@<version>
, ausgeführt im iobroker-Ordner, nachinstalliert werden. Dazu zuerst den ioBroker stoppen, npm ausführen und dann den ioBroker wieder starten.Wenn man dabei npm als root-User per Hand in der Kommandozeile ausgeführt hat, schlage ich zur Korrektur eventueller Berechtigungsfehler vor, vor dem Start von ioBroker das Fixerscript laufen zu lassen.cd /opt/iobrokeriobroker stopnpm i <Packetname>@<version>curl -sL https://iobroker.net/fix.sh | bash -iobroker start
d) Neuinstallation mit Restorecp -r /opt/iobroker/iobroker-data <Pfad_zum_sicheren_Ort> sudo rm -r /opt/iobroker/ sudo mkdir /opt/iobroker cd /opt/iobroker curl -sL https://iobroker.net/install.sh | bash -
Direkt danach stoppt man ioBroker wieder (der ja nach der Installation automatisch gestartet wird).iobroker stop
Dann löscht man den neu erstellen „iobroker-data“- Ordner und kopiert anschließend das gesicherte alte „iobroker-data“-Verzeichnis mit den darin enthaltenen Datenbanken und Dateien dorthin zurück.rm -r /opt/iobroker/iobroker-datacp -r <Pfad_zum_sicheren_Ort> /opt/iobroker/iobroker-data
Anschließend wieder ioBroker starten. Der Rest läuft dann wie bei c) und dauert seine Zeit.von Zeit zu Zeit kommt es vor den ioBroker selbst ein Update zu unterziehen:
cd /opt/iobroker
npm cache clean
sudo iobroker stop
sudo iobroker update
sudo iobroker upgrade self
sudo iobroker start