Solem Bluetooth Watering Controller

Hi!

So, previously I posted about a Home Assistant Integration that I created which is the Solem Toolkit, for controlling the watering of Solem BL2IP models. I mentioned that I would be working on another Integration that would do a few more things, namely scheduling the watering according to a monthly schedule, taking into account the weather forecast, how much it rained, how much will it rain, etc.

So I created the Solem Bluetooth Watering Controller Integration. For now it only works for the BLIP model, but I also have an BLNR model and I will reverse engineering the communication with the device to figure out how to send commands to it.

You can install this integration as any other custom component, through HACS. I’m also thinking about the possibility of extracting an integration from this one to be used with any other watering controller (I would only need to create an adapter for each one that would integrate with this new one).

If you try it, any feedback is welcome.

2 Likes

Hi @hcraveiro, I’ve been looking for such things but for the LR-IP one. I’ve contacted tech support of SOLEM and they refused to provide integration info on LR-IP. If you need someone to reverse engineering the bluetooth part with you, let me know and I will be very happy to help

PS: I confirm that while the mac address is found and configuration goes through without any issue, the result is NOK. I even have tried via the LRMB10 but still no luck

Bonjour @Fvanoost , je viens de lire ton post, très intéressant, j’utilise moi même du solem avec leur environnement. Mais ne trouvant pas tout à mon gout, trop fermé. Je suis a deux doigt de passer avec des devices x en LoRa WAN en réseau privé, puis hébergeur iot. Puis je découvre cette pseudo ouverture avec Home assistant, tu aurais plus d’info? Merci

Hi, I’ve a BL-IP and was looking for an integration in HA. Have you tried adding the controller through a Bluetooth Proxy ? Thanks !

1 Like

Hello @hcraveiro:
Same problem here. Connecting via bt-proxy (ESP-WROOM-32)

Logs:

Registrador: custom_components.solem_bluetooth_watering_controller.api
Fuente: custom_components/solem_bluetooth_watering_controller/api.py:412
integraciĂłn: Solem Bluetooth Watering Controller ([documentaciĂłn](https://github.com/hcraveiro/Home-Assistant-Solem-Bluetooth-Watering-Controller))
OcurriĂł por primera vez: 20:29:10 (6 ocurrencias)
Ăšltima vez registrado: 20:31:46

Error processing Forecast Weather data: JSON format invalid!

Traceback (most recent call last): File "/config/custom_components/solem_bluetooth_watering_controller/api.py", line 412, in get_forecast (index for index, forecast in enumerate(self._cache_forecast) ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ TypeError: 'NoneType' object is not iterable

Registrador: custom_components.solem_bluetooth_watering_controller.coordinator
Fuente: custom_components/solem_bluetooth_watering_controller/coordinator.py:909
integraciĂłn: Solem Bluetooth Watering Controller (documentaciĂłn)
OcurriĂł por primera vez: 20:29:10 (6 ocurrencias)
Ăšltima vez registrado: 20:31:46

C8:B9:61:D1:FA:8C - Error: Error processing Forecast Weather data: JSON format invalid!
Traceback (most recent call last):
  File "/config/custom_components/solem_bluetooth_watering_controller/api.py", line 412, in get_forecast
    (index for index, forecast in enumerate(self._cache_forecast)
                                  ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not iterable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/config/custom_components/solem_bluetooth_watering_controller/coordinator.py", line 909, in async_update_data
    data = await self.async_update_all_sensors()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solem_bluetooth_watering_controller/coordinator.py", line 630, in async_update_all_sensors
    await self.reset_rain_sprinkle_indicators()
  File "/config/custom_components/solem_bluetooth_watering_controller/coordinator.py", line 408, in reset_rain_sprinkle_indicators
    self.rain_total_amount_forecasted_today = await self.weather_api.get_total_rain_forecast_for_today()
                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solem_bluetooth_watering_controller/api.py", line 470, in get_total_rain_forecast_for_today
    will_it_rain_result = await self.will_it_rain()
                          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solem_bluetooth_watering_controller/api.py", line 440, in will_it_rain
    forecast = await self.get_forecast()
               ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solem_bluetooth_watering_controller/api.py", line 432, in get_forecast
    raise APIConnectionError("Error processing Forecast Weather data: JSON format invalid!")
custom_components.solem_bluetooth_watering_controller.api.APIConnectionError: Error processing Forecast Weather data: JSON format invalid!

Registrador: homeassistant
Fuente: custom_components/solem_bluetooth_watering_controller/coordinator.py:270
integraciĂłn: Solem Bluetooth Watering Controller (documentaciĂłn)
OcurriĂł por primera vez: 20:30:10 (5 ocurrencias)
Ăšltima vez registrado: 20:30:27

Error doing job: Task exception was never retrieved (None)
Traceback (most recent call last):
  File "/config/custom_components/solem_bluetooth_watering_controller/coordinator.py", line 339, in async_init
    await self.load_persistent_data()
  File "/config/custom_components/solem_bluetooth_watering_controller/coordinator.py", line 270, in load_persistent_data
    self.last_reset = dt_util.now()
                      ^^^^^^^
UnboundLocalError: cannot access local variable 'dt_util' where it is not associated with a value

@cfrancio yes, I’ve build a Bluetooth proxy with ESP32. Both the LR-IP and the LRMB10 are visible but once configured in HA, no luck. The plugin is only working for BLIP for the moment, hence my proposal to assist the developer.

@epsbh LoRa WAN n’est pas le plus simple à implementer. Je pense passer à une passerelle Z2M tournant sur un raspberry que je vais installé proche de mon local technique (assez loin de ma maison) et chercher un controlleur zigbee et simplement démonté le LR-IP. Au 21ème siècle, resté sur un environement totalement fermé est une hérésie mais SOLEM ne veux rien entendre

Hi all. I cannot find the integration on HACS. Do i Have to add the github repository manually?

yes, you have to but beware that it only work with the SOLEM BLIP model, both the LR-IP and the LRMB10 are visible but not working yet

little update on my own post. After updating to the latest version and using the mac adress of my LR-IP, the configuration goes till the end and creates lots of sensors and actionable buttons

but so far none seems to reach my LR-IP.

Let me know if you want help to debug

Fred

hi @hcraveiro , any progress on this? Good weather is comming and it’s time for me to decide if I stay on Solem or move away to something more open.

Thanks

Fred

Hi @Fvanoost , sorry for taking so long, I never got notifications about this thread. So, I managed to connect to BLIP because I have one, it required me to reverse engineering the communication between my bluetooth interface and the Solem device. I also found this in regards to my device, can you do it for your device? Basically what is needed is the commands passed through bluetooth so I can write those on the api.

hi, thanks for your answer but unfortunately, the link https://www.solem.fr/en/residential-watering/9-bl-ip.html is no more working but I assume it was just the webpage of the BL-IP. Can you elaborate a bit more on the reverse engineering part? How do you “sniff” bluetooth and what kind of stuff do you need to do it?

@hcraveiro Do I need a Bluetooth adapter on my Home Assistant server? I can’t detect the MAC address of my Solem BL-IP in the Solem integration.

SOLEM BL IS
Ciao buonasera. a me è uscita prima l’integrazione iBacon Tracker e successivamente solem bluetooth water controller, ovviamente mancavano le risorse in hacs. Trovato tutto, installo e sono arrivato al punto che nella scoperta dei dispositivi dell’integrazione c’era il mac del mio solem, configurato ma l’acqua non esce anche se tutti l’entità sembrano funzionare. N:B. la cosa strana è che sono 10 giorni che installo le stesse integrazioni senza mai riuscie a farle funzionare. Adesso sto usando un esp proxy per baypassare le integrazioni. Con l’indirizzo mac e iuud mi da connessione con soleim ma sto cominciando ancora adesso a cercarli

Hi @hcraveiro,

First of all, thank you so much for this amazing work on the Solem integration!

Just like Frédéric (Fvanoost), I am trying to connect Home Assistant to my LRMB10 (LoRa/Ethernet gateway) for my pool and upcoming irrigation system. I've already installed the toolkit, but as expected, I am getting the Device not found error during the Bluetooth scan because the LRMB10 handles communications differently once it's set up on the network.

I really want to help bridge the gap between your integration and the LoRa/LRMB10 lineup. While I am not a developer and cannot code, I am more than happy to contribute as an active tester!

Let me know if you are interested in exploring the LRMB10/LoRa side, I'd be glad to be your tester on this!

Hi all, great work @hcraveiro on the Bluetooth integration :+1:

For everyone in this thread who hit a wall with LR-IP / LR-IS controllers and the LR-MB (LRMB10) gateway: those are LoRa devices, so Bluetooth can't reach them. I built a separate integration that talks to them through the MySOLEM cloud (the same API the mysolem.com app uses), so it's complementary to the BLE one rather than a replacement.

What it gives you (per controller, auto-discovered):

  • A valve entity per station (open/close to water)
  • Run program selector + Stop button
  • Run duration and Rain delay number entities
  • An irrigation enabled switch (on/off)
  • Sensors: current watering station, last communication, battery
  • Services solem_irrigation.run (run a program or a single station for X minutes) and solem_irrigation.set_enabled

Install via HACS as a custom repository (manual copy also works). You just need your MySOLEM email, password, and region.

Fair warning on the tradeoffs: it goes through Solem's cloud (no local option for these LoRa models that I've found), and LoRa duty-cycling means commands can take a few seconds to a minute to land. State for the on/off switch and rain delay is assumed, since the cloud doesn't reliably report it back.

It's open source and I'd love testers and feedback, especially anyone with LR-IS or other LoRa controllers to confirm coverage. Issues/PRs very welcome :smiley:

1 Like

Hello [AnTiToinE], thanks for your work on this as this is exactly what i've been looking for.

Can we get LR-MS data also from this integration ?

Thanks !