Beiträge von sschuste

    Das Gateway weiß da" : Wenn das Gateway das weiß, sollte es in der Lage sein, bei erneutem Drücken der Smart Home Taste, ein "Birne AUS" zu senden, wenn die Birne schon AN ist.
    Gateway ist nur Software, könnte also über ein Software-Update hinzugefügt werden.
    Oder übersehe ich da was?

    Nein, du übersiehst da nichts. Nur offenbar sehen das die Gateways/Bridges nicht vor. Das ist keine Lidl-Schwäche, sondern Philips Hue genauso.


    Ich habe das in HomeKit mit zwei Automationen gelöst:

    1. Schalter gedrückt --> Bedingung: Licht ist an --> Licht aus

    2. Schalter gedrückt --> Bedingung: Licht ist aus --> Licht an


    Kann man mit der EVE-App machen.

    Ich habe sie Signe Lampen, die können Farbverläufe darstellen, was die Home App nicht ansprechen kann.

    Mir geht es in erster Linie nicht ums Wakeup Light, sondern generell szenen aus der Hue App

    Hue-Szenen, die einfachere Hue-Lampen ansprechen, kann man mit leichtem Aufwand in die Home-App reinbekommen. Dazu stellt aktiviert man in der Hue-App eine Szene und erstellt dann in der Home-App eine HomeKit-Szene, die heißen kann, wie es gefällt.


    Zu dieser HomeKit-Szene fügt man dann die Lampen, die in der Hue-Szene angesprochen worden sind, einfach hinzu. Dabei werden die aktuellen Farb- und Helligkeitswerte automatisch übernommen.

    Ok, oh Mann, was du so alles weißt.

    Da hätte ich schon vorher draufkommen müssen. Mein cron Job war ganz anders eingerichtet als deiner, aber eigentlich macht man es heutzutage halt so, wie du es gemacht hast. Ich hab's so gemacht wie vor 30 Jahren. Es mag ja schön sein soviel zu wissen wie ich, aber was hilft's mir, wenn ich dieses Wissen dann wie ein Depp einsetze. Naja, solange mein Arbeitgeber mich dafür bezahlt...


    Nachdem ich dann meinen cron Job dahin geändert habe, dass er deinem gleicht, habe ich den Fehler auch gehabt. Und wieder zeigt sich: schreib keine Anleitungen, die du nicht selber getestet hast.


    Ich bin also für deinen Frust zuständig. Da hab ich dich ja schön an der Nase herumgeführt. Das tut mir leid. Falls du weitere Hilfe beim Einrichten brauchst (falls du es überhaupt je wieder versuchen willst), wende dich an mich per PM.


    Ich warte jetzt noch bis morgen. Falls mein cron Job dann funktioniert, werde ich am Samstag die Anleitung in diesem Thread korrigieren, so dass sie auch funktioniert.

    Die Lampe weiß doch, in welchem Zustand sie ist, und wenn sie den Befehl vom Gateway bekommt „Toggle“ bzw. „Invertiere, sollet sie das tun. Ziemlich schwach bzw armselig.

    Eigentlich weiß die Lampe nix. Sie weiß nicht mal, dass sie eine Lampe ist, geschweige denn, ob sie ein- oder ausgeschaltet ist. Nur das Gateway weiß das. Und so bekommt nicht die Lampe irgendeinen Toggle-Befehl, sondern das Gateway. Und zwar vom Schalter.


    Ich weiß nicht, ob Zigbee-Gateways/Bridges so etwas wie Toggle überhaupt kennen. Ich verwende das Zeugs von Philips, und dort hat der Schalter einen Button zum Einschalten und einen zum Ausschalten.

    Ich glaube, ich weiß jetzt, was da passiert. Das Sync-Script funktioniert offenbar, solange der User pi ihn ausführt, aber er geht nicht mehr, wenn der User root ihn laufen lässt. Und genau das passiert, wenn der cron Job ihn ausführt, dann kümmert sich nämlich root darum.


    In diesem Fall wird dann eine Konfigurationsdatei nicht mehr gefunden, in der die Zugangsdaten zur Dropbox stehen. Das Sync-Skript glaubt nun, es würde zum ersten Mal aufgerufen, was da auch steht:


    This is the first time you run this script, please follow the instructions


    Ich habe /etc/cron.daily/dropbox-sync nun so angepasst, dass es die richtige Konfigurationsdatei verwendet.

    Bash
    #!/bin/bash
    date >> /home/pi/upload.log
    /usr/local/bin/dropbox_uploader.sh -f /home/pi/.dropbox_uploader -s upload /var/lib/homebridge/backups/ / >> /home/pi/upload.log

    Hinzugefügt habe ich -f /home/pi/.dropbox_uploader. Das scheint zu gehen, aber genau weiß ich es erst morgen früh.

    Wenn du jetzt gefragt hättest, warum das so ist, dann könnte ich dir mit "Gute Frage, keine Ahnung" antworten…


    Prinzipiell kann sich etwas ohne dein Zutun ändern. Die Homebridge hat einen Cache, in denen sie bestimmte Zustände speichert. Der wird auch gesichert. Wenn sich dieser Cache verändert, dann wird auch was auf die Dropbox geladen. Wann sich der Cache wie ändert - gute Frage eben. ich weiß es nicht.


    Bei mir ist es so, dass ich jeden Tag ein neues Backup im Dropbox-Ordner instance-backups habe, während es nur selten was Neues im Ordner config-backups gibt. In letzterem wird nur die config.json gespeichert, also die Homebridge-Konfigurationsdatei. Die ändert sich bei mir selten. Aber die Homebridge-Caches ändern sich schon, zumindest bei mir. Aber hängt natürlich auch von den Plugins ab, ob die so etwas überhaupt brauchen und schreiben. Wenn man Plugins hat, die das nicht tun, dann ändert sich auch kein Cache und dann gibt's auch kein neues Backup.

    Also, das gefällt mir schon. Es sagt ganz klar aus, dass das Skript automatisch gestartet wird. Damit können wir schon mal einen Haufen Fehler ausschließen. Ich bin ja bereits der Ansicht gewesen, dass dein cron nicht richtig funktioniert, aber glücklicherweise geht der.


    Ich sehe jetzt das:

    • Mon 10 Oct 18:14:46 CEST 2022 (erster manueller Sync): Der Sync wurde um 18:14 Uhr ausgeführt und es gibt in der Dropbox Dateien von 18:14 Uhr. Das siehst gut aus.
    • Mon 10 Oct 19:10:03 CEST 2022. (zweiter manueller Sync, als Test): Der Sync wurde um 19:10 Uhr ausgeführt, aber es gibt keine neuen Dateien auf der Dropbox. Das kann daran liegen, dass sich nichts an den Dateien auf dem Raspi geändert hat. Es werden ja nur veränderte Dateien kopiert.
    • Tue 11 Oct 06:25:01 CEST 2022 (heutiger automatischer Sync): Der Sync wurde um 6:25 Uhr ausgeführt, aber es gibt keine neuen Dateien auf der Dropbox. Das kann daran liegen, dass sich nichts an den Dateien auf dem Raspi geändert hat. Es kann aber auch daran liegen, dass irgendwas nicht richtig funktioniert. Nicht eindeutig.

    Du kannst das Sync-Skript weiter verfeinern, indem du die Ausgabe des Sync-Befehls mit hineinschreibst. Die Log-Datei sieht dann noch wilder aus, aber wir werden schon schlau draus. Verändere das Skript so, dass es danach so aussieht (sudo nano /etc/cron.daily/dropbox-sync:(

    Bash
    #!/bin/bash
    
    date >> /home/pi/upload.log
    /usr/local/bin/dropbox_uploader.sh -s upload /var/lib/homebridge/backups/ / >> /home/pi/upload.log

    Ich habe im Sync-Skript verändert:

    • Die Zeile date >> /home/pi/upload.log steht nun vor dem Upload-Befehl. Das macht die Log-Datei ein bisschen besser lesbar.
    • Ich habe hinten an die Zeile mit dem Upload-Befehl ein >> /home/pi/upload.log angehängt. Also hinter das letzte / ganz rechts, mit einem Leerzeichen vom / getrennt. Egal, wie das hier dargestellt wird: das muss in einer einzigen Zeile stehen. Das sorgt dafür, dass der Output des Upload-Befehls in die Log-Datei geschrieben wird.

    Dann wird das Log etwa so aussehen:


    Tue 11 Oct 17:25:35 CEST 2022

    > Creating Directory "/backups"... ALREADY EXISTS

    > Creating Directory "/backups/config-backups"... ALREADY EXISTS

    > Skipping already existing file "/backups/config-backups/config.json.1662709013694"

    > Skipping already existing file "/backups/config-backups/config.json.1662814332606"

    > Skipping already existing file "/backups/config-backups/config.json.1665038699396"

    > Skipping already existing file "/backups/config-backups/config.json.1665045214163"

    > Skipping already existing file "/backups/config-backups/config.json.1665045366634"

    > Creating Directory "/backups/instance-backups"... ALREADY EXISTS

    > Skipping already existing file "/backups/instance-backups/homebridge-backup-CC223DE3CE30.1664849518220.tar.gz"

    > Skipping already existing file "/backups/instance-backups/homebridge-backup-CC223DE3CE30.1664935924850.tar.gz"

    > Skipping already existing file "/backups/instance-backups/homebridge-backup-CC223DE3CE30.1665022314973.tar.gz"

    > Skipping already existing file "/backups/instance-backups/homebridge-backup-CC223DE3CE30.1665108715124.tar.gz"

    > Skipping already existing file "/backups/instance-backups/homebridge-backup-CC223DE3CE30.1665195117677.tar.gz"

    > Skipping already existing file "/backups/instance-backups/homebridge-backup-CC223DE3CE30.1665281515571.tar.gz"

    > Skipping already existing file "/backups/instance-backups/homebridge-backup-CC223DE3CE30.1665367915604.tar.gz"

    > Skipping already existing file "/backups/instance-backups/homebridge-backup-CC223DE3CE30.1665454316434.tar.gz"


    In der ersten Zeile steht das Datum, danach kommt der restliche Output. In meinem Beispiel sieht man, das nüscht kopiert wurde, mit dem Vermerk: überspringe bereits existierende Datei.

    Na schön. Füge doch bitte eine Zeile zum Skript hinzu, so dass es danach so aussieht:

    Bash
    #!/bin/bash
    /usr/local/bin/dropbox_uploader.sh -s upload /var/lib/homebridge/backups/ /
    date >> /home/pi/upload.log

    Wie du siehst, habe ich unten nur die Zeile date >> /home/pi/upload.log hinzugefügt. Diese Zeile sorgt dafür, dass bei jedem Aufruf des Sync-Skripts das aktuelle Datum in die Datei /home/pi/upload.log geschrieben wird. Dabei spielt es keine Rolle, ob das Sync-Skript manuell oder per cron aufgerufen wird.


    Die Datei /home/pi/upload.log ist also ein kleines Log, das mitschreibt, wann das Sync-Skript aufgerufen wurde. Die Datei wird dabei immer länger. Du kannst sie ansehen mit dem Befehl cat /home/pi/upload.log. Damit können wir dann sehen, ob das Sync-Skript überhaupt vom crond verarbeitet wird. Die Datei ist erst dann vorhanden, wenn der Sync-Befehl gelaufen ist.


    Füge also die Zeile ein, rufe den Sync dann manuell auf, und schon ist das erste Datum im Log drin. Mehr als das Datum wird im Log nicht zu sehen sein. Das sieht dann so aus wie wenn man den Befehl date einfach in der Konsole eingibt, also sowas wie Mon 10 Oct 12:11:33 CEST 2022.


    Vielleicht können wir dann bessere Schlüsse ziehen als bislang.

    Wenn du das Skript manuell ausführen kannst, der Cron-Daemon jedoch nicht, der das täglich automatisiert tun soll, dann tippe ich ja stark darauf, dass es an den Berechtigungen der Datei liegt.

    Ich nicht. Wenn der cron job manuell ausgeführt werden kann, dann ist das wesentliche Flag (Datei ist ausführbar) bereits gesetzt. Alle anderen Berechtigungen sind wurscht, weil der Job ansonsten von root ausgeführt wird.


    Im Listing von Vollerpla kann man sehen, dass die Dateiberechtigungen korrekt gesetzt sind:

    -rwxr-xr-x 1 root root 88 Oct 8 13:33 dropbox-sync


    - ist eine Datei (und nicht etwa ein Verzeichnis oder Link oder sonstwas)

    rwx Besitzer darf lesen (read), schreiben (write) und ausführen (execute)

    r-x Gruppe, in der sich Besitzer befindet, darf lesen (read) und ausführen (execute)

    r-x Alle anderen Benutzer des Systems dürfen(read) und ausführen (execute)


    Der Besitzer der Datei ist root.


    Vollerpla Kannst du bitte den Inhalt von /etc/cron.daily/dropbox-sync posten, den du mit dem Befehl

    cat /etc/cron.daily/dropbox-sync auf den Bildschirm zaubern kannst. Einfach den Text kopieren und hier reinwerfen.

    Das Handy habe ich natürlich immer dabei, aber wenn ich alle Hände voll habe, würde es mir leichter fallen, einfach nur einen knopf zu drücken

    Also, wenn ich alle Hände voll habe, bekomm ich es nicht hin, irgendeinen bestimmten Knopf zu drücken. Vielleicht erwisch ich dann den meines Nachbarn, was dann folgendes Gespräch auslöst: "Sorry, ich hab versehentlich bei dir geklingelt. Äh, kannst du mal die Tür aufmachen?".


    Als "smart" empfände ich eine Lösung, dass sich die Tür öffnet, wenn ich davor stehe und hineingehen will. Ich glaube nicht, dass man das kaufen kann. Dazu fehlt noch ein brauchbarer "Was-will-der-Kerl---rein-oder-nur-vor-der Tür-herumlungern"-Sensor.

    In Homekit allerdings, reagiert diese Leuchte dann aber oft (nicht immer!) nicht mehr und wird als "Gerät antwortet nicht" gekennzeichnet.

    Sehr schade.

    Ich habe seit fünf Jahren das Hue-Geraffel im Einsatz und nicht ein einziges Mal habe ich irgendein Problem damit gehabt. Klar, das hilft dir jetzt gar nicht weiter, aber ich möchte damit sagen, dass das Zeugs eigentlich völlig zuverlässig ist.


    Ich steuere einiges über die Home-App, aber manches über die Hue-App. Über Home/Siri schalte ich die Lampen ein und aus oder dimme sie, und ich lasse Automationen laufen so wie "Ich komme nach Hause". Über die Hue-App habe ich die Bewegungsmelder eingebunden, weil ich mir nicht beantworten konnte, warum HomeKit etwas umständlich erledigen soll, wenn es auch die Hue-Bridge ganz allein kann.


    Wie hast du das mit den Bewegungsmeldern gemacht?