Skip to content

Add sensors for warnings and alarms#49

Open
blue-genie wants to merge 1 commit intoCrewski:mainfrom
blue-genie:main
Open

Add sensors for warnings and alarms#49
blue-genie wants to merge 1 commit intoCrewski:mainfrom
blue-genie:main

Conversation

@blue-genie
Copy link
Copy Markdown

Adding WarningSensor & AlarmSensor, it doesn't make sense to add 20 individual sensors, so I created only 2 sensors, one for warnings and one for errors, with attributes.

If somebody want to take it further, they create binary_sensors in HA from attributes.

@blue-genie
Copy link
Copy Markdown
Author

A sample object for chemController

{
    "evt": "chemController",
    "data": {
        "id": 1,
        "saturationIndex": -0.09,
        "flowDetected": true,
        "orp": {
            "probe": {
                "saltLevel": 0,
                "level": 751,
                "equipmentType": "probe",
                "enabled": true,
                "master": 0
            },
            "chemType": "orp",
            "useChlorinator": false,
            "type": "orp",
            "tank": {
                "capacity": 6,
                "level": 5,
                "units": {
                    "val": 0,
                    "name": "",
                    "desc": "No Units"
                },
                "alarmEmptyEnabled": false,
                "alarmEmptyLevel": 1,
                "equipmentType": "tank",
                "master": 0
            },
            "pump": {
                "isDosing": false,
                "equipmentType": "pump",
                "type": {
                    "val": 0,
                    "name": "none",
                    "desc": "No Pump",
                    "ratedFlow": false,
                    "tank": false,
                    "remAddress": false
                },
                "ratedFlow": 0,
                "enabled": true,
                "master": 0
            },
            "dosingTimeRemaining": 0,
            "delayTimeRemaining": 0,
            "dosingVolumeRemaining": 0,
            "doseVolume": 0,
            "doseTime": 0,
            "lockout": false,
            "level": 751,
            "mixTimeRemaining": 0,
            "dailyLimitReached": false,
            "manualDosing": false,
            "manualMixing": false,
            "flowDelay": false,
            "dosingStatus": {
                "val": 2,
                "name": "monitoring",
                "desc": "Monitoring"
            },
            "enabled": true,
            "freezeProtect": false,
            "setpoint": 740,
            "timeDosed": 7,
            "volumeDosed": 15,
            "doseHistory": [
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T06:43:19.852+0000",
                    "end": "2024-06-10T06:43:34.576+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 738,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 15,
                    "time": 0,
                    "timeDosed": 7,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T06:13:35.859+0000",
                    "end": "2024-06-10T06:14:09.041+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 736,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 37,
                    "time": 0,
                    "timeDosed": 17,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T05:43:42.286+0000",
                    "end": "2024-06-10T05:44:35.750+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 734,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 56,
                    "time": 0,
                    "timeDosed": 26,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T05:13:41.318+0000",
                    "end": "2024-06-10T05:14:51.029+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 731,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 76,
                    "time": 0,
                    "timeDosed": 35,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T04:43:29.403+0000",
                    "end": "2024-06-10T04:44:56.510+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 730,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 96,
                    "time": 0,
                    "timeDosed": 44,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T04:13:05.887+0000",
                    "end": "2024-06-10T04:14:59.988+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 727,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 124,
                    "time": 0,
                    "timeDosed": 57,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T03:42:36.962+0000",
                    "end": "2024-06-10T03:44:41.149+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 726,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 135,
                    "time": 0,
                    "timeDosed": 62,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T03:12:04.076+0000",
                    "end": "2024-06-10T03:14:14.355+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 725,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 144,
                    "time": 0,
                    "timeDosed": 66,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T02:41:30.421+0000",
                    "end": "2024-06-10T02:43:43.151+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 725,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 144,
                    "time": 0,
                    "timeDosed": 66,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T02:11:01.224+0000",
                    "end": "2024-06-10T02:13:05.796+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 725,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 135,
                    "time": 0,
                    "timeDosed": 62,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T01:40:36.715+0000",
                    "end": "2024-06-10T01:42:30.292+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 727,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 124,
                    "time": 0,
                    "timeDosed": 57,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T01:10:17.643+0000",
                    "end": "2024-06-10T01:12:03.497+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 728,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 116,
                    "time": 0,
                    "timeDosed": 53,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T00:40:01.688+0000",
                    "end": "2024-06-10T00:41:37.861+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 729,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 105,
                    "time": 0,
                    "timeDosed": 48,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T00:09:50.440+0000",
                    "end": "2024-06-10T00:11:17.761+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 730,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 96,
                    "time": 0,
                    "timeDosed": 44,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-09T23:39:48.417+0000",
                    "end": "2024-06-09T23:40:57.476+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 732,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 76,
                    "time": 0,
                    "timeDosed": 35,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-09T23:10:00.114+0000",
                    "end": "2024-06-09T23:10:42.917+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 735,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 46,
                    "time": 0,
                    "timeDosed": 21,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-09T22:40:21.014+0000",
                    "end": "2024-06-09T22:40:46.198+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 737,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 26,
                    "time": 0,
                    "timeDosed": 12,
                    "type": "orp"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-09T22:10:51.107+0000",
                    "end": "2024-06-09T22:10:58.029+0000",
                    "chem": "orp",
                    "setpoint": 740,
                    "demand": 0,
                    "level": 739,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 6,
                    "time": 0,
                    "timeDosed": 3,
                    "type": "orp"
                }
            ],
            "dailyVolumeDosed": 1557,
            "equipmentType": "orp",
            "chlorDosingMethod": 0,
            "tolerance": {
                "low": 650,
                "high": 800,
                "enabled": true
            },
            "phLockout": 7.8,
            "doserType": {
                "val": 1,
                "name": "extrelay",
                "desc": "External Relay"
            },
            "dosingMethod": {
                "val": 0,
                "name": "manual",
                "desc": "Manual"
            },
            "startDelay": 1.5,
            "flowReadingsOnly": true,
            "flowOnlyMixing": true,
            "maxDailyVolume": 500,
            "disableOnFreeze": true,
            "master": 0
        },
        "ph": {
            "probe": {
                "temperature": 88,
                "level": 7.39,
                "tempUnits": {
                    "val": 0,
                    "name": "F",
                    "desc": "Fahrenheit"
                },
                "equipmentType": "probe",
                "enabled": true,
                "master": 0
            },
            "tank": {
                "capacity": 6,
                "level": 4,
                "units": {
                    "val": 0,
                    "name": "",
                    "desc": "No Units"
                },
                "alarmEmptyEnabled": false,
                "alarmEmptyLevel": 1,
                "equipmentType": "tank",
                "master": 0
            },
            "pump": {
                "isDosing": false,
                "equipmentType": "pump",
                "type": {
                    "val": 0,
                    "name": "none",
                    "desc": "No Pump",
                    "ratedFlow": false,
                    "tank": false,
                    "remAddress": false
                },
                "ratedFlow": 0,
                "enabled": true,
                "master": 0
            },
            "dosingTimeRemaining": 0,
            "delayTimeRemaining": 0,
            "dosingVolumeRemaining": 0,
            "doseVolume": 0,
            "doseTime": 0,
            "lockout": false,
            "level": 7.39,
            "mixTimeRemaining": 0,
            "dailyLimitReached": false,
            "manualDosing": false,
            "manualMixing": false,
            "flowDelay": false,
            "dosingStatus": {
                "val": 2,
                "name": "monitoring",
                "desc": "Monitoring"
            },
            "enabled": true,
            "freezeProtect": false,
            "chemType": "ph",
            "type": "ph",
            "setpoint": 7.5,
            "timeDosed": 3,
            "volumeDosed": 6,
            "doseHistory": [
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T16:50:18.505+0000",
                    "end": "2024-06-10T16:50:24.185+0000",
                    "chem": "acid",
                    "setpoint": 7.5,
                    "demand": 0,
                    "level": 7.43,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 6,
                    "time": 0,
                    "timeDosed": 3,
                    "type": "ph"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T09:11:27.923+0000",
                    "end": "2024-06-10T09:11:40.517+0000",
                    "chem": "acid",
                    "setpoint": 7.5,
                    "demand": 0,
                    "level": 7.51,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 13,
                    "time": 0,
                    "timeDosed": 6,
                    "type": "ph"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T08:30:52.852+0000",
                    "end": "2024-06-10T08:31:06.321+0000",
                    "chem": "acid",
                    "setpoint": 7.5,
                    "demand": 0,
                    "level": 7.51,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 13,
                    "time": 0,
                    "timeDosed": 6,
                    "type": "ph"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T07:30:41.886+0000",
                    "end": "2024-06-10T07:30:52.145+0000",
                    "chem": "acid",
                    "setpoint": 7.5,
                    "demand": 0,
                    "level": 7.51,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 13,
                    "time": 0,
                    "timeDosed": 6,
                    "type": "ph"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T07:00:07.538+0000",
                    "end": "2024-06-10T07:00:19.064+0000",
                    "chem": "acid",
                    "setpoint": 7.5,
                    "demand": 0,
                    "level": 7.51,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 13,
                    "time": 0,
                    "timeDosed": 6,
                    "type": "ph"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T06:29:31.435+0000",
                    "end": "2024-06-10T06:29:50.644+0000",
                    "chem": "acid",
                    "setpoint": 7.5,
                    "demand": 0,
                    "level": 7.51,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 19,
                    "time": 0,
                    "timeDosed": 9,
                    "type": "ph"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T05:58:51.561+0000",
                    "end": "2024-06-10T05:59:18.782+0000",
                    "chem": "acid",
                    "setpoint": 7.5,
                    "demand": 0,
                    "level": 7.52,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 28,
                    "time": 0,
                    "timeDosed": 13,
                    "type": "ph"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T05:28:08.612+0000",
                    "end": "2024-06-10T05:28:41.506+0000",
                    "chem": "acid",
                    "setpoint": 7.5,
                    "demand": 0,
                    "level": 7.52,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 35,
                    "time": 0,
                    "timeDosed": 16,
                    "type": "ph"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T04:57:22.820+0000",
                    "end": "2024-06-10T04:58:01.637+0000",
                    "chem": "acid",
                    "setpoint": 7.5,
                    "demand": 0,
                    "level": 7.53,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 41,
                    "time": 0,
                    "timeDosed": 19,
                    "type": "ph"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T04:26:26.192+0000",
                    "end": "2024-06-10T04:27:25.206+0000",
                    "chem": "acid",
                    "setpoint": 7.5,
                    "demand": 0,
                    "level": 7.54,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 63,
                    "time": 0,
                    "timeDosed": 29,
                    "type": "ph"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T03:55:36.066+0000",
                    "end": "2024-06-10T03:56:23.532+0000",
                    "chem": "acid",
                    "setpoint": 7.5,
                    "demand": 0,
                    "level": 7.53,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 50,
                    "time": 0,
                    "timeDosed": 23,
                    "type": "ph"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T03:24:53.267+0000",
                    "end": "2024-06-10T03:25:26.172+0000",
                    "chem": "acid",
                    "setpoint": 7.5,
                    "demand": 0,
                    "level": 7.52,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 35,
                    "time": 0,
                    "timeDosed": 16,
                    "type": "ph"
                },
                {
                    "id": 1,
                    "method": "auto",
                    "start": "2024-06-10T02:54:19.959+0000",
                    "end": "2024-06-10T02:54:31.129+0000",
                    "chem": "acid",
                    "setpoint": 7.5,
                    "demand": 0,
                    "level": 7.51,
                    "volume": 0,
                    "status": "completed",
                    "volumeDosed": 13,
                    "time": 0,
                    "timeDosed": 6,
                    "type": "ph"
                }
            ],
            "dailyVolumeDosed": 342,
            "equipmentType": "ph",
            "phSupply": {
                "val": 0,
                "name": "base",
                "desc": "Base pH+"
            },
            "acidType": 0,
            "tolerance": {
                "low": 7.2,
                "high": 7.6,
                "enabled": true
            },
            "dosePriority": true,
            "doserType": {
                "val": 1,
                "name": "extrelay",
                "desc": "External Relay"
            },
            "dosingMethod": {
                "val": 0,
                "name": "manual",
                "desc": "Manual"
            },
            "startDelay": 1.5,
            "flowReadingsOnly": true,
            "flowOnlyMixing": true,
            "maxDailyVolume": 500,
            "disableOnFreeze": true,
            "master": 0
        },
        "flowSensor": {
            "type": {
                "val": 0,
                "name": "none",
                "desc": "No Sensor"
            },
            "enabled": false,
            "master": 0
        },
        "type": {
            "val": 2,
            "name": "intellichem",
            "desc": "IntelliChem",
            "ph": {
                "min": 7.2,
                "max": 7.6
            },
            "orp": {
                "min": 400,
                "max": 800
            },
            "hasAddress": true
        },
        "alarms": {
            "flow": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No alarm"
            },
            "pH": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No alarm"
            },
            "orp": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No alarm"
            },
            "pHTank": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No alarm"
            },
            "orpTank": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No alarm"
            },
            "probeFault": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No alarm"
            },
            "pHProbeFault": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No alarm"
            },
            "orpProbeFault": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No alarm"
            },
            "pHPumpFault": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No Faults"
            },
            "orpPumpFault": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No Faults"
            },
            "chlorFault": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No Faults"
            },
            "bodyFault": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No Faults"
            },
            "flowSensorFault": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No Faults"
            },
            "comms": {
                "val": 0,
                "name": "ok",
                "desc": "Ok"
            },
            "freezeProtect": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No alarm"
            }
        },
        "warnings": {
            "waterChemistry": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No Warning"
            },
            "pHLockout": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No limits reached"
            },
            "pHDailyLimitReached": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No limits reached"
            },
            "orpDailyLimitReached": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No limits reached"
            },
            "invalidSetup": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No limits reached"
            },
            "chlorinatorCommError": {
                "val": 0,
                "name": "ok",
                "desc": "Ok - No Warning"
            }
        },
        "siCalcType": {
            "val": 0,
            "name": "lsi",
            "desc": "Langelier Saturation Index"
        },
        "isActive": true,
        "address": 144,
        "body": {
            "val": 32,
            "name": "poolspa",
            "desc": "Pool/Spa"
        },
        "name": "IntelliChem 1",
        "status": {
            "val": 0,
            "name": "ok",
            "desc": "Ok"
        },
        "lastComm": 1718044495458,
        "lsi": -0.09,
        "csi": -0.052,
        "equipmentType": "chemController",
        "borates": 0,
        "alkalinity": 90,
        "calciumHardness": 299,
        "cyanuricAcid": 40,
        "lsiRange": {
            "low": -0.5,
            "high": 0.5,
            "enabled": true
        },
        "master": 0,
        "HMIAdvancedDisplay": false,
        "firmware": "1.080"
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant