HA-NeoPool-MQTT
Home Assistant MQTT integration for Tasmota NeoPool module (ESP32 and ESP8266 devices).
Since the native tasmota integration wasn’t exporting all entities (switches, selects, numbers, etc.) to HA correctly, I opened a discussion on Tasmota’s repo with NeoPool dev, and we decided for now to integrate all possible entities using purely HA’s MQTT integration entities.
All the NeoPool entities will be created through the provided package via HA’s native MQTT entities.
The integration is currently based on Tasmota dev release v13.2.0.2
(that merged PR #19973). Next stable release (after v13.2.0
, current stable version) should contain it.
Since the NeoPool driver is not contained in precompiled binaries, you need to compile your own build.
For flashing ESP32/ESP8266 I highly recommend using ESP_Flasher by @Jason2866, in v2.0.1 he kindly implemented by my request support for ESP32 high-speed baud rates (1.5Mb/s) for very quick and reliable flashing and he also added support for factory images.
Custom pre-configured Tasmota build
When you custom compile your version, make sure to choose the dev branch and verify after flashing that version is at least v13.2.0.2
. I will update notes to specify the stable min. version once known. When you custom compile your build, you’ll need to use the user_config_override.h
provided in the compiler
folder of this repository; this will automatically enable NeoPool and also configure all settings automatically without requiring to manually follow the manual steps of next section.
NOTE for beginners: if you have no idea about how to custom compile Tasmota, you can use the precompiled files in the firmware
folder of the repository.
The only thing you’ll have to check is if the activated template is correct, you do this from Tasmota console executing command Module
:
13:41:13.489 CMD: Module
13:41:13.491 RSL: RESULT = {"Module":{"0":"NeoPool Atom Lite + Tail485"}}
If the result is not the one you see above, you need to issue the command Module 0
to activate the preconfigured template:
13:43:35.087 CMD: module 0
13:43:35.090 RSL: RESULT = {"Module":{"0":"NeoPool Atom Lite + Tail485"}}
In case you don’t use the provided user_config_override.h
file, you’ll need to follow the Manual Configuration Steps section below.
Manual configuration steps
-
From Tasmota console, run these commands to optimize the device configuration:
This sets Retain flag for telemetry topic so that HA entities are immediately available
SensorRetain 1
This ensures that Tasmota %topic% is set to
SmartPool
so you don’t have to change all the topics in the package file
It also sets device name, friendly name and mqtt client name (for easier identification in the broker)Backlog Topic SmartPool; DeviceName SmartPool; FriendlyName SmartPool; MqttClient SmartPool;
Define a rule to keep the Sugar Valley device clock in sync with Tasmota’s device clock and also sets NeoPool SENSOR topic to update every 60s for often changed (measurements) values
This also disables the device from being discovered by HA so it won’t create unnecessary and duplicate entities for NeoPoolRule1 ON Time#Initialized DO NPTime 0 ENDON ON Time#Set DO NPTime 0 ENDON ON System#Boot DO Backlog Discover 0; NPTeleperiod 60; ENDON
Configure user template for GPIO definition based on device type
Atom Lite + Tail485 (GPIO26: NeoPool TX / GPIO32: NeoPool RX)Template {"NAME":"NeoPool Atom Lite + Tail485","GPIO":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,6976,0,0,0,0,0,7008,1,0,0,0,0,0,0],"FLAG":0,"BASE":1}
AtomS3 Lite + Atomic RS485 Base (GPIO19: NeoPool TX - GPIO22: NeoPool RX)
Template {"NAME":"NeoPool AtomS3 Lite + Atomic RS485 Base","GPIO":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6976,0,0,7008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":1}
Other ESP32/ESP8266 devices (GPIO3: NeoPool TX - GPIO1: NeoPool RX):
Template {"NAME":"NeoPool ESP32/ESP8266","GPIO":[1,6528,1,6496,1,1,0,0,1,1,1,1,1,1],"FLAG":0,"BASE":18}
Activate Rule1 and User GPIO Template
Backlog Rule1 4;Rule1 1; Module 0;
-
Home Assistant MQTT integration properly configured and working
-
The integration is released as a Home Assistant package, check HA docs on how to configure HA for package usage. Please note that this integration will not create a device, only entities.
-
The lovelace UI is extracted from the raw lovelace file, edit your raw lovelace config and paste the contents of the yaml file. There are two lovelace files, one for pc/notebook display resolutions, the other for mobile resolutions (vertical layout). The UI makes use of the following cards, available through HACS, that you need to install first:
Credits
Big thanks to @fdebrus for inspiring me and @curzon01 for the great support.
Issues/Discussion
Please open an issue in this repo if you’re sure there’s a bug. For discussions/general requests, please refer to this thread in HA community.
Coffee
If you like this integration, I’ll gladly accept some quality coffee, but please don’t feel obliged.