Beiträge von sschuste

    Ich möchte ein dauerhaft laufendes Script (Batch oder Python), das 6 topics abonniert.

    Mal allem vorangestellt: ich habe keine fertige Lösung für dein Problem. Aber ich empfand es reizvoll genug, darüber immer mal wieder nachzudenken.


    Ich würde weder Python noch ein Bash-Skript nehmen. Das ist vor allem der Tatsache geschuldet, dass ich ein Bash-Skript für zu umständlich halte und ich meine Python-Kenntnisse erst einmal ordentlich aufpolieren müsste. Ich würde Node Red nehmen.


    Im Rahmen dieses Forums darf ich weder noch will ich hier eine detaillierte Hilfestellung geben, weil dieses Forum wirklich nicht der richtige Platz für abgefeimte Programmierung ist und niemand hier einen brauchbaren Support leisten kann (oder will). Zumindest so viel:

    • Node Red ist einfach aufzusetzen und kann zusammen mit Homebridge auf deinem Raspi laufen.
    • Es wird vielfach verwendet und daher gibt es auch vielfachen Support der Community. Ich empfehle YouTube-Videos, sich sich mit Node Red beschäftigen und speziell diejenigen, die Node Red + MQTT zum Thema haben. Dein Tag reicht nicht aus, sie alle zu sehen. Ein, zwei werden reichen, damit du tätig werden kannst.
    • Node Red ist zu 90% Klicki-Bunti, das heißt, dass vor allem deine Fähigkeiten an der Maus gefragt sind. Aber darin sollten wir ja alle Meister sein.
    • Node Red bringt allen Support für deine Aufgabenstellung mit. Es kann um HomeKit- und Homebridge-Fähigkeiten erweitert werden.
    • In Node Red wird in Javascript programmiert, wobei dein Javascript-Beitrag nicht sonderlich groß sein sollte. Wenn ich deine Aufgabenstellung betrachte, handelt es sich ja eigentlich nur um etwas Addition und Division. Wenn du erst einmal msg.payload verstanden hast, sollte das für dich kein großes Problem darstellen.

    Sehr vereinfacht würde deine Aufgabenstellung in Node Red so aussehen (sehr, sehr vereinfacht):


    Deine Sensoren sollten vielleicht das MQTT-Retain-Flag setzen, so dass der MQTT-Broker (mosquitto) sie zwischenspeichert. Ansonsten sind die Sensorwerte nicht mehr vorhanden, wenn die OWM-Daten reinkommen. Alternativ kannst du die Werte auch in Node Red zwischenspeichern, siehe flow.set und flow.get.


    Für Fragen, wie das alles genau funktioniert und wie man dieses oder jenes verwirklicht, verweise ich dann an irgendwelche Node Red-Foren. Wie gesagt, hier können wir nicht weiterhelfen.

    Unter Hoobs4 liegt das File in

    Der Ordnung halber: in den Standardkonfigurationen liegt die Datei entweder in /usr/local/lib/node_modules/homebridge-harmony oder eventuell in /usr/lib/node_modules/homebridge-harmony und kann bearbeitet werden mit dem Befehl


    sudo nano /usr/local/lib/node_modules/homebridge-harmony/harmonyBase.js

    (oder eventuell sudo nano /usr/lib/node_modules/homebridge-harmony/harmonyBase.js)


    In Zeile 1397 findet sich dann

    checkAccessory(harmonyPlatform, name) {

    let fullName = harmonyPlatform.name + (name ? '-' + name : '');


    was verändert werden muss durch das Ersetzen des Minus in der zweiten Zeile durch ein Leerzeichen

    checkAccessory(harmonyPlatform, name) {

    let fullName = harmonyPlatform.name + (name ? ' ' + name : '');


    Danach: Homebridge neustarten.


    Nach einem Update des Plugins ist diese Änderung wieder verschwunden und muss erneut vorgenommen werden.

    Gibt es irgendwo Anleitungen?

    Nicht wirklich viele. Ich glaube nicht, dass man mehr als etwa 100.000 bei Google findet.


    Das ist jetzt bestimmt total off-topic, aber ist es so, dass für das Plugin auf meinen PI quasi die ".js-Dateien" rumliegen und ich bei mir lokal einfach die entsprechende Stelle suchen und ersetzen könnte (wenn es denn nur eine ist). Und das geht dann gut bis ich ein Update für das Plugin installiere?

    Ja, genauso so ist es. Aber es dürfte schwierig sein, nach dem "-" zu suchen und das richtige zu finden. Aber das würde auch mein Weg sein.

    Es ist schade, dass der Entwickler die Namen der Accessories nach dem Schema "HubName" + "-" + "AccessoryName" vergibt. Würde er statt des Minuszeichen eine Leerzeichen verwenden würde das den Namenkonventionen von Homekit entsprechen.

    Wer HubName" + "-" + "AccessoryName" schreibt, scheint sich mit Javascript auszukennen. Hast du mal darüber nachgedacht, den Source-Code des Plugins dahingehend zu ändern?

    Es handelt sich um diese beiden Verzeichnisse:


    /var/lib/homebridge/backups

    Das ist nur ein Verzeichnis.


    Beispiel: die zwei Verzeichnisse /var/lib/homebridge/backups und /home/pi werden kopiert mit dem Befehl

    cp -a /var/lib/homebridge/backups /home/pi /mnt/nas


    wobei

    • /var/lib/homebridge/backups das eine Verzeichnis ist, das du kopieren willst,
    • /home/pi das andere Verzeichnis ist, das du kopieren willst,
    • /mnt/nas das Zielverzeichnis ist, wohin die beiden Verzeichnisse kopiert werden sollen.

    Du kannst auch mehr als zwei Verzeichnisse Kopieren. Die Pfade zu den Verzeichnissen werden einfach durch ein Leerzeichen getrennt. Ganz am Ende des Befehls steht das Zielverzeichnis.

    Allerdings kann in der Home nur ein oder aus bei einer bestimmten Temperatur eingestellt werden, wenn Temp über 22Grad dann ausschalten wenn Temp unter 19 einschalten, das funktioniert irgend wie nicht.

    Es wird nicht geschaltet, wenn die Temperatur über 22º grad liegt, sondern wenn sie die 22º überschreitet. Bei 19º muss die Temperatur dementsprechend unterschritten werden, nicht schon bereits unter 19º liegen.

    Wie wird die Helligkeit verändert? Die Lampe geht zwar bei einer Helligkeit - von sagen wir 37 - aus, aber sie geht nur an, wenn die Helligkeit 0 ist.


    Auch wenn die Lampe aus ist, ist ihre interne Helligkeit immer noch 37, damit sie diese Lichtstärke wieder annimmt, wenn man sie einschaltet. Du musst beim Ausschalten der Lampe also zusätzlich auch noch die Helligkeit auf 0 stellen.

    Ich schraube lieber an Hardware. Bin ein ganz ganz lausiger Spaghetticoder. Software war mir schon immer ein Gräuel, aber man kommt ja nicht mehr ohne aus. In jedem Rührbesen steckt heute ein Prozessor und "eidelt" zumeist gelangweilt vor sich hin.

    Tja, Hardware ist so gar nicht meins. Aber ich kann in fast 90% aller Fälle einen Rührbesen erkennen, wenn man auf ihn zeigt, und alles, was mich an ihm interessiert ist, ob er eine API hat.

    Bevor ich auf einen entscheidenen Fakt hinweise, will ich noch sagen: Ich verwende die Hue-App, um meine Hue-Bewegungsmelder und -Schalter mit meinen Hue-Lampen zu koppeln. Ich betrachte die Verwendung eines Bewegungsmelders oder Schalters nicht unbedingt als etwas, was ich Automatisierung nennen würde.


    Der entscheidende Fakt jedoch ist: wir schweifen hier vom Thema ab, oder?

    Man muß ja nun kein Theaterwissenschaftler sein, um zu wissen, daß eine Szene immer einen zeitlichen Ablauf hat.

    Und so ist es ja auch bei HomeKit, nur das der zeitliche Ablauf halt sehr kurz ist. Lampen, die eben noch alle aus waren, sind nun auf einmal alle eingeschaltet und haben bestimmte Farben. Die Szenerie wird aufgesetzt und das war's dann auch schon. Sie wird also weniger als Sequenz betrachtet als vielmehr eine Bühne, und die Wikipedia schreibt zur klassischen Theaterszene: "Um ein Theaterstück sinnvoll proben zu können, wird es traditionell in Einheiten unterteilt, während denen sich die Anzahl der Darsteller auf der Bühne nicht ändert. Wenn jemand auftritt oder abgeht, beginnt eine neue Szene.".


    Natürlich wäre die Umsetzung deiner Idee schon wünschenswert. Ich würde sogar noch gern Szenen in Szenen aufrufen können. Aber das, was wir haben, ist halt alles, was Apple anbietet.


    Wenn über das hinausgehen willst, was dir Apple bietet, dann musst du es selber programmieren. Ich selber verwende nur selten Kurzbefehle dazu, weil ich die ziemlich umständlich finde und häufig daran scheitere - was natürlich an mir liegt. Vielleicht geht das auf einem iPad besser, aber ich habe nur ein iPad der 1. Generation mit dem großartigen iOS 4. Auf einem iPhone jedenfalls tue ich mich schwer damit. Wenn ich was Abgefahrenes brauche, dann programmiere ich das per Node Red in JavaScript. Denjenigen, die noch nie in Javascript programmiert oder Node Red verwendet haben, mag das allerdings viel komplizierter vorkommen als die Kurzbefehle, und ja: die Einarbeitungszeit dauert deutlich länger. Nur zu empfehlen denen, die darauf auch Lust haben.

    Auf der Herstellerseite prangt bei der (momentan nicht lieferbaren) Steckdose das HomeKit Logo. Bei Amazon hingegen nicht, was ich auch merkwürdig finde.

    Offenbar verwenden wir beide unterschiedliche Internets. Auf der Herstellerseite sehe ich nichts dergleichen und bei Amazon finde ich die Steckdose nicht. Aber wie dem auch sei: ich klinke mich hier einfach wieder aus und will auch gar nicht weiter über diese Steckdose diskutieren - das überlasse ich mal lieber denen, die davon einen Plan haben.

    Und dazu möchte ich der Lampe sagen können, dass sie unter der Woche zwischen 22:00 und 3:00 nicht anzugehen braucht, wenn meine Katze durch läuft.

    Damit deine Fingerchen weiterhin wund bleiben, werfe ich hier noch mal das Topic "Bewegungsmelder vs. Präsenzmelder" ein. Ich schätze mal, dass so einige Modelle deine Katze erkennen, so dass das Licht aus bleibt, wenn morgens um zwei die Katze elegant durch den Flur schleicht oder du es bist, der verschlafen durch den Gang eiert.


    Ich selbst habe mal auf den Aqara Human Presence Sensor FP1 geschielt, aber bin nicht so ganz überzeugt von dem Ding und warte auf bessere Zeiten. Ich habe nicht das Problem (und werde es nicht haben), dass ich mein Domizil mit garstigen, Möbel zerstörenden und ständig das Licht einschaltenden Raubtieren teilen muss. Daher liegt ich mein Augenmerk nicht so sehr auf Katzen und daher hab ich auch keinen richtigen Plan von derartigen Nebenbedingungen. Darf man das nächtliche Herumlungern einer Katze dadurch unterbinden, dass man sie abends einfach bewusstlos schlägt? Ich fürchte, nein.


    Ich will halt darauf hinaus, dass das nächtliche Deaktivieren des Bewegungsmelders zwar eine Möglichkeit ist, aber dich selber trifft, wenn du tatsächlich mal nachts wohin willst.

    m Moment schalte ich eine Steckdose per HomeKit Automation morgens an und nach 30min wieder ab unabhängig von der Temp.

    Eine smarte, HomeKit-fähige Steckdose existiert also schon.

    Funktioniert das z.b. mit mystrom wifi switch https://mystrom.com/de/wifi-switch/?

    Ich kann nicht erkennen, dass die mit HomeKit funktioniert. Ich sehe weder das HomeKit-Logo noch wird davon irgendwo geredet (nur von Google und Alexa über das kostenpflichtige IFFFT). Darüber hinaus meine ich mich erinnern zu können, dass du schon eine Steckdose hast, die du per HomeKit-Automation steuerst, oder?


    Was du noch brauchst, ist doch ein Temperatursensor, oder habe ich etwas falsch verstanden?

    Nur über den homekit schalter hängt es sich meist aus, sodass der Radiosender meist nur pausiert bzw. weitergespielt wird.

    Das hat mich so sehr beschäftigt, dass ich jetzt den Switch "Umschalten" bei mir eingebaut habe, um herauszubekommen, was da wohl falsch läuft. Und ich hab rausgefunden, warum das bei dir nicht vernünftig läuft, denn bei mir tat es das auch nicht.


    Die alte Leier: Zugriffsrechte. Wenn man das Skript aufruft, dann legt es im /tmp-Verzeichnis eine Datei namens favradio.cache an. In diese Datei wird ein Zähler abgespeichert. Wenn man das also auf der Shell macht als User pi, dann wird die Datei abgespeichert mit den Zugriffsrechten des Users pi. Wird das Skript dann über die Homebridge aufgerufen, dann will es ebenfalls in die Datei schreiben. Bei mir läuft die Homebridge unter dem User homebridge und der will in die Datei schreiben, die ihm nicht gehört - verboten!


    Das könnte bei dir auch der Fall sein. Abhilfe schafft das Löschen von /tmp/favradio.cache mit dem Befehl

    rm /tmp/favradio.cache. Danach nicht wieder auf der Shell aufrufen, sondern gleich auf dem iPhone ausprobieren. Das hat bei mir sofort geklappt.


    Das kommt davon, wenn man glaubt, man könne funktionierende Anleitungen einfach so runterpölen, ohne das auch alles auszuprobieren. Daran hab ich schlichtweg nicht gedacht. Sorry.


    Ich kann die Umlautproblematik bei mir nicht testen. Deine Skript-Variable RAUM ist ein String und sollte in Anführungszeichen stehen, damit es keine Probleme mit Leerzeichen gibt, also:

    RAUM="terrasse" oder RAUM="gäste wc".