homeean (Skriptsammlung für Webhook-APIs für homee und einen RaspBerry Pi)

Ich fände das auch total geil. Leider kann auch ich dazu aber vorerst nichts beitragen.
Alleine wegen Sonos wäre ich schon sehr interessiert.

dann alle mal @stfnhmplr (siehe sein post oben) ermutigen das Build-Tool zu bauen. Ich denke das wäre wirklich die nachhaltigste Lösung sowas “einfach” und zukunftssicher bereitzustellen.

1 „Gefällt mir“

Eine User-Auswahl wäre natürlich klasse. Hosten könnte man das Script auf GitHub. Ich unterstütze gerne mit Ergänzungen und Tests.

Ich stelle mir noch ein Archiv vor, welches man nur herunterlädt und entpackt. Dieses enthält das ausführbare script und alle erforderlichen configfiles welche entweder für Autostart erzeugt werden müssen oder für andere tools editiert werden müssen. Dieses wird dann vom Script erledigt. Da es ein neu aufgesetzter Pi ist, kann hier die Methode, der Einfachheit halber, überschreiben sein.

1 „Gefällt mir“

noch besser wäre es, wenn sich das skript nach dem start selbst aktualisieren kann, sprich check nach dem start ob sich auf dem Repo auf GitHub was geändert hat und dann sich selbst oder geänderte teilskripte “dynamisch” runterladen…

#!/bin/bash

set -e
set -o pipefail

if [[ „$EUID“ -ne 0 ]]; then
echo „Run this script as root“ 1>&2
exit 1
fi

DIR=„$( cd „$( dirname „${BASH_SOURCE[0]}“ )“ && pwd )“
packages=„???“
services=„???“

locale-gen de_DE.UTF-8

export LANGUAGE=de_DE.UTF-8
export LANG=de_DE.UTF-8
export LC_TYPE=de_DE.UTF-8
export LC_ALL=de_DE.UTF-8

apt-get update
apt-get -y upgrade

apt-get -y install $packages

systemctl disable $services

apt-get autoclean
apt-get -y autoremove

tput bold; echo „Neustart“; tput sgr0
shutdown -r now

Das wäre das Initialscript an das man nun einfach die Teilscripte für weitere Funktionen einfügt.

3 „Gefällt mir“

Ich persönlich habe zwar erst bald einen Homee, dafür aber jetzt schon einen Raspberry mit so einigen Node-Red-Flows. Als angehender Homee-Neuling mal meine Ideen dazu:

Mögliche Ideen zur Umsetzung des Installationsscripts - 2 Varianten:

A) Shell Script liegt auf GitHub o. ä… Der User kann während der Installation entscheiden, was er installieren möchte:
Möchtest du Node-Red?
Möchtest du die Sonos-Node?
Möchtest du die Fritz!Box-Node?

Möchtest du Homebridge?

B) Ein Dienst im Stil von Ninite.com. Eine Website (bspw. PHP-basiert), auf der der Nutzer zuvor auswählen kann, welche Module er möchte. Daraus wird dann ein Shell Script für die Installation generiert. Programmieraufwand ist hier auch überschaubar, da ja “nur” das Shellscript zusammengestellt werden muss.

Rein vom Nutzen betrachtet, sehe ich in einer Smarthome-zentrierten Flow-Datenbank für Node-Red sogar noch mehr Potential, als in dem Installationsscript.
An sich gibt es das ja schon (flows.nodered.org), jedoch nur auf Englisch und nicht Smarthome-spezialisiert.
Das Script dafür steht auf GitHub zur Verfügung.

Sieht auch sehr nett aus.

Aber auch noch ne Website zu erstellen ist zu ambitioniert.

Würde eher alles auf der console lassen und im ersten Prompt eine Auswahl treffen lassen.

1 ist komplett
2 ohne xxx
3 ohne xxx und ccc

Finde die Idee auch sehr gut. Eine Möglichkeit wäre auch ein Config Tool wie z.B. hier:

https://docs.openhab.org/installation/openhabian.html

Geile Sache was du da angestoßen hast @hblaschka :heart_eyes::heart_eyes::heart_eyes:

3 „Gefällt mir“

So zum Beispiel.

Mit 124 Wähle ich 1.; 2.; und 4. aus.

2 „Gefällt mir“

Ich sehe hier schlummert sehr viel Potential.
Also lasst euren Ideen freien Lauf.

Das ist ja das geile an der Verwendung von vorhandenen tools wie NPM, APT und git. Wenn man diese im script nutzt wird immer das aktuelle release installiert.

Die Flow Datembank ist sicherlich interessant, jedoch ist jedes Smart Home anders und jede Funktion ist anders.
In der Grundanlage jedoch nicht schlecht.
Für jemanden der nicht so recht weiß was er möchte ist es eine Möglichkeit seinen Horizont zu erweitern.

2 „Gefällt mir“

oder so vielleicht noch cooler…

4 „Gefällt mir“

Sooo ihr alten Zeiträuber :wink:

Homebridge und Node-Red sind drin und müssen nur noch getestet werden.

Habe einfach die gut strukturierten Anleitungen von @stfnhmplr genommen und die Befehle nur eingefügt. Auch das aktualisierte Autostart-script zu Homebridge ist drin.

@stfnhmplr Ist das für dich OK? Möchtest du es dir mal anschauen? Vielleicht hast du Ergänzungen?

Mit CCU habe ich null Erfahrung. Dafür bräuchte ich mindestens ne getestete Anleitung die vielleicht sogar 1:1 umgesetzt werden kann.

Vorschläge erwünscht.

Aktueller Status.

beim aufrufen wird ein sudo apt-get update && sudo apt-get upgrade && sudo apt-get install dialog

(damit werden die Quellen aktualisiert und sicher gestellt, dass das Menü funktioniert.

dann startet im Screenshot gezeigter prompt.

Mein momentanes Problem ist, dass nach jeder einzelnen Installation das script endet und es für jede weiter Installation.

Ich habe jetzt mit:

function stage1 {
while true;do

CODE

done
}
function stage2 {
while true;do

CODE

done
}
stage1

Sprünge eingebaut, welche auch soweit funktionieren. Allerdings wird nur leider auch beim Abbrechen das Menü erneut ausgeführt. Hat da jemand Erfahrung damit oder ne bessere Idee?

1 „Gefällt mir“

Stimmt, aber wir könnten uns ja drauf einigen homee-flows dort (https://flows.nodered.org) zu publishen und solche dann in Threads immer dort zu verlinken. Wenn im Namen des Flows immer das Stichwort „homee“ auftaucht, dann sind sie auch für alle auffindbar.

Du brauchst halt nur einen GitHub-Account.

Wer macht den Anfang? Hat jemand mal an den homee-Log-Flows von Stefan rumgespielt?

Am besten helfen kann man natürlich nur, wenn man den Code vor Augen hat.
Vom Prinzip her würde ich es mir so vorstellen:

function menu {
  #Hier Menü darstellen - hier nur als Bsp. Input "1", "2", "3" oder "stop"
  echo -n "Input bitte:"
  read auswahl

  case "$auswahl" in
	1)
		stage1
		;;
	2)
		stage2
		;;
	3)
		stage3
		;;
	stop)
		exit
		;;
  esac
}

function stage1 {
echo "NPM intallieren"
menu
}

function stage2 {
echo "NodeJS installieren"
menu
}

function stage3 {
echo "Homebridge installieren"
menu
}

menu

Mit einen ganz normalen case auf Zeilenebene ist das kein Problem. Ich hätte es nur gerne in “dialog” gemacht, da hier ein ansprechendes Menü kreiert wird, dass mit den Cursortasten zu bedienen ist.

Ich spiele mal noch ein bisschen rum.

Edit: Habe mir gerade deinen Code nochmal näher angeschaut. Mit den stages in der caseausgabe könnte es funktionieren. Teste ich mal.

Ich werde heute aber zu nicht all zu viel kommen.

Edit: Es hat funktioniert. Mega. Das war der Entscheidende Hinweis. Vielen Dank.

Damit ist das Gerät fertig und kann getestet werden. Stelle es auf GitHub und teile hier den Link

Ich habe das schon einmal laufen gehabt mit Ausgabe an ein Logfile. Allerdings war nach kurzer Zeit mein homee nicht mehr erreichbar im LAN. Da half nur es wieder zu deaktivieren.
Es könnte aber sein dass das am damaligen Set lag. War zu dem Zeitpunkt noch in der Spielephase mit Node-Red und habe alles kreuz und quer installiert und deinstalliert.

Einen Flow dafür zu erzeugen, welcher einfach nur importiert werden muss, ist aber kein Problem.

Edit: Danach hätte ich ein Script gebraucht, was den Raspi neu aufsetzt :joy:

Sieht gut aus. Natürlich kannst du dich an den Sachen von meiner Seite bedienen. Hast du bei der Installation von homebridge die aktualisierte Variante des Autostarts genommen? https://himpler.com/blog/homebridge-nach-absturz-automatisch-neu-starten
Vielleicht kannst du das Skript als Repo bei Github veröffentlichen. Dann kann man parallel immer drauf gucken und ich kanns am WE mal testen. Bei diesen Case Dingern bin ich allerdings überfragt. Das übersteigt meine Bash Kenntnisse.

Zur Flow Datenbank: Ich könnte sowas kurzfristig über meine Website bereitstellen. Der Aufwand hält sich ja in Grenzen. Hätte den Vorteil, dass man nicht lange in den ganzen Flows suchen muss.
EDIT: Habe gerade gesehen, dass man in der Node-RED Datenbank auch Tags vergeben kann. Damit ist der Suchaufwand ja dann gering.

4 „Gefällt mir“