NEWS
Images für ioBroker
-
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 €
-
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
-
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 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
-
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.
-
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?
-
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
-
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.
-
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.
-
Ich kann auch keine Images schreiben `
Ich hoffe nicht deswegen, weil du keine Rechte hast. -
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. -
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.
-
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 -
BTW ich habe nicht gefragt, ob es nötig ist. :lol:
Ich habe um Hilfe gebeten, die Images zu erstellen.
-
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
-
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
-
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
EOFpartprobe "$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.confelse 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/iobrokercd /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
doneAuswahl=$(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.
-
-
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
-
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:
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.
Gruß
Rainer
PS@Bluefox: du hast PN
-
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 !