Kann man als Command auch einen http Befehl absetzen?
zB. http://rasp-ip:5005/Wohnzimmer/volumes/+5
Um so per Trigger das Volume Up der Sonos Boxen zu steuern?
Ok .. ausprobiert und hat sich als nicht tauglich erwiesen für das Sonos http API.
Kann man als Command auch einen http Befehl absetzen?
zB. http://rasp-ip:5005/Wohnzimmer/volumes/+5
Um so per Trigger das Volume Up der Sonos Boxen zu steuern?
Ok .. ausprobiert und hat sich als nicht tauglich erwiesen für das Sonos http API.
Moinsen,
die 10Watt Transformatoren sollen 3 Omlopp LED Leisten versorgen können.
die 30Watt Transformatoren, wer hätte es gedacht, 9 Omlopp LED Leisten.
Vermutlich wird die Leistung damit um die 3 Watt pro Gerät liegen.
Die Ikea Transformatoren haben nur sehr eigenwillige Steckverbindungen.
Aber das evtl über den Transformator auch vorhandene Panels/Leds versorgt werden können klingt gut.
Es läuft jetzt wunderbar unter dem User "Pi".
Jetzt muss ich wohl mal das homebridge-http einrichten, damit ich auch die Befehle in Homekit darstellen kann.
Auf Wunsch kann ich auch gern nochmal eine komplette Anleitung fertig machen mit der Installation der Pakete und allem drum und dran.
sschuste Möge Dein Feierabendbierchen heute ganz besonders gut schmecken! Vielen Dank für die reichhaltigen Tipps und Anleitungshinweise!
Nur um noch einmal auf Nr. sicher zu gehen:
Meine zuvor bestehende Datei: sonosapistart.sh habe in den Ordner /home/pi verschoben.
ich habe unter dem Pfad /etc/systemd/system/ folgende Datei erstellt: sonos-http-api-master.service
mit dem Inhalt:
[Unit]
Description=Sonos API
After=network-online.target
Wants=network-online.target
[Service]
User=sonosapi
WorkingDirectory=/home/pi/node-sonos-http-api-master
ExecStart=/usr/bin/node server.js
Restart=on-failure
RestartSec=30
[Install]
WantedBy=multi-user.target
Alles anzeigen
Dann habe ich folgende Befehle abesetzt:
sudo systemctl daemon-reload
sudo systemctl enable sonos-http-api-master
sudo systemctl restart sonos-http-api-master
sudo journalctl -au sonos-http-api-master
Dann bin ich bei der Fehlerschleife gelandet.
Mar 05 10:03:12 raspberrypi systemd[1]: sonos-http-api-master.service: Main process exited, code=exited, status=217/USER
Mar 05 10:03:12 raspberrypi systemd[1]: sonos-http-api-master.service: Unit entered failed state.
Mar 05 10:03:12 raspberrypi systemd[1]: sonos-http-api-master.service: Failed with result 'exit-code'.
Mar 05 10:03:42 raspberrypi systemd[1]: sonos-http-api-master.service: Service hold-off time over, scheduling restart.
Mar 05 10:03:42 raspberrypi systemd[1]: Stopped Sonos API.
Mar 05 10:03:42 raspberrypi systemd[1]: Started Sonos API.
Kann es sein, dass der Fehler Status=217 /User auf ein Problem mit dem User=sonosapi hinweist?!
Nachtrag:
Ok .. mit dem User PI scheint der Dienst jetzt gestartet zu sein! ![]()
Vielen vielen Dank!
Whoaw sschuste
erst einmal vielen Dank für die ausführliche Anleitung.
Leider stoße ich doch noch auf einen Fehler.
Hier habe ich die beiden Pfade angepasst.
[Unit]
Description=Sonos API
After=network-online.target
Wants=network-online.target
[Service]
User=sonosapi
WorkingDirectory=/home/pi/node-sonos-http-api-master
ExecStart=/usr/local/bin/node server.js
Restart=on-failure
RestartSec=30
[Install]
WantedBy=multi-user.target
Alles anzeigen
Wenn ich diesen Befehl absetze erhalte ich nun die Meldung:
pi@raspberrypi:~ $ sudo systemctl enable node-sonos-http-api-master
Failed to enable unit: File node-sonos-http-api-master.service: No such file or directory
Muss der Befehl abgesetzt werden auf den Ordner oder auf die erstellte Service Datei?
Wenn ich statt dessen die 3 Befehle so absetze:
sudo systemctl enable sonos-http-api-master
sudo systemctl restart sonos-http-api-master
sudo journalctl -au sonos-http-api-master
und dazu habe ich noch einmal den ExecStart von /usr/local/bin/node auf /usr/bin/node geändert.
Dann erhalte ich nach dem 3. Befehl eine Fehlerschleife:
Mar 05 10:03:12 raspberrypi systemd[1]: sonos-http-api-master.service: Main process exited, code=exited, status=217/USER
Mar 05 10:03:12 raspberrypi systemd[1]: sonos-http-api-master.service: Unit entered failed state.
Mar 05 10:03:12 raspberrypi systemd[1]: sonos-http-api-master.service: Failed with result 'exit-code'.
Mar 05 10:03:42 raspberrypi systemd[1]: sonos-http-api-master.service: Service hold-off time over, scheduling restart.
Mar 05 10:03:42 raspberrypi systemd[1]: Stopped Sonos API.
Mar 05 10:03:42 raspberrypi systemd[1]: Started Sonos API.
Die Plättchen etwas anders arrangieren, dann noch grau anmalen und man könnte meinen da leuchtet der Todesstern bei Dir! ![]()
![]()
Das Startscript hat sich noch nie sauber starten lassen.
Habe auch heute erst angefangen, die Sonos HTTP Api einzubinden.
Im Ordner /etc/init.d/ liegt eine Datei namens sonosapistart.sh
Der Inhalt der Datei lautet:
dir="/home/pi/node-sonos-http-api-master"
cmd="npm start"
user="pi"
sudo chmod 755 /etc/init.d/sonosapistart.sh wurde durchgeführt.
Wenn ich den Dienst/Service nun starten will schlägt dies schon fehl.
sudo service sonosapistart.sh start
Job for sonosapistart.service failed because the control process exited with error code.
See "systemctl status sonosapistart.service" and "journalctl -xe" for details.
Wenn ich mich in dem Ordner /home/pi/node-sonos-http-api-master befinde kann ich den Befehl npm-start sauber absetzen.
Nachdem ich nun einen Neustart aus der App heraus vom Raspi gemacht habe laufen nun auch alle meine anderen Plugins auf einen Fehler.
![]()
Mal schauen, wie ich das jetzt wieder behoben kriege.
Hat wohl nur etwas lang gedauert bis alles wieder zum Starten bewegt werden konnte.
Reicht es aus diesen Befehl
sudo systemctl daemon-reload
abzusetzen, um dem Problem Herr zu werden?
Ok .. reicht natürlich nicht. Wie auch immer ich jetzt dem User Pi die Berechtigung gebe, das Script auszuführen.![]()
Das scheint auch gar nicht mal das Problem zu sein.
Wenn ich den Server händisch starte kann ich einen http Befehl vom Webbrowser absetzen und die Sonos Gruppe muten.
Die Frage ist, warum mein Script für den Autostart nicht korrekt arbeitet.
Der 3zeiler liegt korrekt im Verzeichnis /etc/init.d
Muss ich für den Pi User noch mehr Berechtigungen einrichten?
Hatte ja deswegen oben mein Ergebnis geposted als ich ein Start vom Script durchgeführt hatte.
Wenn ich den Server händisch starte erhalte ich die folgende Meldung:
pi@raspberrypi:~ $ curl -I http://0.0.0.0:5005
HTTP/1.1 200 OK
server: node-static/0.7.9
cache-control: max-age=3600
Etag: "288685-4669-1516892402000"
Date: Sun, 04 Mar 2018 19:56:13 GMT
Last-Modified: Thu, 25 Jan 2018 15:00:02 GMT
Content-Type: text/html
Content-Length: 4669
Connection: keep-alive
Also irgendwie greift mein Autostart File nicht.
Nur was mache ich falsch ![]()
Nicht wundern .. habe meine Start Datei jetzt noch einmal neu angelegt als sonosapistart ...
pi@raspberrypi:/etc/init.d $ sudo service sonosapistart restart
Warning: sonosapistart.service changed on disk. Run 'systemctl daemon-reload' to re load units.
Job for sonosapistart.service failed because the control process exited with error code.
See "systemctl status sonosapistart.service" and "journalctl -xe" for details.
pi@raspberrypi:/etc/init.d $ systemctl daemon-reload
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
Authentication is required to reload the systemd state.
Multiple identities can be used for authentication:
1. ,,, (pi)
2. root
Choose identity to authenticate as (1-2): 1
Password:
==== AUTHENTICATION COMPLETE ===
pi@raspberrypi:/etc/init.d $ sudo service sonosapistart restart
Job for sonosapistart.service failed because the control process exited with error code.
See "systemctl status sonosapistart.service" and "journalctl -xe" for details.
pi@raspberrypi:/etc/init.d $ systemctl status sonosapistart.service
? sonosapistart.service
Loaded: loaded (/etc/init.d/sonosapistart; generated; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2018-03-04 21:18:56 CET; 57s ago
Docs: man:systemd-sysv-generator(8)
Process: 1441 ExecStart=/etc/init.d/sonosapistart start (code=exited, status=203/
Mar 04 21:18:56 raspberrypi systemd[1]: Starting sonosapistart.service...
Mar 04 21:18:56 raspberrypi systemd[1]: sonosapistart.service: Control process exit
Mar 04 21:18:56 raspberrypi systemd[1]: Failed to start sonosapistart.service.
Mar 04 21:18:56 raspberrypi systemd[1]: sonosapistart.service: Unit entered failed
Mar 04 21:18:56 raspberrypi systemd[1]: sonosapistart.service: Failed with result '
lines 1-11/11 (END)
? sonosapistart.service
Loaded: loaded (/etc/init.d/sonosapistart; generated; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2018-03-04 21:18:56 CET; 57s ago
Docs: man:systemd-sysv-generator(8)
Process: 1441 ExecStart=/etc/init.d/sonosapistart start (code=exited, status=203/EXEC)
Mar 04 21:18:56 raspberrypi systemd[1]: Starting sonosapistart.service...
Mar 04 21:18:56 raspberrypi systemd[1]: sonosapistart.service: Control process exited, co
Mar 04 21:18:56 raspberrypi systemd[1]: Failed to start sonosapistart.service.
Mar 04 21:18:56 raspberrypi systemd[1]: sonosapistart.service: Unit entered failed state.
Mar 04 21:18:56 raspberrypi systemd[1]: sonosapistart.service: Failed with result 'exit-c
Ich bin echt ratlos warum er mein Startscript nicht mag... ![]()
Hm irgendwas scheint wirklich nicht zu passen.
curl -I http://0.0.0.0:5005
curl: (7) Failed to connect to 0.0.0.0 port 5005: Connection refused
Hm wenn ich eine Status Abfrage durchführe erhalte ich keine Rückmeldung.
Installiert habe ich sie.
Wenn ich npm -start ausführe bekomme ich auch die Meldung, dass der Server auf 0.0.0.0 Port 5005 horcht.
Dies führe ich unter note-sonos-http-api-master aus (geändert entsprechend Deines Startjobs)
dir="/home/pi/node-sonos-http-api-master"
cmd="node server.js"
user="pi"
Aber ich habe keinen node server.js dort im Verzeichnis.
Evtl. liegt es noch am Pfad hier? Mal schauen, wo die node server.js liegt.
Nachtrag:
Ok ...wenn ich sudo node server.js aufrufe habe ich den gleichen Effekt mit http server listening on 0.0.0.0 port 5005
Aber warum erhalte ich denn keine Rückmeldung auf die Status Abfrage. Was anderes macht doch mein Cronjob auch nicht unter init.d
Muss ich vorab noch eine andere node Version installieren?!
Moinsen,
irgendwie stoße ich gerade auf ein Problem bei der Einrichtung.
Ich bin wie folgt vorgegangen:
1. Installation Sonos API
wget https://github.com/jishi/node-…tp-api/archive/master.zip
unzip master.zip
cd node-sonos-http-api-master
2. Module und Co mit Node js Server bekannt gemacht
cd /home/pi/node-sonos-http-api-master
npm install --production
3. mit einem Editor den Startjob " sonos-http-api-master" angelegt
dir="/home/pi/node-sonos-http-api-master"
cmd="npm start"
user="pi"
4. Die Datei nach /ect/inid.d kopiert und wie folgt ausgeführt:
sudo chmod 755 /etc/init.d/sonos-hp-api-master
5. Raspi durchgestartet
6. https://ipvomRaspi:5005/Wohnzimmer/mute ausprobiert ohne Effekt
7. sudo npm start direkt ausprobiert und gesehen:
INFO http server listening on 0.0.0.0 port 5005
Irgendwie scheint der Dienst nicht auf der IP vom Raspi zu agieren.
Ich habe noch kein homebridge-http Plugin installiert.
Ist dies evtl die Krux dafür?
Ok, das wäre noch ein Grund.
Wobei ich mir dann nur ein Gateway in den Schrank legen würde, um die Lampen zur Not upgraden zu können.
Aber guter Hinweis! Danke dafür. smartHansen
Hängt sicherlich auch ein wenig davon ab, was man an Lampen einsetzt.
Da ich persönlich nur GU10 Lampen einsetze mit nur einem Lichtspektrum und diese damit eh nur Ein/Aus/Dimmen kann, wird aus meiner Sicht ein Update nicht wirklich viel bringen.
Interessanter wird das sicher bei Zubehör wenn es Zusatzfunktionen gibt oder wenn die Hue Bridge an die Auslastung kommt.
Wenn Du eine Philips Hue Bridge haben solltest, kannst Du die IKEA Lampen auch hier koppeln und dann über das homebridge-Hue Plugin in homekit einbinden.
Solltest Du keine Hue Bridge besitzen, benötigst Du noch das Gateway um diese in homekit einzubinden.
Es gibt hierzu aber auch schon einen Ikea Tradfri Thread, wo dies alles beschrieben ist.
Der Ordner homebridge mit den Scripts und .homebridge (Automatismen/comfig.json) liegen unter dem Ordner /root (jedenfalls in meinem Fall, hab ganz normal über die App die homebridge aufgesetzt).
Hab grad mal getestet mit Filezilla per sftp und user Pi.
Kopieren hat einwandfrei geklappt.
Ok .. da war mein Denkfehler. Danke.
Nastra ist der Registierungscode der Homebridge in den Config Files eingebunden?
Stimmt ... wollte meinen Beitrag auch grad noch editieren als ich die Anleitung nochmal überflogen hatte.
Wenn man die ganzen Configs zurückspielt bekommt man also den gleichen Code für die Homebridge wenn man sie wieder in Homekit einbindet?