Tool um ioBroker zu installieren auf ein Raspberry und Backups zu erstellen.
Backups werden gespeichert auf ein Windows PC oder auf ein USB-Stick der am Raspberry dran ist oder direkt auf den Raspberry
--->Download Tool<---
--->Direkt Download Tool Link<---
!!!Sollten Sonderzeichen im PW sein!!! und Putty will immer ein Passwort haben wollen,!!!
dann vor dem Sonderzeichen (oder bei allen) ein ^ setzen (2x Taste ^ drücken und dann ein löschen)
^w^e^r^t^% = wert% als Passwort
--->Download Tool<---
--->Direkt Download Tool Link<---
Backup Blockly Script
Ordner muss vorhanden sein /media/usbstick und Rechte für Benutzer "iobroker" haben.
Falls nicht vorhanden:
Mit dem Blockly Script kann mit Alexa mit "Backup an" ein Backup erstellen. Backups die älter als 7 Tage sind, werden dabei gelöscht.
Und mit "Backup aus" ioBroker zurück setzen.
- <xml xmlns="https://developers.google.com/blockly/xml">
- <block type="on" id="+wk0X4|-M0)su(@MO.7`" x="-388" y="45">
- <field name="OID">Meine_Geräte.0.Backup</field>
- <field name="CONDITION">any</field>
- <field name="ACK_CONDITION"></field>
- <statement name="STATEMENT">
- <block type="controls_if" id=";#Eq*]!V1/A%:e76Gc=~">
- <mutation elseif="1"></mutation>
- <value name="IF0">
- <block type="logic_compare" id="wft`?!,5FyOyfJ(DFsSz">
- <field name="OP">EQ</field>
- <value name="A">
- <block type="get_value" id="}V46+XhGlc(QP(1J0jyL">
- <field name="ATTR">val</field>
- <field name="OID">Meine_Geräte.0.Backup</field>
- </block>
- </value>
- <value name="B">
- <block type="logic_boolean" id="@6q;wS1dj0`o=q5*t{,O">
- <field name="BOOL">TRUE</field>
- </block>
- </value>
- </block>
- </value>
- <statement name="DO0">
- <block type="exec" id="f0YV#{i|@(vjS`i3y{hz">
- <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
- <field name="WITH_STATEMENT">FALSE</field>
- <field name="LOG"></field>
- <value name="COMMAND">
- <shadow type="text" id="bL8!q%jpaG!U7dA)@+At">
- <field name="TEXT">cd /opt/iobroker/; tar -czf /media/usbstick/backup-$(date +%d-%m-%Y-%H-%M-%S).tar.gz iobroker-data node_modules; find /media/usbstick -cmin +10080 -delete</field>
- </shadow>
- </value>
- </block>
- </statement>
- <value name="IF1">
- <block type="logic_compare" id="AsuSH`cS:mg*R3Ce!Neq">
- <field name="OP">EQ</field>
- <value name="A">
- <block type="get_value" id="}xXBA-_u^C(..i7{lM;o">
- <field name="ATTR">val</field>
- <field name="OID">Meine_Geräte.0.Backup</field>
- </block>
- </value>
- <value name="B">
- <block type="logic_boolean" id="wNzKa;_I#04/Q/f!]uXd">
- <field name="BOOL">FALSE</field>
- </block>
- </value>
- </block>
- </value>
- <statement name="DO1">
- <block type="exec" id="u_X_(8JJPR*VQ0EoNv;e">
- <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
- <field name="WITH_STATEMENT">FALSE</field>
- <field name="LOG"></field>
- <value name="COMMAND">
- <shadow type="text" id="KVsi[9:Zh8t!KKSO836=">
- <field name="TEXT">(cd /media/usbstick/; last=`ls -tr | tail -1`; tar -xzf $last -C /opt/iobroker; cd /opt/iobroker/; chown -R iobroker /opt/iobroker; iobroker restart)</field>
- </shadow>
- </value>
- </block>
- </statement>
- </block>
- </statement>
- </block>
- </xml>
Backup Jacascript
Jeden Tag um 4.00Uhr Nachts wird ein Backup erstellt in /media/usbstick
Die Ordner müssen vorhanden sein... Siehe weiter oben...
Alle Backups die älter als 7 Tage sind, werden automatisch gelöscht. Damit der Speicher nicht überläuft.
- "schedule";
- function backup() {
- exec('cd /opt/iobroker/; tar -czf /media/usbstick/backup-$(date +%d-%m-%Y-%H-%M-%S).tar.gz iobroker-data node_modules; find /media/usbstick -cmin +10080 -delete',
- function (error, stdout, stderr) {console.log('stdout: ' + stdout);});
- }
- schedule("00 04 * * *", function(obj){
- backup();
- });
Bei Problemen...!!!
- Der Befehl fügt den Benuzer "pi" mit in die Gruppe "iobroker" und kann somit im Ordner /opt/iobroker alles machen,
- was man möchte.
- iobroker selber kann mit den erstellten Dateien von "pi" auch arbeiten.
- sudo usermod -a -G pi iobroker
- -----------------------------
- Diese Befehle setzen alle Dateien als Eigentümer für iobroker. Somit kann iobroker alles machen.
- Sollte immer gemacht werden, wenn man in /op/iobroker "rumgespielt" hat.
- sudo chown -R iobroker /opt/iobroker
- sudo mkdir /home/iobroker
- sudo chown -R iobroker /home/iobroker
- -----------------------------
- Repositories prüfen/ändern/aktualisieren
- Experteneinstellung. Oben Schraubenschlüssel Symbol. Repositories
- Repositories alternative (ist schneller) Nach dem Speichern noch mal überprüfen.
- stable = http://repo.iobroker.live/sources-dist.json
- beta = http://repo.iobroker.live/sources-dist-latest.json
- -----------------------------
- Hiermit kann man sehen, welcher Port frei ist bZ. Welches Programm ein Port belegt.
- Hier wird nach Port 8081 geguckt
- sudo netstat -lntup | grep ":8081"
↓↓Taucht bei diesen beiden eine Fehlermeldung auf, einfach ignorieren↓↓
sudo chmod 777 /media/usbstick
sudo chown -R iobroker /media/usbstick
Manuelle Installation von IoBroker
1. Auf https://www.raspberrypi.org/software/ das Tool runterladen und starten. Das Raspberry Pi OS (other) -> Raspberry Pi OS Lite (32-bit) auswählen
Nicht mehr Nötig=
und auf eine SD Karte installieren.
2. SSH Datei erstellen. (Rechter Mausklick. Textdatei erstellen und SSH benennen)
3. wpa_supplicant.conf erstellen. (Rechter Mausklick. Textdatei erstellen und wpa_supplicant.conf benennen)
wpa_supplicant.conf darf KEINE Text Datei sein. Sie MUSS die Endung conf haben.. (Bitte Googlen wie man Datei-Endungen in Windows anzeigen lässt)
In dieser Datei das eingeben:
4. Wlan- Name und Passwort einfügen
5. Beide Dateien in das "Boot" Verzeichnis der SD Karte kopieren.
2.STRG+Shift+X drücken. Jetzt kann man W-Lan Daten, SSH Freigabe, und vieles mehr einstellen.
3.Image schreiben.
..
6. Raspi starten. Mit Putty verbinden und das eingeben:
7. Fertig
******************************
ioBroker Reparieren
!!!ACHTUNG!!!
NODE VERSION ANPASSEN
sudo curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -
oder
sudo curl -sL https://deb.nodesource.com/setup_18.x | sudo bash -
oder
sudo curl -sL https://deb.nodesource.com/setup_20.x | sudo bash -
Das was bei euch installiert ist (Node)
- iobroker stop
- cd /opt/iobroker
- sudo npm cache verify
- sudo chown -R iobroker /opt/iobroker
- sudo apt update -y && sudo apt upgrade -y
- sudo apt-get purge nodejs -y && sudo apt-get autoremove -y && sudo apt-get autoclean -y
- curl -sL https://iobroker.net/install.sh | bash -
- npm rebuild
- iobroker update
- iobroker upgrade self
- iobroker upgrade -y
- iobroker start
!!!! Cannot read system.config: null (OK when migrating or restoring)
iobroker is not running on this host. !!!!
- iobroker stop
- (sudo su = Benutzer soll root werden)
- (su pi = soll wieder zu Benutzer "pi" werden. Heißt der Benutzer anders, dann pi ersetzen)
- sudo su
- cd /opt/iobroker/iobroker-data/
- mv objects.json objects.json.old
- mv states.json states.json.old
- cd /opt/iobroker/iobroker-data/backup-objects/
- su pi
- ls -lh /opt/iobroker/iobroker-data/backup-objects/
- sudo su
- !!!LESEN WAS UNTEN STEHT!!!
- gunzip -ck INTAKTE_DATEI_objects.json.gz > /opt/iobroker/iobroker-data/objects.json
- gunzip -ck INTAKTE_DATEI_states.json.gz > /opt/iobroker/iobroker-data/states.json
- !!!LESEN WAS UNTEN STEHT!!!
- su pi
- sudo chown -R iobroker /opt/iobroker
- iobroker start
Man schaut wann zuerst 'auffällige' Dateien mit auffälligem Schwund zwischen zwei Dateien auftauchen und nimmt die beiden größeren die da drüber sind
- -rw-rw-r--+ 1 iobroker iobroker 2.4M Nov 6 19:36 2021-11-06_19-36_objects.json.gz
- -rw-rw-r--+ 1 iobroker iobroker 217K Nov 6 19:38 2021-11-06_19-38_states.json.gz
- -rw-rw-r--+ 1 iobroker iobroker 1.1K Nov 6 21:02 2021-11-06_21-02_objects.json.gz
- -rw-rw-r--+ 1 iobroker iobroker 215K Nov 6 21:02 2021-11-06_21-02_states.json.gz
man sieht, das objects.json.gz oben fast doppelt so groß ist wie unten. also sollte das größere noch funzen.
deswegen:
!!!Node UPGRADEN!!!
- iobroker stop
- cd /opt/iobroker
- sudo npm cache verify
- sudo chown -R iobroker /opt/iobroker
- sudo apt update -y && sudo apt upgrade -y
- sudo apt-get purge nodejs -y && sudo apt-get autoremove -y && sudo apt-get autoclean -y
- curl -sL https://iobroker.net/install.sh | bash -
- npm rebuild
- iobroker update
- iobroker upgrade self
- iobroker upgrade -y
- iobroker start
Installieren von IoBroker auf Raspberry Z Zero
Mit dem Raspberry Pi Imager die Lite Version installieren (Wie bei Raspi3, 4 u.s.w.)
ssh und wifi dort aktivieren. Rechts auf das Zahnrad klicken.
SD Karte fertigstellen und ab in den Raspi.
Dauert n bissel.
- sudo apt update
- sudo apt upgrade (dauert aber lange. Kann man später machen)
- wget https://unofficial-builds.nodejs.org/download/release/v16.9.1/node-v16.9.1-linux-armv6l.tar.xz
- tar xvfJ node-v16.9.1-linux-armv6l.tar.xz
- sudo cp -R node-v16.9.1-linux-armv6l/* /usr/local
- rm -rf node-*
- sudo reboot
- node -v && npm -v
- zeigt die Node Version an
- curl -sL https://iobroker.net/install.sh | bash -
Fertig.
Iobroker mit Node 16 auf Raspberry Z Zero
Aber immer Ruhig bleiben. Nicht willt drauf rumklicken.
Es ist alles sehr, sehr träge.
30min. zum installieren eines Adapters ist da schon "schnell" 🤪
Aber es funzt.
Viel Spass 😁
Freien Port rausfinden
sudo netstat -lntup | grep ":1889"
So wird nach Port 1889 geprüft, ob der frei ist.
Sollte nichts angezeigt werden, ist er frei.
Ansonsten wird angezeigt, welche Software den Port benutzt.