Beiträge von hoegaarden

    Da gibts ja 2 Gateways:

    Generell zu den BLU Devices:

    Wenn bei denen was passiert, zb. Tastendruck, schicken sie via BLE ein BTHome Packet https://bthome.io/format/ aus. Das muss irgendwo gelesen und geparsed werden. Und dann kannst du damit machen, was du willst.

    Zum "alten" Gateway:

    Du kannst hier zb. das Script https://github.com/ALLTERCO/shell…e-shelly-blu.js verwenden. Das wartet auf diese BTHome Pakete von Devices und erzeugt ein Event für jedes Paket. Auf dieses Event kannst du dann in einem anderen Script reagieren: https://shelly-api-docs.shelly.cloud/gen2/Scripts/S…ddstatushandler. Und der event handler könnte dann zb. einen HTTP request machen, oder etwas auf MQTT publishen, odgl. Deine Anwendung könnte also auf diese http requests horchen, oder diese via mqtt entgegen nehmen.

    Andere Skript Beispiele, die vl schon OOTB besser für dich passen oder wo du Anregung finden kannst:

    Auf den alten Gateways musst du das, meines Wissens nach, alles selber machen via Script machen.

    Side-Note: der "alte" Gateway unterstütz Encryption der BTHome Packete nicht.

    Zum Gen3 Gateway:

    Ich hab keinen da, um das genau zu checken. Aber ich glaube mich zu erinnern, dass man beliebige BTHome Devices registrieren kann. Auch mit Encryption. Und ich glaube, du kannst auch direkt am Gateway ohne scripting schon auf die Events dieser Devices reagieren, und es würde mich nicht wundern, wenn du direkt eine WebHook URL angeben oder direkt auf einen MQTT topic publishen kannst. Wenn nicht, dann muss halt wieder mittels custom script den HTTP request machen oder auf MQTT publishen.

    Alternative: Ohne Gateway

    Es gibt auch die Möglichkeit das ganze ohne Gateway zu machen, und die BTHome Pakete selbst zu lesen und zu verarbeiten. BTHome ist offen, und um die Pakete lesen zu können brauchst du irgendein Gerät, das BLE kann, und irgendeine Software, die BTHome parsen kann. Ggf. kannst du das direkt in deine Applikation integrieren. Hier als Bespiel ein go module und example, wie man BTHome lesen kann:

    https://github.com/hoegaarden/go-…uezScan/main.go

    Zusammengefasst:

    Du willst wahrscheinlich in irgendeiner Art die BTHome Packete verarbeiten. Und dann deiner Applikation mitteilen, dass was passiert ist, und diese darauf reagieren soll. Und nicht umgekehrt: deine Applikation wird nicht pollen (in Abständen nachfragen ob sich was getan hat).

    Laut https://shelly-api-docs.shelly.cloud/docs-ble/common kann via characteristic `Passkey` das device in encryption mode gesetzt werden, und via characteristic `Encryption key` der Key ausgelesen werden. Wenn ich einen TRV scanne, sehe ich, dass er die `Encryption key` characteristic unterstützt, die `Passkey` aber nicht. Vl unterstützt der TRV keine Encryption der BTHome Pakete?

    Alle services/characteristics meines TRVs: