Beiträge von sschuste

    mit Stretch

    Vielleicht liegt's einfach daran? Ich kann's dir wirklich nicht sagen. Ich habe jedenfalls nie irgendwelche extra-Installationen gestartet, um Python irgendwie up-to-date zu halten.


    Wenn ich an deiner Stelle stünde, dann würde ich über drei Strategien nachdenken:

    1. Update von Python am apt-Paketmanagement vorbei. Es gibt jede Menge Anleitungen, wie man Python3 herunterlädt und selbst kompiliert (beispielsweise hier). Das kann funktionieren oder auch nicht. Als normaler Anwender etwas selber zu komplizieren entpuppt sich häufig als eine Aufgabe, von der man vom Hundertsten auf Tausendste kommt. Man wird aufgefordert, Zeugs nachzuinstallieren, von dem man nicht weiß, wo man es herbekommt. Kann aber auch sein, dass es gleich geht. Ein Rückgängigmachen erfordert viel Erfahrung, die ich erst mal nicht hätte. Es könnte im Fehlerfall dann direkt zu Alternative 3 führen und schließt Alternative 2 aus. Wär nicht mein Fall.
    2. Update des Betriebssystems. Wird hier beschrieben und ich meine, ich hätte das damals so gemacht. Das wird mit hoher Wahrscheinlichkeit sauber funktionieren. Dazu führt man im Grunde ein sudo apt-get upgrade und danach ein sudo apt-get dist-upgrade oder ein sudo apt-get full-upgradeaus. Auch diese Vorgehensweise kann zu Alternative 3 führen. Das wäre mein erster Ansatz.
    3. Neuaufsetzen der Homebridge auf einer zweiten SD-Card. Das ist wohl die einfachste Lösung, aber sie beinhaltet kleine Fallen. Dazu macht man ein Backup mit homebridge-config-ui-x, flasht eine SD-Card mit dem neuesten Homebridge-Image und macht ein Restore der Konfiguration per homebridge-config-ui-x. Der Nachteil hier ist, dass sämtliche selbstgeschriebenen Skripte und neben der Homebridge installierte Software auf dem neuen System fehlen. Für die selbstgeschrieben Skripte habe ich eine elegante Lösung, aber der Rest muss dann neu installiert werden, was einen gewissen Aufwand darstellt.

    Alles nicht schön.

    Zum Beispiel Verschattungen in Abhängigkeit von Sonnenstand und Temperatur lassen sich mit anderen Systemen (zwar auch recht aufwändig) umsetzen - für Homekit fällt mir da nichts ein wie man das umsetzen kann.

    Mit der Apple Home-App ist es nicht so dolle, aber die HomeKit-Apps anderer Hersteller erfüllen viele Wünsche, wenn's um Automationen geht. Beispielsweise EVE, Controller for HomeKit und Home+.

    Daher die Frage: gibt es eine Variante mit der man zwei verschiedene Versionen von Node installieren kann? Oder wie macht ihr das mit unterschiedlichen Systemen auf einem Raspi?

    Puh. Das kann in eine richtige Bastelei ausarten. Wahrscheinlich ist das möglich, aber ich halte es für aufwändig. Vielleicht geht es mit zwei verschiedenen Usern, in deren Homeverzeichnis dann die jeweilige Node-Version installiert wird.


    Wenn ich vor dieser Aufgabe stehen würde, würde ich zwei verschiedene Raspis dafür einsetzen.

    Kann es vielleicht etwas damit zu tun haben, dass ich zum Einen Homekit in Node-Red (Redmatic auf ReaspberryPi) eingerichtet habe, um meine Homematic-Geräte „homekit-fähig“ zu machen, und darüber hinaus Homebridge im Docker betreibe und so alle Geräte in Homekit zusammenführe?

    Das glaube ich nicht. Ich betreibe Node Red neben meiner Homebridge. Das kommt sich nicht ins Gehege.

    und das System komplett neu aufsetzen möchte ich nur ungerne.

    Musst du nicht. Ist ja kein Windows.


    Versuche mal folgendes: auf den Raspi per ssh einloggen und dann:

    sudo rm -rf /usr/local/lib/node_modules/homebridge-hue

    sudo npm install -g --unsafe-perm homebridge-hue

    Du brauchst eigentlich nur den Delay-Switch. Den konfigurierst du so, dass er nach dem Einschalten nach einer bestimmten Zeit wieder ausgeht.


    Beispiel für einen Switch, der nach 90 Sekunden (= 90000 ms) wieder ausgeht:

    Code
    {
        "accessory": "DelaySwitch",
        "name": "Flurtimer",
        "delay": 90000,
        "disableSensor": true
    },

    Dann machst du auf dem iPhone zwei Automationen:

    1. Wenn der Schalter eingeschaltet wird, dann schalte bestimmte Lampen an.
    2. Wenn der Schalter eingeschaltet wird, dann schalte diese Lampen aus.

    Das wars.

    Deshalb habe ich einen Delay-Switch über Homebridge eingerichtet, von dem ich gelesen habe, dass so etwas damit klappen sollte.

    Irgendeinen namenlosen Delay-Switch aus den Tiefen des Internets. Ist es zufälligerweise der gleiche, den auch meine Tante benutzt? Der geht nämlich nicht.

    Hat jemand etwas Deratiges mit Erfolg einrichten können

    Ja. Ich mache das mit https://github.com/nitaybz/homebridge-delay-switch#readme

    Nun bin ich auf meinem iphone11 in die Home App gegangen auf das + Symbol getippt "Gerät hinzufügen" - Weiterere Optionen - mein Gerät wird hier nicht angezeigt und habe meine Homebridge Nummer eingegeben. Aber der Denon wird einfach nicht gefunden. Woran könnte das liegen?

    Du hast ja irgendwann mal die Homebridge zu HomeKit hinzugefügt. Alle Geräte Plugins, die du an die Homebridge hängst, werden damit automatisch in HomeKit angezeigt.

    Dankeschön, er ist nicht in Homepridge zu sehen

    Wenn er dort nicht zu sehen ist, dann steht wohl im Homebridge-Log, warum nicht.

    Schade, vielleicht schreib ich den Programmierer mal an, oder ist das zu naiv

    Nee, fragen schadet nichts. Die Programmierung dafür ist schon vorhanden. Sie heißt Fakegato und ist von einem anderen Programmierer. Einige Plugin-Entwickler verwenden die, um die Werte in EVE sichtbar zu machen. Ich weiß allerdings auch nicht, welchen Aufwand das bedeutet.

    Hier hast du was zum Importieren. Eine kurze Beschreibung steht im function-Node mit dem Namen Format for InfluxDB. Du musst Node Red dafür um die Palette node-red-contrib-influxdb erweitern.


    Code
    [{"id":"65fdce9e2310a63a","type":"function","z":"369d80e.2abcb","name":"Format for InfluxDB","func":"// Das hier wandelt den Wert, der vom MQTT-Broker\n// über die Variable \"msg.payload\" empfangen wird, \n// in das Format um, das der influx-Node verlangt.\n// \n// In der Influxdb ist in der Datenbank \"mydb\" eine\n// Serie mit dem Namen \"sensors\" angelegt. Der Wert \n// wird in diese Serie geschrieben und bekommmt dazu \n// noch den Namen \"bath\" und den Tag \"hue\".\n//\n// Wird also vom MQTT-Node der Wert \"6\" empfangen, dann\n// will ihn die Ifluxdb in diesem Format:\n// [{\"value: 6\",{\"type\": \"hue\", \"name\": \"bath\"}}]\n//\n// Die Datenbank \"mydb\" wird im influxdb-Node konfiguriert.\n\n\nmsg.measurement = \"sensors\"\nmsg.payload = [{\n    value: msg.payload\n},\n{\n    type: \"hue\",\n    name: \"bath\"\n}];\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1670,"y":900,"wires":[["91202f415714dd43"]]},{"id":"91202f415714dd43","type":"influxdb out","z":"369d80e.2abcb","influxdb":"3ad7adf7.8f5552","name":"Light Sensor Data to InfluxDB","measurement":"","precision":"","retentionPolicy":"","x":1930,"y":900,"wires":[]},{"id":"32bb72725a05fff7","type":"mqtt in","z":"369d80e.2abcb","name":"","topic":"sensors/bath","qos":"2","datatype":"auto","broker":"5fb2165c.65e7a8","nl":false,"rap":true,"rh":0,"x":1470,"y":900,"wires":[["65fdce9e2310a63a"]]},{"id":"3ad7adf7.8f5552","type":"influxdb","hostname":"homepi.lan","port":"8086","protocol":"http","database":"mydb","name":"InfluxDB on HomePi","usetls":false,"tls":"","influxdbVersion":"1.x","url":"","rejectUnauthorized":false},{"id":"5fb2165c.65e7a8","type":"mqtt-broker","name":"Mosquitto on homepi","broker":"homepi.lan","port":"1883","tls":"97010700.4ed0b8","clientid":"","usetls":false,"protocolVersion":4,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"1","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"97010700.4ed0b8","type":"tls-config","name":"BluePi ca.cert","cert":"","key":"","ca":"","certname":"","keyname":"","caname":"aaaaa","servername":"","verifyservercert":false}]

    Ich brauche irgendeine andere Lösung.

    Ich habe das ausgelagert, aber es war aufwändig. Ich habe eine Influxdb, Grafana, Node Red und einen Mosquitto MQTT-Broker auf meinem Raspi installiert.


    Node Red liest die MQTT-Werte aus und speichert sie in die Influxdb. Grafana liest die Datenbank aus und stellt die Werte grafisch dar. Das Ganze wird in einem handelsüblichen Webbrowser auf handelsüblichen Computern dargestellt.


    Um das alles zu bewerkstelligen, muss man lernen, wie die Influxdb funktioniert, und man braucht minimale Javascript-Kenntnisse, um die MQTT-Werte in das Format der Influxdb zu wandeln. Der Aufwand besteht vor allem im Lernen, wie der Krempel funktioniert. Das ist deutlich aufwändiger als Fakegato, aber es funktioniert absolut zuverlässig.


    Dabei kommt dann so etwas heraus (hier: Temperaturkurven meiner Raspis sowie die Außentemperatur):


    Ich wollte gestern, dem M2 Hub den Internetzugang verwehren und habe dazu den LAN Stecker entfernt und das WLAN in Fritz.Box entfernt. Leider hat das aber dann nicht ganz geklappt, weil weder der Hub noch die Geräte ansprechbar waren

    Du hast also erst den LAN-Stecker vom Hub abgezogen, so dass dieser nur noch per WLAN kommunizieren kann, und danach hast das WLAN am Router ausgeschaltet. Und dann wundert es dich, dass der Hub nicht mehr erreichbar ist?


    Ohne vom Aqara-Hub auch nur einen blassen Schimmer zu haben: den Internetzugang kannst du dem Hub verwehren, indem du beispielsweise die Netzwerkkonfiguration des Hubs nicht automatisch per DHCP vornimmst, sondern manuell (falls der Hub das unterstützt). Du gibst dem Ding dann eine IP-Adresse aus deinem Netz, aber keine Gateway-Adresse. Das könnte dann so aussehen:


    IP-Adresse 192.168.178.222 <- diese Adresse kann diejenige sein, die er jetzt schon hat

    Netzmaske: 255.255.255.0

    Gateway:


    Wenn der Hub kein Gateway ins Internet kennt, kann er sich auch nicht dorthin verbinden. Wenn die Software des Hubs aber zwingend eine Gateway-Adresse haben will, dann gib ihm irgendeine andere IP-Adresse (aber nicht die der Fritzbox), beispielsweise:


    IP-Adresse 192.168.178.222

    Netzmaske: 255.255.255.0

    Gateway: 192.168.178.223


    Damit würde der Hub versuchen, das Internet über die Adresse 192.168.178.223 zu erreichen. Da es möglicherweise keinen Computer in diesem Netz mit dieser Adresse gibt, schlägt dieser Versuch natürlich fehl. Selbst wenn es einen Computer/Gerät mit dieser Adresse gäbe, würde der Hub trotzdem nicht ins Internet gelangen können.


    Auch schön ist, dem Hub die gleiche Gateway-Adresse zu geben, die er selber hat, aber das könnte durch die Hub-Software abgelehnt werden.

    Das steht nur Usern von hb-service zur Verfügung und kam mit 4.10.0 im Februar 2020:

    Ich denke, ich hab das schon länger am Laufen. Ich betreibe hier eine handgebastelte Homebridge und habe dann hb-service irgendwann nachträglich hinzugefügt. Soll heißen: ich verwende nicht das offizielle Image, sondern hab hier so einen Mischmasch.

    Installationsmethode: die weiß ich wirklich nicht mehr. Woran könnte man das erkennen?

    Sieht nach der Startapfel-Anleitung aus. Ist auch nicht so wichtig.


    Die folgende Anleitung solltest du erst einmal lesen und dann entscheiden, ob du sie befolgen willst.


    Dein Verzeichnis /var/homebridge enthält ausnahmslos alle wichtigen Dateien für die Homebridge. Da steht alles drin. Wenn das weg ist, dann gibt's große Gekreische. Um sicherzugehen, dass das Zeugs nicht verschwindet, legst du als erstes mal eine Kopie davon an.


    Auf den Raspi per ssh einloggen und dann:

    tar cvf homebridge.tar /var/homebridge


    Sollte dabei ein Fehler auftreten (was ich nicht glaube), wiederholst du den Befehl mit vorangestelltem sudo:

    sudo tar cvf homebridge.tar /var/homebridge


    Als nächstes deaktivierst du die Startskripte deiner Homebridge. Bevor du das tust, hältst du die Homebridge an:


    sudo systemctl stop homebridge

    sudo systemctl disable homebridge

    sudo systemctl daemon-reload

    sudo mv /etc/systemd/system/homebridge.service .


    Ab sofort wird die Home-App deine Homebridge-Geräte als nicht erreichbar anzeigen. Gleichzeitig sollte auch deine Homebridge-Weboberfläche nicht mehr erreichbar sein.


    Jetzt wird's spannender. Jetzt soll hb-service installiert werden. Das verändert nicht nur die Starterei der Homebridge, sondern fügt deine Homebridge-Verzeichnis in /var/homebridge ein paar Dateien hinzu. Aber du hast ja ein Backup gemacht.

    kann mir jemand einen Hinweis geben, wie man den Service installiert ohne dass man sein gesamtes System kaputtmacht?

    Ganz schwierig zu beantworten. Wenn ich vor deinem Rechner sitzen würde, könnte ich alles mögliche installieren, ohne dein System kaputtzumachen. Aber ich sitze hier vor meinem Rechner und kann nicht sehen, was passiert, wenn du auf deinem irgendwas treibst.


    Der Befehl zur Installation von hb-service lautet:

    sudo hb-service install --user-storage-path /var/homebridge --user homebridge


    Nach dem Drücken der Entertaste fängt der Raspi an, die Homebridge etwas umzubauen. Aber nur ganz sachte, für dich ändert sich am Ende gar nichts (außer dass deine Weboberfläche ein paar zusätzliche Funktionen bekommen hat). Und das sollte es dann gewesen sein.


    Ich kann keine Garantie übernehmen, dass du Erfolg haben wirst. Aber ich helfe dir aus der Patsche, wenn es schief gehen sollte.