That seems to work. Thanks Roy
One final version as I had removed support for the original LP365-P and didn’t have advanced mode 5 and 6 in there.
name: Smart Water Monitor
products:
- id: 89tojzdfimssmkuk
manufacturer: Frizzlife
model: LP365P
name: Frizzlife LP365P
- id: eb0a8e6c88ec94012fduxa
manufacturer: Frizzlife
model: LP365P
name: Frizzlife LP365P
- id: eb1a9dccd17a663803qmrt
manufacturer: Frizzlife
model: LP365
name: Frizzlife LP365
entities:
# Valve
- entity: valve
name: Valve
class: water
dps:
- id: 1
type: boolean
name: valve
# --- CONFIGURATION ---
- entity: select
name: Temperature Unit
category: config
icon: "mdi:thermometer"
dps:
- id: 20
type: string
name: option
optional: true
mapping:
- dps_val: "f"
value: "Fahrenheit"
- dps_val: "c"
value: "Celsius"
- entity: select
name: Volume Units
category: config
icon: "mdi:ruler-square"
dps:
- id: 102
type: string
name: option
mapping:
- dps_val: "us_units"
value: "Gallon"
- dps_val: "metric_unit"
value: "Liter"
# --- STATUS / DIAGNOSTICS ---
- entity: sensor
name: System Status
class: enum
category: diagnostic
icon: "mdi:information-outline"
dps:
- id: 24
type: integer
name: sensor
mapping:
- dps_val: 0
value: "Normal"
- dps_val: 1
value: "Warning"
- dps_val: 2
value: "Empty Pipe"
- dps_val: 3
value: "Fault"
# Leak Warning
- entity: binary_sensor
class: moisture
name: Leak Warning
dps:
- id: 106
type: boolean
name: sensor
# Leak Alarm
- entity: binary_sensor
class: problem
name: Leak Alarm
dps:
- id: 107
type: boolean
name: sensor
- entity: binary_sensor
class: problem
name: Low Temperature Alarm
dps:
- id: 108
type: boolean
name: sensor
# Alarm Clear Button
- entity: button
name: Alarm Clear
category: config
icon: "mdi:alarm-off"
dps:
- id: 125
type: string
name: button
optional: true
# --- TEMPERATURE (Optional & Dynamic based on DPS 20) ---
# Temperature sensor - This doesn't actually work with the LP365P Pressure variant
- entity: sensor
name: Water Temperature
class: temperature
dps:
- id: 12
type: integer
optional: true
name: sensor
unit: F
class: measurement
mapping:
- scale: 10.0
constraint:
id: 20
dps_val: "f"
range:
min: -40
max: 212
- entity: sensor
name: Water Temperature
class: temperature
dps:
- id: 12
type: integer
optional: true
name: sensor
unit: C
class: measurement
mapping:
- scale: 10.0
constraint:
id: 20
dps_val: "c"
range:
min: -40
max: 100
# --- PRESSURE (Optional) ---
# Pressure Sensor
- entity: sensor
class: pressure
dps:
- id: 15
type: integer
optional: true
name: sensor
unit: psi
class: measurement
mapping:
- scale: 10.0
constraint:
id: 102
dps_val: "us_units"
range:
min: 0
max: 99999
- entity: sensor
class: pressure
dps:
- id: 15
type: integer
optional: true
name: sensor
unit: bar
class: measurement
mapping:
- scale: 100.0
constraint:
id: 102
dps_val: "metric_unit"
# --- VOLUME & FLOW ---
# Volume Today
- entity: sensor
class: water
name: Volume Today
dps:
- id: 103
type: integer
optional: true
name: sensor
class: total_increasing
unit: gal
mapping:
- scale: 10
constraint:
id: 102
dps_val: "us_units"
- entity: sensor
class: water
name: Volume Today
dps:
- id: 103
type: integer
optional: true
name: sensor
class: total_increasing
unit: L
mapping:
- scale: 10.0
constraint:
id: 102
dps_val: "metric_unit"
# Flow rate
- entity: sensor
class: volume_flow_rate
name: Flow Rate per Hour
dps:
- id: 104
type: integer
optional: true
name: sensor
class: measurement
unit: gal/h
mapping:
- scale: 1
constraint:
id: 102
dps_val: "us_units"
- entity: sensor
class: volume_flow_rate
name: Flow Rate per Hour
dps:
- id: 104
type: integer
optional: true
name: sensor
class: measurement
unit: L/h
mapping:
- scale: 1.0
constraint:
id: 102
dps_val: "metric_unit"
# Current flow rate
- entity: sensor
class: volume_flow_rate
name: Current Flow Rate
dps:
- id: 105
type: integer
name: sensor
class: measurement
unit: gal/min
mapping:
- scale: 1000.0
constraint:
id: 102
dps_val: "us_units"
- entity: sensor
class: volume_flow_rate
name: Current Flow Rate
dps:
- id: 105
type: integer
name: sensor
class: measurement
unit: L/h
mapping:
- scale: 1000.0
constraint:
id: 102
dps_val: "metric_unit"
# --- MODES & LIMITS ---
# Protection Enabled Switch
- entity: switch
name: Protection Enabled
dps:
- id: 101
type: boolean
name: switch
# Protection Mode Select
- entity: select
name: Protection Mode
category: config
dps:
- id: 109
type: string
name: option
mapping:
- dps_val: "AUTO"
value: "Auto"
- dps_val: "ADVANCED_SETTING"
value: "Advanced"
# AUTO Mode
- entity: select
name: AUTO Mode
category: config
dps:
- id: 110
type: string
name: option
mapping:
- dps_val: "mode1"
value: "Mode 1"
- dps_val: "mode2"
value: "Mode 2"
- dps_val: "mode3"
value: "Mode 3"
- id: 109
type: string
name: available
mapping:
- dps_val: "AUTO"
value: true
- value: false
# ADVANCED Mode
- entity: select
name: ADVANCED Mode
category: config
dps:
- id: 111
type: string
name: option
mapping:
- dps_val: "mode4"
value: "Mode 4"
- dps_val: "mode5"
value: "Mode 5"
- dps_val: "mode6"
value: "Mode 6"
- id: 109
type: string
name: available
mapping:
- dps_val: "ADVANCED_SETTING"
value: true
- value: false
# Allowed flow time (Dynamic Redirect)
- entity: number
name: Advanced Allowed Flow Time
category: config
dps:
- id: 111
type: string
name: value
unit: min
range:
min: 1
max: 1000
mapping:
- dps_val: "mode4"
value_redirect: mode4_time
- dps_val: "mode5"
value_redirect: mode5_time
- dps_val: "mode6"
value_redirect: mode6_time
- id: 112
type: integer
name: mode4_time
mapping:
- scale: 1.0
- id: 113
type: integer
name: mode5_time
mapping:
- scale: 1.0
- id: 114
type: integer
name: mode6_time
mapping:
- scale: 1.0
- id: 109
type: string
name: available
mapping:
- dps_val: "ADVANCED_SETTING"
value: true
- value: false
# Allowed flow volume (Imperial - Dynamic Redirect)
- entity: number
name: Advanced Allowed Flow Volume
category: config
dps:
- id: 111
type: string
name: value
unit: gal
range:
min: 0
max: 5000
mapping:
- dps_val: "mode4"
value_redirect: mode4_vol
constraint:
id: 102
dps_val: "us_units"
- dps_val: "mode5"
value_redirect: mode5_vol
constraint:
id: 102
dps_val: "us_units"
- dps_val: "mode6"
value_redirect: mode6_vol
constraint:
id: 102
dps_val: "us_units"
- id: 115
type: integer
name: mode4_vol
mapping:
- scale: 10.0
- id: 116
type: integer
name: mode5_vol
mapping:
- scale: 10.0
- id: 117
type: integer
name: mode6_vol
mapping:
- scale: 10.0
- id: 109
type: string
name: available
mapping:
- dps_val: "ADVANCED_SETTING"
value: true
- value: false
# Allowed flow volume (Metric - Dynamic Redirect)
- entity: number
name: Advanced Allowed Flow Volume
category: config
dps:
- id: 111
type: string
name: value
unit: L
range:
min: 0
max: 20000
mapping:
- dps_val: "mode4"
value_redirect: mode4_vol
constraint:
id: 102
dps_val: "metric_unit"
- dps_val: "mode5"
value_redirect: mode5_vol
constraint:
id: 102
dps_val: "metric_unit"
- dps_val: "mode6"
value_redirect: mode6_vol
constraint:
id: 102
dps_val: "metric_unit"
- id: 115
type: integer
name: mode4_vol
mapping:
- scale: 100.0
- id: 116
type: integer
name: mode5_vol
mapping:
- scale: 100.0
- id: 117
type: integer
name: mode6_vol
mapping:
- scale: 100.0
- id: 109
type: string
name: available
mapping:
- dps_val: "ADVANCED_SETTING"
value: true
- value: false
# Advanced: Allowed Flow Rate
- entity: switch
name: Ignore Minimal Flow
category: config
dps:
- id: 118
type: boolean
name: switch
- id: 109
type: string
name: available
mapping:
- dps_val: "ADVANCED_SETTING"
value: true
- value: false
- entity: select
name: Allowed Minimal Flow Rate
category: config
dps:
- id: 119
type: integer
name: option
mapping:
- dps_val: 0
value: "0.01 Gal / 2.5 L"
- dps_val: 1
value: "0.02 Gal / 5.0 L"
- dps_val: 2
value: "0.03 Gal / 7.5 L"
- dps_val: 3
value: "0.04 Gal / 10.0 L"
- dps_val: 4
value: "0.05 Gal / 12.5 L"
- dps_val: 5
value: "0.06 Gal / 15.0 L"
- dps_val: 6
value: "0.07 Gal / 17.5 L"
- dps_val: 7
value: "0.08 Gal / 20.0 L"
- dps_val: 8
value: "0.09 Gal / 22.5 L"
- dps_val: 9
value: "0.10 Gal / 25.0 L"
- id: 118
type: boolean
name: available
mapping:
- dps_val: true
value: true
- value: false
Anyone tested the new minimal flow rate under advanced? Does that only work if it’s set to one of the advanced modes (4,5 or 6)?
I’m considering getting one of these and wanted to see if anyone can give me their current experiences with this? Anyone install this at the water heater? Is this thing waterproof if installed outside?
Latest version with added error codes. Sadly the maintainer of Tuya-Local will not take this as it violates how he wants things done. You will need to tweak for your variant, this is for the LP365-P with no temp sensor.
name: Smart Water Monitor
products:
- #id: eb7fbefe12b454b8922xvz # No temperature sensor
id: ""
manufacturer: Frizzlife
model: LP365P
name: Frizzlife LP365P
entities:
# Valve
- entity: valve
name: Valve
class: water
dps:
- id: 1
type: boolean
name: valve
# --- CONFIGURATION ---
- entity: select
name: Volume Units
category: config
icon: "mdi:ruler-square"
dps:
- id: 102
type: string
name: option
mapping:
- dps_val: "us_units"
value: "Gallon"
- dps_val: "metric_unit"
value: "Liter"
# --- STATUS / DIAGNOSTICS ---
- entity: sensor
name: System Status
class: enum
category: diagnostic
icon: "mdi:information-outline"
dps:
- id: 24
type: integer
name: sensor
mapping:
- dps_val: 0
value: "Normal"
- dps_val: 1
value: "Warning"
- dps_val: 2
value: "Empty Pipe"
- dps_val: 3
value: "Fault"
- dps_val: 4
value: "Connection Error"
- dps_val: 5
value: "Status 5 - Unknown"
# Leak Warning
- entity: binary_sensor
class: moisture
name: Leak Warning
dps:
- id: 106
type: boolean
name: sensor
# Leak Alarm
- entity: binary_sensor
class: problem
name: Leak Alarm
dps:
- id: 107
type: boolean
name: sensor
# Alarm Clear Button
- entity: button
name: Alarm Clear
category: config
icon: "mdi:alarm-off"
dps:
- id: 125
type: string
name: button
optional: true
# --- PRESSURE (Optional) ---
- entity: sensor
name: Water Pressure
class: pressure
dps:
- id: 15
type: integer
optional: true
name: sensor
unit: psi
class: measurement
mapping:
- scale: 10.0
range:
min: 0
max: 99999
- id: 102
type: string
name: available
mapping:
- dps_val: "us_units"
value: true
- value: false
- entity: sensor
name: Water Pressure
class: pressure
dps:
- id: 15
type: integer
optional: true
name: sensor
unit: bar
class: measurement
mapping:
- scale: 100.0
- id: 102
type: string
name: available
mapping:
- dps_val: "metric_unit"
value: true
- value: false
# --- VOLUME & FLOW ---
- entity: sensor
class: water
name: Volume Today
dps:
- id: 103
type: integer
optional: true
name: sensor
class: total_increasing
unit: gal
mapping:
- scale: 10.0
- id: 102
type: string
name: available
mapping:
- dps_val: "us_units"
value: true
- value: false
- entity: sensor
class: water
name: Volume Today
dps:
- id: 103
type: integer
optional: true
name: sensor
class: total_increasing
unit: L
mapping:
- scale: 10.0
- id: 102
type: string
name: available
mapping:
- dps_val: "metric_unit"
value: true
- value: false
- entity: sensor
class: volume_flow_rate
name: Flow Rate per Hour
dps:
- id: 104
type: integer
optional: true
name: sensor
class: measurement
unit: gal/h
mapping:
- scale: 1.0
- id: 102
type: string
name: available
mapping:
- dps_val: "us_units"
value: true
- value: false
- entity: sensor
class: volume_flow_rate
name: Flow Rate per Hour
dps:
- id: 104
type: integer
optional: true
name: sensor
class: measurement
unit: L/h
mapping:
- scale: 1.0
- id: 102
type: string
name: available
mapping:
- dps_val: "metric_unit"
value: true
- value: false
- entity: sensor
class: volume_flow_rate
name: Flow Rate
dps:
- id: 105
type: integer
name: sensor
class: measurement
unit: gal/min
mapping:
- scale: 1000.0
- id: 102
type: string
name: available
mapping:
- dps_val: "us_units"
value: true
- value: false
- entity: sensor
class: volume_flow_rate
name: Flow Rate
dps:
- id: 105
type: integer
name: sensor
class: measurement
unit: L/h
mapping:
- scale: 1000.0
- id: 102
type: string
name: available
mapping:
- dps_val: "metric_unit"
value: true
- value: false
# --- MODES & LIMITS ---
- entity: switch
name: Protection Enabled
dps:
- id: 101
type: boolean
name: switch
- entity: select
name: Protection Mode
category: config
dps:
- id: 109
type: string
name: option
mapping:
- dps_val: "AUTO"
value: "Auto"
- dps_val: "ADVANCED_SETTING"
value: "Advanced"
# AUTO Mode
- entity: select
name: AUTO Mode
category: config
dps:
- id: 110
type: string
name: option
mapping:
- dps_val: "mode1"
value: "Mode 1"
- dps_val: "mode2"
value: "Mode 2"
- dps_val: "mode3"
value: "Mode 3"
- id: 109
type: string
name: available
mapping:
- dps_val: "AUTO"
value: true
- value: false
# ADVANCED Mode
- entity: select
name: ADVANCED Mode
category: config
dps:
- id: 111
type: string
name: option
mapping:
- dps_val: "mode4"
value: "Mode 4"
- dps_val: "mode5"
value: "Mode 5"
- dps_val: "mode6"
value: "Mode 6"
- id: 109
type: string
name: available
mapping:
- dps_val: "ADVANCED_SETTING"
value: true
- value: false
# Allowed flow time (Dynamic Redirect)
- entity: number
name: Advanced Allowed Flow Time
category: config
dps:
- id: 111
type: string
name: value
unit: min
range:
min: 1
max: 1000
mapping:
- dps_val: "mode4"
value_redirect: mode4_time
- dps_val: "mode5"
value_redirect: mode5_time
- dps_val: "mode6"
value_redirect: mode6_time
- id: 112
type: integer
name: mode4_time
mapping:
- scale: 1.0
- id: 113
type: integer
name: mode5_time
mapping:
- scale: 1.0
- id: 114
type: integer
name: mode6_time
mapping:
- scale: 1.0
- id: 109
type: string
name: available
mapping:
- dps_val: "ADVANCED_SETTING"
value: true
- value: false
# Allowed flow volume (Imperial - Dynamic Redirect)
- entity: number
name: Advanced Allowed Flow Volume
category: config
dps:
- id: 111
type: string
name: value
unit: gal
range:
min: 0
max: 5000
mapping:
- dps_val: "mode4"
value_redirect: mode4_vol
- dps_val: "mode5"
value_redirect: mode5_vol
- dps_val: "mode6"
value_redirect: mode6_vol
- id: 115
type: integer
name: mode4_vol
mapping:
- scale: 10.0
- id: 116
type: integer
name: mode5_vol
mapping:
- scale: 10.0
- id: 117
type: integer
name: mode6_vol
mapping:
- scale: 10.0
- id: 102
type: string
name: unit_system
- id: 109
type: string
name: available
mapping:
- dps_val: "ADVANCED_SETTING"
constraint: unit_system
conditions:
- dps_val: "us_units"
value: true
- value: false
# Allowed flow volume (Metric - Dynamic Redirect)
- entity: number
name: Advanced Allowed Flow Volume
category: config
dps:
- id: 111
type: string
name: value
unit: L
range:
min: 0
max: 20000
mapping:
- dps_val: "mode4"
value_redirect: mode4_vol
- dps_val: "mode5"
value_redirect: mode5_vol
- dps_val: "mode6"
value_redirect: mode6_vol
- id: 115
type: integer
name: mode4_vol
mapping:
- scale: 100.0
- id: 116
type: integer
name: mode5_vol
mapping:
- scale: 100.0
- id: 117
type: integer
name: mode6_vol
mapping:
- scale: 100.0
- id: 102
type: string
name: unit_system
- id: 109
type: string
name: available
mapping:
- dps_val: "ADVANCED_SETTING"
constraint: unit_system
conditions:
- dps_val: "metric_unit"
value: true
- value: false
# Advanced: Allowed Flow Rate
- entity: switch
name: Allow Minimal Flow
category: config
dps:
- id: 118
type: boolean
name: switch
- id: 109
type: string
name: available
mapping:
- dps_val: "ADVANCED_SETTING"
value: true
- value: false
- entity: select
name: Allowed Minimal Flow Rate
category: config
dps:
- id: 119
type: integer
name: option
mapping:
- dps_val: 0
value: "0.01 Gal / 2.5 L"
- dps_val: 1
value: "0.02 Gal / 5.0 L"
- dps_val: 2
value: "0.03 Gal / 7.5 L"
- dps_val: 3
value: "0.04 Gal / 10.0 L"
- dps_val: 4
value: "0.05 Gal / 12.5 L"
- dps_val: 5
value: "0.06 Gal / 15.0 L"
- dps_val: 6
value: "0.07 Gal / 17.5 L"
- dps_val: 7
value: "0.08 Gal / 20.0 L"
- dps_val: 8
value: "0.09 Gal / 22.5 L"
- dps_val: 9
value: "0.10 Gal / 25.0 L"
- id: 109
type: string
name: mode_system
- id: 118
type: boolean
name: available
mapping:
- dps_val: true
constraint: mode_system
conditions:
- dps_val: "ADVANCED_SETTING"
value: true
- value: false
Hi all,
I got an LP365-P from Amazon and I wanted to test integration first so I don’t mess up my HA. I spun off a Hyper-V and installed HAOS, HACS and localtuya. Configured it with my tuya account and I tried to add the Frizzlife. I have a lot of devices, but not all show up when I choose GEAR>Add new device. If I select the dots and try to do manually it comes back with an error.
I also couldn’t figure out how what to do with the YAML file - should I install localTuya version prior than 4.0.0?
Thanks
Give the link of this forum to ChatGPT and ask to walk you through the process. It would be much easier to get detailed answers from ChatGPT than asking here.
@Kal2 I am new to HA and set this up yesterday. I initially had the same error as you. It turns out that I was confused between LocalTuya and, what is needed, Tuya Local.
I worked through this with ChatGPT and asked it for a summary so you can follow my steps. You can always cut & paste this into ChatGPT (or your preferred LLM) along with the URL link to this discussion, if you need more guidance.
Final Working Setup: FrizzLife LP365-P in Home Assistant (Local)
1. Prerequisites (what must be true first)
You need:
- Device added in Smart Life
- Tuya Cloud account set up in Tuya IoT Platform
- From Tuya Cloud:
- Device ID
- Local Key
- From your network:
- Device IP address
2. Install the correct integration
Do not use LocalTuya for this device.
Instead install:
- Tuya Local
How to install
In HACS:
- Go to HACS → Integrations
- Click ⋮ → Custom repositories
- Add:
https://github.com/make-all/tuya-local
- Category: Integration
- Install Tuya Local
- Restart Home Assistant
3. Create the device definition (this is the key step)
On your host:
Create:
/homeassistant/config/custom_components/tuya_local/devices/frizzlife_lp365p.yaml
Paste your YAML (the forum version), or a simplified version like:
- Protection switch (DPID 101)
- Valve (DPID 1)
- Leak sensors (106, 107)
- Flow + usage (103, 105)
Important adjustment:
- Remove or comment out:
id: ""
4. Restart Home Assistant
From terminal:
docker restart homeassistant
5. Add the device via Tuya Local
In Home Assistant:
- Settings → Devices & Services → Add Integration
- Select Tuya Local
Enter:
- Host: your device IP (e.g.
192.168.x.xx) - Device ID
- Local Key
- Protocol:
- try
3.5if available - otherwise
3.4
- try
6. What should happen
Instead of discovery failing, Tuya Local will:
- Load your YAML
- Create entities directly
You should now see:
switch.protection_enabledvalve.water_valvebinary_sensor.leak_alarmsensor.flow_rate- etc.
7. Verify functionality
Test:
- Toggle protection switch
- Open/close valve
- Check values update
Also confirm behavior matches in Smart Life.
8. Clean up (recommended)
You now have two integrations:
- Tuya (cloud)
- Tuya Local (local)
For clarity:
- Disable or ignore the cloud version of this device
9. Why this works (and earlier attempts failed)
- LocalTuya → requires DPID auto-discovery → failed
- Tuya Local → uses predefined DPIDs from YAML → works
10. What you now have
You now have:
- Full local control
- No cloud dependency for automations
- Access to all device capabilities
Bottom line
The working pattern is:
Tuya device → Tuya Cloud (for keys) → Tuya Local + YAML → Home Assistant entities
Not:
Tuya device → LocalTuya auto-discovery (fails for this device)
Yup, not LocalTuya, but Tuya Local…
Thanks
Have you figured out a way to preserve/automate custom device configuration for the Frizzle when updating Tuya_local?
I have the "stock" (Tuya_local) file modified at this location:
custom_components/tuya_local/devices/frizzlife_lp365p_watermonitorandshutdoff.yaml
Then I have it backed up here:
custom_components/frizzlife_lp365p_watermonitorandshutdoff.yaml
Every time I update tuya_local it looks like it wipes out the /devices folder and I have to remember to rewrite the "backed up" frizzlife to the /devices folder. If I forget all history is still saved, but under different entities. If I choose HISTORY and then DEVICE / SMART WATER MONITOR it will still show all values, but under different entities.
So I was wondering how you and @rwalker have this scenario covered and restore the frizzlife modifications.
All the current features are now in the 2026.6.1 release. Some of the names changed, but once you delete the old ones you are good. The only thing I couldn't get was the optional temperature (limitation in Tuya-local), so you just have to disable it if you have a version that sends 25.0c/77.0f all the time.
Not sure what happened there, but all my tuya local devices (some color bulbs, plugs and the frizz) showed as unable to connect to. I deleted them from HA and try to add them again. The Frizzlife doesn't show to choose the right device, but instead some other ones. I chose SIMPLE SWITCH and it controls the valve but I don't have any other entities with the device. What could be wrong and how can I choose the right device?
Well, I knew it would be something utterly stupid. Even though the Frizz was able to be added to SmartLife multiple times (after removing it from SmartLife, every time I get a new local key), it was causing the error. I finally decided to reset it (holding PROTECT and VALVE for 10sec) and lose my precious total gallons and custom protect settings ![]()
Now it was added to Tuya local immediately. Problem solved
Hi there,
I got my Frizzlife lp365p some days ago and mounted it successfully. Thanks to the great work in this thread, I managed somehow to connect my tuya local installation to the device. But I still have some problems/questions:
- The update rate is very sparse. When I have the android app, it sometimes updates once a minute (same as andoid app). Is it possible to get faster updates? Especially the flow and pressure would be interesting to implement my own security rules.
- When I disable internet access for the Frizzlife in my fritzbox router, there are of course no updates in the app anymore but there are also no updates anymore in homeassistant?!
I switched off the app and internet at around 10:11… There are some hints that this might have to do with protocol 3.5 which is used for the lp365p? - I found hints (GitHub - myhomeiot/localtuya35: local handling for Tuya devices · GitHub), that blocking DNS requests for the Frizzlife might help? I checked network traffic for the Frizzlife with Wireshark and found that there is regularly DNS requests for m3-eu.lifeaiot.com. And despite internet blocking, the DNS request is answered by fritzbox router. One idea would be to use an ESP32 and this project (GitHub - martin-ger/esp32_nat_router: An AI-enabled NAT Router/Firewall for the ESP32 · GitHub) to block DNS requests from Frizzlife LP365P. But maybe that’s overkill?
- Is it right, that the total amount of water is not shown in app and homeassistant? I also found no dps for the device, but I think total volume is shown in the display of the device? What the heck?!
- The dps 104 is in the data model like the following, but the value is definitley not the volume from yesterday… Is it a known bug?
{
"code": "water_used_yesterday",
"custom_name": "",
"dp_id": 104,
"time": 1785178502810,
"type": "value",
"value": 12
},
- I checked the wireshark log and when internet is blocked, I only see traffic from homeassistant to lp365 around every 5 seconds, but no answers from the device… Maybe there’s a problem with the encryption?
Sorry for all the questions. I hope someone can help me a little? Or at least report, if your lp365p homeassistant integration works good? It’s really terrible, that there is no good leakage sensor available, which has good interface options and all necessary features (time limit with times down to minute level, volume limit, maximum flow limit with shutoff without delay). I’m just about to build something like that myself using an ESP32… But hey, maybe I can fix my device and it turns out good ![]()
Thanks, Christian



