Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Thomas Braun

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Profile
    • Following 1
    • Followers 53
    • Topics 123
    • Posts 48877
    • Best 5281
    • Groups 4

    Thomas Braun

    @Thomas Braun

    Most Active

    6337
    Reputation
    3710
    Profile views
    48877
    Posts
    53
    Followers
    1
    Following
    Joined Last Online

    Thomas Braun Follow
    Developer Pro Starter Most Active

    Best posts made by Thomas Braun

    • Der kleine ioBroker/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

      sudo
      

      in 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

      groups
      

      ausführen, dann sollte da ein Eintrag sudo zu finden sein. Wenn nicht, dann

      Fix:
      Als root

      usermod -aG sudo USERNAME
      

      und danach nie mehr als root einloggen!

      Falls es noch gar keinen Standard-User geben sollte:

      adduser username
      usermod -aG sudo username
      

      username 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 syst TAB c TAB stat TAB iob TAB ein und das steht dann automagisch in der Konsole:

      sudo systemctl status iobroker.service
      

      Wenn 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 -r
      

      liefert RunLevel 3 zurück:

      pi@raspberrypi:~ $ who -r
               Runlevel 3   2021-03-03 22:01
      

      Für andere Systeme kann man das per

      echad@chet:~ $ systemctl get-default
      multi-user.target
      

      prüfen. Hier entspricht multi-user.target dem run level 3.

      Fix:

      Auf dem RaspberryPi am besten per

      sudo raspi-config
      

      in 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 login
      

      auswählen.
      Auf anderen Systemen stellt man das per

      sudo systemctl set-default multi-user.target
      

      ein.

      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 reboot
      

      Das 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 update
      

      sollte 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 werden

      sudo apt update
      sudo apt full-upgrade
      sudo reboot
      

      NodeJS

      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 nodejs
      

      schaut 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 Packages
      

      Wichtig und richtig ist:

      nodejs liegt in /usr/bin
      node liegt in /usr/bin
      npm liegt in /usr/bin

      und 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-debian

      ioBroker-Verwahrort

      Der vorgesehene Verwahrort für Adapter ist 'stable', der 'beta'-Bereich sollte nur in begründeten Fällen verwendet werden.

      Test
      iobroker repo list
      

      schaut 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: stable
      

      Fix:

      iobroker repo set stable
      

      ioBroker-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 updateable
      

      sieht so aus

      pi@raspberrypi:~ $ iobroker update | grep updateable
      pi@raspberrypi:~ $
      

      Fix:

      iobroker upgrade
      

      Updates 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 restart
      

      Damit 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 per

      iobroker logs --watch | uniq
      

      in 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).
      d9f58211-5b56-42bf-b0b1-a876e3065e09-image.png

      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 hour
      

      Gerne 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.

      posted in ioBroker Allgemein
      Thomas Braun
      Thomas Braun
    • Mini-HowTo: Cannot find view "system" for search "host"

      User, die plötzlich nicht mehr in den ioBroker kommen und auf der Kommandozeile auf ein freundliches

      iobroker status
      

      so frech begrüßt werden:

      iobroker status
       Cannot read system.config: null (OK when migrating or restoring)
       Cannot find view "system" for search "host"
      iobroker is running on this host.
      

      können mal folgendes versuchen:

      Mit

      ls -lh /opt/iobroker/iobroker-data/backup-objects/ | grep objects
      

      bekommt man so etwas in der Art zu sehen:

      ls -lh /opt/iobroker/iobroker-data/backup-objects/
      total 19240
      -rw-rwxr--+ 1 iobroker iobroker 895277 Mar 16 16:23 2021-03-16_16-23_objects.json.gz
      -rw-rwxr--+ 1 iobroker iobroker 113674 Mar 16 16:23 2021-03-16_16-23_states.json.gz
      -rw-rwxr--+ 1 iobroker iobroker 113571 Mar 16 16:47 2021-03-16_16-47_states.json.gz
      -rw-rwxr--+ 1 iobroker iobroker 895066 Mar 16 16:48 2021-03-16_16-48_objects.json.gz
      -rw-rwxr--+ 1 iobroker iobroker 112795 Mar 16 16:51 2021-03-16_16-51_states.json.gz
      -rw-rwxr--+ 1 iobroker iobroker      0 Mar 16 16:53 2021-03-16_16-53_objects.json.gz
      -rw-rwxr--+ 1 iobroker iobroker   3505 Mar 16 16:56 2021-03-16_16-56_objects.json.gz
      -rw-rwxr--+ 1 iobroker iobroker      0 Mar 16 16:56 2021-03-16_16-56_states.json.gz
      -rw-rwxr--+ 1 iobroker iobroker   3505 Mar 16 16:57 2021-03-16_16-57_objects.json.gz
      -rw-rwxr--+ 1 iobroker iobroker 112864 Mar 16 16:57 2021-03-16_16-57_states.json.gz
      

      Man schaut wann zuerst 'auffällige' Dateien mit Dateigröße 0 oder auffälligem Schwund zwischen zwei Dateien auftauchen, wie hier:

      -rw-rw-r--+ 1 iobroker iobroker 1681373 Mar 16 18:00 2021-03-16_18-00_objects.json.gz
      -rw-rw-r--+ 1 iobroker iobroker    3504 Mar 16 18:11 2021-03-16_18-11_objects.json.gz
      

      und guckt sich die letzten intakten Dateien davor aus. Im Beispiel diese:

      -rw-rwxr--+ 1 iobroker iobroker 895066 Mar 16 16:48 2021-03-16_16-48_objects.json.gz
      -rw-rwxr--+ 1 iobroker iobroker 112795 Mar 16 16:51 2021-03-16_16-51_states.json.gz
      

      Die gleiche Übung muss ggf. auch für die states-Datenbank durchgeführt werden.

      Mit

      ls -lh /opt/iobroker/iobroker-data/backup-objects/ | grep states
      

      sieht man die, dann weiter wie oben mit den objects schon geschehen.

      Mit folgender Befehlsfolge kann man u. U. den ioBroker wieder beleben:
      (Bei Verwendung von jsonl ändern sich die Dateinamen entsprechend! Dann also json durch jsonl ersetzen!)

      iobroker stop
      cd /opt/iobroker/iobroker-data/
      mv objects.json objects.json.old
      mv states.json states.json.old
      cd backup-objects/
      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
      iobroker start
      

      INTAKTE_DATEI dabei mit dem zuvor ausgeguckten Dateinamen ersetzen.

      Mit freundlicher Empfehlung von @wendy2702

      posted in ioBroker Allgemein
      Thomas Braun
      Thomas Braun
    • Upgrade von Debian 11/Bullseye auf 12/Bookworm

      Vorab:
      Debian 12 'Bookworm' ist am 10.06.2023 als stabil veröffentlicht worden.
      Raspberry OS 'Bullseye' ist seit dem 10. Oktober 2023 auch verfügbar. Hier ist allerdings ein in-line-Upgrade von der Vorversion nicht so einfach wie in der Vergangenheit möglich. Es sollte hier eine komplette Neuinstallation vorgenommen werden.

      Desweiteren würde ich empfehlen die Gelegenheit zu nutzen und 32bit-Systeme auf Raspberry Pi-Kisten auf 64bit umzustellen. Das funktioniert allerdings nicht wie hier vorgestellt, bei einem Wechsel der CPU-Architektur ist eine Neuinstallation erforderlich. Desweiteren gilt für Raspberry OS die dringende Empfehlung einer Neuinstallation:

      Edit:
      Diesmal rät Raspberry OS allerdings noch dringender als sonst dazu, die Systeme nicht von einem zum anderen Release rüberzuheben, sondern eine komplette Neuinstallation zu machen:

      Wichtig zu wissen: Früher empfahl man eine frische Installation, aber es war möglich, vom Vorgänger zu aktualisieren. Die jetzige Installation sollte aber auf jeden Fall neu sein.
      Da die Änderungen an der zugrundeliegenden Architektur so signifikant sind, schlägt man dieses Mal keine Prozedur vor, um ein Bullseye-Image auf Bookworm zu aktualisieren; jeder Versuch, dies zu tun, wird mit ziemlicher Sicherheit mit einem nicht bootenden Desktop und Datenverlust enden.
      Die einzige Möglichkeit, Bookworm zu bekommen, ist entweder eine SD-Karte mit dem Raspberry Pi Imager zu erstellen oder ein Bookworm-Image von hier herunterzuladen und mit dem Tool der Wahl zu flashen.

      Gilt aber auch für ein System ohne Desktop, bei meinen Versuchen hab ich schwer mit dem Bootvorgang zu kämpfen, den aktuellen Kernel habe ich nicht vollständig gestartet bekommen.

      Wer es entgegen aller Warnungen versuchen möchte:

      https://www.heise.de/hintergrund/Raspberry-Pi-OS-InPlace-Upgrade-von-Bullseye-auf-Bookworm-wagen-9999516.html

      #Upgrade von Debian 11 'Bullseye' auf Debain 12 'Bookworm'

      Gegeben ist ein System, auf dem 'Debian 11 - Bullseye' läuft:

      pi@mysterium2:~ $ lsb_release -a
      No LSB modules are available.
      Distributor ID: Raspbian
      Description:    Raspbian GNU/Linux 11 (bullseye)
      Release:        11
      Codename:       bullseye
      

      Der Stand soll auf Debian 12 'Bookworm' gehoben werden. Ich mache das wie folgt:

      Zunächst alles auf den letzten Stand bringen

      pi@mysterium2:~ $ sudo apt update
      Hit:1 http://archive.raspberrypi.org/debian bullseye InRelease
      Hit:2 http://raspbian.raspberrypi.org/raspbian bullseye InRelease
      Hit:3 https://deb.nodesource.com/node_18.x bullseye InRelease
      Get:4 https://pkgs.tailscale.com/stable/raspbian bullseye InRelease
      Fetched 6,522 B in 6s (1,042 B/s)
      Reading package lists... Done
      Building dependency tree... Done
      Reading state information... Done
      113 packages can be upgraded. Run 'apt list --upgradable' to see them.
      

      Wenn in der Liste irgendwas mit bullseye-backports oder bullseye-propsed-updates oder ähnliches auftauchen sollte, dann ist diese Quelle zuvor zu deaktivieren. Ebenso andere manuelle Eingriffe in die Paket-Datenbank. Z.B. ein apt-hold auf das Paket 'udev' ist ja von einigen getätigt worden, diese Sperren müssen aufgehoben werden. Kann man per

      apt-mark showhold
      

      prüfen. Die aufgelisteten Pakete dann mit

      sudo apt-mark unhold `apt-mark showhold`
      

      wieder frei laufen lassen.

      Also

      sudo apt full-upgrade
      sudo reboot
      

      Nach dem reboot dürfen keine Pakete mehr in der Pipeline hängen.

      pi@mysterium2:~ $ sudo apt update
      Hit:1 http://raspbian.raspberrypi.org/raspbian bullseye InRelease
      Hit:2 http://archive.raspberrypi.org/debian bullseye InRelease
      Hit:3 https://deb.nodesource.com/node_18.x bullseye InRelease
      Get:4 https://pkgs.tailscale.com/stable/raspbian bullseye InRelease
      Fetched 6,522 B in 2s (3,644 B/s)
      Reading package lists... Done
      Building dependency tree... Done
      Reading state information... Done
      All packages are up to date.
      

      Prima, jetzt ist die Basis stabil und wir können auf bookworm/Debian12 umschwenken.

      In die Datei /etc/apt/sources.list kopieren wir diese neuen Zeilen rein, die alten Einträge fliegen dafür raus:
      Via

      sudo nano /etc/apt/sources.list
      

      das einkopieren:

      deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
      deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
      deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
      # Uncomment deb-src lines below then 'apt-get update' to enable 'apt-get source'
      deb-src http://deb.debian.org/debian bookworm main contrib non-free
      deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free
      deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free
      

      Zusätzlich stellen wir auch noch weitere Dateien auf bookworm um:

      sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list
      sudo sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list.d/*
      

      Wenn ein erneutes

      sudo apt update
      

      Meldungen wie die folgende ergibt:

      Err:2 http://deb.debian.org/debian bookworm InRelease
        The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 648ACFD622F3D138 NO_PUBKEY 0E98404D386FA1D9
      

      muss der Schlüssel jeweils herangezogen werden.
      Macht man so:

      sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
      

      Die ID des keys übernimmt man natürlich aus der vorherigen Meldung.

      Das macht man mit allen fehlenden Schlüsseln, bis es so oder so ähnlich aussieht, die Meldungen bzgl. der Schlüssel also nicht mehr vorhanden sind:

      pi@mysterium2:~ $ sudo apt update
      Hit:1 http://archive.raspberrypi.org/debian bookworm InRelease
      Hit:2 http://deb.debian.org/debian bookworm InRelease
      Hit:3 http://deb.debian.org/debian bookworm-updates InRelease
      Hit:4 http://security.debian.org/debian-security bookworm-security InRelease
      Hit:5 http://raspbian.raspberrypi.org/raspbian bookworm InRelease
      Hit:6 https://deb.nodesource.com/node_18.x bookworm InRelease
      Get:7 https://pkgs.tailscale.com/stable/debian bookworm InRelease
      Fetched 6,522 B in 3s (2,404 B/s)
      Reading package lists... Done
      Building dependency tree... Done
      Reading state information... Done
      445 packages can be upgraded. Run 'apt list --upgradable' to see them.
      

      Auch dürfen da keine Einträge mit bullseye mehr vorkommen.

      Vor dem eigentlichen Upgrade schaut man per

      sudo apt -o APT::Get::Trivial-Only=true full-upgrade
      

      nach ob auch genug Platz auf dem Datenträger ist. Wenn E: You don't have enough free space in /var/cache/apt/archives/. gemeldet wird sollte man vorher aufräumen, z. B. per

      sudo apt clean
      

      Jetzt aber los...

      sudo apt update
      sudo apt full-upgrade
      

      Wenn während des Upgrades Rückfragen kommen, ob eine neue Version einer Konfig-Datei eingespielt werden soll bitte immer mit yes bestätigen. Es wird von der ursprünglichen Datei eine Kopie mit der Endung .dpkg-old gespeichert, welche bei Bedarf dann zurückgespielt werden kann.
      Gleiches gilt für die Frage, ob Services automatisch neugestartet werden sollen.
      Aus der Anzeige des ChangeLogs kommt man durch Eingabe von q heraus.

      Jetzt holt man sich einen Kaffee (alternativ Club Mate) und schaut wie ein Superhacker mit schwarzem Kaputzenpulli und koffeinhaltigem Getränk in der Hand angestrengt auf die vorbeilaufenden Meldungen im Terminal und haut gelegentlich bei den obengenannten Rückfragen auf die Y-Taste.

      Wenn alles durchgelaufen ist und nach einem beherzten

      sudo reboot
      

      befinden wir uns in Debian 12 'Bookworm'

             _,met$$$$$gg.          pi@mysterium2
          ,g$$$$$$$$$$$$$$$P.       -------------
        ,g$$P"     """Y$$.".        OS: Debian GNU/Linux 12 (bookworm) armv7l
       ,$$P'              `$$$.     Host: Raspberry Pi 3 Model B Plus Rev 1.3
      ',$$P       ,ggs.     `$$b:   Kernel: 6.1.21-v7+
      `d$$'     ,$P"'   .    $$$    Uptime: 1 hour, 31 mins
       $$P      d$'     ,    $$P    Packages: 711 (dpkg)
       $$:      $$.   -    ,d$$'    Shell: bash 5.2.15
       $$;      Y$b._   _,d$P'      Terminal: /dev/pts/0
       Y$$.    `.`"Y$$$$P"'         CPU: BCM2835 (4) @ 1.400GHz
       `$$b      "-.__              Memory: 70MiB / 965MiB
        `Y$$
         `Y$$.
           `$$b.
             `Y$$b.
                `"Y$b._
                    `"""
      

      Falls Meldungen bei einem

      sudo apt update
      

      bezüglich apt-key auftauchen:

      W: http://security.debian.org/debian-security/dists/bookworm-security/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
      W: http://raspbian.raspberrypi.org/raspbian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
      W: http://deb.debian.org/debian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
      W: http://archive.raspberrypi.org/debian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
      W: http://deb.debian.org/debian/dists/bookworm-updates/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
      W: http://archive.raspberrypi.org/debian/dists/bullseye/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
      W: https://pkgs.tailscale.com/stable/debian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
      

      kann man die noch an eine andere Stelle schieben:

      sudo mv /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d/
      

      Das ist zwar nicht der Königsweg, sorgt aber dafür das die Meldungen für das erste verschwinden.

      Fertig, viel Spaß mit dem Bücherwurm / Debian 12.

      posted in Off Topic
      Thomas Braun
      Thomas Braun
    • [HowTo] Nodejs-Installation und Upgrades unter Debian

      Die nachfolgende Anleitung steht nur noch aus historischen Gründen hier. Mittlerweile führt man am besten einen Wechsel der Version per

      iob nodejs-update 
      

      durch. Gegebenfalls zuvor per iob fix den Befehl noch bekannt machen.

      Teil 1: Installation und Update
      Teil 2: Installationen geradeziehen (siehe 2. Posting im Thread)

      Vorwort:
      Bis auf Ausnahmefälle (z. B. bei Docker auf einer Synology) wird ein auf Debian basierendes System seit Jahren NICHT mehr per direktem root-login administriert, sondern als normaler user mittels 'sudo'. Solche login prompts sind also unnötig und 'gefährlich':

      root@raspberrypi:~#
      

      Nicht machen!

      HINWEIS:
      Das derzeitig empfohlene nodeJS-Paket ist Node 18 inklusive npm 9 (Stand 30.08.2023)

      Niemals ungerade Versionsnummern bei nodeJS verwenden, das sind ausschließlich Versionen für Entwickler und haben in einem stabilen System nichts zu suchen.

      Für alte Raspberrys, die auf der armv6 Prozessor-Architektur basieren (Zero // Zero W / WH // 1 Mod. A // 1 Mod. A+ // 1 Mod. B // 1 Mod. B+) muss man etwas unschön selber Hand anlegen, da gibt es keinen offiziellen Support mehr. Siehe hier am Ende dieses Eintrags.

      Nun zum Thema

      TEIL 1 Installation und Update von nodejs

      Node Installation bzw. Update unter Linux / Debian (und artverwandtem wie z. B. Raspbian / Rasberry OS / ubuntu) mit apt

      Für eine Node-Erstinstallation:

      Alt-Installationen entfernen:

      Debian/RaspberryOS/Ubuntu und artverwandtes:
      Alt- und Vorinstallationen (z. B. die dfsg-Version von nodejs) entfernen.

      sudo apt purge --autoremove nodejs* npm node-* libnode*
      

      Achtung, bei nodesource hat sich nun (31.08.2023) einiges geändert und bereits bestehende Setups müssen geändert werden.
      Dazu löscht man die bestehenden Dinge und legt alles frisch neu an.

      Altlasten rauswerfen:

      sudo rm `sudo find / -name nodesource.gpg`
      sudo rm `sudo find / -name nodesource.key`
      sudo rm /etc/apt/sources.list.d/nodesource.list
      

      Dann das nodesource-Repository wieder anlegen lassen:

      NODE_MAJOR=18
      sudo apt update
      sudo apt install -y ca-certificates curl gnupg
      sudo mkdir -p /etc/apt/keyrings
      curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
      echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_${NODE_MAJOR}.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
      sudo apt update
      sudo apt install nodejs
      

      Die gewünschte Version ggfls. anpassen, also statt

      NODE_MAJOR=18
      

      entsprechend 18 durch den gewünschten Versionszweig (z.B. 16) ersetzen.
      Wobei das bei einem komplett frischen Debian nicht mal erforderlich ist, der iobroker-Installer installiert ohnehin eine passende Version von nodejs, wenn noch nicht vorhanden.

      Es ist übrigens hier nicht erforderlich, ein Paket 'node' oder 'npm' separat zu installieren, das ist schon im Paket 'nodejs' enthalten. Das gilt dann natürlich im weiteren auch für Upgrades/Updates von node.

      Node-Update:
      Wenn bereits eine Version von nodejs über den obigen Weg installiert wurde kann man Updates innerhalb der jeweiligen Version von nodejs mit

      sudo apt update
      sudo apt upgrade
      

      vornehmen. In einem wird dann auch der Rest vom System aktualisiert.
      Wenn neue, zusätzliche Pakete für die Installation erforderlich sind (passiert seltener, meist bei Kernel-Updates) muss man ggf. alternativ mit

      sudo apt full-upgrade
      

      arbeiten. Das System meckert in dem Fall aber, wenn man zuerst mit apt upgrade versucht hat. Der Einfachheit halber am besten nach dem System-Upgrade mal per

      sudo reboot
      

      neustarten. Insbesondere bei 'mitgefangenen' Kernel-Updates sollte man das tun.

      Teil 1.1 Node-Upgrade/ Wechsel der nodejs-Version:
      Vor dem Wechsel der node-Version legen wir mit

      iobroker stop
      

      den iobroker kurz auf Eis.

      Die persönliche Abwandlung von mir bei Wechseln/Upgrades der nodejs-Version:
      Die oben vorgenommenen Schritte (auch per iobroker-Installer) führen dazu, dass es eine Datei nodesource.list gibt, die das nodesource-Repository beinhaltet. Um die Version zu wechseln fügt man dort einfach eine passende Zeile ein. Ich habe da derzeitig 2 Quellen drin. Mit dem Editor nano kann man das recht einfach anpassen:

      sudo nano /etc/apt/sources.list.d/nodesource.list
      

      Die Datei wird dann etwa so aussehen:

      #node 16
      deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x nodistro main
      #node 18
      deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main
      

      (Darauf achten, dass die letzte Zeile mit einem ‚ENTER‘ abgeschlossen wird. Sonst gibt es beim üblichen Update-Zweisatz

      sudo apt update
      sudo apt full-upgrade
      

      eine Fehlermeldung, dass am Ende ein Zeilensprung fehlen würde. So sinngemäß jedenfalls...

      Jetzt hat man mehrere Möglichkeiten die gewünschte node-Version zu ändern.
      Der Paketmanager apt wird in diesem Setup bei einem normalen Update immer die höchste Versionsnummer installieren, hier also eine 18.x
      Man kann aber auch die Quelle temporär ausschalten, dazu einfach ein # vor die entsprechende Zeile setzen, dann wird die bei einem apt update übergangen und nur als Kommentar verstanden.

      Eine recht freie Auswahl bei den node-Versionen hat man, wenn man per

      apt policy nodejs
      

      schaut, was in den einzelnen Repos zur Verfügung steht. Kann dann z. B. so aussehen:

      echad@chet:/opt/iobroker $ apt policy nodejs
      nodejs:
        Installed: 16.15.1-deb-1nodesource1
        Candidate: 16.15.1-deb-1nodesource1
        Version table:
               
       *** 16.15.1-deb-1nodesource1 500
              500 https://deb.nodesource.com/node_16.x bullseye/main arm64 Packages
              100 /var/lib/dpkg/status
           14.19.3-deb-1nodesource1 500
              500 https://deb.nodesource.com/node_14.x bullseye/main arm64 Packages
           12.22.5~dfsg-2~11u1 500
              500 http://deb.debian.org/debian bullseye/main arm64 Packages
              500 http://security.debian.org/debian-security bullseye-security/main arm64 Packages
      

      Per

      sudo apt install nodejs=VERSIONSNUMMER-deb-1nodesource1
      

      (Die 500 ist nicht Bestandteil der Versionsnummer!)

      kann man eine exakte Version dann installieren. Achtung, wenn das Repo mit einer höheren Version nicht deaktiviert wird kommt beim nächsten apt update / apt upgrade natürlich die höhere Version mit. (Könnte man per Pinning auch noch feiner einstellen, führt aber hier zuweit...)

      Eine künftige Version von nodejs würde ich z. B. bei Bedarf dann einfach durch simples Ersetzen einer der nicht mehr benötigten Versionsnummern oder durch hinzufügen einer entsprechenden neuen Zeile für diese Version in der nodesource.list heranziehen.

      Check:

      Wenn alles sauber gelaufen ist sollte bei

      uname -m && type -P nodejs node npm npx corepack && nodejs -v && node -v && npm -v && npx -v && corepack -v && iob -v && whoami && groups && echo $XDG_SESSION_TYPE && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs
      

      die Ausgabe etwa so aussehen:

      pi@mysterium:~ $ uname -m && type -P nodejs node npm && nodejs -v && node -v && npm -v && iob -v && whoami && groups && pwd && sudo apt-get update &> /dev/null && sudo apt-get update && apt-cache policy nodejs
      armv7l
      Kein Docker
      /usr/bin/nodejs
      /usr/bin/node
      /usr/bin/npm
      /usr/bin/npx
      /usr/bin/corepack
      v18.15.0
      v18.15.0
      9.6.0
      9.6.0
      0.19.0
      pi
      pi adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi iobroker wmbusmeters
      tty
      /home/pi
      Hit:1 http://deb.debian.org/debian unstable InRelease
      Hit:2 http://raspbian.raspberrypi.org/raspbian bullseye InRelease
      Hit:3 http://phoscon.de/apt/deconz bullseye InRelease
      Hit:4 http://archive.raspberrypi.org/debian bullseye InRelease
      Hit:5 https://deb.nodesource.com/node_16.x bullseye InRelease
      Hit:6 https://deb.nodesource.com/node_18.x bullseye InRelease
      Hit:7 https://packagecloud.io/ookla/speedtest-cli/debian bullseye InRelease
      Fetched 5,545 B in 3s (1,693 B/s)
      Reading package lists... Done
      Building dependency tree... Done
      Reading state information... Done
      All packages are up to date.
      nodejs:
        Installed: 18.15.0-deb-1nodesource1
        Candidate: 18.15.0-deb-1nodesource1
        Version table:
       *** 18.15.0-deb-1nodesource1 500
              500 https://deb.nodesource.com/node_18.x bullseye/main armhf Packages
              100 /var/lib/dpkg/status
           16.20.0-deb-1nodesource1 500
              500 https://deb.nodesource.com/node_16.x bullseye/main armhf Packages
           12.22.12~dfsg-1~deb11u1 500
              500 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf Packages
      pi@mysterium:~ $
      

      Falls zu nodejs nichts gemeldet wird oder Teile der obigen Ausgabe nicht erscheinen bitte noch nodejs und node verlinken:

      sudo ln -s /usr/bin/node /usr/bin/nodejs
      

      Wichtig und richtig ist:

      nodejs liegt in /usr/bin
      node liegt in /usr/bin
      npm liegt in /usr/bin
      npx liegt in /usr/bin
      corepack liegt in /usr/bin

      und die Versionsnummern von nodejs und node sowie von npm und npx stimmen jeweils überein.

      Falsch ist eine Installation in /usr/local/bin oder irgendwelchen anderen Verzeichnissen als /usr/bin

      Final lassen wir den

      iobroker fix
      

      noch laufen, damit ggf. die sogenannten capabilities auf die nun laufende node-Version angepasst werden.
      Mit einem beherzten

      iobroker start
      

      rufen wir den Broker ins Leben zurück.

      ---- ENDE ---- ENDE ---- ENDE ---- ENDE

      *** SONDERFALL ***

      für linux-x64-musl / linux-x86 / linux-armv6l / Unofficial node-Builds

      Z. B. alte Raspberry Pi müssen händisch gepflegt werden.
      Das kann man dann so machen:

      Zunächst schauen, ob andere Versionen installiert sind:

      type -P nodejs node npm && nodejs -v && node -v && npm -v && apt policy nodejs
      

      Die dann deinstallieren:

      sudo apt purge --autoremove nodejs* npm node-* libnode*
      

      bzw. wenn die nicht per apt remove zu entfernen sind und irgendwo anders im Pfad liegen per

      sudo rm /pfad/zu/nodejs
      sudo rm /pfad/zu/node
      sudo rm /pfad/zu/npm
      

      Aktuelle node-VERSION in das System setzen (aktuellste vVERSION-Nummer bitte selber herausfinden...):

      wget https://unofficial-builds.nodejs.org/download/release/vVERSION/node-vVERSION-linux-armv6l.tar.xz
      tar -xvf node-vVERSION-linux-armv6l.tar.xz
      cd node-vVERSION-linux-armv6l/
      sudo cp -R * /usr/local/
      sudo ln -s /usr/local/bin/node /usr/local/bin/nodejs
      sudo apt update 
      sudo apt full-upgrade
      sudo apt autoremove
      sudo reboot
      

      Nachteil der Vorgehensweise ist, dass Updates nicht vom Paketmanager wahrgenommen werden und man selber bei Bedarf diese Schritte mit der jeweiligen Version jedesmal durchlaufen muss.
      Die Version von node liegt dann auch in /usr/local/bin, das ist in dem Fall entgegen meiner obigen Aussage dann in Ordnung bei alten Raspberry.

      NOTFALL - INSTALLATION (nicht empfohlen! / Versionen/Pfade sind anzupassen!)

      iobroker stop
      sudo killall node
      cd ~ && mkdir nodejsinstall && cd nodejsinstall
      wget https://nodejs.org/dist/v18.5.0/node-v18.5.0-linux-arm64.tar.xz
      tar -xf node-v18.5.0-linux-arm64.tar.xz 
      cd node-v18.5.0-linux-arm64/
      sudo cp -r * /usr/
      
      posted in ioBroker Allgemein
      Thomas Braun
      Thomas Braun
    • Installation auf Raspi - Einfacher geht's nicht

      Für die Installation auf einer SD-Karte nutzen wir den Raspberry Pi Imager,
      der hier erhältlich ist:

      https://www.raspberrypi.com/software/

      Im linken Feld des Pi Imagers wählen wir das zu flashende Betriebssystem aus, wir wählen unter
      Raspberry Pi OS (other)
      das
      Raspberry Pi OS Lite (64-bit)
      aus.

      Die ist zur aktuellen Raspberry-Hardware (ab Raspberry 3) kompatibel, auf älterer Hardware kann man mittlerweile den ioBroker ohnehin nicht mehr gescheit laufen lassen.

      Wichtig ist LITE, ohne Desktop!

      rpi-imager_1_1.png
      rpi-imager_1_2.png
      rpi-imager_1_3.png

      Unter Storage wählen wir die zu flashende SD-Karte aus, im Beispiel unter dem Laufwerksbuchstaben D : zu finden:

      26dd84ac-5597-4f75-af9f-24e6729ebc23-image.png

      Bevor mit Write das Image auf die Karte geschrieben wird öffnen wir das 'geheime' Installationsmenü mit der Tastenkombination
      STRG-Umschalten-X. (Mittlerweile nicht mehr geheim sondern direkt in der Oberfläche zu sehen).

      Hier können noch einige Einstellungen direkt vorab mitgegeben werden, u. a. auch der wichtige Zugang per ssh. Bei mir schaut das dann beispielsweise so aus:

      bd08d699-fd56-4171-9e5e-5203a1e3932a-image.png

      Wichtig ist vor allen Dingen die Einstellung zu ssh sowie der Zeitzone.
      Auch ein individueller Hostname sowie ein individueller username sind jetzt vorgesehen. Dabei sollte man sich jeweils auf Kleinbuchstaben und Ziffern beschränken und keine Sonderzeichen wie /-[ oder ähnliches verwenden. Nicht verwendet werden sollte 'root' oder 'iobroker' als username.

      posted in Installation
      Thomas Braun
      Thomas Braun
    • iob node fix - Skript

      Hinweis vorab: Wenn das Skript ausgeführt wurde und sein Werk getan hat, funktionieren Updates innerhalb der nodejs-Version wieder wie gehabt über

      sudo apt update
      sudo apt full-upgrade
      

      Erneutes ausführen des Skriptes bei einem gewöhnlichen Update ist nicht notwendig!

      __
      BETA-TESTING
      (Nachdem das Skript jetzt auch offiziell Teil vom ioBroker in Form des Kommandos iob nodejs-update geworden ist wird hier im Thread an Beta-Versionen gewerkelt. Mit den üblichen Gefahren. Es kann hier Code in jeglicher Form und Lauffähigkeit vorgefunden werden. Bitte hier nur 'todesmutige' Tester mit Backup für den Fall der Fälle. )

      Ich habe mich ja lange dagegen ausgesprochen, so grundlegende Dinge wie die Installation von nodejs über windige 'Toolz' machen zu lassen. Aber sei es wie es ist, hier ist ein Skript, das verfummelte nodejs-Installationen wieder weitgehend gerade ziehen sollte und auch das aktuelle Repository für nodejs in der Version von nodesource inkl. der Schlüssel usw. installiert.

      Flugs heruntergeladen und ausgeführt per

      curl https://raw.githubusercontent.com/Grothesk242/iob_diag/main/iob_node_update.sh > iob_node_update
      chmod 744 iob_node_update
      ./iob_node_update
      

      Optional kann man dem Skript auch einen nodejs-Zweig mit geben, dann wird die letzte Version aus diesem Zweig installiert.

      ./iob_node_update XX
      

      Wobei der Zweig natürlich existent sein muss. Zur Zeit ist also XX = 18 , 20 oder 22 möglich.

      Noch ein Hinweis: Gegebenenfalls (wenn z. B. mehrere verschachtelte Fehler vorliegen) das Skript nochmal laufen lassen. Wenn alles senkrecht ist sieht die Meldung am Ende so aus:

      Nothing to do, your installation is using the correct paths.
      Nothing to do, your installed version is the recommended one.
      

      Also 2x 'nothing to do'.
      (2x aber nur, wenn die Empfehlung aus dem iobroker herausgelesen werden konnte. Das funktioniert aber nicht immer, für Multihost-Setups z.B. nur für das Hauptsystem)

      Meinungen? Anregungen? Wünsche?
      Wer da tiefer einsteigen möchte und vielleicht selber kochen möchte:
      https://forum.iobroker.net/topic/35090/howto-nodejs-installation-und-upgrades-unter-debian

      posted in ioBroker Allgemein
      Thomas Braun
      Thomas Braun
    • Linux/Debian - Grafana-Repo muss aktualisiert werden

      Wer beim täglichen System-Update auf diese Meldung läuft, dass etwas mit dem Schlüssel zum Grafana-Repository nicht stimmt:

      Err:13 https://packages.grafana.com/oss/deb stable InRelease
        The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9E439B102CF3C0C6
      Reading package lists... Done
      W: GPG error: https://packages.grafana.com/oss/deb stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9E439B102CF3C0C6
      E: The repository 'https://packages.grafana.com/oss/deb stable InRelease' is not signed.
      N: Updating from such a repository can't be done securely, and is therefore disabled by default.
      N: See apt-secure(8) manpage for repository creation and user configuration details.
      

      sollte das Repo mit neuem Schlüssel und ein paar anderen Parametern neuanlegen.
      Geht ungefähr so:

      apt-key list | grep -i grafana | wc -l
      

      sollte 0 zurückgeben.
      Wenn da irgendwas anderes als 0 gemeldet wird dann sollte der alte key gelöscht werden:

      sudo apt-key del 4E40DDF6D76E284A4A6780E48C8C34C524098CB6
      

      Nochmal per

      apt-key list | grep -i grafana | wc -l
      

      schauen ob das jetzt 0 ist.

      Wenn da noch was drinhängt mittels

      apt-key list
      

      schauen was da noch so bzgl. grafana aufgeführt ist und den Schlüssel dann auch löschen. Kann z. B. so aussehen:

            0E22 EB88 E39E 1227 7A77  60AE 9E43 9B10 2CF3 C0C6
      uid           [ unknown] Grafana Labs <engineering@grafana.com>
      sub   rsa3072 2023-01-06 [E] [expires: 2025-01-05]
      

      Also diesen key auch löschen:

      sudo apt-key del 0E22EB88E39E12277A7760AE9E439B102CF3C0C6
      

      Jetzt kommt beim Check die gewünschte Null:

      echad@chet:~ $ apt-key list | grep -i grafana | wc -l
      Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
      0
      

      Jetzt wird der neue Key und das neue Repo reingezogen:

      sudo wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
      echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
      

      Jetzt sollte ein

      sudo apt update
      

      auch wieder sauber durchlaufen.

      Siehe auch hier:
      https://grafana.com/blog/2023/01/12/grafana-labs-update-regarding-circleci-security-updates/

      posted in Visualisierung
      Thomas Braun
      Thomas Braun
    • iob diag - Skript

      WIP: Übersetzung auf Deutsch in Arbeit. Wird aber nur teilweise möglich sein.
      Skript einfach mal mit der Option '--de' starten. Also ./iob_diag.sh --de

      Ich hab mal ein wenig geskriptet und dabei ist ein Skript herum gekommen, das man vielleicht analog zum iobroker fix direkt zu einer Basisinstallation des ioiBrokers hinzufügen könnte. Aufruf dann z. B. über iobroker diag oder so.

      Der Code findet sich unter:
      https://github.com/Grothesk242/iob_diag

      TEST-Version (läuft auf Raspberry ohne iob fix + Zigbee Config (nvbackup) Ausgabe):
      https://github.com/Grothesk242/ioBroker/tree/Raspbian

      TEST-Version:

      curl https://raw.githubusercontent.com/Grothesk242/ioBroker/refs/heads/Raspbian/diag.sh > iob_diag.sh
      chmod 744 iob_diag.sh
      ./iob_diag.sh
      
      Weitere Optionen: 
      ./iob_diag.sh --unmask           <--- Zeigt maskierte Ausgaben im Klartext 
      ./iob_diag.sh --de               <--- Ausgabe tw. auf deutsch
      ./iob_diag.sh --de --unmask      <--- Kombination aus deutsch und Klartext 
      

      Mit Ausgabe in eine Logdatei namens iob_diag.log sähe der Aufruf so aus:

      ./iob_diag.sh | tee iob_diag.log
      

      Vielleicht mag ja jemand mit Docker oder LXC das mal ausführen und den Output zeigen?

      Hier werden die üblichen Dinge relativ kompakt aufgelistet, die immer wieder bei Anfragen im Forum vermisst werden.

      Hier mal als ersten Einblick, vielleicht fällt ja noch etwas ein, was auch interessant zu wissen wäre, bevor man im Nebel stochert:

      *** ioBroker Diagnose ***
      
      Bitte das Fenster von puTTY breit ziehen oder auf Vollbild setzen
      Den nachfolgenden Output 1:1 in das ioBroker-Forum unter
      https://forum.iobroker.net
      vollständig posten ,inkl der jeweils drei Steuerzeichen ``` am Anfang und Ende:
      
      ===========Ab hier kopieren =========
      
      *** BASISSYSTEM ***
      CPU-Architektur: aarch64
      Docker: Nein
      No LSB modules are available.
      Distributor ID: Debian
      Description:    Debian GNU/Linux 11 (bullseye)
      Release:        11
      Codename:       bullseye
      
      *** Zeit und Zeitzonen ***
                     Local time: Tue 2022-11-01 16:53:39 CET
                 Universal time: Tue 2022-11-01 15:53:39 UTC
                       RTC time: n/a
                      Time zone: Europe/Berlin (CET, +0100)
      System clock synchronized: yes
                    NTP service: active
                RTC in local TZ: no
      
      *** ARBEITSSPEICHER ***
                     total        used        free      shared  buff/cache   available
      Mem:           7.7Gi       2.3Gi       3.2Gi       0.0Ki       2.2Gi       5.2Gi
      Swap:           99Mi          0B        99Mi
      Total:         7.8Gi       2.3Gi       3.3Gi
      
      *** Nodejs-Installation ***
      /usr/bin/nodejs         v18.12.0
      /usr/bin/node           v18.12.0
      /usr/bin/npm            8.19.2
      
      *** ioBroker-Installation ***
      js-controller:  4.0.23
      Updates + Repos:
      Used repository: beta
      
      *** User und Gruppen ***
      echad
      /home/echad
      echad adm dialout cdrom sudo audio video plugdev games users input render netdev gpio i2c spi iobroker
      
      *** Server-Setup ***
      Konsole: tty
      Desktop:
      
      *** Repositories und OS-Updates ***
      Hit:1 http://deb.debian.org/debian bullseye InRelease
      Hit:2 http://deb.debian.org/debian bullseye-updates InRelease
      Hit:3 http://security.debian.org/debian-security bullseye-security InRelease
      Hit:4 http://phoscon.de/apt/deconz bullseye InRelease
      Hit:5 http://deb.debian.org/debian bullseye-backports InRelease
      Hit:6 http://archive.raspberrypi.org/debian bullseye InRelease
      Hit:7 http://packages.azlux.fr/debian bullseye InRelease
      Hit:8 https://packages.grafana.com/oss/deb stable InRelease
      Hit:9 https://deb.nodesource.com/node_10.x bullseye InRelease
      Hit:10 https://repos.influxdata.com/debian bullseye InRelease
      Hit:11 https://deb.nodesource.com/node_12.x bullseye InRelease
      Hit:12 https://deb.nodesource.com/node_14.x bullseye InRelease
      Hit:13 https://deb.nodesource.com/node_16.x bullseye InRelease
      Hit:14 https://packages.redis.io/deb bullseye InRelease
      Hit:15 https://deb.volian.org/volian scar InRelease
      Hit:16 https://deb.nodesource.com/node_18.x bullseye InRelease
      Hit:18 https://deb.nodesource.com/node_19.x bullseye InRelease
      Get:19 https://pkgs.tailscale.com/stable/debian bullseye InRelease
      Hit:17 https://packagecloud.io/ookla/speedtest-cli/debian bullseye InRelease
      Fetched 5,545 B in 3s (1,694 B/s)
      Reading package lists... Done
      Building dependency tree... Done
      Reading state information... Done
      All packages are up to date.
      nodejs:
        Installed: 18.12.0-deb-1nodesource1
        Candidate: 18.12.0-deb-1nodesource1
        Version table:
           19.0.0-deb-1nodesource1 500
              500 https://deb.nodesource.com/node_19.x bullseye/main arm64 Packages
       *** 18.12.0-deb-1nodesource1 501
              500 https://deb.nodesource.com/node_18.x bullseye/main arm64 Packages
              100 /var/lib/dpkg/status
           16.18.0-deb-1nodesource1 500
              500 https://deb.nodesource.com/node_16.x bullseye/main arm64 Packages
           14.20.1-deb-1nodesource1 500
              500 https://deb.nodesource.com/node_14.x bullseye/main arm64 Packages
           12.22.12-deb-1nodesource1 500
              500 https://deb.nodesource.com/node_12.x bullseye/main arm64 Packages
           12.22.12~dfsg-1~deb11u1 500
              500 http://security.debian.org/debian-security bullseye-security/main arm64 Packages
           12.22.5~dfsg-2~11u1 500
              500 http://deb.debian.org/debian bullseye/main arm64 Packages
           10.24.1-deb-1nodesource1 500
              500 https://deb.nodesource.com/node_10.x bullseye/main arm64 Packages
      
      ========== Bis hier kopieren ===========
      
      iob diag wurde beendet.
      

      Bitte nicht über den wilden Zoo an Repos wundern, das ist mein Test/Frickel-System, das soll so! 😄

      posted in ioBroker Allgemein
      Thomas Braun
      Thomas Braun
    • Upgrade von Debian 10 'Buster' auf 11 'Bullseye'

      Ich wollte hier mal für Raspberry OS festhalten, wie ich von 'Buster' auf das 'Bullseye'-Release springe.

      Gegeben ist ein Pi3 mit 1 GB, der schon etwas länger in einer Schublade lag.

      Zunächst den 'Buster' auf den letzten Stand bringen:

      pi@raspberrypi:~ $ sudo apt update
      Get:1 http://raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB]
      Get:2 http://archive.raspberrypi.org/debian buster InRelease [32.6 kB]
      E: Repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
      N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
      Do you want to accept these changes and continue updating from this repository? [y/N]
      

      Hier wurden die Repos schon auf den neuen Status 'oldstable' angepasst. Akzeptieren wir natürlich.

      Bei mir wurden 180 Pakete zum Upgrade gemeldet.

      sudo apt full-upgrade
      

      Hat mir das System auf den letzten Stand gehoben, da aber auch ein Kernel- und Firmware-Update dabei war starte ich per

      sudo reboot now
      

      einmal durch.

      Nach dem der Server wieder auf die Beine gekommen ist sollte es ungefähr so aussehen:

      pi@raspberrypi:~ $ sudo apt update
      Hit:1 http://archive.raspberrypi.org/debian buster InRelease
      Hit:2 https://repos.influxdata.com/debian buster InRelease
      Hit:3 https://packages.grafana.com/oss/deb stable InRelease
      Hit:4 https://deb.nodesource.com/node_14.x buster InRelease
      Hit:5 http://raspbian.raspberrypi.org/raspbian buster InRelease
      Reading package lists... Done
      Building dependency tree
      Reading state information... Done
      All packages are up to date.
      

      Also alle Pakete sind auf dem letzten Stand von 'Buster' und auch die einzelnen Repositories/Paketquellen verweisen auf stable oder buster.

      Jetzt stellen wir die Quellen auf das aktuelle Release 'bullseye' um. Das macht man entweder von Hand in allen .list-Dateien im Pfad /etc/apt oder mit diesen drei Befehlszeilen:

      sudo sed -i 's/buster\/updates/bullseye-security/g' /etc/apt/sources.list
      sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list
      sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list.d/*
      

      Wie man sieht wurden jetzt alle Datein auf bullseye umgestellt:

      pi@raspberrypi:~ $ sudo apt update
      Hit:1 http://archive.raspberrypi.org/debian bullseye InRelease
      Hit:2 http://raspbian.raspberrypi.org/raspbian bullseye InRelease
      Hit:3 https://repos.influxdata.com/debian bullseye InRelease
      Hit:4 https://packages.grafana.com/oss/deb stable InRelease
      Hit:5 https://deb.nodesource.com/node_14.x bullseye InRelease
      Reading package lists... Done
      Building dependency tree
      Reading state information... Done
      1067 packages can be upgraded. Run 'apt list --upgradable' to see them.
      

      1067 Pakete müssen nun aktualisiert werden:

      sudo apt full-upgrade
      

      Das führt unter Umständen zu einer Fehlermeldung, das eine unmögliche Upgrade-Konstellation herbeigeführt würde. Da dann einfach

      sudo apt install gcc-8-base
      

      ausführen, dann nochmal

      sudo apt update
      

      und dann sollte auch ein

      sudo apt full-upgrade
      

      funktionieren. Nicht davon irritieren lassen, dass ggf. einige Pakete deinstalliert werden, das ist okay.

      Die Frage, ob Services automatisch neugestartet werden sollen beantworten wir mit Ja:

          │                                                                                                                                                                                   │
          │ Restart services during package upgrades without asking?                                                                                                                          │
          │                                                                                                                                                                                   │
          │                                                       <Yes>                                                          <No>                                                         │
          │                                                                                                                                                                                   │
          └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
      
      

      Wenn der erste Schwung durch ist schauen wir per

      sudo apt update
      sudo apt full-upgrade
      

      nach ob noch etwas ansteht. Das machen wir solange bis keine Pakete mehr zum Upgrade vorgesehen sind:

      All packages are up to date.
      

      Bei Rückfragen, welche Version der Konfigurationsdateien muss mal reinschauen, ob man da ggf. eigene Anpassungen getätigt hat, ansonsten würde ich die neue Version des Maintainers übernehmen.

      Vorsichtshalber schauen wir noch in den dhcpd.service rein.

      sudo nano /etc/systemd/system/dhcpcd.service.d/wait.conf
      

      Wenn da alt sowas drin steht:

      [Service]
      ExecStart=
      ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -w
      

      ändern wir es auf neu:

      [Service]
      ExecStart=
      ExecStart=/usr/sbin/dhcpcd -q -w
      

      ab

      Nach einem erneuten

      sudo reboot now
      

      befinden wir uns bei Bullseye:

      pi@raspberrypi:~ $ neofetch
        `.::///+:/-.        --///+//-:``    pi@raspberrypi
       `+oooooooooooo:   `+oooooooooooo:    --------------
        /oooo++//ooooo:  ooooo+//+ooooo.    OS: Raspbian GNU/Linux 11 (bullseye) armv7l
        `+ooooooo:-:oo-  +o+::/ooooooo:     Host: Raspberry Pi 3 Model B Plus Rev 1.3
         `:oooooooo+``    `.oooooooo+-      Kernel: 5.10.52-v7+
           `:++ooo/.        :+ooo+/.`       Uptime: 4 mins
              ...`  `.----.` ``..           Packages: 1487 (dpkg)
           .::::-``:::::::::.`-:::-`        Shell: bash 5.1.4
          -:::-`   .:::::::-`  `-:::-       Terminal: /dev/pts/0
         `::.  `.--.`  `` `.---.``.::`      CPU: BCM2835 (4) @ 1.400GHz
             .::::::::`  -::::::::` `       Memory: 65MiB / 923MiB
       .::` .:::::::::- `::::::::::``::.
      -:::` ::::::::::.  ::::::::::.`:::-
      ::::  -::::::::.   `-::::::::  ::::
      -::-   .-:::-.``....``.-::-.   -::-
       .. ``       .::::::::.     `..`..
         -:::-`   -::::::::::`  .:::::`
         :::::::` -::::::::::` :::::::.
         .:::::::  -::::::::. ::::::::
          `-:::::`   ..--.`   ::::::.
            `...`  `...--..`  `...`
                  .::::::::::
                   `.-::::-`
      
      

      Kleine Nachpflege noch:

      sudo apt install build-essential
      
      posted in Off Topic
      Thomas Braun
      Thomas Braun
    • Phantastische Repositories und wo sie zu finden sind

      Ich schreib hier mal die Installationsbefehle für ein paar der gängigsten Repos inkl. deren keys hin. Obacht: Weniger ist mehr! Repos von außerhalb der Heim-Distribution können alles mögliche an Software in allen möglichen Zuständen enthalten. Außerdem kann z. B. ein dist-upgrade komplizierter werden, je mehr Fremd-Repos aktiv sind.
      Also genau überlegen, ob man das wirklich alles von extern beziehen muss.

      In alphabetischer Reihenfolge:

      deconz-phoscon

      wget -qO- http://phoscon.de/apt/deconz.pub.key | sudo gpg --dearmor -o /usr/share/keyrings/deconz.gpg > /dev/null
      sudo sh -c "echo 'deb [signed-by=/usr/share/keyrings/deconz.gpg] http://phoscon.de/apt/deconz $(lsb_release -cs) main' > /etc/apt/sources.list.d/deconz.list"
      

      grafana

      sudo rm /etc/apt/sources.list.d/grafana*
      sudo apt-get install -y apt-transport-https
      sudo apt-get install -y software-properties-common wget
      sudo wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
      echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
      

      influxdb inkl. influxdb2

      sudo rm /etc/apt/sources.list.d/influ*
      wget -q https://repos.influxdata.com/influxdata-archive_compat.key
      echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /usr/share/keyrings/influxdata-archive_compat.gpg > /dev/null
      echo 'deb [signed-by=/usr/share/keyrings/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
      rm influxdata-archive_compat.key
      

      mosquitto (Gilt nur für Debian-stable/old-stable-Releases!)

      
      curl -fsSL https://repo.mosquitto.org/debian/mosquitto-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/mosquitto-repo.gpg
      echo "deb [signed-by=/usr/share/keyrings/mosquitto-repo.gpg] https://repo.mosquitto.org/debian $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/mosquitto.list
      
      

      redis

      curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
      echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb `(lsb_release -cs)` main" | sudo tee /etc/apt/sources.list.d/redis.list
      
      posted in Installation
      Thomas Braun
      Thomas Braun

    Latest posts made by Thomas Braun

    • RE: Automatische Statusabfrage funktioniert nicht mehr

      @tiobb

      Es geht auch nicht (primär) um 'Ressourcen', sondern darum das System möglichst einfach zu halten und nicht mit einem kompletten GUI-Stack zu verkomplizieren.

      posted in ioBroker Allgemein
      Thomas Braun
      Thomas Braun
    • RE: ioBroker geht im Chrome nicht mehr

      @alexhaxe

      Dann sollten wir wohl besser hingehen und das gleiche machen wie die Kollegen bei Home Assisstant:
      Nur noch Installationen im hauseigenen Container oder gleich des hauseigenen Betriebssystems unterstützen.

      Da weiß man halt was man da mal reingebacken hat.

      posted in ioBroker Allgemein
      Thomas Braun
      Thomas Braun
    • RE: ioBroker geht im Chrome nicht mehr

      @alexhaxe

      Dieses Verhalten zeigt KEINES der anderen RaspberryOS Bookworm-Systeme, die hier so im Umlauf sind.
      Das wäre auch ein komplett unerwartetes und gefährliches Verhalten, denn dann könnte man das Kommando nicht in Skripten verwenden. Die Ausgaben der Kommandos müssen stabil sein, zumindest innerhalb eines Releases, ansonsten ist es ein Breaking Change. Unter anderem deswegen verwendet man ja auch z. B. nach Möglichkeit in Skripten kein 'apt' sondern 'apt-get'. Da ist nämlich die Ausgabe stabiler.

      posted in ioBroker Allgemein
      Thomas Braun
      Thomas Braun
    • RE: ioBroker geht im Chrome nicht mehr

      @alexhaxe

      Wenn ich ps anrufe, dann muss sich auch ps melden und nicht init0.
      Das tut es auch auf allen Systemen, von denen ich die Ausgabe des Skripts gesehen habe. Und das sind im Laufe der Jahre einige gewesen. Nur die Kiste von exmerci verhält sich da anders. Warum auch immer.
      Ist aber bei der zweifelhaften Provinienz des Systems (Rüber gehoben von einem Pi2, Mix aus 64Bit-Kernel und 32Bit-Userland usw.) auch müßig da zu suchen.
      Jedenfalls würde ich dem System nicht weiter über den Weg trauen. Wer weiß was da noch alles falsch läuft.

      posted in ioBroker Allgemein
      Thomas Braun
      Thomas Braun
    • RE: ioBroker geht im Chrome nicht mehr

      @exmerci sagte in ioBroker geht im Chrome nicht mehr:

      Ich wollte aber keine Beurteilung meines Systems,

      Das ist mir egal was du willst.
      Du bekommst die Analyse, die sich halt aus dem Status deines Systems ergibt.

      posted in ioBroker Allgemein
      Thomas Braun
      Thomas Braun
    • RE: ioBroker geht im Chrome nicht mehr

      @exmerci sagte in ioBroker geht im Chrome nicht mehr:

      Aber es hat anscheinend rein gar nichts mit dem Problem zu tun.

      Aber damit, das die Kiste grundsätzlich schräg dasteht, imho.

      posted in ioBroker Allgemein
      Thomas Braun
      Thomas Braun
    • RE: nodejs-update - post-install Check?

      @mcm1957

      https://github.com/ioBroker/ioBroker/pull/616

      Grothesk242 created this issue in ioBroker/ioBroker

      open Basic Post install check #616

      posted in ioBroker Allgemein
      Thomas Braun
      Thomas Braun
    • RE: Kann keine Adapter aktualisieren

      @madjack84 sagte in Kann keine Adapter aktualisieren:

      Da stehen mir zu viel Details und IPs grade drin

      Da steht höchstens in den letzten 25 Zeilen je nachdem irgendwas persönliches drin.
      IPs aus deinem eigenen Netz sind z. B. komplett egal. Private IPs werden nicht geroutet. Und wer ohnehin schon in deinem Netz ist, der kann sich per nmap eh alles anschauen.

      Daher: Vielleicht die Benachrichtigungen nach jeder Installation neu laden um sowas zu vermeiden.

      Das sind wieder die typischen 'Lügen' einer GUI. Die Ausgaben im Terminal sind immer richtig.

      posted in ioBroker Allgemein
      Thomas Braun
      Thomas Braun
    • RE: Upgrade von Debian 12 'Bookworm' auf Debian 13 'Trixie'

      @oliverio sagte in Upgrade von Debian 12 'Bookworm' auf Debian 13 'Trixie':

      Das mit den gepinnten und gehaltenen Pakete wusste ich nicht.

      Wenn du das nicht wieder 'frei laufen lässt' läufst du Gefahr, das es zu nicht auflösbaren Abhängigkeiten kommt.

      posted in Pflege des Betriebssystems
      Thomas Braun
      Thomas Braun
    • RE: nodejs-update - post-install Check?

      @mcm1957
      Hab mal auf die Schnelle was gecodet:
      Im positiven Fall schaut es dann so oder so ähnlich aus:

      CHECKING FOR COMPATIBILITY NOW!
      add node-aead-crypto-win32-x64-msvc 3.0.1
      add node-aead-crypto-win32-ia32-msvc 3.0.1
      add node-aead-crypto-win32-arm64-msvc 3.0.1
      add node-aead-crypto-linux-x64-musl 3.0.1
      add node-aead-crypto-linux-x64-gnu 3.0.1
      add node-aead-crypto-linux-arm-gnueabihf 3.0.1
      add node-aead-crypto-darwin-x64 3.0.1
      add node-aead-crypto-darwin-universal 3.0.1
      add node-aead-crypto-darwin-arm64 3.0.1
      add node-aead-crypto-android-arm64 3.0.1
      add node-aead-crypto-android-arm-eabi 3.0.1
      add fsevents 2.3.3
      
      added 12 packages in 8s
      
      267 packages are looking for funding
        run `npm fund` for details
      
      We tried our best to fix your nodejs. Please run iob diag again to verify.
      

      Im Fehlerfall dann so:

      CHECKING FOR COMPATIBILITY NOW!
      npm error code EBADENGINE
      npm error engine Unsupported engine
      npm error engine Not compatible with your version of node/npm: hap-nodejs@1.1.0
      npm error notsup Not compatible with your version of node/npm: hap-nodejs@1.1.0
      npm error notsup Required: {"node":"^18 || ^20"}
      npm error notsup Actual:   {"npm":"10.9.2","node":"v22.16.0"}
      npm error A complete log of this run can be found in: /home/echad/.npm/_logs/2025-05-27T20_36_15_751Z-debug-0.log
      
      We tried our best to fix your nodejs. Please run iob diag again to verify.
      
      *** RESTARTING ioBroker NOW! *** 
       Please refresh or restart your browser in a few moments.
      

      Im Terminal dann halt error in rot, damit man es auch sieht. Ich muss mal schauen, ob man die Fehlermeldungen auch noch genauer auswerten kann und dann eine Handlungsanweisung/Nachfrage wie:

      Die gerade installierte Version ist nicht mit allen Adaptern kompatibel. Soll die vorherige Version wieder installiert werden?

      kommt.

      posted in ioBroker Allgemein
      Thomas Braun
      Thomas Braun
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo