Ordner und Dateien, deren Namen mit einem . beginnen, werden als versteckte Dateien behandelt. Möglicherweise musst du in deinem WinSCP einstellen, dass versteckte Dateien angezeigt werden.
Stefan
Ordner und Dateien, deren Namen mit einem . beginnen, werden als versteckte Dateien behandelt. Möglicherweise musst du in deinem WinSCP einstellen, dass versteckte Dateien angezeigt werden.
Stefan
Woher weis das Haus, wo ich wohne?
Das Haus weiß rein gar nichts. Dein iPhone weiß das. Wenn du dich in die Nähe der Geo-Koordinaten für dein Haus bewegst, dann registriert das dein Phone und löst eine Aktion aus.
Beim Rest kann ich dir leider nicht helfen. Ich bin hier nur einer.
Stefan
Aber der Anyone erschliesst mich noch nicht so vom Nutzen.
Den kann man dazu benutzen, um beispielsweise seine Wohngemeinschaft nicht frierender Dunkelheit auszusetzen:
Automation:
Wenn ich das Haus verlasse, dann schalte Licht und Heizung aus, außer es ist noch jemand (Anyone) zu Hause.
Wenn man nur zu zweit lebt, kann man das auch anders lösen, aber wenn man zwölf Kinder geplant hat, kann man sich mit Anyone ersparen, alle neuen Monate die Automation anzupassen ![]()
Stefan
... da werd ich hellhörig
wo konfiguriert man den Ort der config.json?
Du kannst den Pfad bestimmen, an dem homebrigde nach seinen Dateien sucht. Das betrifft nicht nur die config.json, sondern alle Dateien, die man im ~/.homebridge-Verzeichnis findet: also die Datei config.json und die beiden Verzeichnisse accessories und persist.
Das wird mit dem Parameter -U gemacht:
homebridge -U /var/lib/homebridge
Das kannst du so in dein Startscript eintragen.
homebridge --help gibt weitere Infos (kann bei laufender Homebridge ausgeführt werden).
pi@raspberrypi:~ $ homebridge --help
Usage: homebridge [options]
Options:
-h, --help output usage information
-V, --version output the version number
-P, --plugin-path [path] look for plugins installed at [path] as well as the default locations ([path] can also point to a single plugin)
-U, --user-storage-path [path] look for homebridge user files at [path] instead of the default location (~/.homebridge)
-D, --debug turn on debug level logging
-I, --insecure allow unauthenticated requests (for easier hacking)
Alles anzeigen
Der Übersicht halber habe ich im obigen Output die Avahi-Warnings entfernt.
Stefan
Atom habe ich mal auf Linux-Maschinen getestet. Schon ok. Auf dem Mac nutze ich TextWrangler. Damit kann man eine Textdatei auch direkt über sftp laden. Das ist eigentlich das, was du suchst.
Ich selbst bearbeite meine config.json immer über die Shell mit vim. Sicherlich nicht die Art von Software, auf die du stehst ![]()
Deine config.json befindet sich entweder in /root/.homebridge/config.json (nicht toll) oder in /home/pi/.homebridge/config.json. Ich hab sie bei mir nach /var/lib/homebridge/config.json verfrachtet.
Stefan
Und ich scheitere an lint:
{
"platform": "DACP",
"devices": [{
"name": "Raspi Remote",
"pairing": "XXXXXXXXXXXXX",
"serviceName": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"features": {
"no-skip-controls": true,
"no-volume-controls": true,
"alternate-playpause-switch": true,
"alternate-input-controls": ['menu', 'topmenu']
}
}]
}
Alles anzeigen
Lint meint nur:
Error: Parse error on line 11:
...e-input-controls": ['menu', 'topmenu']
-----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', ']', got 'undefined'
Stefan
Es wird nur die Anfangszeit vorgezogen. Die Endzeit bleibt, daher der Schalter ist länger Ein: Offsetdauer + Termindauer.
Ich finde den Kalender toll, aber ich benutze ihn nicht für die Müllabfuhr. Bei mir kommen die nämlich einfach klingeln und suchen sich die Tonne dann selber raus. Ich benutze ihn für Fußballspiele von Eintracht Frankfurt. Bei mir soll der Kalender das Radio anmachen, und der Anfangsoffset ist prima, weil ich jetzt das Radio fünf Minuten vorher einschalten kann. Danke dafür, jetzt isses perfekt für mich.
Tatsächlich fangen Fußballspiele eigentlich nie vor dem geplanten Datum an. Sie enden dafür manchmal später: Nachspielzeit, Verlängerung, das Spiel hat vielleicht später begonnen als geplant oder das Publikum hat in der Halbzeitpause das Stadion abgerissen und es muss jetzt erst ein neues gebaut werden. In meinem Fall wäre also ein Offset nach dem Termin ganz brauchbar, aber um ehrlich zu sein: da das Ende des Termins in keinem Fall absehbar ist, wüsste ich auch keinen Offset, und am Ende läuft es dann genau darauf hinaus, dass ich das Radio wie schon jetzt einfach manuell abstelle.
Wie dem auch sei: ich wollte nur mal eine Kalenderanwendung vorstellen, die sich nicht an Müll orientiert... obwohl... wenn ich an das Spiel gegen Stuttgart denke...
Stefan
Ja. Sieht erstmal hässlicher aus als es wirklich ist. Ich mach's so auf der Shell:
curl -H "Content-Type: application/json" -X PUT -d '{"effect":"colorloop"}' http://192.168.1.2/api/FmA2tRUxWr7pAi4DLjBsHF491bhcf5o5F3C1Uyk9/groups/2/action/
Um das nachzumachen, musst du einen User auf der Hue-Bridge anlegen. Der User im obigen Beispiel heißt FmA2tRUxWr7pAi4DLjBsHF491bhcf5o5F3C1Uyk9. Der funktioniert bei dir nicht, sondern du musst deinen eigenen Usernamen kreieren.
Das ist sehr einfach. Folge dieser Anleitung: https://www.developers.meethue.com/documentation/getting-started
Einfach nachmachen.
Wenn es dir gelungen ist, öffnest du ein neues Browserfenster und rufst auf:
http://192.168.1.2/api/FmA2tRU…91bhcf5o5F3C1Uyk9/lights/
Wobei du natürlich die IP-Adresse deiner Hue-Bridge einsetzt und deinen neuen Usernamen. Ein unleserlicher JSON-Verhau sollte deinen Bildschirm füllen. Um ihn leserlich zu machen, kopiere ihn und validiere ihn bei jsonlint.com. Oder gib auf der Shell ein:
curl -H "Content-Type: application/json" -X GET http://192.168.1.2/api/FmA2tRUxWr7pAi4DLjBsHF491bhcf5o5F3C1Uyk9/lights/ | python -m json.tool
Auch hier wieder deine IP-Adresse und deinen Usernamen verwenden, aber das sollte wohl inzwischen klar sein, oder? ![]()
Das Ergebnis ist in beiden Fällen ein lesbarer JSON-Output, der deine Lampen anzeigt. Das wird mit dem API-Request lights gemacht. Steht hinter dem Usernamen.
Mein Beispiel ganz oben enthält den API-Request für groups. Damit sind die gruppierten Lampen gemeint, also beispielsweise Wohnzimmer oder Flur. Bei mir hat das Wohnzimmer die Nummer 2:
curl -H "Content-Type: application/json" -X GET http://192.168.1.2/api/FmA2tRUxWr7pAi4DLjBsHF491bhcf5o5F3C1Uyk9/groups/ | python -m json.tool
ergibt ein Ergebnis, das bei mir diesen Wust enthält:
.
.
.,
"2": {
"action": {
"alert": "none",
"bri": 254,
"colormode": "hs",
"ct": 316,
"effect": "none",
"hue": 7715,
"on": true,
"sat": 77,
"xy": [
0.4269,
0.392
]
},
"class": "Living room",
"lights": [
"11",
"7",
"8",
"9",
"10"
],
"name": "Wohnzimmer",
"recycle": false,
"state": {
"all_on": true,
"any_on": true
},
"type": "Room"
},
.
.
.
Alles anzeigen
Wie man sieht, hat Wohnzimmer die Nummer 2. Das Beispiel schaltet also den Colorloop für den ganzen Raum ein. Wenn du eine einzelne Lampe loopen willst, musst du sie mit dem Request lights ermitteln. Was sich also bei dir ändern wird: /groups/2/action könnte sowas wie /lights/5/action sein.
So, und das Ganze wird wieder ausgeschaltet mit:
curl -H "Content-Type: application/json" -X PUT -d '{"effect":"none"}' http://192.168.1.2/api/FmA2tRUxWr7pAi4DLjBsHF491bhcf5o5F3C1Uyk9/groups/2/action/
Auf dem Raspi könnte man nun ein Shell-Script namens loopy.sh schreiben und dieses per homebridge-cmd aufrufen:
#!/bin/bash
if [ "$1" == "on" ]; then
curl -H "Content-Type: application/json" -X PUT -d '{"effect":"colorloop"}' http://192.168.1.2/api/FmA2tRUxWr7pAi4DLjBsHF491bhcf5o5F3C1Uyk9/groups/2/action/
else
curl -H "Content-Type: application/json" -X PUT -d '{"effect":"none"}' http://192.168.1.2/api/FmA2tRUxWr7pAi4DLjBsHF491bhcf5o5F3C1Uyk9/groups/2/action/
fi
Ja, das geht auch eleganter, aber es funktioniert mit (nachdem man noch ein flottes chmod +x loopy.sh eingegeben hat):
/home/pi/loopy.sh on und /home/pi/loopy.sh off.
Viel Vergnügen.
Stefan
Das ist das schöne an den Parrot-Sensoren: Die haben diese Datenbank. Und wir haben viel zu wenig gegossen.
Da hast du recht. Ich habe genau ein grünes Ding und genau einen Sensor, und so lange wie dieses grüne Ding hat hier noch nie was überlebt. Wird auch immer größer. Die Anschaffung hat sich gelohnt - zumindest für die Pflanze.
Stefan
Sorry, über Playlists weiß ich nix. Ich benutze die API nur für die Lautstärkenregelung, und zwar zusammen mit homebridge-http.
{
"accessory": "Http",
"name": "Sonos Volume",
"switchHandling": "realtime",
"http_method": "GET",
"on_url": "http://localhost:5005/Wohnzimmer/volume/40",
"off_url": "http://localhost:5005/Wohnzimmer/volume/8"
}
Stefan
Über die Adresszeile des Browsers geht das.
http://192.168.1.21:5005/Wohnzimmer/play
http://192.168.1.21:5005/Wohnzimmer/pause
http://192.168.1.21:5005/Wohnzimmer/Volume/40
http://192.168.1.21:5005/Wohnzimmer/Volume/20
http://192.168.1.21:5005/Wohnzimmer/Volume/+17
http://192.168.1.21:5005/Wohnzimmer/Volume/-9
Oder von der Shell aus:
curl http://192.168.1.21:5005/Wohnzimmer/play
Es wäre natürlich äußerst zielführend dabei, wenn du IP-Adresse und Zone an deine Gegebenheiten anpasst ![]()
Stefan
Ich habe auch die Dateiendung gelöscht. Trotzdem keine Zugriffsmöglichkeit.
Wenn ich versuche, die IP anzupingen, bekomme ich auch einen Timeout?
Woher weißt du die IP des Raspi? Du solltest nur dann einen Timeout bekommen, wenn der Raspi
a) eine andere IP-Adresse hat
b) überhaupt gestartet ist
c) hinter einer Firewall steht, die den ping blockt (unwahrscheinlich)
Stefan
Mmh, also wenn ich homebridge mit sudo systemctl restart starte und anschließend mit
sudo journalctl -f -au homebridge den live Status Abfrage bekomme ich immer die Meldung homebridge [1169]: -su: /var/log/homebridge.log: keine Berechtigung
Wie soll ich hier die Rechte noch setzen hatte auch schon 755 versucht und es ging immer noch nicht ?
Du hast 755 wie versucht?
Versuch mal folgendes:
sudo touch /var/log/homebridge.log
sudo chown homebridge /var/log/homebridge.log
Falls du homebridge als User pi startest (steht in /etc/systemd/system/homebridge.service oder in /etc/init.d/homebridge), heißt der zweite Schritt
sudo chown pi /var/log/homebridge.log
Und danach homebridge restarten mit
sudo systemctl restart homebridge
Stefan
Ist das "normale" Avahi WARNING Gedönse was ignoriert werden kann
Ja.
Alles anzeigenSchwere geburt
Homebridge.err steht folgendes:
*** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
*** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported part$
Das sind keine ERRORS, sondern nur WARNINGS, und sie können ignoriert werden, wie die Dokumentation auf https://www.npmjs.com/package/homebridge ganz unten erwähnt. Wir alle leben damit ![]()
Stefan
muss ich da am raspberry noch etwas einstellen?
Nein.
Habe exakt das gleiche Problem und bin auch blutiger Anfänger. Wolverine, hat das funktioniert?
Ich besitze keine Tastatur und keinen Bildschirm, kann ich das auch über den Terminal des Mac erledigen? Welche Befehle muss ich dann eingeben?
Kannst du nicht. Echt ätzend, ich musste selber erstmal eine Tastatur kaufen gehen und den Raspi an meinen Projektor anschließen - toll.
Und dich vom Mac aus auf den Raspi einzuloggen, muss auf dem Raspi der sshd gestartet sein. Mit muss meine ich: muss muss muss muss. Und der wird im default-Zustand nicht gestartet. Solange der nicht gestartet ist, kannst vom Mac aus nichts machen.
Stefan
kommt folgende Meldung:
-su: /var/log/homebridge.log: Permission denied
Hatten wir oben schon: permission denied = falsche Rechte. Der User pi möchte auf die Datei /var/log/homebridge.log schreiben, was er nicht darf, weil sie ihm nicht gehört.
Mach mal sudo chown pi:pi /var/log/homebridge.log und danach sudo /etc/init.d/homebridge start
Stefan
Pfad zu log files:
var/log/homebridge.log
var/log/homebridge.err
Glaube ich nicht. Die heißen bestimmt
/var/log/homebridge.log
/var/log/homebridge.err
Ich möchte an dieser Stelle vor allem das Augenmerk auf den / am Anfang des Pfades lenken, auch wenn es kleinkariert wirkt.
Ansonsten: Rechte richtig gesetzt? Ein
chmod 644 /var/log/homebridge* wirkt manchmal wahre Wunder.
Bei mir übrigens liegt das Log in /var/log/daemon.log.
Stefan