NEWS
Diskussion zum Linux-Werkzeugkasten
-
Der kleine ioBroker/Linux-Werkzeugkasten
Wenn der ioBroker und/oder der Server, auf dem der ioBroker lebt, aus irgendwelchen Gründen anfängt herum zu zicken, sollte man da 'von Grund auf' sein System auf ein paar wesentliche Dinge abklopfen.
root login
Seit Jahren nicht mehr 'erlaubt', den root gibt es nur noch aus technischen Gründen im Hintergrund. (Ausnahme: Docker auf einer Synology, da gibt es zu meinem Leidwesen wohl leider keine gescheite Nutzerverwaltung). Sein System administriert man über einen Standarduser mit Standardrechten, der allerdings kurzzeitig über den vorangestellten Befehl
sudoin die Rolle des roots schlüpfen kann, dann aber sofort wieder in seine Standardrolle zurückfällt. Das ist so auf einem üblichen System und wird auch nicht umgestellt, weil 'das blöd ist' oder 'nur kurz' oder aus 'auf meinem System darf ich alles, ich bin natürlich root'-Allmachtsphantasien. Und auch sudo selber wird nur dann verwendet, wenn es erforderlich ist. Nicht erforderlich ist es z. B. in Verbindung mit den Befehlen npm und iobroker! In der Kombination falsch eingesetzt kann es das System zerschießen!
Test:
Als Standarduser
groupsausführen, dann sollte da ein Eintrag sudo zu finden sein. Wenn nicht, dann
Fix:
Als rootusermod -aG sudo USERNAMEund danach nie mehr als root einloggen!
Falls es noch gar keinen Standard-User geben sollte:
adduser username usermod -aG sudo usernameusername ist durch den gewünschten Username zu ersetzen. Dabei verwendet man am besten nur Kleinbuchstaben und nennt den neuen user NICHT iobroker. Viele haben ja einen schönen Vornamen, den kann man da wunderbar verwenden.
Terminal für Faule
TAB-Taste: Befehle und Befehlsoptionen können u. U. per TAB-Taste von der bash vervollständigt werden. Keiner tippt solche Befehle vollständig ein.
Man tippt da nur die ersten paar Buchstaben wie z. B.
sudo systTABcTABstatTABiobTABein und das steht dann automagisch in der Konsole:sudo systemctl status iobroker.serviceWenn man zufrüh tabbt und es noch mehrere Möglichkeiten der Ergänzung gibt schlägt die Konsole die verbliebenen Möglichkeiten auf und man kann sich daran weiterhangeln.
RunLevel 5 / graphische Oberfläche
Server werden aus diversen Gründen (Stabilität, Ressourcenverbrauch, Sicherheit) generell ohne graphische Oberfläche betreiben. Die dafür vorgesehene Betriebsart wird RunLevel 3 genannt. Nur wenn am Server ein Display für die Darstellung der Visualisierung des ioBrokers hängt wird ein Server ausnahmsweise in RunLevel 5 betrieben.
Test:
who -rliefert RunLevel 3 zurück:
pi@raspberrypi:~ $ who -r Runlevel 3 2021-03-03 22:01Für andere Systeme kann man das per
echad@chet:~ $ systemctl get-default multi-user.targetprüfen. Hier entspricht
multi-user.targetdem run level 3.Fix:
Auf dem RaspberryPi am besten per
sudo raspi-configin das Systemmenü gehen und dort die Menüpunkte
1 System Options Configure system settings S5 Boot / Auto Login Select boot into desktop or to command line B1 Console Text console, requiring user to loginauswählen.
Auf anderen Systemen stellt man das persudo systemctl set-default multi-user.targetein.
Systemupdate
Seinen Debian-basierten Server (dazu gehört z. B. auch das Raspberry OS vom Raspberry Pi, Ubuntu, Armbian) aktuell und 'auf Stand' zu halten braucht es nur wenig Handwerkszeug. Die installierte Software (im Idealfall auch zusätzliche Pakete von Drittanbietern wie deconz, nodeJS von nodesource) wird sehr komfortabel und zentral über den Paketmanager gehandhabt.
Mit diesem 'Dreisatz' wird automatisch ein System inkl. aller über den Paketmanager installierten Software auf den aktuellen Stand gebracht:
sudo apt update sudo apt dist-upgrade sudo rebootDas sollte man regelmäßig so ein oder zweimal im Monat machen. So bleiben die Upgrades übersichtlich und Sicherheitslücken werden einigermaßen zeitnah gestopft. Generell gilt: Je häufiger ich das mache desto weniger Trouble gibt es. 'Never change a running system' ist grundfalsch.
Test:
sudo apt updatesollte ungefähr so aussehen:
pi@raspberrypi:~ $ sudo apt update Hit:1 http://deb.debian.org/debian bullseye InRelease Hit:2 http://deb.debian.org/debian bullseye-updates InRelease Hit:3 http://archive.raspberrypi.org/debian bullseye InRelease Hit:4 http://security.debian.org/debian-security bullseye-security InRelease Hit:5 https://repos.influxdata.com/debian bullseye InRelease Hit:6 https://packages.grafana.com/oss/deb stable InRelease Hit:7 https://deb.nodesource.com/node_14.x bullseye InRelease InRelease Fetched 5,536 B in 2s (2,348 B/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date.Wichtig ist, dass hier keine Vermischungen von Releases enthalten sind. In obigem Beispiel kommen alle Pakete in der Version für das aktuelle Release von Debian namens 'Bullseye' daher. Da dürfen keine Einträge zu jessie, stretch oder buster oder sonstwas drinstehen. Allenfalls darf da noch 'stable' erwähnt werden, denn Bullseye ist z. Zt. das stable release von Debian. (Die release names von Ubuntu lauten anders, wichtig ist die Einheitlichkeit der release names)
Fix:
Wenn dort ausstehende Updates angezeigt werdensudo apt update sudo apt full-upgrade sudo rebootNodeJS
Wenn von vorneherein sauber installiert läuft das über das regelmäßig durchgeführte Systemupdate mit.
Test:
type -P nodejs && nodejs -v && type -P node && node -v && type -P npm && npm -v && type -P npx && npx -v && apt policy nodejsschaut etwa so aus:
pi@raspberrypi:~ $ which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs /usr/bin/nodejs v14.16.0 /usr/bin/node v14.16.0 /usr/bin/npm 6.14.11 /usr/bin/npx 6.14.11 nodejs: Installiert: 14.16.0-1nodesource1 Installationskandidat: 14.16.0-1nodesource1 Versionstabelle: *** 14.16.0-1nodesource1 500 500 https://deb.nodesource.com/node_14.x buster/main armhf Packages 100 /var/lib/dpkg/status 12.21.0-1nodesource1 500 500 https://deb.nodesource.com/node_12.x buster/main armhf Packages 10.24.0-1nodesource1 500 500 https://deb.nodesource.com/node_10.x buster/main armhf Packages 10.24.0~dfsg-1~deb10u1 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf PackagesWichtig und richtig ist:
nodejs liegt in /usr/bin
node liegt in /usr/bin
npm liegt in /usr/binund nicht in /usr/local/bin
und die Versionsnummer von nodejs und node ist a) gleich und b) gerade.
Ungerade Versionsnummern sind experimentelle Versionen und sollten nicht bzw. nur zu Testzwecken verwendet werden.Gleiches gilt für npm und npx. Hier sind allerdings ungerade Versionsnummern okay.
Fix:
Bitte hier weiterlesen:
https://forum.iobroker.net/topic/35090/howto-nodejs-installation-und-upgrades-unter-debianioBroker-Verwahrort
Der vorgesehene Verwahrort für Adapter ist 'stable', der 'beta'-Bereich sollte nur in begründeten Fällen verwendet werden.
Test
iobroker repo listschaut etwa so aus
pi@raspberrypi:~ $ iobroker repo list stable : http://download.iobroker.net/sources-dist.json beta : http://download.iobroker.net/sources-dist-latest.json live-beta : http://iobroker.live/repo/sources-dist-latest.json live-stable : http://iobroker.live/repo/sources-dist.json Active repo: stableFix:
iobroker repo set stableioBroker-Adapterupdate
Im täglichen Betrieb funktioniert das ganz analog zum Systemupdate.
Über 'die Katze' bzw. aus dem github werden regulär gar keine Adapter installiert. Dort liegt Code, an dem gerade gearbeitet wird und nur der Developer kann sagen in welchem Zustand der Adapter von dort gerade ist. Diese Version setzt man nur in Absprache mit dem Developer für Testzwecke ein, nie dauerhaft produktiv.Test:
iobroker update | grep -i updateablesieht so aus
pi@raspberrypi:~ $ iobroker update | grep updateable pi@raspberrypi:~ $Fix:
iobroker upgradeUpdates des sehr zentralen js-controllers macht man etwas anders und richtet sich dann auch nach der jeweiligen Installation (Multihost z. B.). Das dann bitte in der entsprechenden Ankündigung im Forum aktuell nach lesen.
ioBroker Fixer
Eine 'Allzweckwaffe' bei merkwürdigem/zickigem Verhalten (Adapter bleibt rot in der Admin-Ansicht) auch einzelner Adapter (z. B. ble und radar2 sind da regelmäßige Kandidaten) ist ein
iobroker stop iobroker fix iobroker restartDamit werden unter anderem z. B. bei einem Update verloren gegangene Rechte wieder eingeräumt und die Adapter können wieder funktionieren.
Den Fixer kann man auch 'auf Verdacht' mal laufen lassen.Hilft alles nix
Wenn man sein System und den ioBroker auf die üblichen Dinge von oben abgeklopft hat und immer noch rumzickt postet man am besten relevante Auszüge aus dem log file des ioBrokers. Am liebsten ist es den Helfern im Forum, wenn das in dieser Form erfolgt:
Man öffnet eine zweite Konsolen-Sitzung über sein Terminalprogramm und schaut periobroker logs --watch | uniqin das laufende log file rein. Dann agiert man in der ersten Konsole und/oder in der Weboberfläche des ioBrokers und versucht entsprechende Meldungen im log file zu provozieren. Diese kopiert man dann in sein Forumsthema rein, markiert die gesamte Ausgabe aus der Konsole und klickt dann das </> - Symbol über dem kleinen Editor-Fenster an. (Alternativ: Zuerst das </> anklicken, dann den Text aus der Zwischenablage zwischen die Steuercodes setzen).

Dann wird der Text in ähnlicher Form wie er auch in der Konsole erschien chronologisch korrekt dargestellt und ist wesentlich besser zu lesen.
Sieht dann so aus:pi@raspberrypi:/opt/iobroker $ iobroker logs --watch | uniq 2021-03-06 03:31:22.078 - warn: mihome-vacuum.0 (1391) no answer received after after 3 times -> pause miIO.info try again in one hourGerne auch vollständig inkl. login prompt und Pfaden wie oben zu sehen. Auch aus diesen Informationen kann man ggf. was hilfreiches ableiten.
Bitte keine Screenshots des log files aus dem admin posten, die Funktion nutzt man nur für einen schnellen Blick in das log file um zu sehen ob da Handlungsbedarf besteht.
@thomas-braun said in Der kleine ioBroker/Linux-Werkzeugkasten:
Sehr gute Zusammenfassung :+1:
der 'beta'-Bereich sollte nur in begründeten Fällen verwendet werden
Diesen Abschnitt könnte man vielleicht noch in fett und/oder roter Farbe darstellen und darauf hinweisen, dass man von Github noch seltener und nur in wirklich begründeteten Fällen (z.B. Empfehlung vom Entwickler, weil ein gemeldeter Bug gefixt wurde) einen Adapter installieren oder akualisieren sollte.
-
Der kleine ioBroker/Linux-Werkzeugkasten
Wenn der ioBroker und/oder der Server, auf dem der ioBroker lebt, aus irgendwelchen Gründen anfängt herum zu zicken, sollte man da 'von Grund auf' sein System auf ein paar wesentliche Dinge abklopfen.
root login
Seit Jahren nicht mehr 'erlaubt', den root gibt es nur noch aus technischen Gründen im Hintergrund. (Ausnahme: Docker auf einer Synology, da gibt es zu meinem Leidwesen wohl leider keine gescheite Nutzerverwaltung). Sein System administriert man über einen Standarduser mit Standardrechten, der allerdings kurzzeitig über den vorangestellten Befehl
sudoin die Rolle des roots schlüpfen kann, dann aber sofort wieder in seine Standardrolle zurückfällt. Das ist so auf einem üblichen System und wird auch nicht umgestellt, weil 'das blöd ist' oder 'nur kurz' oder aus 'auf meinem System darf ich alles, ich bin natürlich root'-Allmachtsphantasien. Und auch sudo selber wird nur dann verwendet, wenn es erforderlich ist. Nicht erforderlich ist es z. B. in Verbindung mit den Befehlen npm und iobroker! In der Kombination falsch eingesetzt kann es das System zerschießen!
Test:
Als Standarduser
groupsausführen, dann sollte da ein Eintrag sudo zu finden sein. Wenn nicht, dann
Fix:
Als rootusermod -aG sudo USERNAMEund danach nie mehr als root einloggen!
Falls es noch gar keinen Standard-User geben sollte:
adduser username usermod -aG sudo usernameusername ist durch den gewünschten Username zu ersetzen. Dabei verwendet man am besten nur Kleinbuchstaben und nennt den neuen user NICHT iobroker. Viele haben ja einen schönen Vornamen, den kann man da wunderbar verwenden.
Terminal für Faule
TAB-Taste: Befehle und Befehlsoptionen können u. U. per TAB-Taste von der bash vervollständigt werden. Keiner tippt solche Befehle vollständig ein.
Man tippt da nur die ersten paar Buchstaben wie z. B.
sudo systTABcTABstatTABiobTABein und das steht dann automagisch in der Konsole:sudo systemctl status iobroker.serviceWenn man zufrüh tabbt und es noch mehrere Möglichkeiten der Ergänzung gibt schlägt die Konsole die verbliebenen Möglichkeiten auf und man kann sich daran weiterhangeln.
RunLevel 5 / graphische Oberfläche
Server werden aus diversen Gründen (Stabilität, Ressourcenverbrauch, Sicherheit) generell ohne graphische Oberfläche betreiben. Die dafür vorgesehene Betriebsart wird RunLevel 3 genannt. Nur wenn am Server ein Display für die Darstellung der Visualisierung des ioBrokers hängt wird ein Server ausnahmsweise in RunLevel 5 betrieben.
Test:
who -rliefert RunLevel 3 zurück:
pi@raspberrypi:~ $ who -r Runlevel 3 2021-03-03 22:01Für andere Systeme kann man das per
echad@chet:~ $ systemctl get-default multi-user.targetprüfen. Hier entspricht
multi-user.targetdem run level 3.Fix:
Auf dem RaspberryPi am besten per
sudo raspi-configin das Systemmenü gehen und dort die Menüpunkte
1 System Options Configure system settings S5 Boot / Auto Login Select boot into desktop or to command line B1 Console Text console, requiring user to loginauswählen.
Auf anderen Systemen stellt man das persudo systemctl set-default multi-user.targetein.
Systemupdate
Seinen Debian-basierten Server (dazu gehört z. B. auch das Raspberry OS vom Raspberry Pi, Ubuntu, Armbian) aktuell und 'auf Stand' zu halten braucht es nur wenig Handwerkszeug. Die installierte Software (im Idealfall auch zusätzliche Pakete von Drittanbietern wie deconz, nodeJS von nodesource) wird sehr komfortabel und zentral über den Paketmanager gehandhabt.
Mit diesem 'Dreisatz' wird automatisch ein System inkl. aller über den Paketmanager installierten Software auf den aktuellen Stand gebracht:
sudo apt update sudo apt dist-upgrade sudo rebootDas sollte man regelmäßig so ein oder zweimal im Monat machen. So bleiben die Upgrades übersichtlich und Sicherheitslücken werden einigermaßen zeitnah gestopft. Generell gilt: Je häufiger ich das mache desto weniger Trouble gibt es. 'Never change a running system' ist grundfalsch.
Test:
sudo apt updatesollte ungefähr so aussehen:
pi@raspberrypi:~ $ sudo apt update Hit:1 http://deb.debian.org/debian bullseye InRelease Hit:2 http://deb.debian.org/debian bullseye-updates InRelease Hit:3 http://archive.raspberrypi.org/debian bullseye InRelease Hit:4 http://security.debian.org/debian-security bullseye-security InRelease Hit:5 https://repos.influxdata.com/debian bullseye InRelease Hit:6 https://packages.grafana.com/oss/deb stable InRelease Hit:7 https://deb.nodesource.com/node_14.x bullseye InRelease InRelease Fetched 5,536 B in 2s (2,348 B/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date.Wichtig ist, dass hier keine Vermischungen von Releases enthalten sind. In obigem Beispiel kommen alle Pakete in der Version für das aktuelle Release von Debian namens 'Bullseye' daher. Da dürfen keine Einträge zu jessie, stretch oder buster oder sonstwas drinstehen. Allenfalls darf da noch 'stable' erwähnt werden, denn Bullseye ist z. Zt. das stable release von Debian. (Die release names von Ubuntu lauten anders, wichtig ist die Einheitlichkeit der release names)
Fix:
Wenn dort ausstehende Updates angezeigt werdensudo apt update sudo apt full-upgrade sudo rebootNodeJS
Wenn von vorneherein sauber installiert läuft das über das regelmäßig durchgeführte Systemupdate mit.
Test:
type -P nodejs && nodejs -v && type -P node && node -v && type -P npm && npm -v && type -P npx && npx -v && apt policy nodejsschaut etwa so aus:
pi@raspberrypi:~ $ which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs /usr/bin/nodejs v14.16.0 /usr/bin/node v14.16.0 /usr/bin/npm 6.14.11 /usr/bin/npx 6.14.11 nodejs: Installiert: 14.16.0-1nodesource1 Installationskandidat: 14.16.0-1nodesource1 Versionstabelle: *** 14.16.0-1nodesource1 500 500 https://deb.nodesource.com/node_14.x buster/main armhf Packages 100 /var/lib/dpkg/status 12.21.0-1nodesource1 500 500 https://deb.nodesource.com/node_12.x buster/main armhf Packages 10.24.0-1nodesource1 500 500 https://deb.nodesource.com/node_10.x buster/main armhf Packages 10.24.0~dfsg-1~deb10u1 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf PackagesWichtig und richtig ist:
nodejs liegt in /usr/bin
node liegt in /usr/bin
npm liegt in /usr/binund nicht in /usr/local/bin
und die Versionsnummer von nodejs und node ist a) gleich und b) gerade.
Ungerade Versionsnummern sind experimentelle Versionen und sollten nicht bzw. nur zu Testzwecken verwendet werden.Gleiches gilt für npm und npx. Hier sind allerdings ungerade Versionsnummern okay.
Fix:
Bitte hier weiterlesen:
https://forum.iobroker.net/topic/35090/howto-nodejs-installation-und-upgrades-unter-debianioBroker-Verwahrort
Der vorgesehene Verwahrort für Adapter ist 'stable', der 'beta'-Bereich sollte nur in begründeten Fällen verwendet werden.
Test
iobroker repo listschaut etwa so aus
pi@raspberrypi:~ $ iobroker repo list stable : http://download.iobroker.net/sources-dist.json beta : http://download.iobroker.net/sources-dist-latest.json live-beta : http://iobroker.live/repo/sources-dist-latest.json live-stable : http://iobroker.live/repo/sources-dist.json Active repo: stableFix:
iobroker repo set stableioBroker-Adapterupdate
Im täglichen Betrieb funktioniert das ganz analog zum Systemupdate.
Über 'die Katze' bzw. aus dem github werden regulär gar keine Adapter installiert. Dort liegt Code, an dem gerade gearbeitet wird und nur der Developer kann sagen in welchem Zustand der Adapter von dort gerade ist. Diese Version setzt man nur in Absprache mit dem Developer für Testzwecke ein, nie dauerhaft produktiv.Test:
iobroker update | grep -i updateablesieht so aus
pi@raspberrypi:~ $ iobroker update | grep updateable pi@raspberrypi:~ $Fix:
iobroker upgradeUpdates des sehr zentralen js-controllers macht man etwas anders und richtet sich dann auch nach der jeweiligen Installation (Multihost z. B.). Das dann bitte in der entsprechenden Ankündigung im Forum aktuell nach lesen.
ioBroker Fixer
Eine 'Allzweckwaffe' bei merkwürdigem/zickigem Verhalten (Adapter bleibt rot in der Admin-Ansicht) auch einzelner Adapter (z. B. ble und radar2 sind da regelmäßige Kandidaten) ist ein
iobroker stop iobroker fix iobroker restartDamit werden unter anderem z. B. bei einem Update verloren gegangene Rechte wieder eingeräumt und die Adapter können wieder funktionieren.
Den Fixer kann man auch 'auf Verdacht' mal laufen lassen.Hilft alles nix
Wenn man sein System und den ioBroker auf die üblichen Dinge von oben abgeklopft hat und immer noch rumzickt postet man am besten relevante Auszüge aus dem log file des ioBrokers. Am liebsten ist es den Helfern im Forum, wenn das in dieser Form erfolgt:
Man öffnet eine zweite Konsolen-Sitzung über sein Terminalprogramm und schaut periobroker logs --watch | uniqin das laufende log file rein. Dann agiert man in der ersten Konsole und/oder in der Weboberfläche des ioBrokers und versucht entsprechende Meldungen im log file zu provozieren. Diese kopiert man dann in sein Forumsthema rein, markiert die gesamte Ausgabe aus der Konsole und klickt dann das </> - Symbol über dem kleinen Editor-Fenster an. (Alternativ: Zuerst das </> anklicken, dann den Text aus der Zwischenablage zwischen die Steuercodes setzen).

Dann wird der Text in ähnlicher Form wie er auch in der Konsole erschien chronologisch korrekt dargestellt und ist wesentlich besser zu lesen.
Sieht dann so aus:pi@raspberrypi:/opt/iobroker $ iobroker logs --watch | uniq 2021-03-06 03:31:22.078 - warn: mihome-vacuum.0 (1391) no answer received after after 3 times -> pause miIO.info try again in one hourGerne auch vollständig inkl. login prompt und Pfaden wie oben zu sehen. Auch aus diesen Informationen kann man ggf. was hilfreiches ableiten.
Bitte keine Screenshots des log files aus dem admin posten, die Funktion nutzt man nur für einen schnellen Blick in das log file um zu sehen ob da Handlungsbedarf besteht.
@thomas-braun sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
auf dem der ioBroker lebt
Der Nebensatz muss in Kommata gefasst werden.
Docker auf einer Synology
Das ist bei QNAP nicht anders. Vermutlich grundsätzlich so.
da gibt es zu meinem Leidwesen...
Für jemanden, der Container verteufelt, leidest du aber ganz schön darunter. :stuck_out_tongue_winking_eye:
-
@thomas-braun sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
auf dem der ioBroker lebt
Der Nebensatz muss in Kommata gefasst werden.
Docker auf einer Synology
Das ist bei QNAP nicht anders. Vermutlich grundsätzlich so.
da gibt es zu meinem Leidwesen...
Für jemanden, der Container verteufelt, leidest du aber ganz schön darunter. :stuck_out_tongue_winking_eye:
@ofbeqnpolkkl6mby5e13 In Containern , z. B. LxC, ist man als ganz normaler User unterwegs. Nur mit Docker gibt es AFAIK die Ausnahme, dass man dort immer root ist.
Gruß, Jürgen
-
@ofbeqnpolkkl6mby5e13 In Containern , z. B. LxC, ist man als ganz normaler User unterwegs. Nur mit Docker gibt es AFAIK die Ausnahme, dass man dort immer root ist.
Gruß, Jürgen
@wildbill
Ah, okay. -
Der kleine ioBroker/Linux-Werkzeugkasten
Wenn der ioBroker und/oder der Server, auf dem der ioBroker lebt, aus irgendwelchen Gründen anfängt herum zu zicken, sollte man da 'von Grund auf' sein System auf ein paar wesentliche Dinge abklopfen.
root login
Seit Jahren nicht mehr 'erlaubt', den root gibt es nur noch aus technischen Gründen im Hintergrund. (Ausnahme: Docker auf einer Synology, da gibt es zu meinem Leidwesen wohl leider keine gescheite Nutzerverwaltung). Sein System administriert man über einen Standarduser mit Standardrechten, der allerdings kurzzeitig über den vorangestellten Befehl
sudoin die Rolle des roots schlüpfen kann, dann aber sofort wieder in seine Standardrolle zurückfällt. Das ist so auf einem üblichen System und wird auch nicht umgestellt, weil 'das blöd ist' oder 'nur kurz' oder aus 'auf meinem System darf ich alles, ich bin natürlich root'-Allmachtsphantasien. Und auch sudo selber wird nur dann verwendet, wenn es erforderlich ist. Nicht erforderlich ist es z. B. in Verbindung mit den Befehlen npm und iobroker! In der Kombination falsch eingesetzt kann es das System zerschießen!
Test:
Als Standarduser
groupsausführen, dann sollte da ein Eintrag sudo zu finden sein. Wenn nicht, dann
Fix:
Als rootusermod -aG sudo USERNAMEund danach nie mehr als root einloggen!
Falls es noch gar keinen Standard-User geben sollte:
adduser username usermod -aG sudo usernameusername ist durch den gewünschten Username zu ersetzen. Dabei verwendet man am besten nur Kleinbuchstaben und nennt den neuen user NICHT iobroker. Viele haben ja einen schönen Vornamen, den kann man da wunderbar verwenden.
Terminal für Faule
TAB-Taste: Befehle und Befehlsoptionen können u. U. per TAB-Taste von der bash vervollständigt werden. Keiner tippt solche Befehle vollständig ein.
Man tippt da nur die ersten paar Buchstaben wie z. B.
sudo systTABcTABstatTABiobTABein und das steht dann automagisch in der Konsole:sudo systemctl status iobroker.serviceWenn man zufrüh tabbt und es noch mehrere Möglichkeiten der Ergänzung gibt schlägt die Konsole die verbliebenen Möglichkeiten auf und man kann sich daran weiterhangeln.
RunLevel 5 / graphische Oberfläche
Server werden aus diversen Gründen (Stabilität, Ressourcenverbrauch, Sicherheit) generell ohne graphische Oberfläche betreiben. Die dafür vorgesehene Betriebsart wird RunLevel 3 genannt. Nur wenn am Server ein Display für die Darstellung der Visualisierung des ioBrokers hängt wird ein Server ausnahmsweise in RunLevel 5 betrieben.
Test:
who -rliefert RunLevel 3 zurück:
pi@raspberrypi:~ $ who -r Runlevel 3 2021-03-03 22:01Für andere Systeme kann man das per
echad@chet:~ $ systemctl get-default multi-user.targetprüfen. Hier entspricht
multi-user.targetdem run level 3.Fix:
Auf dem RaspberryPi am besten per
sudo raspi-configin das Systemmenü gehen und dort die Menüpunkte
1 System Options Configure system settings S5 Boot / Auto Login Select boot into desktop or to command line B1 Console Text console, requiring user to loginauswählen.
Auf anderen Systemen stellt man das persudo systemctl set-default multi-user.targetein.
Systemupdate
Seinen Debian-basierten Server (dazu gehört z. B. auch das Raspberry OS vom Raspberry Pi, Ubuntu, Armbian) aktuell und 'auf Stand' zu halten braucht es nur wenig Handwerkszeug. Die installierte Software (im Idealfall auch zusätzliche Pakete von Drittanbietern wie deconz, nodeJS von nodesource) wird sehr komfortabel und zentral über den Paketmanager gehandhabt.
Mit diesem 'Dreisatz' wird automatisch ein System inkl. aller über den Paketmanager installierten Software auf den aktuellen Stand gebracht:
sudo apt update sudo apt dist-upgrade sudo rebootDas sollte man regelmäßig so ein oder zweimal im Monat machen. So bleiben die Upgrades übersichtlich und Sicherheitslücken werden einigermaßen zeitnah gestopft. Generell gilt: Je häufiger ich das mache desto weniger Trouble gibt es. 'Never change a running system' ist grundfalsch.
Test:
sudo apt updatesollte ungefähr so aussehen:
pi@raspberrypi:~ $ sudo apt update Hit:1 http://deb.debian.org/debian bullseye InRelease Hit:2 http://deb.debian.org/debian bullseye-updates InRelease Hit:3 http://archive.raspberrypi.org/debian bullseye InRelease Hit:4 http://security.debian.org/debian-security bullseye-security InRelease Hit:5 https://repos.influxdata.com/debian bullseye InRelease Hit:6 https://packages.grafana.com/oss/deb stable InRelease Hit:7 https://deb.nodesource.com/node_14.x bullseye InRelease InRelease Fetched 5,536 B in 2s (2,348 B/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date.Wichtig ist, dass hier keine Vermischungen von Releases enthalten sind. In obigem Beispiel kommen alle Pakete in der Version für das aktuelle Release von Debian namens 'Bullseye' daher. Da dürfen keine Einträge zu jessie, stretch oder buster oder sonstwas drinstehen. Allenfalls darf da noch 'stable' erwähnt werden, denn Bullseye ist z. Zt. das stable release von Debian. (Die release names von Ubuntu lauten anders, wichtig ist die Einheitlichkeit der release names)
Fix:
Wenn dort ausstehende Updates angezeigt werdensudo apt update sudo apt full-upgrade sudo rebootNodeJS
Wenn von vorneherein sauber installiert läuft das über das regelmäßig durchgeführte Systemupdate mit.
Test:
type -P nodejs && nodejs -v && type -P node && node -v && type -P npm && npm -v && type -P npx && npx -v && apt policy nodejsschaut etwa so aus:
pi@raspberrypi:~ $ which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs /usr/bin/nodejs v14.16.0 /usr/bin/node v14.16.0 /usr/bin/npm 6.14.11 /usr/bin/npx 6.14.11 nodejs: Installiert: 14.16.0-1nodesource1 Installationskandidat: 14.16.0-1nodesource1 Versionstabelle: *** 14.16.0-1nodesource1 500 500 https://deb.nodesource.com/node_14.x buster/main armhf Packages 100 /var/lib/dpkg/status 12.21.0-1nodesource1 500 500 https://deb.nodesource.com/node_12.x buster/main armhf Packages 10.24.0-1nodesource1 500 500 https://deb.nodesource.com/node_10.x buster/main armhf Packages 10.24.0~dfsg-1~deb10u1 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf PackagesWichtig und richtig ist:
nodejs liegt in /usr/bin
node liegt in /usr/bin
npm liegt in /usr/binund nicht in /usr/local/bin
und die Versionsnummer von nodejs und node ist a) gleich und b) gerade.
Ungerade Versionsnummern sind experimentelle Versionen und sollten nicht bzw. nur zu Testzwecken verwendet werden.Gleiches gilt für npm und npx. Hier sind allerdings ungerade Versionsnummern okay.
Fix:
Bitte hier weiterlesen:
https://forum.iobroker.net/topic/35090/howto-nodejs-installation-und-upgrades-unter-debianioBroker-Verwahrort
Der vorgesehene Verwahrort für Adapter ist 'stable', der 'beta'-Bereich sollte nur in begründeten Fällen verwendet werden.
Test
iobroker repo listschaut etwa so aus
pi@raspberrypi:~ $ iobroker repo list stable : http://download.iobroker.net/sources-dist.json beta : http://download.iobroker.net/sources-dist-latest.json live-beta : http://iobroker.live/repo/sources-dist-latest.json live-stable : http://iobroker.live/repo/sources-dist.json Active repo: stableFix:
iobroker repo set stableioBroker-Adapterupdate
Im täglichen Betrieb funktioniert das ganz analog zum Systemupdate.
Über 'die Katze' bzw. aus dem github werden regulär gar keine Adapter installiert. Dort liegt Code, an dem gerade gearbeitet wird und nur der Developer kann sagen in welchem Zustand der Adapter von dort gerade ist. Diese Version setzt man nur in Absprache mit dem Developer für Testzwecke ein, nie dauerhaft produktiv.Test:
iobroker update | grep -i updateablesieht so aus
pi@raspberrypi:~ $ iobroker update | grep updateable pi@raspberrypi:~ $Fix:
iobroker upgradeUpdates des sehr zentralen js-controllers macht man etwas anders und richtet sich dann auch nach der jeweiligen Installation (Multihost z. B.). Das dann bitte in der entsprechenden Ankündigung im Forum aktuell nach lesen.
ioBroker Fixer
Eine 'Allzweckwaffe' bei merkwürdigem/zickigem Verhalten (Adapter bleibt rot in der Admin-Ansicht) auch einzelner Adapter (z. B. ble und radar2 sind da regelmäßige Kandidaten) ist ein
iobroker stop iobroker fix iobroker restartDamit werden unter anderem z. B. bei einem Update verloren gegangene Rechte wieder eingeräumt und die Adapter können wieder funktionieren.
Den Fixer kann man auch 'auf Verdacht' mal laufen lassen.Hilft alles nix
Wenn man sein System und den ioBroker auf die üblichen Dinge von oben abgeklopft hat und immer noch rumzickt postet man am besten relevante Auszüge aus dem log file des ioBrokers. Am liebsten ist es den Helfern im Forum, wenn das in dieser Form erfolgt:
Man öffnet eine zweite Konsolen-Sitzung über sein Terminalprogramm und schaut periobroker logs --watch | uniqin das laufende log file rein. Dann agiert man in der ersten Konsole und/oder in der Weboberfläche des ioBrokers und versucht entsprechende Meldungen im log file zu provozieren. Diese kopiert man dann in sein Forumsthema rein, markiert die gesamte Ausgabe aus der Konsole und klickt dann das </> - Symbol über dem kleinen Editor-Fenster an. (Alternativ: Zuerst das </> anklicken, dann den Text aus der Zwischenablage zwischen die Steuercodes setzen).

Dann wird der Text in ähnlicher Form wie er auch in der Konsole erschien chronologisch korrekt dargestellt und ist wesentlich besser zu lesen.
Sieht dann so aus:pi@raspberrypi:/opt/iobroker $ iobroker logs --watch | uniq 2021-03-06 03:31:22.078 - warn: mihome-vacuum.0 (1391) no answer received after after 3 times -> pause miIO.info try again in one hourGerne auch vollständig inkl. login prompt und Pfaden wie oben zu sehen. Auch aus diesen Informationen kann man ggf. was hilfreiches ableiten.
Bitte keine Screenshots des log files aus dem admin posten, die Funktion nutzt man nur für einen schnellen Blick in das log file um zu sehen ob da Handlungsbedarf besteht.
@thomas-braun
Super.
Sollte sowas nicht auch noch in einen Wiki landen?
Dort wäre dann das gesammelte Wissen als Single source of truth zu iobroker.
Forum ist super zum diskutieren. Anfänger finden solche Informationen aber nicht wenn man nicht die richtigen Suchbegriffe kennt oder findet Informationen die für vergangene Versionen Noch gegolten haben.
Zuviele stickys oder links in den Kästen über/unter/neben dem Forum macht die informationserlangung auf Dauer auch nicht einfacher. -
@thomas-braun
Super.
Sollte sowas nicht auch noch in einen Wiki landen?
Dort wäre dann das gesammelte Wissen als Single source of truth zu iobroker.
Forum ist super zum diskutieren. Anfänger finden solche Informationen aber nicht wenn man nicht die richtigen Suchbegriffe kennt oder findet Informationen die für vergangene Versionen Noch gegolten haben.
Zuviele stickys oder links in den Kästen über/unter/neben dem Forum macht die informationserlangung auf Dauer auch nicht einfacher.Ja, ich fände ein Wiki auch super. Aber das gab es wohl schon mal, ist dann eingestellt worden.
-
Ja, ich fände ein Wiki auch super. Aber das gab es wohl schon mal, ist dann eingestellt worden.
@thomas-braun
Bitte hinter "herum zu zicken" auch noch ein Komma.Wiki wäre sehr gut, dann könnte man solche Flüchtigkeitsfehler einfach schnell selbst korrigieren.
-
Der kleine ioBroker/Linux-Werkzeugkasten
Wenn der ioBroker und/oder der Server, auf dem der ioBroker lebt, aus irgendwelchen Gründen anfängt herum zu zicken, sollte man da 'von Grund auf' sein System auf ein paar wesentliche Dinge abklopfen.
root login
Seit Jahren nicht mehr 'erlaubt', den root gibt es nur noch aus technischen Gründen im Hintergrund. (Ausnahme: Docker auf einer Synology, da gibt es zu meinem Leidwesen wohl leider keine gescheite Nutzerverwaltung). Sein System administriert man über einen Standarduser mit Standardrechten, der allerdings kurzzeitig über den vorangestellten Befehl
sudoin die Rolle des roots schlüpfen kann, dann aber sofort wieder in seine Standardrolle zurückfällt. Das ist so auf einem üblichen System und wird auch nicht umgestellt, weil 'das blöd ist' oder 'nur kurz' oder aus 'auf meinem System darf ich alles, ich bin natürlich root'-Allmachtsphantasien. Und auch sudo selber wird nur dann verwendet, wenn es erforderlich ist. Nicht erforderlich ist es z. B. in Verbindung mit den Befehlen npm und iobroker! In der Kombination falsch eingesetzt kann es das System zerschießen!
Test:
Als Standarduser
groupsausführen, dann sollte da ein Eintrag sudo zu finden sein. Wenn nicht, dann
Fix:
Als rootusermod -aG sudo USERNAMEund danach nie mehr als root einloggen!
Falls es noch gar keinen Standard-User geben sollte:
adduser username usermod -aG sudo usernameusername ist durch den gewünschten Username zu ersetzen. Dabei verwendet man am besten nur Kleinbuchstaben und nennt den neuen user NICHT iobroker. Viele haben ja einen schönen Vornamen, den kann man da wunderbar verwenden.
Terminal für Faule
TAB-Taste: Befehle und Befehlsoptionen können u. U. per TAB-Taste von der bash vervollständigt werden. Keiner tippt solche Befehle vollständig ein.
Man tippt da nur die ersten paar Buchstaben wie z. B.
sudo systTABcTABstatTABiobTABein und das steht dann automagisch in der Konsole:sudo systemctl status iobroker.serviceWenn man zufrüh tabbt und es noch mehrere Möglichkeiten der Ergänzung gibt schlägt die Konsole die verbliebenen Möglichkeiten auf und man kann sich daran weiterhangeln.
RunLevel 5 / graphische Oberfläche
Server werden aus diversen Gründen (Stabilität, Ressourcenverbrauch, Sicherheit) generell ohne graphische Oberfläche betreiben. Die dafür vorgesehene Betriebsart wird RunLevel 3 genannt. Nur wenn am Server ein Display für die Darstellung der Visualisierung des ioBrokers hängt wird ein Server ausnahmsweise in RunLevel 5 betrieben.
Test:
who -rliefert RunLevel 3 zurück:
pi@raspberrypi:~ $ who -r Runlevel 3 2021-03-03 22:01Für andere Systeme kann man das per
echad@chet:~ $ systemctl get-default multi-user.targetprüfen. Hier entspricht
multi-user.targetdem run level 3.Fix:
Auf dem RaspberryPi am besten per
sudo raspi-configin das Systemmenü gehen und dort die Menüpunkte
1 System Options Configure system settings S5 Boot / Auto Login Select boot into desktop or to command line B1 Console Text console, requiring user to loginauswählen.
Auf anderen Systemen stellt man das persudo systemctl set-default multi-user.targetein.
Systemupdate
Seinen Debian-basierten Server (dazu gehört z. B. auch das Raspberry OS vom Raspberry Pi, Ubuntu, Armbian) aktuell und 'auf Stand' zu halten braucht es nur wenig Handwerkszeug. Die installierte Software (im Idealfall auch zusätzliche Pakete von Drittanbietern wie deconz, nodeJS von nodesource) wird sehr komfortabel und zentral über den Paketmanager gehandhabt.
Mit diesem 'Dreisatz' wird automatisch ein System inkl. aller über den Paketmanager installierten Software auf den aktuellen Stand gebracht:
sudo apt update sudo apt dist-upgrade sudo rebootDas sollte man regelmäßig so ein oder zweimal im Monat machen. So bleiben die Upgrades übersichtlich und Sicherheitslücken werden einigermaßen zeitnah gestopft. Generell gilt: Je häufiger ich das mache desto weniger Trouble gibt es. 'Never change a running system' ist grundfalsch.
Test:
sudo apt updatesollte ungefähr so aussehen:
pi@raspberrypi:~ $ sudo apt update Hit:1 http://deb.debian.org/debian bullseye InRelease Hit:2 http://deb.debian.org/debian bullseye-updates InRelease Hit:3 http://archive.raspberrypi.org/debian bullseye InRelease Hit:4 http://security.debian.org/debian-security bullseye-security InRelease Hit:5 https://repos.influxdata.com/debian bullseye InRelease Hit:6 https://packages.grafana.com/oss/deb stable InRelease Hit:7 https://deb.nodesource.com/node_14.x bullseye InRelease InRelease Fetched 5,536 B in 2s (2,348 B/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date.Wichtig ist, dass hier keine Vermischungen von Releases enthalten sind. In obigem Beispiel kommen alle Pakete in der Version für das aktuelle Release von Debian namens 'Bullseye' daher. Da dürfen keine Einträge zu jessie, stretch oder buster oder sonstwas drinstehen. Allenfalls darf da noch 'stable' erwähnt werden, denn Bullseye ist z. Zt. das stable release von Debian. (Die release names von Ubuntu lauten anders, wichtig ist die Einheitlichkeit der release names)
Fix:
Wenn dort ausstehende Updates angezeigt werdensudo apt update sudo apt full-upgrade sudo rebootNodeJS
Wenn von vorneherein sauber installiert läuft das über das regelmäßig durchgeführte Systemupdate mit.
Test:
type -P nodejs && nodejs -v && type -P node && node -v && type -P npm && npm -v && type -P npx && npx -v && apt policy nodejsschaut etwa so aus:
pi@raspberrypi:~ $ which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs /usr/bin/nodejs v14.16.0 /usr/bin/node v14.16.0 /usr/bin/npm 6.14.11 /usr/bin/npx 6.14.11 nodejs: Installiert: 14.16.0-1nodesource1 Installationskandidat: 14.16.0-1nodesource1 Versionstabelle: *** 14.16.0-1nodesource1 500 500 https://deb.nodesource.com/node_14.x buster/main armhf Packages 100 /var/lib/dpkg/status 12.21.0-1nodesource1 500 500 https://deb.nodesource.com/node_12.x buster/main armhf Packages 10.24.0-1nodesource1 500 500 https://deb.nodesource.com/node_10.x buster/main armhf Packages 10.24.0~dfsg-1~deb10u1 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf PackagesWichtig und richtig ist:
nodejs liegt in /usr/bin
node liegt in /usr/bin
npm liegt in /usr/binund nicht in /usr/local/bin
und die Versionsnummer von nodejs und node ist a) gleich und b) gerade.
Ungerade Versionsnummern sind experimentelle Versionen und sollten nicht bzw. nur zu Testzwecken verwendet werden.Gleiches gilt für npm und npx. Hier sind allerdings ungerade Versionsnummern okay.
Fix:
Bitte hier weiterlesen:
https://forum.iobroker.net/topic/35090/howto-nodejs-installation-und-upgrades-unter-debianioBroker-Verwahrort
Der vorgesehene Verwahrort für Adapter ist 'stable', der 'beta'-Bereich sollte nur in begründeten Fällen verwendet werden.
Test
iobroker repo listschaut etwa so aus
pi@raspberrypi:~ $ iobroker repo list stable : http://download.iobroker.net/sources-dist.json beta : http://download.iobroker.net/sources-dist-latest.json live-beta : http://iobroker.live/repo/sources-dist-latest.json live-stable : http://iobroker.live/repo/sources-dist.json Active repo: stableFix:
iobroker repo set stableioBroker-Adapterupdate
Im täglichen Betrieb funktioniert das ganz analog zum Systemupdate.
Über 'die Katze' bzw. aus dem github werden regulär gar keine Adapter installiert. Dort liegt Code, an dem gerade gearbeitet wird und nur der Developer kann sagen in welchem Zustand der Adapter von dort gerade ist. Diese Version setzt man nur in Absprache mit dem Developer für Testzwecke ein, nie dauerhaft produktiv.Test:
iobroker update | grep -i updateablesieht so aus
pi@raspberrypi:~ $ iobroker update | grep updateable pi@raspberrypi:~ $Fix:
iobroker upgradeUpdates des sehr zentralen js-controllers macht man etwas anders und richtet sich dann auch nach der jeweiligen Installation (Multihost z. B.). Das dann bitte in der entsprechenden Ankündigung im Forum aktuell nach lesen.
ioBroker Fixer
Eine 'Allzweckwaffe' bei merkwürdigem/zickigem Verhalten (Adapter bleibt rot in der Admin-Ansicht) auch einzelner Adapter (z. B. ble und radar2 sind da regelmäßige Kandidaten) ist ein
iobroker stop iobroker fix iobroker restartDamit werden unter anderem z. B. bei einem Update verloren gegangene Rechte wieder eingeräumt und die Adapter können wieder funktionieren.
Den Fixer kann man auch 'auf Verdacht' mal laufen lassen.Hilft alles nix
Wenn man sein System und den ioBroker auf die üblichen Dinge von oben abgeklopft hat und immer noch rumzickt postet man am besten relevante Auszüge aus dem log file des ioBrokers. Am liebsten ist es den Helfern im Forum, wenn das in dieser Form erfolgt:
Man öffnet eine zweite Konsolen-Sitzung über sein Terminalprogramm und schaut periobroker logs --watch | uniqin das laufende log file rein. Dann agiert man in der ersten Konsole und/oder in der Weboberfläche des ioBrokers und versucht entsprechende Meldungen im log file zu provozieren. Diese kopiert man dann in sein Forumsthema rein, markiert die gesamte Ausgabe aus der Konsole und klickt dann das </> - Symbol über dem kleinen Editor-Fenster an. (Alternativ: Zuerst das </> anklicken, dann den Text aus der Zwischenablage zwischen die Steuercodes setzen).

Dann wird der Text in ähnlicher Form wie er auch in der Konsole erschien chronologisch korrekt dargestellt und ist wesentlich besser zu lesen.
Sieht dann so aus:pi@raspberrypi:/opt/iobroker $ iobroker logs --watch | uniq 2021-03-06 03:31:22.078 - warn: mihome-vacuum.0 (1391) no answer received after after 3 times -> pause miIO.info try again in one hourGerne auch vollständig inkl. login prompt und Pfaden wie oben zu sehen. Auch aus diesen Informationen kann man ggf. was hilfreiches ableiten.
Bitte keine Screenshots des log files aus dem admin posten, die Funktion nutzt man nur für einen schnellen Blick in das log file um zu sehen ob da Handlungsbedarf besteht.
@thomas-braun Sehr gut.
So sehen bei mir text files auf dem Rechnern aus....
Allerdings nur mit den Befehlen und nicht so schön erklärt.
Vielleicht nimmst du noch den Befehl zur neu installation JS-Controller mit in die Liste auf.
-
@thomas-braun Sehr gut.
So sehen bei mir text files auf dem Rechnern aus....
Allerdings nur mit den Befehlen und nicht so schön erklärt.
Vielleicht nimmst du noch den Befehl zur neu installation JS-Controller mit in die Liste auf.
@wendy2702 sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
Vielleicht nimmst du noch den Befehl zur neu installation JS-Controller mit in die Liste auf.
Da zöger ich. Das steht auch immer in den Ankündigungen zum js-controller drin. Und das ist mir zu 'heiß' hier ohne größeren Zusammenhang.
-
@thomas-braun
Super.
Sollte sowas nicht auch noch in einen Wiki landen?
Dort wäre dann das gesammelte Wissen als Single source of truth zu iobroker.
Forum ist super zum diskutieren. Anfänger finden solche Informationen aber nicht wenn man nicht die richtigen Suchbegriffe kennt oder findet Informationen die für vergangene Versionen Noch gegolten haben.
Zuviele stickys oder links in den Kästen über/unter/neben dem Forum macht die informationserlangung auf Dauer auch nicht einfacher.@oliverio sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
Sollte sowas nicht auch noch in einen Wiki landen?
Thema Wiki ist eine andere Baustelle, ebenso wie:
@ofbeqnpolkkl6mby5e13 sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
dann könnte man solche Flüchtigkeitsfehler einfach schnell selbst korrigieren.
Wäre aber bei einem Wiki mit redaktioneller "Kontrolle" schon nicht mal so eben.
@oliverio sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
Anfänger finden solche Informationen aber nicht
Mal sehen, ob und wo man das anpinnen könnte, auch wenn
@oliverio sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
Zuviele stickys oder links in den Kästen über/unter/neben dem Forum macht die informationserlangung auf Dauer auch nicht einfacher.
Da muss ich auch mal durchforsten, was weg könnte, damit es übersichtlich bleibt.
Es auf die Website in die Doku zu übernehmen wäre noch was, aber dann ist eine Editierung auch "nur noch" über pull requests möglich
-
@thomas-braun sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
auf dem der ioBroker lebt
Der Nebensatz muss in Kommata gefasst werden.
Docker auf einer Synology
Das ist bei QNAP nicht anders. Vermutlich grundsätzlich so.
da gibt es zu meinem Leidwesen...
Für jemanden, der Container verteufelt, leidest du aber ganz schön darunter. :stuck_out_tongue_winking_eye:
@ofbeqnpolkkl6mby5e13 sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
verteufelt, leides du
leidest wird mit "t" am Ende geschrieben.
-
@ofbeqnpolkkl6mby5e13 sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
verteufelt, leides du
leidest wird mit "t" am Ende geschrieben.
@htrecksler
Richtig, wieder ein Flüchtigkeitsfehler... -
@wendy2702 sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
Vielleicht nimmst du noch den Befehl zur neu installation JS-Controller mit in die Liste auf.
Da zöger ich. Das steht auch immer in den Ankündigungen zum js-controller drin. Und das ist mir zu 'heiß' hier ohne größeren Zusammenhang.
@thomas-braun sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
@wendy2702 sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
Vielleicht nimmst du noch den Befehl zur neu installation JS-Controller mit in die Liste auf.
Da zöger ich. Das steht auch immer in den Ankündigungen zum js-controller drin. Und das ist mir zu 'heiß' hier ohne größeren Zusammenhang.
Dann vielleicht verlinken wenn dein Beitrag hier angepinnt wird.
-
@oliverio sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
Sollte sowas nicht auch noch in einen Wiki landen?
Thema Wiki ist eine andere Baustelle, ebenso wie:
@ofbeqnpolkkl6mby5e13 sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
dann könnte man solche Flüchtigkeitsfehler einfach schnell selbst korrigieren.
Wäre aber bei einem Wiki mit redaktioneller "Kontrolle" schon nicht mal so eben.
@oliverio sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
Anfänger finden solche Informationen aber nicht
Mal sehen, ob und wo man das anpinnen könnte, auch wenn
@oliverio sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
Zuviele stickys oder links in den Kästen über/unter/neben dem Forum macht die informationserlangung auf Dauer auch nicht einfacher.
Da muss ich auch mal durchforsten, was weg könnte, damit es übersichtlich bleibt.
Es auf die Website in die Doku zu übernehmen wäre noch was, aber dann ist eine Editierung auch "nur noch" über pull requests möglich
@homoran sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
Wäre aber bei einem Wiki mit redaktioneller "Kontrolle" schon nicht mal so eben.
Gibt es da dann nicht "Sichter", die nur noch freigeben oder eben nicht?
-
@homoran sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
Wäre aber bei einem Wiki mit redaktioneller "Kontrolle" schon nicht mal so eben.
Gibt es da dann nicht "Sichter", die nur noch freigeben oder eben nicht?
@ofbeqnpolkkl6mby5e13 sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
Gibt es da dann nicht "Sichter", die nur noch freigeben oder eben nicht?
Ja, den gäbe es.
-
@ofbeqnpolkkl6mby5e13 sagte in Der kleine ioBroker/Linux-Werkzeugkasten:
Gibt es da dann nicht "Sichter", die nur noch freigeben oder eben nicht?
Ja, den gäbe es.
@homoran
Das muss ein Highlander sein? -
@homoran
Das muss ein Highlander sein?Vemüllt den Thread bitte nicht mit Off Topic sachen!
-
Vemüllt den Thread bitte nicht mit Off Topic sachen!
@wendy2702
Hab das mal abgetrennt -
@wendy2702
Hab das mal abgetrennt -
Der kleine ioBroker/Linux-Werkzeugkasten
Wenn der ioBroker und/oder der Server, auf dem der ioBroker lebt, aus irgendwelchen Gründen anfängt herum zu zicken, sollte man da 'von Grund auf' sein System auf ein paar wesentliche Dinge abklopfen.
root login
Seit Jahren nicht mehr 'erlaubt', den root gibt es nur noch aus technischen Gründen im Hintergrund. (Ausnahme: Docker auf einer Synology, da gibt es zu meinem Leidwesen wohl leider keine gescheite Nutzerverwaltung). Sein System administriert man über einen Standarduser mit Standardrechten, der allerdings kurzzeitig über den vorangestellten Befehl
sudoin die Rolle des roots schlüpfen kann, dann aber sofort wieder in seine Standardrolle zurückfällt. Das ist so auf einem üblichen System und wird auch nicht umgestellt, weil 'das blöd ist' oder 'nur kurz' oder aus 'auf meinem System darf ich alles, ich bin natürlich root'-Allmachtsphantasien. Und auch sudo selber wird nur dann verwendet, wenn es erforderlich ist. Nicht erforderlich ist es z. B. in Verbindung mit den Befehlen npm und iobroker! In der Kombination falsch eingesetzt kann es das System zerschießen!
Test:
Als Standarduser
groupsausführen, dann sollte da ein Eintrag sudo zu finden sein. Wenn nicht, dann
Fix:
Als rootusermod -aG sudo USERNAMEund danach nie mehr als root einloggen!
Falls es noch gar keinen Standard-User geben sollte:
adduser username usermod -aG sudo usernameusername ist durch den gewünschten Username zu ersetzen. Dabei verwendet man am besten nur Kleinbuchstaben und nennt den neuen user NICHT iobroker. Viele haben ja einen schönen Vornamen, den kann man da wunderbar verwenden.
Terminal für Faule
TAB-Taste: Befehle und Befehlsoptionen können u. U. per TAB-Taste von der bash vervollständigt werden. Keiner tippt solche Befehle vollständig ein.
Man tippt da nur die ersten paar Buchstaben wie z. B.
sudo systTABcTABstatTABiobTABein und das steht dann automagisch in der Konsole:sudo systemctl status iobroker.serviceWenn man zufrüh tabbt und es noch mehrere Möglichkeiten der Ergänzung gibt schlägt die Konsole die verbliebenen Möglichkeiten auf und man kann sich daran weiterhangeln.
RunLevel 5 / graphische Oberfläche
Server werden aus diversen Gründen (Stabilität, Ressourcenverbrauch, Sicherheit) generell ohne graphische Oberfläche betreiben. Die dafür vorgesehene Betriebsart wird RunLevel 3 genannt. Nur wenn am Server ein Display für die Darstellung der Visualisierung des ioBrokers hängt wird ein Server ausnahmsweise in RunLevel 5 betrieben.
Test:
who -rliefert RunLevel 3 zurück:
pi@raspberrypi:~ $ who -r Runlevel 3 2021-03-03 22:01Für andere Systeme kann man das per
echad@chet:~ $ systemctl get-default multi-user.targetprüfen. Hier entspricht
multi-user.targetdem run level 3.Fix:
Auf dem RaspberryPi am besten per
sudo raspi-configin das Systemmenü gehen und dort die Menüpunkte
1 System Options Configure system settings S5 Boot / Auto Login Select boot into desktop or to command line B1 Console Text console, requiring user to loginauswählen.
Auf anderen Systemen stellt man das persudo systemctl set-default multi-user.targetein.
Systemupdate
Seinen Debian-basierten Server (dazu gehört z. B. auch das Raspberry OS vom Raspberry Pi, Ubuntu, Armbian) aktuell und 'auf Stand' zu halten braucht es nur wenig Handwerkszeug. Die installierte Software (im Idealfall auch zusätzliche Pakete von Drittanbietern wie deconz, nodeJS von nodesource) wird sehr komfortabel und zentral über den Paketmanager gehandhabt.
Mit diesem 'Dreisatz' wird automatisch ein System inkl. aller über den Paketmanager installierten Software auf den aktuellen Stand gebracht:
sudo apt update sudo apt dist-upgrade sudo rebootDas sollte man regelmäßig so ein oder zweimal im Monat machen. So bleiben die Upgrades übersichtlich und Sicherheitslücken werden einigermaßen zeitnah gestopft. Generell gilt: Je häufiger ich das mache desto weniger Trouble gibt es. 'Never change a running system' ist grundfalsch.
Test:
sudo apt updatesollte ungefähr so aussehen:
pi@raspberrypi:~ $ sudo apt update Hit:1 http://deb.debian.org/debian bullseye InRelease Hit:2 http://deb.debian.org/debian bullseye-updates InRelease Hit:3 http://archive.raspberrypi.org/debian bullseye InRelease Hit:4 http://security.debian.org/debian-security bullseye-security InRelease Hit:5 https://repos.influxdata.com/debian bullseye InRelease Hit:6 https://packages.grafana.com/oss/deb stable InRelease Hit:7 https://deb.nodesource.com/node_14.x bullseye InRelease InRelease Fetched 5,536 B in 2s (2,348 B/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date.Wichtig ist, dass hier keine Vermischungen von Releases enthalten sind. In obigem Beispiel kommen alle Pakete in der Version für das aktuelle Release von Debian namens 'Bullseye' daher. Da dürfen keine Einträge zu jessie, stretch oder buster oder sonstwas drinstehen. Allenfalls darf da noch 'stable' erwähnt werden, denn Bullseye ist z. Zt. das stable release von Debian. (Die release names von Ubuntu lauten anders, wichtig ist die Einheitlichkeit der release names)
Fix:
Wenn dort ausstehende Updates angezeigt werdensudo apt update sudo apt full-upgrade sudo rebootNodeJS
Wenn von vorneherein sauber installiert läuft das über das regelmäßig durchgeführte Systemupdate mit.
Test:
type -P nodejs && nodejs -v && type -P node && node -v && type -P npm && npm -v && type -P npx && npx -v && apt policy nodejsschaut etwa so aus:
pi@raspberrypi:~ $ which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs /usr/bin/nodejs v14.16.0 /usr/bin/node v14.16.0 /usr/bin/npm 6.14.11 /usr/bin/npx 6.14.11 nodejs: Installiert: 14.16.0-1nodesource1 Installationskandidat: 14.16.0-1nodesource1 Versionstabelle: *** 14.16.0-1nodesource1 500 500 https://deb.nodesource.com/node_14.x buster/main armhf Packages 100 /var/lib/dpkg/status 12.21.0-1nodesource1 500 500 https://deb.nodesource.com/node_12.x buster/main armhf Packages 10.24.0-1nodesource1 500 500 https://deb.nodesource.com/node_10.x buster/main armhf Packages 10.24.0~dfsg-1~deb10u1 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf PackagesWichtig und richtig ist:
nodejs liegt in /usr/bin
node liegt in /usr/bin
npm liegt in /usr/binund nicht in /usr/local/bin
und die Versionsnummer von nodejs und node ist a) gleich und b) gerade.
Ungerade Versionsnummern sind experimentelle Versionen und sollten nicht bzw. nur zu Testzwecken verwendet werden.Gleiches gilt für npm und npx. Hier sind allerdings ungerade Versionsnummern okay.
Fix:
Bitte hier weiterlesen:
https://forum.iobroker.net/topic/35090/howto-nodejs-installation-und-upgrades-unter-debianioBroker-Verwahrort
Der vorgesehene Verwahrort für Adapter ist 'stable', der 'beta'-Bereich sollte nur in begründeten Fällen verwendet werden.
Test
iobroker repo listschaut etwa so aus
pi@raspberrypi:~ $ iobroker repo list stable : http://download.iobroker.net/sources-dist.json beta : http://download.iobroker.net/sources-dist-latest.json live-beta : http://iobroker.live/repo/sources-dist-latest.json live-stable : http://iobroker.live/repo/sources-dist.json Active repo: stableFix:
iobroker repo set stableioBroker-Adapterupdate
Im täglichen Betrieb funktioniert das ganz analog zum Systemupdate.
Über 'die Katze' bzw. aus dem github werden regulär gar keine Adapter installiert. Dort liegt Code, an dem gerade gearbeitet wird und nur der Developer kann sagen in welchem Zustand der Adapter von dort gerade ist. Diese Version setzt man nur in Absprache mit dem Developer für Testzwecke ein, nie dauerhaft produktiv.Test:
iobroker update | grep -i updateablesieht so aus
pi@raspberrypi:~ $ iobroker update | grep updateable pi@raspberrypi:~ $Fix:
iobroker upgradeUpdates des sehr zentralen js-controllers macht man etwas anders und richtet sich dann auch nach der jeweiligen Installation (Multihost z. B.). Das dann bitte in der entsprechenden Ankündigung im Forum aktuell nach lesen.
ioBroker Fixer
Eine 'Allzweckwaffe' bei merkwürdigem/zickigem Verhalten (Adapter bleibt rot in der Admin-Ansicht) auch einzelner Adapter (z. B. ble und radar2 sind da regelmäßige Kandidaten) ist ein
iobroker stop iobroker fix iobroker restartDamit werden unter anderem z. B. bei einem Update verloren gegangene Rechte wieder eingeräumt und die Adapter können wieder funktionieren.
Den Fixer kann man auch 'auf Verdacht' mal laufen lassen.Hilft alles nix
Wenn man sein System und den ioBroker auf die üblichen Dinge von oben abgeklopft hat und immer noch rumzickt postet man am besten relevante Auszüge aus dem log file des ioBrokers. Am liebsten ist es den Helfern im Forum, wenn das in dieser Form erfolgt:
Man öffnet eine zweite Konsolen-Sitzung über sein Terminalprogramm und schaut periobroker logs --watch | uniqin das laufende log file rein. Dann agiert man in der ersten Konsole und/oder in der Weboberfläche des ioBrokers und versucht entsprechende Meldungen im log file zu provozieren. Diese kopiert man dann in sein Forumsthema rein, markiert die gesamte Ausgabe aus der Konsole und klickt dann das </> - Symbol über dem kleinen Editor-Fenster an. (Alternativ: Zuerst das </> anklicken, dann den Text aus der Zwischenablage zwischen die Steuercodes setzen).

Dann wird der Text in ähnlicher Form wie er auch in der Konsole erschien chronologisch korrekt dargestellt und ist wesentlich besser zu lesen.
Sieht dann so aus:pi@raspberrypi:/opt/iobroker $ iobroker logs --watch | uniq 2021-03-06 03:31:22.078 - warn: mihome-vacuum.0 (1391) no answer received after after 3 times -> pause miIO.info try again in one hourGerne auch vollständig inkl. login prompt und Pfaden wie oben zu sehen. Auch aus diesen Informationen kann man ggf. was hilfreiches ableiten.
Bitte keine Screenshots des log files aus dem admin posten, die Funktion nutzt man nur für einen schnellen Blick in das log file um zu sehen ob da Handlungsbedarf besteht.
@thomas-braun said in Der kleine ioBroker/Linux-Werkzeugkasten:
ioBroker-Adapterupdate
Im täglichen Betrieb funktioniert das ganz analog zum Systemupdate.
Über 'die Katze' bzw. aus git werden regulär gar keine Adapter installiert. Dort liegt Code, an dem gerade gearbeitet wird und nur der Developer kann sagen in welchem Zustand der Adapter von dort gerade ist. Diese Version setzt man nur in Absprache mit dem Developer für Testzwecke ein, nie dauerhaft produktiv.Ich denke es ist besser GitHub (nicht "git") zu nennen - oder wenn dann zumindest beides. Git und GitHub sind ja nicht identisch.
Sonst blicken die User für die der Werkzeugkasten am ehesten gedacht ist ja kaum noch durch, wenn man die Begriffe/Bezeichnungen abkürzt (wie z.B. auch in vielen Threads mit Java vs. Javascript)