Oder:
sudo su -
npm install -g --unsafe-perm homebridge-sonos
exit
Stefan
Oder:
sudo su -
npm install -g --unsafe-perm homebridge-sonos
exit
Stefan
Ohne es getestet zu haben, weil ich nur eine Instanz nutze:
journalctl -o cat -n 500 -f -u homebridge-instance-1 -u homebridge-instance-2 -u homebridge-instance-3 -u homebridge-instance-4
Wie bekomme ich das jetzt in ein Script welches mir den "echten " Zustand in Homekit anzeigt?
Meinst du dieses Plugin?
https://www.npmjs.com/package/homebridge-script2
Ohne das Plugin zu kennen oder je benutzt zu haben vermute ich, dass es so funktioniert:
"accessories": [
{
"accessory": "Script2",
"name": "Switchie",
"on": "/usr/bin/gatttool -t random -b D8:6A:30:A3:32:BD --char-write-req -a 0x0016 -n 570103",
"off": "/usr/bin/gatttool -t random -b D8:6A:30:A3:32:BD --char-write-req -a 0x0016 -n 570102",
"state": "/usr/bin/gatttool -t random -b D8:6A:30:A3:32:BD --char-read -a 0x0016",
"on_value" : "Characteristic value/descriptor: 57 01 03"
}
]
Stefan
Welche Verzeichnisse können warum nicht erstellt werden?
Das wissen sie npm-Entwickler allein. Hast du das versucht mit sudo zu installieren oder als root?
Bei mir ist es nicht ganz so gut - sobald homebridge-mi-flower-care nach dem Homebridge-Start die Werte für die Pflanzen ermittelt hat, läuft gatttool nicht mehr
. Reproduzierbar.
Durch Zufall gerade gerade gemerkt, wenn Homebridge nicht läuft, funktioniert der gtttatool Befehl. Sobald HB läuft nicht mehr.
Und nu?!
Und nu??? DANKE! Nachdem ich homebridge-switchbot deinstalliert habe, geht's auch mit laufender Homebridge.
So, das war eine nette Knobelaufgabe. Um es kurz zu machen: das Skript hat wohl einen Fehler. Macht aber nichts, denn ich habe eine Lösung.
Ich habe das Script um einige Debug-Messages erweitert, damit ich sehen konnte, was da wirklich passiert. Immer wenn ich mailnotify.sh "Test" "Dies ist eine Testnachricht." aufgerufen habe, hat meine Erweiterung in eine Datei geschrieben, welcher Befehl am Ende vom Script augeführt wird. Das Skript mailnotify.sh baut diesen Befehl nämlich nur zusammen.
Der Befehl lautet:
sendEmail -f fromAdress -t destAddress -u "subject" -m "message body" -s smtpserver -xu username -xp password -o tls=yes
Das Skript mailnotify.sh macht dann daraus etwas mit echten Mailadressen und Passwort und anderem Zeugs, nämlich so:
sendEmail -f [email protected] -t [email protected] -u "Test" -m "Dies ist eine Testnachricht." -s smtp.dummbatz.de -xu sschuste -xp geheim2 -o tls=yes
Und dieser Befehl wird dann losgesendet und zack: eine Email ist auf dem Weg. Kennst du, hast du ja selber auf der Shell getestet.
Ich habe dann erst homebridge-cmdswitch2 getestet (ging nicht) und dann das, was ich normalerweise nutze, nämlich homebridge-cmdtrigger (ging auch nicht). Führt man den Befehl auf der Shell aus, geht's. Nimmt man irgendein Plugin, geht's nicht. Ich habe die Plugins so konfiguriert:
Wenn man dann in Home die Schaltfläche drückt, dann kommt als Befehl in mailnotify.sh heraus (ich verkürze es mal):
sendEmail -f sschuste@d .... -xu sschuste -xp geheim2 -o tls=no
Wenn man es auf der Shell eingibt (ebenfalls verkürzt):
sendEmail -f sschuste@d .... -xu sschuste -xp geheim2 -o tls=yes
Und das macht den Unterschied aus: während der Befehl auf der Shell ein korrektes tls=yes enthält, ist es beim Aufruf per Home ein tls=no. WTF??? Das Ergebnis zumindest ist, das der Mailserver, über den die Mail versendet werden soll, diese ablehnt, und daher kommt auch nie eine an.
Ich habe dann mailnotify.sh abgeändert.
sudo nano /usr/local/bin/mailnotify.sh
Ziemlich weit unten findet man dieses Zeugs:
if [ -n "${USETLS}" ]; then
if [ ${USETLS} == 1 ]; then
OPTIONS="${OPTIONS} -o tls=yes"
else
OPTIONS="${OPTIONS} -o tls=no"
fi
fi
# Send the mail with sendEmail
sendEmail -l /tmp/sendEmail.log -f ${SENDER} -t ${RECIPIENT} -u "${SUBJECT}" -m "${BODY}" ${OPTIONS}
exit 0
Alles anzeigen
Hier muss eine Zeile geändert werden, nämlich if [ ${USETLS} == 1 ]; then
und zwar in if [ ${USETLS} = 1 ]; then
aus dem == wird ein =
Damit klappt's dann sowohl auf der Shell als auch in Home. Bitte erwartet keine Erklärung, weil ich keine habe.
Stefan
Das Plugin ist echt nicht das Wahre, da hast du Recht
Das kann man so sagen, wenn man höflich ist. Ich selbst bezeichne es als einen echten... ok, lassen wir das lieber. Das Plugin https://github.com/yujinakayama/homebridge-switchbot beruht letztendlich auf https://github.com/ukiuni/Switchbot, und hier passiert nichts anderes, als dass auf der Shell das Programm gatttool aufgerufen wird. Ohne es ausprobiert zu haben, behaupte ich einfach mal, dass man auch selbst gatttool mit den entsprechenden Parametern auf der Shell aufrufen kann, und wenn das geht, kann man auf homebridge-switchbot verzichten und irgend ein homebridge-cmd verwenden.
Stefan
Ist es bei Euch auch so, dass immer eine volle Bewegung erfolgt?
Also runter und wieder rauf?
Das Verhalten stellst du in der Switchbot-App ein. App aufrufen, auf das kleine Zahnrad tippen, das rechts oben bei den ON/OFF-Schaltern zu sehen ist, dann Password, Mode und dort Use light switch Add-on aktivieren. Ich muss immer die Homebridge neu starten, wenn ich hier was ändere.
Stefan
Ein Zertifikat hat eigentlich kein Passwort. Deshalb verstehe ich auch den Fehler nicht.
ich habe versucht alle 3 verschiedenen exporte zu speichern und einzubinden
Und diesen Satz verstehe ich auch nicht. Ich verstehe heute offenbar überhaupt nur sehr wenig. Das mag auch an meiner labilen Verfassung nach dieser Party gestern Abendheute Morgen liegen. Was bedeutet alle 3 verschiedenen exporte und wie gehst du überhaupt vor? Eigentlich musst du doch nur die Seite per Browser aufrufen.
Stefan
auf gut deutsch: wenn ich das plugin installiere, haut es mir alle geräte durcheinander bzw. raus und ich muss diese neu hinzufügen?
oder verstehe ich da etwas falsch?
Wenn du das homebridge-alexa schon vor dem 22. März genutzt hast: ja. Danach kam eine neue Version, und man musste alles neu einrichten. Wenn du jetzt erst damit startest, kannst du das ignorieren.
Stefan
Allerdings hat der SwitchBot sich nur einmal schalten lassen
Dreimal. Irgendwann will er nicht mehr per Homebridge, während er per Switchbot-App immer funktioniert.
Hast du den Doppeldimmer noch ? Hätte Interesse daran!
Ich hab's zwar noch, aber das ist kein Dimmer, sondern nur ein Doppelschalter. Also an-aus, nix hell-dunkel. Und in der Tiefe deines Herzens willst du doch auch gar nicht dimmen, nicht wahr? ![]()
Und danach dann einfach plugin installieren und fertig?
Das Plugin verwendet gatttool. Ohne geht es nicht. Gib mal auf der Shell gatttool ein und wenn da ein Ergebnis kommt, dann wird es wohl funktionieren.
Bei mir hat es auf Anhieb geklappt.
Stefan
sudo npm install homebridge-dht --unsafe-perm
Du solltest das Plugin in jedem Fall global installieren:
sudo npm uninstall --unsafe-perm homebridge-dht
sudo npm install -g --unsafe-perm homebridge-dht
Plugins immer mit -g installieren oder per homebridge-config-ui-x.
Vielleicht klappt das besser.
Stefan
Ich sehe nur Warnungen. Eigentlich sollte das laufen.
Ich werde nun etwas weiter basteln.
Viel Erfolg! ![]()
Bin echt hin und hergerissen. Möchte die aktuelle node installiert haben, obwohl mit der 8.irgendwas bei mir alles stabil läuft. Jetzt muss ich mir echt überlegen ob ich das laufende System doch schon etwas umfangreicher anpasse nur damit node 10.x läuft. Wovon ich aktuell keinen Vorteil hätte, den ich verstehe.
Eben. Lass es so, wie es ist. Ich wollte halt nicht auf node 8 downgraden, daher ist mein Beitrag, für diejenigen, die es auch nicht wollen. Solange du keinen wirklich triftigen Grund hast, ein Upgrade zu machen, mach es auch nicht. So etwas endet leicht in schwerem Frust.
Ich habe das einfach erst auf meinem Live-System gemacht und dann auf dem neuen Raspi 4. Ich habe nur Node 10.16.2 und Node 10.16.3 verwendet. Das kleine Update hat den Hack schon gestört und es hat ein Weilchen gedauert, bis ich darauf kam, dass ich ja erneut setcap cap_net_raw+eip $(eval readlink -f `which node`) ausführen muss.
Performance-Unterschiede kann ich nicht feststellen. Eine meiner Pflanzen steht zu weit weg, ich hab sie für den Test gleich neben den Raspi gestellt, aber das ist eine andere Geschichte.