grimmt
(Tony Grimm)
October 13, 2025, 9:58pm
42
I haven’t fully tested this but I think this should work for you.
You can create a helper using the “Utility Meter” integration. It creates a helper, and you can set it to:
Name: Liters Since Reset (or Gals Since Reset)
Input Sensor: Volume Today
Meter reset cycle: No cycle
Meter reset offset: 0
Net consumption: false
Delta values: false
Periodically resetting: true
Sensor always available: whatever you want (true or false)
Then when you want to reset the helper count, use an automation with an action of:
Add action → Helpers → Utility Meter → Reset
And then choose entity: sensor.liters_since_reset
You can name the automation “Reset Filter Count” and manually run the action.
You can also add an automation “Replace Filter Notification” that triggers on a certain number of Liters (or Gals) accumulated on sensor.liters_since_reset, and set an action to send you a notification to “Replace the Filter”. And then manually reset filter count when you replaced the filter.
Or, you can combine both: set a trigger based on the number of liters (or gallons) you want. When it triggers, it will can do action1 and reset the value to 0 and then do action2 and send you a notification. This assumes you can replace the filter right away.
Edit: Just occurred to me that you may not be able to use an exact value as the increments to liters_since_reset is not guaranteed to be increments of 1, it may jump over your selected value without triggering. You will likely have to use an Above value selection - which may cause multiple notifications. You’ll have to play with this a bit so you don’t create a nuisance set of notifications.
clintwg
(Clintwg)
October 15, 2025, 5:19am
43
This is the reason why I added this to the energy monitoring section. Homeassistant does all the hard work, once tag the “Volume Today” entity with the class: water attribute, and configure the Water Consumption section of the Energy Configuration
You can then view the water consumption per hour / day / month / year.
Hi forum,
I know this is a bit off topic however I am after some advice about the Frizzlife water monitor and valve which I purchased for repeated scheme water leaks often for several days at our acreage in Australia from irrigation failures as we are only there on weekends.
I need to connect this to Australian standard 240v DC power rather than the US 110v. I see it comes with a USB connection to a wall plug/transformer. Most USB plugs run at 5v so I am hoping it simply means attaching this to an Australian standard USB plug transformer such as from an old phone or tablet? Hopefully it is that simple or am I missing something?
Many thanks. I will try to hook it up over the Christmas break. This should be more widely publicized as the Flo seems to have the local market as it comes with a local plug
grimmt
(Tony Grimm)
January 1, 2026, 10:26pm
47
Just noticed that the latest version (2025.12.3) of Tuya_Local provided a file named: frizzlife_lp365p_watermonitorandshutdoff.yaml.
A couple of notes:
It provides a device id of 89tojzdfimssmkuk which appears to some sort of generic 15 char device ID rather than a 22 char virtual ID.
I tried using it but it wouldn’t find my lp365p - I’ll try some variations on configuration to see if I can get it to work.
It does not provide a dps id of 15 - which is for the pressure sensor.
It does have some interesting configurations which looks like a potential fix to get rid of my ugly select lists of time and volume flows for Mode 4,5 and 6.
Unfortunately, I don’t have any answers on how to use it yet. Hopefully I’ll have some time in the next little while to see if I can integrate it - or integrate to it. I’d love to have a working version of this included in Tuya Local.
DjAnu
(Dj Anu)
February 4, 2026, 4:40am
48
Hi, Were you able to figure out how to make that yaml work ?
In case anybody lost their fixed frizzlife_lp365p_watermonitorandshutoff.yaml file with a Tuya Local update, here’s mine. Sensors work, but I haven’t done any tweaks to the various modes.
name: Water meter
products:
- id: 89tojzdfimssmkuk
manufacturer: Frizzlife
model: LP365P
entities:
# Valve
- entity: valve
class: water
dps:
- id: 1
type: boolean
name: valve
# Temperature sensor - This doesn't actually work with the LP365P Pressure variant
- entity: sensor
class: temperature
dps:
- id: 12
type: integer
name: sensor
unit: °F
class: measurement
mapping:
- scale: 10.0
invert: false
transform: value * 9/5 + 32
range:
min: 32 # 0C
max: 428 # 212C
# Pressure Sensor
- entity: sensor
class: pressure
dps:
- id: 15
type: integer
name: sensor
unit: psi
class: measurement
mapping:
- scale: 10.0
range:
min: 0
max: 99999
# Protection Enabled Switch
- entity: switch
name: Protection Enabled
dps:
- id: 101
type: boolean
name: switch
# 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
# 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
# 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
# Leak Warning
- entity: binary_sensor
class: moisture
name: Leak Warning
dps:
- id: 106
type: boolean
name: sensor
# Leak Alarm
- entity: binary_sensor
name: Leak Alarm
class: problem
dps:
- id: 107
type: boolean
name: sensor
# Alarm Clear Button
- entity: button
name: Alarm Clear
dps:
- id: 108
type: boolean
name: button
# 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
# Mode4 allowed flow time
- entity: number
name: Allowed flow time
class: duration
category: config
dps:
- id: 109
type: string
name: available
mapping:
- dps_val: ADVANCED_SETTING
value: true
- value: false
- id: 111
type: string
name: value
unit: min
range:
min: 18
max: 180
mapping:
- dps_val: mode4
step: 6
value_redirect: mode4_val
- dps_val: mode5
step: 6
value_redirect: mode5_val
- dps_val: mode6
step: 6
value_redirect: mode6_val
- id: 112
type: integer
name: mode4_val
precision: 0
range:
min: 3
max: 30
mapping:
- scale: 0.1666666667
- id: 113
type: integer
name: mode5_val
precision: 0
range:
min: 3
max: 30
mapping:
- scale: 0.1666666667
- id: 114
type: integer
name: mode6_val
precision: 0
range:
min: 3
max: 30
mapping:
- scale: 0.1666666667
# Mode4 allowed flow volume
- entity: number
name: Allowed flow volume
category: config
dps:
- id: 109
type: string
name: available
mapping:
- dps_val: ADVANCED_SETTING
value: true
- value: false
- id: 111
type: string
name: value
unit: L
range:
min: 0
max: 5000
mapping:
- dps_val: mode4
step: 100
value_redirect: mode4_val
- dps_val: mode5
step: 100
value_redirect: mode5_val
- dps_val: mode6
step: 100
value_redirect: mode6_val
- id: 115
type: integer
name: mode4_val
range:
min: 0
max: 50
mapping:
- dps_val: 0
value: 50
- scale: 0.01
- id: 116
type: integer
name: mode5_val
range:
min: 0
max: 50
mapping:
- dps_val: 0
value: 50
- scale: 0.01
- id: 117
type: integer
name: mode6_val
range:
min: 0
max: 50
mapping:
- dps_val: 0
value: 50
- scale: 0.01
grimmt
(Tony Grimm)
February 9, 2026, 10:39pm
50
I haven’t been able to spend any time on this lately as I’ve been busy with other commitments.
I hope to have some time in the next month.
It’s a bit of a pain to keep having to copy my personal copy back to the devices folder after an update, but at least it’s only a copy and no edits are required.
evha
(EV)
February 14, 2026, 7:43pm
51
I got Tuya Local to pick up my Frizzlife LP365-P with the built-in definition. First, I updated the firmware on the device. Then in integration creation I set the API version to 3.5, otherwise it gives you bad matches. All looks good.
rwalker
(Roy Walker)
February 16, 2026, 6:40pm
52
i haven’t installed my unit yet, but I made a merged file to support both LP365 and LP365-P with detection for metric vs imperial units. Can I get some people to test this? If it looks good, I’ll submit it to tuya-local.
name: Smart Water Monitor
products:
- id: eb0a8e6c88ec94012fduxa
name: Frizzlife LP365P
- id: eb1a9dccd17a663803qmrt
name: Frizzlife LP365
entities:
- entity: valve
name: Valve
class: water
dps:
- id: 1
type: boolean
name: valve
# --- CONFIGURATION ---
- entity: select
name: Units
category: config
icon: "mdi:ruler-square"
dps:
- id: 102
type: string
name: option
mapping:
- dps_val: "us_units"
value: "Imperial"
- dps_val: "metric_unit"
value: "Metric"
# --- 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"
- entity: binary_sensor
class: problem
name: Leak Alarm
dps:
- id: 106
type: boolean
name: sensor
- entity: binary_sensor
class: moisture
name: Moisture Detected
dps:
- id: 107
type: boolean
name: sensor
- entity: binary_sensor
class: problem
name: Low Temperature Alarm
dps:
- id: 108
type: boolean
name: sensor
- entity: button
name: Alarm Clear
category: config
icon: "mdi:alarm-off"
dps:
- id: 125
type: string
name: button
optional: true
# --- TEMPERATURE ---
- entity: sensor
name: Water Temperature
class: temperature
dps:
- id: 12
type: integer
name: sensor
unit: F
class: measurement
mapping:
- scale: 10.0
constraint:
id: 102
dps_val: "us_units"
- entity: sensor
name: Water Temperature
class: temperature
dps:
- id: 12
type: integer
name: sensor
unit: C
class: measurement
mapping:
- scale: 10.0
constraint:
id: 102
dps_val: "metric_unit"
# --- PRESSURE (Optional) ---
- entity: sensor
class: pressure
dps:
- id: 15
type: integer
optional: true
name: sensor
unit: psi
class: measurement
mapping:
- scale: 10.0
range:
min: 0
max: 1450
constraint:
id: 102
dps_val: "us_units"
- 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 ---
- 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
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"
- 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: 10.0
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"
- entity: sensor
class: volume_flow_rate
name: Current Flow Rate
dps:
- id: 105
type: integer
name: sensor
class: measurement
unit: gal/h
mapping:
- scale: 10.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 ---
- 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"
- 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"
- 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"
- entity: number
name: Mode4 Allowed Flow Time
category: config
dps:
- id: 112
type: integer
optional: true
name: value
unit: min
range:
min: 1
max: 1000
mapping:
- scale: 1.0
- entity: number
name: Mode4 Allowed Flow Volume
category: config
dps:
- id: 115
type: integer
name: value
unit: gal
range:
min: 0
max: 5000
mapping:
- scale: 10.0
constraint:
id: 102
dps_val: "us_units"
- entity: number
name: Mode4 Allowed Flow Volume
category: config
dps:
- id: 115
type: integer
name: value
unit: L
range:
min: 0
max: 20000
mapping:
- scale: 100.0
constraint:
id: 102
dps_val: "metric_unit"```
grimmt
(Tony Grimm)
February 24, 2026, 5:34pm
53
Interesting updates!
I’ll see if I can find time to integrate into my version and test. Thanks everyone, glad to see folks with more knowledge than me getting involved.
NOTE:
Frizzlife has removed the temperature sensor in the latest shipments of the LP365-P. I have a neighbour that purchased the LP365-P and we were trying to figure out why his app doesn’t show the temp - I confirmed with Frizzlife support that they intentionally removed the sensor.
The LP365 still has the temperature sensor.
DjAnu
(Dj Anu)
February 25, 2026, 4:57am
54
I can certainly test out your YAML. I just updated my tuya_local and forgot to save a copy of my earlier yaml. Do I need to add the device all over again ? Or is there anyway to update existing device with correct YAML ?
Nevermind, I was able to find the custom yaml name in the logs and had a backup somewhere else. Once I added the file it works again.
Now when I used your file, Temperature was showing unavailable and my values were showing abnormally high, first 3 highlighted rows are with your yaml and rest of them are with @ wundrellama yaml
I have US Version with no pressure sensor.
rwalker
(Roy Walker)
February 26, 2026, 12:21am
55
Here is a fixed Yaml that makes the temperature optional as well (my LP365-P has one) and fixes the scale for the US units which I had an extra zero on.
name: Smart Water Monitor
products:
- id: eb0a8e6c88ec94012fduxa
name: Frizzlife LP365P
- id: eb1a9dccd17a663803qmrt
name: Frizzlife LP365
entities:
- entity: valve
name: Valve
class: water
dps:
- id: 1
type: boolean
name: valve
# --- CONFIGURATION ---
- entity: select
name: Units
category: config
icon: "mdi:ruler-square"
dps:
- id: 102
type: string
name: option
mapping:
- dps_val: "us_units"
value: "Imperial"
- dps_val: "metric_unit"
value: "Metric"
# --- 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"
- entity: binary_sensor
class: problem
name: Leak Alarm
dps:
- id: 106
type: boolean
name: sensor
- entity: binary_sensor
class: moisture
name: Moisture Detected
dps:
- id: 107
type: boolean
name: sensor
- entity: binary_sensor
class: problem
name: Low Temperature Alarm
dps:
- id: 108
type: boolean
name: sensor
- entity: button
name: Alarm Clear
category: config
icon: "mdi:alarm-off"
dps:
- id: 125
type: string
name: button
optional: true
# --- TEMPERATURE (Optional & Dynamic) ---
- 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: 102
dps_val: "us_units"
range:
min: 32
max: 428
- 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: 102
dps_val: "metric_unit"
range:
min: 0
max: 212
# --- PRESSURE (Optional) ---
- 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 ---
- 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"
- 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"
- 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 ---
- 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"
- 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"
- 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"
- entity: number
name: Mode4 Allowed Flow Time
category: config
dps:
- id: 112
type: integer
optional: true
name: value
unit: min
range:
min: 1
max: 1000
mapping:
- scale: 1.0
- entity: number
name: Mode4 Allowed Flow Volume
category: config
dps:
- id: 115
type: integer
name: value
unit: gal
range:
min: 0
max: 5000
mapping:
- scale: 10.0
constraint:
id: 102
dps_val: "us_units"
- entity: number
name: Mode4 Allowed Flow Volume
category: config
dps:
- id: 115
type: integer
name: value
unit: L
range:
min: 0
max: 20000
mapping:
- scale: 100.0
constraint:
id: 102
dps_val: "metric_unit"
DjAnu
(Dj Anu)
February 28, 2026, 4:44pm
56
I noticed that ids 106-108 in your YAML ae different than previous YAML. Which ones are correct ?
rwalker
(Roy Walker)
March 3, 2026, 2:42am
57
I got those from the Tuya spec, if they are wrong or translated wrong, let me know.
clintwg
(Clintwg)
March 6, 2026, 2:57pm
58
Hi Roy, finally got around to testing your YAML. Everything looks good for me except water temperature. its showing up as -7.5C when it should be about 18.5C. I’m guessing the cause is using DPS 102 as the selector for temperature. Since my device is configured for us-units for volume, but metric units for water temperature, it might be using a different DPS for water temp units?
Other than that, everything seems to be working very well. thanks for the update - looking forward to this being merged.
rwalker
(Roy Walker)
March 13, 2026, 2:42am
59
I didn’t see a way to have different units for water and temp… How do you set that?
clintwg
(Clintwg)
March 13, 2026, 3:21am
60
I set it in the SmartLife app. Seems to toggle dps 20 between values “c” and “f”.
rwalker
(Roy Walker)
March 13, 2026, 4:30pm
61
Thanks, it must detect I’m in US and not show me that… try this one.
name: Smart Water Monitor
products:
- id: eb0a8e6c88ec94012fduxa
name: Frizzlife LP365P
- id: eb1a9dccd17a663803qmrt
name: Frizzlife LP365
entities:
- 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
mapping:
- dps_val: "f"
value: "Fahrenheit"
- dps_val: "c"
value: "Celsius"
- entity: select
name: Units
category: config
icon: "mdi:ruler-square"
dps:
- id: 102
type: string
name: option
mapping:
- dps_val: "us_units"
value: "Imperial"
- dps_val: "metric_unit"
value: "Metric"
# --- 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"
- entity: binary_sensor
class: problem
name: Leak Alarm
dps:
- id: 106
type: boolean
name: sensor
- entity: binary_sensor
class: moisture
name: Moisture Detected
dps:
- id: 107
type: boolean
name: sensor
- entity: binary_sensor
class: problem
name: Low Temperature Alarm
dps:
- id: 108
type: boolean
name: sensor
- 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) ---
- 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) ---
- 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 ---
- 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"
- 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"
- 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 ---
- 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"
- 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"
- 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"
- entity: number
name: Mode4 Allowed Flow Time
category: config
dps:
- id: 112
type: integer
optional: true
name: value
unit: min
range:
min: 1
max: 1000
mapping:
- scale: 1.0
- entity: number
name: Mode4 Allowed Flow Volume
category: config
dps:
- id: 115
type: integer
name: value
unit: gal
range:
min: 0
max: 5000
mapping:
- scale: 10.0
constraint:
id: 102
dps_val: "us_units"
- entity: number
name: Mode4 Allowed Flow Volume
category: config
dps:
- id: 115
type: integer
name: value
unit: L
range:
min: 0
max: 20000
mapping:
- scale: 100.0
constraint:
id: 102
dps_val: "metric_unit"