Home Assistant MQTT integration for Tasmota NeoPool module (ESP32 and ESP8266 devices).
Notebook/PC Layout ha_neopool_mqtt_lovelace.yaml
:
Reponsive Layout ha_neopool_mqtt_lovelace_responsive.yaml
:
Since the native Tasmota integration only supports standard entities to HA (switches, selects, numbers, etc.), I opened a discussion on Tasmota's repo with NeoPool dev, and decided for now to integrate all possible entities using purely HA's MQTT integration entities.
All NeoPool entities are created by the provided package ha_neopool_mqtt_package.yaml
via the native MQTT entities of HA (Note: It does not created a new device, it creates entities only).
This integration needs at minimum Tasmota v13.3.0 with compiled NeoPool driver.
Since the NeoPool driver is not contained in Tasmota precompiled binaries, you need to compile your own build or use one of the precompiled binary from the firmware folder. If you initial flash your ESP with one of the precompiled binaries, you can skip the points "Custom pre-configured Tasmota build" and "Configuration steps 1." below.
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.
NOTE for beginners: If you have no idea about how to custom compile Tasmota, you can use the precompiled files in the firmware folder.
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.
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.
Tasmota
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 NeoPool
Rule1 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}
Atom Lite + Atomic RS485 Base (GPIO19: NeoPool TX / GPIO22: NeoPool RX)
Template {"NAME":"NeoPool Atom 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}
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
Add the Home Assistant MQTT integration properly configured and working.
Home Assistant
Add ha_neopool_mqtt_package.yaml
as Home Assistant package. Check HA docs on how to configure HA for package usage.
This integration will not create a device, only entities. To check if the ha_neopool_mqtt_package.yaml
is working, go to HA "Settings", "Devices & services", "Entities" and search for the entities "neopool_mqtt".
Home Assistant
Add the HACS (Home Assistant Community Store), if not already done.
Home Assistant
The user interface uses the following cards, which are available via HACS and which you must first install:
Home Assistant
Add one of the two provided lovelace UI ha_neopool_mqtt_lovelace*.yaml
.
The lovelace UI yaml files here are extracted from the raw lovelace file. To use it edit the raw lovelace config within your HA Dashboard and paste the contents of one of the yaml file below the top word views:
. Select one of the two possible lovelace files:
ha_neopool_mqtt_lovelace.yaml
for pc/notebook display resolutionsha_neopool_mqtt_lovelace_responsive.yaml
using standard HA cards without resolution limitations
Big thanks to @fdebrus for inspiring me and @curzon01 for the great support.
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.
If you like this integration, I'll gladly accept some quality coffee, but please don't feel obliged. :)