Page 1 of 1
Gen2 Shelly BLE-MQTT Gateway
Posted: Monday 11 December 2023 17:22
by lwolf
If anyone has a Gen2 (non battery operated!) device at home, then it can be used as a BLE-MQTT gateway.
I have created a Javascript, which can be added to the Gen2 device Scripting engine and it will collect BLE Temperature sensor data and forward it to the MQTT broker with Autodiscovery topics added. (Domoticz MQTT Autodiscovery compatible)
https://github.com/enesbcs/shelly-scrip ... mqtt-gw.js
Supported non-encrypted protocols: Mijia/ATC/pvvx/BTHome2
Re: Gen2 Shelly BLE-MQTT Gateway
Posted: Tuesday 27 February 2024 10:49
by imautohuttraeger
I am running this script on a Shelly Plus i4 device (non battery operated). When I open the magnet contact of a Shelly BLU Door Device (battery operated), it detects the LUX sensor via MQTT Auto Discovery. But only the LUX sensor. Any idea how to get the open/close status as well?
Re: Gen2 Shelly BLE-MQTT Gateway
Posted: Thursday 29 February 2024 7:06
by lwolf
imautohuttraeger wrote: ↑Tuesday 27 February 2024 10:49
I am running this script on a Shelly Plus i4 device (non battery operated). When I open the magnet contact of a Shelly BLU Door Device (battery operated), it detects the LUX sensor via MQTT Auto Discovery. But only the LUX sensor. Any idea how to get the open/close status as well?
Yes i have an idea. You have to add the necessary datatype in "datatypes" variable and have to add support at autodiscovery() function to this.
As this script is made only for temperature sensors...
Re: Gen2 Shelly BLE-MQTT Gateway
Posted: Thursday 29 February 2024 13:49
by imautohuttraeger
Thank you! The necessary datatype "window" already exists in your script. So at autodiscovery() I have simply copied the snippet of "illuminance" and renamed "params" to "window". Now idea about what to change for the for the rest of the code in order to have it perfectly. Now in Domoticz I get at least a custom sensor that delivers status 0 and 1. So I can work with that in Domoticz and control a virtual device. But of course it would be much nicer to have a switch of type "Door Contact" directly.
Re: Gen2 Shelly BLE-MQTT Gateway
Posted: Monday 04 March 2024 18:15
by imautohuttraeger
Meanwhile I have experienced, that this script always stops working and is also de-activated after a while (often it runs just 20 minutes) . It is the same with the original code without my customization. It stops (play symbol is shown instead of the pause symbol) and the slide switch for activation is off. See screenshot.
Othe scripts from the Github page do not stop working - I have tested some.
As my programming and debug abilities are close to zero I would appreciate any hint.
- Screenshot 2024-03-04 172112.png (5.25 KiB) Viewed 1443 times
Re: Gen2 Shelly BLE-MQTT Gateway
Posted: Friday 15 March 2024 10:43
by imautohuttraeger
Unfortunately I am still not successful. As I have got no reaction on my last post I feel free to bring this thread up, hoping that anyone who could help sees it this time. So if anyone is using this script or another one: Is it unintendently stopping for you as well? If not: Have you done any amendments that I could try to adopt?
Re: Gen2 Shelly BLE-MQTT Gateway
Posted: Monday 18 March 2024 13:29
by lwolf
imautohuttraeger wrote: ↑Monday 04 March 2024 18:15
It stops (play symbol is shown instead of the pause symbol) and the slide switch for activation is off. See screenshot.
Than it needs extensive debugging.
imautohuttraeger wrote: ↑Monday 04 March 2024 18:15
Othe scripts from the Github page do not stop working - I have tested some.
I guess those scripts does not use the same BLE functions and passive scanning.
imautohuttraeger wrote: ↑Monday 04 March 2024 18:15
As my programming and debug abilities are close to zero I would appreciate any hint.
Maybe you got some BLE payloads which broke the decoder. However without debug informations, i have no clue.
Re: Gen2 Shelly BLE-MQTT Gateway
Posted: Monday 18 March 2024 17:42
by imautohuttraeger
Thank you once again for your feedback. Since I can't provide any more information other than "it stops", I guess I have to accept that this can't work out-of-the-box for my individual needs. Maybe I should just try switching to WiFi door sensors (Shelly D/W 2) and live with having to change the battery more often.
Re: Gen2 Shelly BLE-MQTT Gateway
Posted: Monday 18 March 2024 19:50
by lwolf
imautohuttraeger wrote: ↑Monday 18 March 2024 17:42
Thank you once again for your feedback. Since I can't provide any more information other than "it stops", I guess I have to accept that this can't work out-of-the-box for my individual needs. Maybe I should just try switching to WiFi door sensors (Shelly D/W 2) and live with having to change the battery more often.
There are several console.log() lines in the source, for example in line 270. If you remove // from the front, it will write incoming packages. If you also press an ENTER before "console" in line 321, it will also write detected devices and addresses to the console for debugging purposes.
Maybe its a good idea to add a filter by BLE device addresses and return immediately from scanCB() handler in case of unknown devices. See for example
https://github.com/ALLTERCO/shelly-scri ... es.js#L189
Re: Gen2 Shelly BLE-MQTT Gateway
Posted: Thursday 10 October 2024 16:37
by imautohuttraeger
After giving up about more than half a year ago, I tried again and first updated the firmware of the BLE device (BLU Window) and the gateway device (PlusI4).
Now the script no longer stops and everything works fine. So it was probably not the script's fault but the firmware had any kind of error or intolerance.
I'm happy now. Thanks @Iwolf!
One question: Can I actually run an identical script on several gateway devices (each on near enough to the BT device) in parallel or does it produce conflicts?