Add PrefilterFlowRate and PrefilterDailyUsage to WaterMeterUDT
Bridge MQTT Engine flow rate and daily usage tags into the default provider via expression-based UDT members with CoreDB history enabled. Update Perspective Home view bindings to use [default]WaterMeter/ paths. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
"parameters": {
|
"parameters": {
|
||||||
"OpcDevice": {
|
"OpcDevice": {
|
||||||
"dataType": "String",
|
"dataType": "String",
|
||||||
"value": "ns\u003d1;s\u003d[WaterSystemPLC]"
|
"value": "ns=1;s=[WaterSystemPLC]"
|
||||||
},
|
},
|
||||||
"OpcServer": {
|
"OpcServer": {
|
||||||
"dataType": "String",
|
"dataType": "String",
|
||||||
@@ -178,7 +178,7 @@
|
|||||||
{
|
{
|
||||||
"valueSource": "expr",
|
"valueSource": "expr",
|
||||||
"expression": "if({[.]PrimaryValveCloseOverrideOff},\"Closed - Override\",\n\tif({[.]PrimaryValveCloseOverrideOn},\"Open - Override\",\n\t\tif({[.]PrimaryValveClosedBTN},\"Closed - Button\",\n\t\t\tif({[.]LeakSensor1},\"Closed - Leak Sensor 1\",\n\t\t\t\tif({[.]LeakSensor2},\"Closed - Leak Sensor 2\",\n\t\t\t\t\t\"Open\")))))",
|
"expression": "if({[.]PrimaryValveCloseOverrideOff},\"Closed - Override\",\n\tif({[.]PrimaryValveCloseOverrideOn},\"Open - Override\",\n\t\tif({[.]PrimaryValveClosedBTN},\"Closed - Button\",\n\t\t\tif({[.]LeakSensor1},\"Closed - Leak Sensor 1\",\n\t\t\t\tif({[.]LeakSensor2},\"Closed - Leak Sensor 2\",\n\t\t\t\t\t\"Open\")))))",
|
||||||
"opcItemPath": "ns\u003d1;s\u003dPrimaryValveCloseStatusMsg",
|
"opcItemPath": "ns=1;s=PrimaryValveCloseStatusMsg",
|
||||||
"dataType": "String",
|
"dataType": "String",
|
||||||
"name": "PrimaryValveClosedMsg",
|
"name": "PrimaryValveClosedMsg",
|
||||||
"tagType": "AtomicTag",
|
"tagType": "AtomicTag",
|
||||||
@@ -254,7 +254,7 @@
|
|||||||
{
|
{
|
||||||
"valueSource": "expr",
|
"valueSource": "expr",
|
||||||
"expression": "if({[.]PumpOverrideOff},\"Off - Override\",\n\tif({[.]PumpOverrideOn},\"On - Override\",\n\t\tif({[.]PumpBTN},\"On - Button\",\n\t\t\tif({[.]FloatSwitch},\"On - Level Switch\",\n\t\t\t\t\"Off\"))))",
|
"expression": "if({[.]PumpOverrideOff},\"Off - Override\",\n\tif({[.]PumpOverrideOn},\"On - Override\",\n\t\tif({[.]PumpBTN},\"On - Button\",\n\t\t\tif({[.]FloatSwitch},\"On - Level Switch\",\n\t\t\t\t\"Off\"))))",
|
||||||
"opcItemPath": "ns\u003d1;s\u003dPumpStatusMsg",
|
"opcItemPath": "ns=1;s=PumpStatusMsg",
|
||||||
"dataType": "String",
|
"dataType": "String",
|
||||||
"name": "PumpStatusMsg",
|
"name": "PumpStatusMsg",
|
||||||
"tagType": "AtomicTag",
|
"tagType": "AtomicTag",
|
||||||
@@ -346,7 +346,7 @@
|
|||||||
{
|
{
|
||||||
"valueSource": "expr",
|
"valueSource": "expr",
|
||||||
"expression": "if({[.]SedimentFilterValueOpenOverrideOff},\"Closed - Override\",\n\tif({[.]SedimentFilterValueOpenOverrideOn},\"Open - Override\",\n\t\tif({[.]SedimentFilterValveOpenBTN},\"Open - Button\",\n\t\t\tif({[.]SedimentFilterTimer},\"Open - Timer\",\n\t\t\t\t\"Closed\"))))",
|
"expression": "if({[.]SedimentFilterValueOpenOverrideOff},\"Closed - Override\",\n\tif({[.]SedimentFilterValueOpenOverrideOn},\"Open - Override\",\n\t\tif({[.]SedimentFilterValveOpenBTN},\"Open - Button\",\n\t\t\tif({[.]SedimentFilterTimer},\"Open - Timer\",\n\t\t\t\t\"Closed\"))))",
|
||||||
"opcItemPath": "ns\u003d1;s\u003dSedimentFilterValueOpenStatusMsg",
|
"opcItemPath": "ns=1;s=SedimentFilterValueOpenStatusMsg",
|
||||||
"dataType": "String",
|
"dataType": "String",
|
||||||
"name": "SedimentFilterValveOpenStatusMsg",
|
"name": "SedimentFilterValveOpenStatusMsg",
|
||||||
"tagType": "AtomicTag",
|
"tagType": "AtomicTag",
|
||||||
@@ -370,6 +370,24 @@
|
|||||||
"bindType": "parameter",
|
"bindType": "parameter",
|
||||||
"binding": "{OpcServer}"
|
"binding": "{OpcServer}"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"valueSource": "expr",
|
||||||
|
"expression": "{[MQTT Engine]Home Assistant/homeassistant/sensor/droplet_prefilter_flow_rate/state/PrefilterFlowRate/state}",
|
||||||
|
"dataType": "Float8",
|
||||||
|
"historyProvider": "CoreDB",
|
||||||
|
"name": "PrefilterFlowRate",
|
||||||
|
"historyEnabled": true,
|
||||||
|
"tagType": "AtomicTag"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"valueSource": "expr",
|
||||||
|
"expression": "{[MQTT Engine]Home Assistant/homeassistant/sensor/droplet_daily_water_usage/state/PrefilterDailyUsage/state}",
|
||||||
|
"dataType": "Float8",
|
||||||
|
"historyProvider": "CoreDB",
|
||||||
|
"name": "PrefilterDailyUsage",
|
||||||
|
"historyEnabled": true,
|
||||||
|
"tagType": "AtomicTag"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,7 +116,7 @@
|
|||||||
"dom": {
|
"dom": {
|
||||||
"onClick": {
|
"onClick": {
|
||||||
"config": {
|
"config": {
|
||||||
"script": "\tvalue \u003d system.tag.readBlocking([\"[default]WaterMeter/PrimaryValveCloseOverrideOn\"])[0].value\n\n\tif value:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PrimaryValveCloseOverrideOn\"], [False])\n\telse:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PrimaryValveCloseOverrideOn\", \"[default]WaterMeter/PrimaryValveCloseOverrideOff\"], [True, False])\t\t"
|
"script": "\tvalue = system.tag.readBlocking([\"[default]WaterMeter/PrimaryValveCloseOverrideOn\"])[0].value\n\n\tif value:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PrimaryValveCloseOverrideOn\"], [False])\n\telse:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PrimaryValveCloseOverrideOn\", \"[default]WaterMeter/PrimaryValveCloseOverrideOff\"], [True, False])\t\t"
|
||||||
},
|
},
|
||||||
"scope": "G",
|
"scope": "G",
|
||||||
"type": "script"
|
"type": "script"
|
||||||
@@ -185,7 +185,7 @@
|
|||||||
"dom": {
|
"dom": {
|
||||||
"onClick": {
|
"onClick": {
|
||||||
"config": {
|
"config": {
|
||||||
"script": "\tvalue \u003d system.tag.readBlocking([\"[default]WaterMeter/PrimaryValveCloseOverrideOff\"])[0].value\n\n\tif value:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PrimaryValveCloseOverrideOff\"], [False])\n\telse:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PrimaryValveCloseOverrideOff\", \"[default]WaterMeter/PrimaryValveCloseOverrideOn\"], [True, False])\t\t"
|
"script": "\tvalue = system.tag.readBlocking([\"[default]WaterMeter/PrimaryValveCloseOverrideOff\"])[0].value\n\n\tif value:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PrimaryValveCloseOverrideOff\"], [False])\n\telse:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PrimaryValveCloseOverrideOff\", \"[default]WaterMeter/PrimaryValveCloseOverrideOn\"], [True, False])\t\t"
|
||||||
},
|
},
|
||||||
"scope": "G",
|
"scope": "G",
|
||||||
"type": "script"
|
"type": "script"
|
||||||
@@ -550,7 +550,7 @@
|
|||||||
"dom": {
|
"dom": {
|
||||||
"onClick": {
|
"onClick": {
|
||||||
"config": {
|
"config": {
|
||||||
"script": "\tvalue \u003d system.tag.readBlocking([\"[default]WaterMeter/SedimentFilterValueOpenOverrideOn\"])[0].value\n\t\n\tif value:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/SedimentFilterValueOpenOverrideOn\"], [False])\n\telse:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/SedimentFilterValueOpenOverrideOn\", \"[default]WaterMeter/SedimentFilterValueOpenOverrideOff\"], [True, False])\t"
|
"script": "\tvalue = system.tag.readBlocking([\"[default]WaterMeter/SedimentFilterValueOpenOverrideOn\"])[0].value\n\t\n\tif value:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/SedimentFilterValueOpenOverrideOn\"], [False])\n\telse:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/SedimentFilterValueOpenOverrideOn\", \"[default]WaterMeter/SedimentFilterValueOpenOverrideOff\"], [True, False])\t"
|
||||||
},
|
},
|
||||||
"scope": "G",
|
"scope": "G",
|
||||||
"type": "script"
|
"type": "script"
|
||||||
@@ -619,7 +619,7 @@
|
|||||||
"dom": {
|
"dom": {
|
||||||
"onClick": {
|
"onClick": {
|
||||||
"config": {
|
"config": {
|
||||||
"script": "\tvalue \u003d system.tag.readBlocking([\"[default]WaterMeter/SedimentFilterValueOpenOverrideOff\"])[0].value\n\t\n\tif value:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/SedimentFilterValueOpenOverrideOff\"], [False])\n\telse:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/SedimentFilterValueOpenOverrideOff\", \"[default]WaterMeter/SedimentFilterValueOpenOverrideOn\"], [True, False])\t"
|
"script": "\tvalue = system.tag.readBlocking([\"[default]WaterMeter/SedimentFilterValueOpenOverrideOff\"])[0].value\n\t\n\tif value:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/SedimentFilterValueOpenOverrideOff\"], [False])\n\telse:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/SedimentFilterValueOpenOverrideOff\", \"[default]WaterMeter/SedimentFilterValueOpenOverrideOn\"], [True, False])\t"
|
||||||
},
|
},
|
||||||
"scope": "G",
|
"scope": "G",
|
||||||
"type": "script"
|
"type": "script"
|
||||||
@@ -912,7 +912,7 @@
|
|||||||
"dom": {
|
"dom": {
|
||||||
"onClick": {
|
"onClick": {
|
||||||
"config": {
|
"config": {
|
||||||
"script": "\tvalue \u003d system.tag.readBlocking([\"[default]WaterMeter/PumpOverrideOn\"])[0].value\n\t\t\n\tif value:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PumpOverrideOn\"], [False])\n\telse:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PumpOverrideOn\", \"[default]WaterMeter/PumpOverrideOff\"], [True, False])\t\t"
|
"script": "\tvalue = system.tag.readBlocking([\"[default]WaterMeter/PumpOverrideOn\"])[0].value\n\t\t\n\tif value:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PumpOverrideOn\"], [False])\n\telse:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PumpOverrideOn\", \"[default]WaterMeter/PumpOverrideOff\"], [True, False])\t\t"
|
||||||
},
|
},
|
||||||
"scope": "G",
|
"scope": "G",
|
||||||
"type": "script"
|
"type": "script"
|
||||||
@@ -981,7 +981,7 @@
|
|||||||
"dom": {
|
"dom": {
|
||||||
"onClick": {
|
"onClick": {
|
||||||
"config": {
|
"config": {
|
||||||
"script": "\tvalue \u003d system.tag.readBlocking([\"[default]WaterMeter/PumpOverrideOff\"])[0].value\n\t\t\t\n\tif value:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PumpOverrideOff\"], [False])\n\telse:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PumpOverrideOff\", \"[default]WaterMeter/PumpOverrideOn\"], [True, False])\t"
|
"script": "\tvalue = system.tag.readBlocking([\"[default]WaterMeter/PumpOverrideOff\"])[0].value\n\t\t\t\n\tif value:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PumpOverrideOff\"], [False])\n\telse:\n\t\tsystem.tag.writeAsync([\"[default]WaterMeter/PumpOverrideOff\", \"[default]WaterMeter/PumpOverrideOn\"], [True, False])\t"
|
||||||
},
|
},
|
||||||
"scope": "G",
|
"scope": "G",
|
||||||
"type": "script"
|
"type": "script"
|
||||||
@@ -1277,7 +1277,7 @@
|
|||||||
"props.text": {
|
"props.text": {
|
||||||
"binding": {
|
"binding": {
|
||||||
"config": {
|
"config": {
|
||||||
"expression": "toString(round({[MQTT Engine]Home Assistant/homeassistant/sensor/droplet_prefilter_flow_rate/state/PrefilterFlowRate/state},2))+\" GPM\""
|
"expression": "toString(round({[default]WaterMeter/PrefilterFlowRate},2))+\" GPM\""
|
||||||
},
|
},
|
||||||
"type": "expr"
|
"type": "expr"
|
||||||
}
|
}
|
||||||
@@ -1351,7 +1351,7 @@
|
|||||||
"props.text": {
|
"props.text": {
|
||||||
"binding": {
|
"binding": {
|
||||||
"config": {
|
"config": {
|
||||||
"expression": "toString(round({[MQTT Engine]Home Assistant/homeassistant/sensor/droplet_daily_water_usage/state/PrefilterDailyUsage/state},1))+\" GALLONS\""
|
"expression": "toString(round({[default]WaterMeter/PrefilterDailyUsage},1))+\" GALLONS\""
|
||||||
},
|
},
|
||||||
"type": "expr"
|
"type": "expr"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user