Beiträge von ApplePrime

    Kohle_81, Je nachdem, wie man HB installiert hat, bringt das ein eigenes Node mit und muss via hb-service aktuell gehalten werden. Unabhängig von der via Debian kommenden Version. Wobei man auch da, glaube ich, ein zusätzliches Repo einbinden müsste um aktuell zu sein.

    Auf der Konsole ein

    sudo hb-service update-node

    sollte das updaten.


    Die andere Fehlermeldung kommt vermutlich von abandonware/noble, das installiert sich nicht mehr mit aktuellen node. Braucht man nur für direkte Bluetooth Steuerung vm Raspi zum Switchbot.


    Falls jemand weiß, wie man Noble auf dem Raspi installiert bekommt, immer gerne her damit.

    Kohle_81, ja das hb-switchbot wird sogar ziemlich gut gepflegt. Ich bezog mich auf die Bibliothek abandonware/noble, die von einer anderen community "betreut" wird oder eben auch nicht mehr. Die BLE Funktionen von HB-switchbot bauen halt auf noble auf. Wenn man nun aber noble nicht installiert bekommt weil die zu alt ist und vermutlich nicht mehr mit der aktuellen Version von Node funktioniert, ist das doof.


    Auch ich spekuliere auf die direkte Homekit-fähigkeit.

    Welche Watch hast du denn?


    Force-Touch gab es nur bis zur Series 5 oder irre ich mich da. Meine 5er schwächelt jetzt schon mit dem Akku und bei meiner 2er gab es nach 4 Jahren kein WatchOS-Update mehr. Falls der Zyklus beibehalten wird (was nicht der Fall sein muss) würde die 5er das WatchOS 10 möglicherweise nicht mehr erhalten. Nur so als Gedankenspiel zu deiner Kosten/Nutzen-Rechnung für den Austausch.


    Wobei die 3er erst jetzt nach 5 Jahren nach WatchOS 8 abgehängt wurde und die 4er gerade die Version 9 bekommen hat, also auch mindestens 5 Jahre Updates erhält. Bei diesem Zyklus hättest du noch 2 Jahre auf eine 5er.


    Sicher kann man die auch danach noch benutzen. Meine 2er nutze ich seit 3 Jahren als Schlaftracker am anderen Handgelenk, während die 5er auflädt.

    Danke sschuste für den Tipp. Für meine Zwecke scheint das aber übertrieben. Vielleicht schau ich mir das mal bei einem anderen, zukünftigen Projekt an.


    Allerdings hatte ich gerade noch eine Idee, mit einem etwas pragmatischerem Ansatz. Da ich ohnehin zwei Raspis am start habe, habe ich einfach auf dem zweiten auch noch einen Broker aufgesetzt, der von rtl_433 Nachrichten mit Retain-Flag annimmt. Leider kann ich das bei rtl_433 nicht auf topics bzw Messageormat eingrenzen und man kann auch nur eine Pub-Verbindung mit dem selben Broker anlegen, deshalb zwei Broker.


    Jetzt will ich dann am Ende meines vorhandenen Python-Scripts ein Bash-Script starten, welches dann je nach Zeit über mosquitto_sub -C 1 -t rtl/sensor1/temperature_C den letzten Wert abgreift und zusätzlich auch noch das topic rtl/sensor1/time überprüft, in dem der Zeitstempel der letzten Übertragung hinterlegt ist. -C 1 "wartet" auf nur eine Nachricht und beendet dann die Subscription, da ratain ja gecached wird, kommt die Antwort sofort.


    Ich berichte dann nächste Woche


    Läuft schon fast. Ich hab mein vorhandenes Python Skript, dass die Daten von OWM holt und nach mqtt schickt, erweitert. Allerdings sehr unfein über einen externen Aufruf des Linuxprogramms.


    Kann mir bitte noch wer verraten, wie ich direkt in Python/paho.mqtt einen einmaligen Wert auslese, also das equivalent zum mosquitto_sub -C 1?


    und ja, ich weiß, das Python mit round() nicht immer korrekt kaufmännisch rundet, ist hierfür aber nicht wirklich relevant.

    Das würde wohl trotz allem ziemlich fummelig werden mit dem kleinen Switchbot Schalterchen. Werde ich halt noch ein paar Jahre ohne ohne smarte Bedieung auskommen müssen und dann eine Einbau-Klimaanlage holen, bei der ich darauf achte, dass sie direkt smart ist oder per IR Befehle entgegennimmt und den Status auch per IR zurück an die Fernbedienung (mit LCD für Ist/Ziel-Temperatur bzw Modusanzeige) sendet

    Ich habe nie richtig Programmieren gelernt, bin aber absolut in der Lage Beispielcode für meine Zwecke anzupassen. Ich habe schon ein wenig gegoogelt doch die Beispiele, die ich fand gingen nie über eine Ausgabe des abonnierte Topics/Payloads hinaus. Vielleicht könnt ihr mich ja in die richtige Richtung lootsen, gerne auch auf eine andere Website für Bash oder Python.

    Ausgangslage:

    Ich habe zwei Außenensoren für Temperatur und Luftfeuchtigkeit, wegen der Gegebenheiten hängt einer davon bis Mittags in der Sonne und der andere Sensor danach, was die ermittelten Daten leider unbrauchbar macht. Diese 433mHz Sensoren lasse ich mit rtl_433 und einem entsprechenden Funkempfänger am Pi auslesen und an mosquitto senden. Hier kommen von jedem Sensor etwa alle 30 Sekunden neue Werte.


    Außerdem habe ich ein Python Script gefunden und auf Einzeltopics angepasst, mit dem ich Wetterdaten von openweathermap.org (OWM) für meinen Ort abrufe und ebenfalls nach mosquitto veröffentliche. Das läuft alle 2 Minuten per cron-job.

    Was will ich tun?

    Da OWM sicher keine Messstation in meinem Dorf hat, dürften die erhaltenen Daten irgendwie extrapoliert sein und auch meine Außensensoren sind nur für Consumer "Wetterstationen" gedacht, also auch nicht sonderlich genau. Deshalb möchte ich Mittelwerte bilden.


    Ich möchte ein dauerhaft laufendes Script (Batch oder Python), das 6 topics abonniert. Jeweils temperature_C und humidity meiner beiden Sensoren und der OWM-Daten.


    Immer wenn nun Daten von OWM eintreffen (alle 2 min) sollen die zuletzt empfangenen und gespeicherten Daten meiner Funksensoren kombiniert werden und als neues Topic an mqtt gehen. Also getrennt nach topic, wenn owm/temperature_C dann bilde Mittelwert der Temperaturen und wenn topic owm/humidity reinkommt dann Mittelwert der Luftfeuchten bilden.

    Code
    05:30 - 12:00 -> (OWM + Sensor1) / 2
    12:01 - 21:59 -> (OWM + Sensor2) / 2
    22:00 - 05:29 -> (OWM + Sensor1 + Sensor2) / 3

    Das ganze ich nicht wirklich wichtig oder nötig, ich würde gerne aber meine Skills etwas erweitern.

    Ich habe da noch ein wenig rumprobiert und einen Workarround mit einigen Wenns und Abers ausgearbeitet.


    Man kann einen Aqara Hub M2 und vermutlich auch den Hub M1S als "Klingel" mit drei verschiedenen Meldodien von Homekit aus ansteuern!

    Das Wenn:

    Der Hub meldet sich bei Homekit als "Securtiy System" an, ihn aber als Sicherheitsystem zu betrachten wäre maßlos übertrieben. Wer also die Funktion der Sicherheitszentrale, die ohnehin nur mit Aqara Sensoren funktioniert, nicht braucht, kann die Lautsprecher mit den eingebauten Melodien anders nutzen. Die Sensoren selbst werden ja auch noch direkt in Homekit angezeigt. Aktoren habe ich keine, vermutlich aber auch diese.


    Falls ihr schon das Alert System eingerichtet hattet, sorgt dafür, dass hier von alten Routinen oder Zeitplänen keine Umschaltungen mehr zwischen den Scharf-Modi erfolgen kann!

    In der Aqara App:

    • Zunächst richtet ihr euch drei Szenen mit den gewünschten Melodien und Lautstärken ein. Unten den Bereich "Scene" auswählen und dann oben rechts das + tappen. Dann Add und jetzt nicht die Aktionskarten oben sondern unten den Hub auswählen und "Play assigned rintone" auswählen. Probiert die Töne durch, die euch gefallen, ganz unten ist die Lautstärke zu wählen. Passenden Namen vergeben, damit ihr später die richtige Meldie auswählen könnt
    • Dann geht ihr auf der Home Seite oben links auf "Alert System is off". Dieses muss zuerst eingerichtet werden. im Bereich "Alert Mode" auf Edit gehen oder eines der rot markierten Modi antappen. Der Modus "24/7" kann für unsere Zwecke nicht genutzt, hier könnt ihr aber immer noch Sensoren hinterlegen, die ständig scharf sein sollen (Rauchmelder, Wassermelder). Die 3 anderen Modi konfigurieren wir nun mit einem Aqara Sensor (darf immer der gleiche sein), weil ohne geht es nicht! Vorzugsweise mit einem Wert, der nie eintritt. Meinen Türsensor habe ich auf "opened for over" mit 23 Stunden gestellt Beim Sound jeweils die Lautstärke (Volume) auf 0 stellen! Weil diesen Alarm wollen wir nicht hören, da der Sensor nur pro forma da eingetragen ist.
    • Als nächstes richten wir drei Automationen ein, also unten auf "Automation" gehen und wieder das +:
      • Im IF-Bereich adden wir über die Karte "Alert System" zuerst den "Home Alert" für die nächsten beiden Automationen dann jeweils einen der anderen beiden. Im nächsten Fenster dann "Enable" wählen.
      • Im THEN-Bereich wird
        • als erstes ein Delay von 1 sec eingefügt! Warum erkläre ich später.
        • dann über die Karte "Scene" die Szene auswählen die ihr ganz am Anfang eingerichtet habt.
        • dann wieder einen Delay von 3 bis 7 sec, je nach Melodie und deren Länge. Wenn der Delay zu kurz ist wird die Melodie nach den gewählten Sekunden abgebrochen
        • als letztes nun über die Karte "Alert System" "Disarm automatically" wählen, damit der Hub für den nächsten Trigger wieder bereit ist.

    In Homekit:

    Bastelt euch beliebige Automationen und immer wenn ihr einen Ton abspielen wollt, stellt ihr über "Zuhause Steuern" das "Security System" des Aqara Hub auf den ensprechenden Scharf-Modus ein: Zuhause, Abwesend oder Nacht.


    fertig!

    Die Abers:

    Leider spielt der Aquara beim Scharfschalten immer erst mal ein kurzes Quitschen ab, so wie früher bei den ersten Alarmanlagen für Pkw, beim Abschalten kommen gar zwei Quitscher. Deshalb ist die 1 Sekunde Verzögerung vor dem Abspielen der Melodie erforderlich, sonst würde gar keine Melodie gespielt


    Wenn ihr mehrere Hubs habt (auch den kleinen E1) meldet sich jeder einzeln als Alarmsystem bei Homekit an und können hier auch scharf geschalten werden. Leider synchronisiert Aqara den Status aller Alert-Systeme. Ihr könnt die Anzahl an Melodien also nicht um je 3 erweitern indem ihr noch E1-Hubs dazukauft.


    Wenn der Scharf-Modus des Alert-Systems z.B. schon auf Home-Alert steht und ihr versucht über eine Autmation oder direkt den gleichen Modus zu aktivieren passiert leider gar nichts. Von daher können wir leider keine vierte Melodie auf "unscharf" triggern.


    Wenn die Scharf-Modi sehr schnell hintereinander kommen, werden einige Melodien nicht oder nur kurz gespielt. Bei mir ist es aber auch beim Testen vorgekommen, dass nach dem Abspielen der Szene für Home Alert mit abschließender automatischer Unscharf-Schaltung und direkter Auswahl eines anderen Scharf-Modus die gleiche Melodie wie beim Home Alert kam. Wirklich gemacht ist der Hub also nicht dafür.

    Ideen:

    Wer noch weiterbasteln will kann in der Aqara-App bei den Automationen am Trigger noch Start- und Endzeiten einrichten um je nach Tageszeit andere Szenen, also andere Melodien und/oder Lautstärken abzuspielen.


    Viel Freude

    Der Aqara Hub M2 hat ja ein paar Klingel- und Alarmtöne eingebaut. Innerhalb der Aqara App kann man die bei Automationen oder Szenen vom eingebauten Lautsprecher abspielen lassen. Leider werden die Szenen nicht nach Homekit gespiegelt und auch sonst sehe ich keine Möglichkeit von Homekit aus diese Töne auszulösen. Funktioniert anscheinend also nur, wenn ein Aqara Sensor/Schalter auslöst.


    Ich wollte mir jetzt nicht extra eine Aqara Steckdose kaufen und diese als Dummyswitch zu nutzen um dann im M2 eine Automation auf "wenn Strom eingeschaltet" zu triggern. Zumal ich dann für jeden Klingelton bzw Lautstärkelevel einen solchen Zwischenstecker mit entsprechendem Stromverbrauch benötigen würde.


    Der M2 wird als Sicherheitssytem in Homekit eingebunden Die App bietet zwar die Möglichkeit zu triggern auf z.B. "Homealarm einschalten" oder "Nachtalarm einschalten" zu triggern aber leider ertönt hier nur der armed/disarmed Ton anstatt dem gewählten Klingelton.


    Übersehe ich hier vielleicht irgendwas oder gibt es doch eine Lösung dafür:?:

    Ich bekomme auf zwei Raspi 4 die BLE-Verbindung mit einem Kontaktsensor von Switchbot nicht hin. Auf dem Pi-1 mit der Haupt-Homebridge wurde Node.js und HB noch manuell installiert, hier scheinen auch die Zusatzpakete @abandonware/noble und node-switchbot installiert zu werden. Keine Fehlermeldungen beim Installieren. Auf dem Pi-2 mit habe ich meine Test-Homebridge über repo.homebridge.io installiert. Hier mault dann ld beim Installieren von @abondonware/noble. Die Voraussetzungen habe ich gelesen und installiert. Ich habs auch mit sudo und -g und --unsafe-perm auf der Konsole probiert.


    auf dem Pi-1 erhalte ich im log:

    Code
    processLeAdvertisingReport: Caught illegal packet (buffer overflow): TypeError: Cannot read properties of undefined (reading 'slice')
    [21.8.2022, 08:28:09] [SwitchBot] Contact Sensor: Tür Zimmer1 wasn't able to establish BLE Connection, node-switchbot: [object Object]
    [21.8.2022, 08:28:09] [SwitchBot] Contact Sensor: Tür Zimmer1 Using OpenAPI Connection

    die obere Zeile wird 14x wiederholt und erscheint nur, wenn ich für den Sensor BLE aktiviere


    auf dem Pi-2 erscheint im log zusätzlich noch, dass node-switchbot nicht gefunden wird. Wie gesagt, hier werden zwei Bibliotheken nicht gebaut. Hier ist OpenAPI von Switchbot nicht konfiguriert.

    Code
    [21.8.2022, 08:49:42] [SwitchBot] Was 'node-switchbot' found: false
    [21.8.2022, 08:49:42] [SwitchBot] [DEBUG] Contact Sensor: Tür Zimmer1 BLE Address: f7:xx:xx:xx:xx:xx
    [21.8.2022, 08:49:42] [SwitchBot] Contact Sensor: Tür Zimmer1 wasn't able to establish BLE Connection, node-switchbot: false


    Beim Installieren des Plugins '@switchbot/homebridge-switchbot' werden zwei Logs davon angelegt, siehe im Anhang. Problem ist, dass ld wohl ein Problem hat hier was zu linken. Vorzugsweise soll das Plugin auf dem Pi-2 laufen, da dieser Pi im gleichen Raum wie der Sensor ist.


    2022-08-21T06_56_29_279Z-debug-0.log.txt

    2022-08-21T06_56_38_971Z-debug-0.log.txt

    Da nich für, Rasae. Es gibt ja die Mail-Benachrichtigungen...


    Mir ist da grad noch was eingefallen. Dein Helligkeitssensor meldet ja sicher nicht nur Sonne ja/nein sondern einen Helligkeitswert, z.B. in LUX, oder?


    Zusätzlich zu obigen kannst du du natürlich auch hier eine Differenz in die Trigger der ersten beiden Automationen einbauen, also unterschiedliche LUX-Werte für es wurde hell und es wurde dunkel. Mir fehlen dazu die Vergelichswerte, die LUX-Werte musst du also selbst rausfinden. Hilft sicher zusätzlich damit nicht bei Helligkeiten um den Grenzpunkt herum ständig getriggert wird, nur weil eine leichte Schleierwolke durchzieht.:


    • Wenn Helligeit größer 9 LUX
      • DelayHell einschalten
      • DelayDunkel ausschalten


    • Wenn Helligkeit kleiner 8 LUX
      • DelayHell ausschalten
      • DelayDunkel einschalten


    Rasae, ich bin mir nicht sicher, ob ich das richtig lese. Deine Darstellung der Trigger ist mir zu verkürzt. Ich würde zwei DelaySwitches verwenden, die jeweils das Hoch- bzw Runterfahren verzögern. Das jweilige Ausschalten des anderen Switches verhindert, dass der Trigger zum Steuern des Rolladens ausgeführt wird. Stattdessen wird auf den Motion-Sensor des DelaySwitches getriggert. Ergibt vier Automationen:


    • Wenn Sonne scheint
      • DelayHell einschalten
      • DelayDunkel ausschalten


    • Wenn Sonne weg
      • DelayHell ausschalten
      • DelayDunkel einschalten


    • Wenn DelayHell Bewegung erkannt
      • Rolladen runterfahren


    • Wenn DelayDunkel Bewegung erkannt
      • Rolladen hochfahren


    Wobei du vielleicht noch Einschränkung im Zeitbereich setzten willst. Abends/Nachts fährt man Rolläden ja für gewöhnlich auch runter. Bzw. will man morgens vielleicht nicht allzu früh geweckt werden...


    Ich persönlich würde den Delay aber eher auf 15 Minuten setzen. Bei leichter Bewölkung mit wenig Wind fahren die Dinger sonst trotzdem bis zu 12x die Stunde hoch oder runter.

    LOL, ich schrieb zwar, dass es mir nicht "primär" um die Kosten ginge aber bei deinem Vorschlag passt der Vergleich "mit Langstreckenraketen zu versuchen eine Ameise zu tätowieren". Das Ding kostet mindestens 215 Euro plus Mehrzwecksteuer ohne Kabel und Montagematerial.

    Danke, aber das ist ja genau was ich nicht will. Ich will eher einzelne, lichtschwache LED, ohne eigenes Netzteil, die ich irgendwo neben dem Monitor oder Schreibtisch anbringen kann.


    Deine Ali-Links kann ich übrigens nicht öffnen, da die von Pihole ausgefiltert werden.

    Aktuell zweckentfremde ich eine Nachttischlampe von Meross um mir bestimmte Ereignisse durch unterschiedliche Farben und Blinkmuster signalisieren zu lassen. Allerings ist mir das Gerät am vorgesehenen Standort eigentlich immer noch zu groß und die Helligkeit auch bei Minimum zu hell. Außerdem braucht das wegen WLAN auch permanent relativ viel Strom.


    Ich suche daher was deutlich kleineres, dass ich per Homekit bzw Homebridge oder auch per Script ansteuern kann. Mir geht es dabei nicht primär um die Kosten, eher um die Größe. Es sollte was kleines im Formfaktor eines USB-Sticks oder eines "Kuando BusyLight UC Alpha". Gerne auch direkt letzteres, wenn das schon mal jemand geschafft hat, über Linux anzusteuern.


    Sofern es keinen Lötkolben braucht, könnte ich nach Anleitung vielleicht auch was für den Raspi basteln. Gerne direkt an einen Raspi anschließbar, möglichst ohne zusätzliche Stromversorgung.


    Hat da schon mal jemand Erfahrungen gesammelt und kann mich auf geeignete Produkte und/oder auf zielführende Projekte verweisen?

    Ich hab da mal ein ein Bash-Script gebastelt, das per cronjob bei meinem Teamspeak3-Server nachsieht, wer gerade alles Online ist und entsprechende mqtt Nachrichten mit dem Anwesenheitsstatus an Mosquitto sendet. Damit kann dann homebrige-mqttthing einen Occupancy-Sensor (oder Motion/Contact) für jeden meiner Freunde bauen und ich kann in Homekit entsprechende Trigger setzen um zum Beispiel eine Lampe blinken lassen oder eine Message aufs iPhone zu senden.


    Leider funktioniert das wohl nur, wenn man Server-Admin des Teamspeak3-Servers ist.


    Teamspeak ist übrigens eine Voice-Chat-Anwendung, die besonders bei Gamern für Teamplay beliebt ist.


    Ich bin kein besonders erfahrener Coder aber vielleicht mag sich das ja mal jemand ansehen. Zu finden auf Github

    @Dampf, genau so sieht mein Kurzbefehl aus.


    Also mit motion und contact gings auch grad nicht. Nachdem ich AppleTV und HomePodMini stromlos geschaltet hatte, werden die Automationen mit motion und contact jetzt ausgeführt, mit occupancy weiterhin nicht.


    Ich werde es natürlich umstellen, wenn es keine Lösung für Occupancy gibt. Nur "Anwesenheit" wäre für diesen Anwendungsfall aber eben die logischere Wahl.