Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Images für ioBroker

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Images für ioBroker

    This topic has been deleted. Only users with topic management privileges can see it.
    • Bluefox
      Bluefox last edited by

      Hallo Leute!

      da rufe ich wieder zur Community.

      Obwohl ioBroker sehr einfach installiert sein konnte, sind die Anwender (besonders unerfahrene) gewöhnt mit einem Image die Benutzung zu starten.

      Ich bin nicht in der Lage alle images zu erzeugen und zu pflegen. Bis jetzt habe ich gar keins geschafft, da Homoran bis jetzt mit dem Thema beschäftigt war.

      Ich wollte sogar RasPi über QEMU starten (sogar gestatet, aber ich konnte Netzwerk nicht anbinden). Sonst konnte ich RasPI images auf meiner Windows Machine erledigen.

      Ich brauche Hilfe um die Images für die verschiedene Systeme zu erzeugen und zu pflegen (ein mal in 3-6 Monate).

      Man kann sogar einen Skript erzeugen und sogar auf github einchecken um ganz automatisch das Laufen zu lassen.

      Ich kann bei dem Erzeugen vom Skript auch helfen.

      Ich denke, dass man maximal 4GB Karte benutzen sollte (Ausnahmen sind die Systeme wo Ausgangs-Images grösser sind, z.b. bei Pine 64 8GB)

      Und dann gängige Adapter mit installieren.

      • js-controller
      admin
      
      web
      
      vis
      
      vis-hqwidgets
      
      socketio
      
      mobile
      
      history 
      

      Das geht alles über Kommandozeile.

      Als mögliche Systeme, sehe ich:

      • Raspi1,
      Raspi2/3
      
      Cubietrack,
      
      Pine64
      
      OrangePi 2
      
      Linux-Docker 
      

      Es muss aber unbedingt automatisch laufen und nach der Imagestarten nur zwei Zeilen sein:

      wget https://raw.githubusercontent.com/ioBroker/ioBroker.build/master/build/images/orangepi.sh
      chmod 777 orangepi.sh
      sudo bash orangepi.sh
      

      Damit man die Wiederholbarkeit hat und später sehr einfach Updates erzeugen konnte.

      Man kann diskutieren ob man GUI noch braucht oder GUI Sachen deinstalliert.

      Ich würde die deinstallieren um mehr RAM und SD-Platz zu gewinnen, aber ich weiß nicht ob GUI von anderen benutzt wird.

      Es währe toll, wenn für jedes System ein Freiwillige sich meldet.

      Ich kann auch für euch 2/4/8 GB SD Karten bei Amazon bestellen. Die kosten aber 3-5 €

      1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators last edited by

        Hallo Bluefox,

        Ich kann auch keine Images schreiben 😉

        Alles was ich gemacht habe, war auf einer möglichst kleinen sd-karte das Betriebssystem und ioBroker installiert, und dann mit win32 diskimager das Image "erzeugt". Und anschließend gezippt.

        Sobald es mir wieder besser geht steht das auch wieder ganz oben auf meiner Tagesordnung.

        Das mit den Skripts habe ich noch nicht ganz verstanden.

        Liegt wahrscheinlich daran, dass ich auch nicht ordnungsgemäß die Images erstellt hatte.

        Alleine um den Upload mit 700kB/sec möglichst kurz zu halten hatte ich auch alles unnötige weggelassen und wo möglich nur ein headless System benutzt.

        Gruß

        Rainer

        1 Reply Last reply Reply Quote 0
        • S
          steinwedel last edited by

          Hallo,

          ein fertiges Image ist natürlich schön. Es muss halt gepflegt werden. Von den Betriebssystemen werden im wesentlichen zwei eingesetzt: Windows und Linux. Vielleicht wäre es sinnvoll für beide Gruppen jeweils einen Installier zu schreiben.

          a) Windows

          Windows-Installer Datei

          b) Linux

          Da vermutlich die meisten Linux-Systeme Debian-basiert sind, kommt ein/mehrere deb-Paket(e) in Frage. Das halte ich am Anfang etwas ambitioniert. Ein Shell-Skript wäre vielleicht eine gute Alternative.

          1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators last edited by

            Ich hatte auch über ein Shell Script ioBroker für meine Images installiert.

            Hat einiges an Zeit gespart.

            Aber wir habe hier User, die wollen oder können nicht mit Putty & Co. arbeiten.

            Die bekommen teilweise schon beim Wort raspberry Schweiß auf der Stirn.

            Die benötigen ein ioBroker Out of the Box!

            Und genau für diese Einsteiger sind fertige Images wichtig.

            Gruß

            Rainer

            1 Reply Last reply Reply Quote 0
            • K
              kleinerDrache last edited by

              ich nutze gerade einen Cubietruck mit Armbian. Hab zwar selber noch keine Images erzeugt, habe aber vor mich in den nächsten Tagen mal damit zu beschäftigen.

              Geplant hab ich bisher eigenen Kernel auf 4.6 Basis (spi + i2c + Bluetooth + Wlan mit eingebauter Hardware) , angepasster Rpi-Monitor, Grafana, Apache2 (mit Virtuellen Hosts), Mail Server und entweder Homegear oder HMcon für Homematic . Leider gibt es nicht wirklich viele Informationen zum Cubietruck (Deutsches Forum iss ja leider dicht)

              Da sollte es kein Problem sein auch noch ioBroker mit rein zu nehmen. Am Ende soll das ganze ähnlich wie z.B. bei der ThingBox ablaufen, also Image schreiben , reinschieben , starten, alle restlichen Daten werden per Weboberfläche abgefragt wenn das Ding gestartet ist. Wenn Interesse besteht versuch ich den Broker mit rein zu nehmen, könnte aber etwas dauern hab im moment etwas wenig Zeit.

              1 Reply Last reply Reply Quote 0
              • S
                steinwedel last edited by

                Ok, verstehe ich, auch wenn ich nicht viel davon halte. Es wäre dann aber sinnvoll, die Eckdaten festzulegen.

                Zum eigentlichen Betriebssystem:

                Soll die Installationsroutine bereits komplett durchlaufen sein?

                z.B. deutsche Tastatur; deutsche Landeseinstellungen? oder was auch immer

                Soll ein fester Hostname vergeben werden? z.B. "iobroker"?

                Ich würde vorschlagen, dass das System Headless ist.

                Oder soll nur die Installationsroutine des Image angepasst werden. Raspberian ist da ein gutes Beispiel. Man könnte das Setup-Menü um eine Installationsroutine zwecks Installation des ioBroker versehen. Dann sind wir faktisch wieder bei meinem obigen Vorschlag. Ein zentrales Skript halte ich für gut. Dieser Vorschlag hat den großen Vorteil, dass man immer die aktuelle Version von ioBroker installiert. Evt. Probleme, die es beim Updaten gibt, entfallen.

                Zu Node.js: Welche Version soll installiert werden?

                1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators last edited by

                  Hier ist heute wieder ein entsprechendes Posting im HM Forum gewesen:

                  http://homematic-forum.de/forum/viewtop … 90#p301652

                  Die Einsteiger haben einfach Angst vor Linux, raspberry und ioBroker!

                  Wie gesagt, ich habe gerade mit armbian ebenfalls headless Systeme erstellt. Einfach weil ich keine 6 Stunden upload für ein Image warten wollte.

                  Im Nachhinein habe ich aber immer wieder von Usern des RasPi Images gehört, dass sie den RasPi ans TV angeschlossen haben und von da aus alles administrieren.

                  Ich habe für die Images immer eine vollständig lauffähige ioBroker Installation gemacht. Vielleicht auch, weil ich es nicht anders könnte, aber auf jeden Fall damit ein Einsteiger nur das Image auf sd Karte "brennen" und in den RasPi et al. Stecken musste und loslegen konnte.

                  Für Linux und js-unbedarfte kommen noch genug Stolpersteine.

                  Meine Images enthielten immer den aktuellen Stand an nodejs sowie alle Adapter aus dem Repository zur Zeit der Erstellung.

                  Dies ist beim heutigen Umfang nicht mehr möglich. Es sollten imho auf jeden Fall die hm Adapter, JavaScript, nodered und bis installiert sein.

                  Einheitlicher Hostname? Wie geht das, außer bei raspbian???

                  Gruß

                  Rainer

                  1 Reply Last reply Reply Quote 0
                  • K
                    kleinerDrache last edited by

                    Also mal ganz ehrlich

                    Wer nicht bereit ist das eine oder andere zu erfragen oder zu lesen ist bei einem system wie ioBroker fehl am Platze. Für Plug&Play gibt es fertige Systeme aus dem Fachhandel aber die kosten halt.

                    1 Reply Last reply Reply Quote 0
                    • S
                      steinwedel last edited by

                      Kommt immer darauf an, für wen das System sein soll. Blockly zeigt mir, dass die Reise ganz stark Richtung DAU geht. Was man davon hält, muss jeder mit sich ausmachen. Sicherlich ist es aber nicht schlecht, die Anfangshürden soggering wie möglich zu halten. Damit traut sich dann auch mal ein unbedarfter Benutzer an das nicht ganz triviale System. Ob er über kurz oder lang überfordert ist, zeigt sich dann irgendwann. Aber wir alle haben mal bescheiden angefangen. Warum sollte nicht auch ioBroker der Ausgangspunkt für diese Lernkurve sein. Ob es im Fachhandel fertige Systeme gibt, ist unerheblich. Z.B. Ubuntu ist aus meiner Sicht ein gutes Beispiel, dass kostenlose Produkte (ja ich weiss, es ist fast alles von Debian geklaut), einfach zu bedienen sein können (zumindest, wenn man nicht tiefer schürft).

                      Die Frage ist nur, wie tief soll das Level sein.

                      1 Reply Last reply Reply Quote 0
                      • Bluefox
                        Bluefox last edited by

                        @Homoran:

                        Ich kann auch keine Images schreiben 😉 `
                        Ich hoffe nicht deswegen, weil du keine Rechte hast. 😄

                        1 Reply Last reply Reply Quote 0
                        • Bluefox
                          Bluefox last edited by

                          @kleinerDrache:

                          Wenn Interesse besteht versuch ich den Broker mit rein zu nehmen, könnte aber etwas dauern hab im moment etwas wenig Zeit. `
                          Interesse besteht und man kann auch warten.

                          1 Reply Last reply Reply Quote 0
                          • Bluefox
                            Bluefox last edited by

                            @steinwedel:

                            Hallo,

                            ein fertiges Image ist natürlich schön. Es muss halt gepflegt werden. Von den Betriebssystemen werden im wesentlichen zwei eingesetzt: Windows und Linux. Vielleicht wäre es sinnvoll für beide Gruppen jeweils einen Installier zu schreiben.

                            a) Windows

                            Windows-Installer Datei

                            b) Linux

                            Da vermutlich die meisten Linux-Systeme Debian-basiert sind, kommt ein/mehrere deb-Paket(e) in Frage. Das halte ich am Anfang etwas ambitioniert. Ein Shell-Skript wäre vielleicht eine gute Alternative. `
                            Ich habe ein deb packet sogar erzeugt. In iobroker.build wird so ein deb gebaut. Mit deb war ich aber unzufrieden. "npm install iobroker" ist viel einfacher, als deb.

                            Es gibt auch msi für Windows.

                            1 Reply Last reply Reply Quote 0
                            • Bluefox
                              Bluefox last edited by

                              @steinwedel:

                              Ok, verstehe ich, auch wenn ich nicht viel davon halte. Es wäre dann aber sinnvoll, die Eckdaten festzulegen.

                              Zum eigentlichen Betriebssystem:

                              Soll die Installationsroutine bereits komplett durchlaufen sein?

                              z.B. deutsche Tastatur; deutsche Landeseinstellungen? oder was auch immer

                              Soll ein fester Hostname vergeben werden? z.B. "iobroker"?

                              Ich würde vorschlagen, dass das System Headless ist.

                              Oder soll nur die Installationsroutine des Image angepasst werden. Raspberian ist da ein gutes Beispiel. Man könnte das Setup-Menü um eine Installationsroutine zwecks Installation des ioBroker versehen. Dann sind wir faktisch wieder bei meinem obigen Vorschlag. Ein zentrales Skript halte ich für gut. Dieser Vorschlag hat den großen Vorteil, dass man immer die aktuelle Version von ioBroker installiert. Evt. Probleme, die es beim Updaten gibt, entfallen.

                              Zu Node.js: Welche Version soll installiert werden? `
                              Ok. Headless, node.js 4.5.0

                              1 Reply Last reply Reply Quote 0
                              • Bluefox
                                Bluefox last edited by

                                BTW ich habe nicht gefragt, ob es nötig ist. :lol:

                                Ich habe um Hilfe gebeten, die Images zu erstellen. 😉

                                1 Reply Last reply Reply Quote 0
                                • S
                                  steinwedel last edited by

                                  Werde mich am Wochenende für den Raspberry dran setzen.

                                  Mein Ziel, Raspberian soweit wie möglich unangetastet zu lassen und lediglich beim ersten Mal ein Installationsskript zu starten, welches die Installation von node.js / ioBroker automatisiert. Die Installationsmethode sollte auf allen Debian-System funktionieren.

                                  Gruß Gerhard

                                  1 Reply Last reply Reply Quote 0
                                  • Jey Cee
                                    Jey Cee Developer last edited by

                                    Hi Gerhard,

                                    das mit dem installationsscript hab ich auch schon versucht. So richtig gut war es nie für mich. Aber wenn ich das script noch finde lade ich es hier hoch, das dürfte dir einiges an Arbeit sparen.

                                    Gruß jey cee

                                    Gesendet von meinem Jolla mit Tapatalk

                                    1 Reply Last reply Reply Quote 0
                                    • Jey Cee
                                      Jey Cee Developer last edited by

                                      Wie versprochen kommt hier das Script.

                                      Ein paar dinge gibt es dazu zu sagen:

                                      • es wurde für den Pi 2 erstellt mit Jessie

                                      • es gibt eine Grafische abfrage für die Einstellung der IP Adresse (DHCP ja/nein, wenn Nein dann kann man die IP eingeben)

                                      • die Partition wird automatisch expandiert

                                      • alte Nodejs version wird entfernt

                                      • anschließend die aktuellste Nodejs 4.x installiert

                                      • Installation von iobroker als user pi, das muss noch geändert werden

                                      • anschließend an die iobroker Installation kann man in einer Grafischen abfrage alle Adapter auswählen die Installiert werden sollen

                                      ! ````
                                      #!/bin/bash

                                      #WARNUNG: Dieses Script löscht die Systempartition und schreibt sie neu. Dabei können Daten verloren gehen oder
                                      #beschädigt werden.
                                      #Um das Script ausführen zu können muss "sudo chmod +x install.sh" ausgeführt werden.

                                      #Durch Eingabe auf Grafischeroberflächer ersetzt.
                                      #use_static_ip="yes"
                                      #ip_raspi="192.168.0.248"
                                      #ip_router="192.168.0.1"
                                      if (whiptail --title "Netzwerk" --yesno "Feste IP Adresse für den ioBroker Host verwenden? Diese Einstellung gilt nur für LAN, nicht für WLAN!!!" 10 60)
                                      then
                                      use_static_ip="yes"
                                      ip_host=$(whiptail --title "Netzwerk" --inputbox "IP Adresse des iobroker Hosts: " 10 60 z.B._192.168.0.1 3>&1 1>&2 2>&3)
                                      ip_router=$(whiptail --title "Netzwerk" --inputbox "IP Adresse des Routers/Gateway: " 10 60 z.B._192.168.0.1 3>&1 1>&2 2>&3)
                                      fi

                                      #Partition erweitern. Es muss geprüft werden ob sda2 stimmt.
                                      tmp_sysPart=mount | grep "on / "
                                      set - $tmp_sysPart
                                      sysPart=$1

                                      #System Disk festlegen/auswählen
                                      if [[ $sysPart == "/dev/sda"* ]]
                                      then
                                      sysDisk="${sysPart%?}"
                                      else
                                      sysDisk=$sysPart
                                      fi

                                      #sed ermöglicht die Eingabe von Kommandos in fdisk, weil fdisk keine Kommandozeilen parameter unterstützt.
                                      string=fdisk $sysDisk -l |grep "$sysPart"
                                      set - $string
                                      startSector=$2
                                      partNumber="${1: -1}"

                                      #Partition löschen und neu anlegen
                                      sed -e 's/\t([+0-9a-zA-Z])[ \t]./\1/' << EOF | fdisk "/dev/sda"
                                      d
                                      $partNumber
                                      n
                                      p

                                      $startSector

                                      w
                                      EOF

                                      partprobe "$sysDisk"
                                      resize2fs "$sysPart"

                                      #System update.
                                      apt-get update
                                      apt-get -y upgrade

                                      #Netzwerkkonfiguration ändern wenn use_static_ip yes ist.
                                      if [[ $use_static_ip == "yes" ]]
                                      then
                                      dhcpcd_status=service dhcpcd status | grep "Active: "
                                      set - $dhcpcd_status
                                      if [[ $3 == "(running)" ]]
                                      then
                                      echo "interface eth0" >> /etc/dhcpcd.conf
                                      echo "static ip_address=$ip_host/24" >> /etc/dhcpcd.conf
                                      echo "static routers=$ip_router" >> /etc/dhcpcd.conf
                                      echo "static domain_name_servers=$ip_router" >> /etc/dhcpcd.conf

                                      	else  
                                      		service dhcpcd start 
                                      			echo "interface eth0" >> /etc/dhcpcd.conf  
                                      			echo "static ip_address=$ip_host/24" >> /etc/dhcpcd.conf  
                                      			echo "static routers=$ip_router" >> /etc/dhcpcd.conf  
                                      			echo "static domain_name_servers=$ip_router" >> /etc/dhcpcd.conf  
                                      	fi 
                                      	#DHCP für das Ethernet interface deaktivieren. Nicht Empfohlene Methode. 
                                      	#cat /etc/dhcpcd.conf  
                                      	#echo "denyinterfaces eth0" >> /etc/dhcpcd.conf  
                                      
                                      	#Statische IP für das Ethernet interface vergeben, ip des Pi's und des Routers kommen aus den Variablen am Anfang des Scripts. 
                                      	#sed -i "s/iface eth0 inet .*/auto eth0 \n allow-hotplug eth0 \n iface eth0 inet static \n address $ip_raspi \n netmask 255.255.255.0 \n gateway $ip_router \n dns-nameservers $ip_router \n /" /etc/network/interfaces 
                                      

                                      fi

                                      #Vorinstalliertes Node paket deinstallieren, veraltet version.
                                      apt-get remove -y node
                                      apt-get remove -y nodejs
                                      apt-get autoremove -y
                                      rm -r bin/node bin/node-waf include/node lib/node lib/pkgconfig/nodejs.pc share/man/man1/node.1

                                      #NodeJS von Nodesource.com installieren.
                                      curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
                                      apt-get install -y nodejs:

                                      #Build essentials installieren.
                                      apt-get install -y build-essential

                                      #Installation von iobroker.
                                      mkdir /opt/iobroker

                                      cd /opt/iobroker
                                      npm install iobroker

                                      #Installation von Adaptern. Es wird eine Grafische Oberfläche angezeigt in der man die Adapter auswählen kann.
                                      allAdapter=cat /opt/iobroker/node_modules/iobroker.js-controller/conf/sources-dist.json | grep ": {"
                                      for fn in $allAdapter; do
                                      if [[ $fn != "{" ]] && [[ $fn != "js-controller" ]] && [[ $fn != "admin" ]]
                                      then
                                      fn_tmp="${fn%:}"
                                      listChk="$listChk $fn_tmp $fn_tmp OFF"
                                      fi
                                      done

                                      Auswahl=$(whiptail --title "Adapter Auswahl" --checklist "Wähle die Adapter aus die Installiert werden sollen" 25 80 15 $listChk 3>&1 1>&2 2>&3)

                                      cd /opt/iobroker
                                      for adapter in $Auswahl; do
                                      installName="${adapter##""}"
                                      installName2="${installName%%""}"
                                      ./iobroker add $installName2 --enabled
                                      done

                                      #ioBroker Autostart einrichten und starten.
                                      #bash /opt/iobroker/node_modules/iobroker/install/linux/install.sh

                                      ! ````

                                      Idealerweise sollte nach der Erweiterung der Partition ein Neustart durchgeführt werden, weil der verfügbare Speicher sonst zu wenig sein kann je nach Anzahl der ausgewählten Adapter. Das hab ich nicht mehr umgesetzt weil ich mich dann vom Pi als iobroker host verabschiedet hab.

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        steinwedel last edited by

                                        Hallo Jey Cee,

                                        danke für Dein Skript. Werde wahrscheinlich raspi-config nicht durch ein Skript ersetzen, sondern einen eigenen Menüpunkt für iobroker einbauen.

                                        Gruß Gerhard

                                        1 Reply Last reply Reply Quote 0
                                        • Homoran
                                          Homoran Global Moderator Administrators last edited by

                                          Ich habe auf die Schnelle eben eine Installation aufgesetzt, un werde daraus ein image nach meiner "altbewährten" Methode erstellen.

                                          Es enthält Raspbian Jessie Lite mit ioBroker mit redis sowie den folgenden Adaptern:
                                          144_iobroker_image_rpi2_20160904.jpg

                                          Es passt auf eine 2GB Karte (=gut für den Download)

                                          da ist noch ein wenig Platz drauf:

                                          Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
                                          /dev/root       1,8G    1,3G  414M   76% /
                                          devtmpfs        459M       0  459M    0% /dev
                                          tmpfs           463M       0  463M    0% /dev/shm
                                          tmpfs           463M    6,2M  457M    2% /run
                                          tmpfs           5,0M    4,0K  5,0M    1% /run/lock
                                          tmpfs           463M       0  463M    0% /sys/fs/cgroup
                                          /dev/mmcblk0p1   63M     21M   43M   33% /boot
                                          
                                          

                                          ich könnte noch etwas draufpacken. Bitte Info, sollte da etwas essentielles fehlen.
                                          144_iobroker_image_rpi2_20160904_top.jpg

                                          Gruß

                                          Rainer

                                          PS@Bluefox: du hast PN

                                          1 Reply Last reply Reply Quote 0
                                          • paul53
                                            paul53 last edited by

                                            @Homoran:

                                            ich könnte noch etwas draufpacken. `
                                            Das ist meiner Meinung nach schon zu viel. Ich würde als erstes einige Adapter deinstallieren (z.B. Rega, VIS). Der Admin-Adapter genügt, um daraus die gewünschten Adapter zu installieren. Die Bedürfnisse der Nutzer sind sehr unterschiedlich.

                                            Bitte bei der Veröffentlichung die Versionen von node, js-controller und admin angeben !

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            731
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            27
                                            5684
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo