jlvaillant / intellicenter

Home Assistant Integration for Pentair Intellicenter
GNU General Public License v3.0
32 stars 13 forks source link

IntelliChem Sensors not showing #17

Open safadig opened 3 years ago

safadig commented 3 years ago

I have 2 IntelliChem units ( Spa, pool). Not seeing PH, ORP for either. Seeing Salt level for Pool only

dwradcliffe commented 3 years ago

Can you turn on debug logging for this component and send some of the logs? I don't have IntelliChem but might be able to figure it out from the logs.

safadig commented 3 years ago

2021-05-28 17:07:08 DEBUG (MainThread) [custom_components.intellicenter.pyintellicenter.protocol] PROTOCOL: received from transport: {"command":"NotifyList","messageID":"3","timeSince":"0","timeNow":"1621013400","response":"200","objectList":[{"objnam":"X0053","params":{"SNAME":"All Lights Off","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0052","params":{"SNAME":"Solar","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0050","params":{"SNAME":"Cleaners","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0051","params":{"SNAME":"Heater","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0054","params":{"SNAME":"All Lights On","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"_A135","params":{"SNAME":"Air Sensor","SOURCE":"51"}},{"objnam":"X0055","params":{"SNAME":"Pool Heat Enable","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"_A111","params":{"SNAME":"All Lights On","SUBTYP":"ALL","STATUS":"PERMIT","FEATR":"OFF"}},{"objnam":"_5451","params":{"MODE":"ENGLISH","VACFLO":"OFF"}},{"objnam":"_A110","params":{"SNAME":"All Lights Off","SUBTYP":"ALL","STATUS":"PERMIT","FEATR":"OFF"}},{"objnam":"X0047","params":{"SNAME":"Pool/Spa","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0036","params":{"SNAME":"Hybrid","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0046","params":{"SNAME":"Freeze","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0035","params":{"SNAME":"UltraTemp","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0034","params":{"SNAME":"Heat Pump","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0037","params":{"SNAME":"Heat Boost","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0045","params":{"SNAME":"Spa Heater","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0038","params":{"SNAME":"Heat Enable","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0044","params":{"SNAME":"Pool Heater","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0040","params":{"SNAME":"Pump Speed -","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0039","params":{"SNAME":"Pump Speed +","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0043","params":{"SNAME":"Cleaner","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"_FEA2","params":{"SNAME":"Freeze","SUBTYP":"FRZ","STATUS":"OFF"}},{"objnam":"CHR01","params":{"COMUART":"1","SNAME":"IntelliChlor 1","SHARE":"B1101","PRIM":"50","BODY":"B1101","SALT":"3050","SEC":"20","LISTORD":"1","SUBTYP":"ICHLOR","SUPER":"OFF","TIMOUT":"86400"}},{"objnam":"CHM01","params":{"ORPHI":"OFF","ORPLO":"OFF","COMUART":"1","SNAME":"IntelliChem 1","PHTNK":"4","PHVAL":"7.70","SHARE":"B1101","PHSET":"7.6","BODY":"B1101","PHHI":"OFF","CYACID":"0","SINDEX":"1.57","SALT":"0","PHLO":"OFF","CHLOR":"OFF","ORPSET":"720","ALK":"25","LISTORD":"1","ORPTNK":"5","ORPVAL":"720","SUBTYP":"ICHEM","QUALTY":"-0.99","CALC":"25"}},{"objnam":"CHM02","params":{"ORPHI":"OFF","ORPLO":"OFF","COMUART":"2","SNAME":"IntelliChem 2","PHTNK":"0","PHVAL":"0.00","SHARE":"B1101","PHSET":"7","BODY":"B1202","PHHI":"OFF","CYACID":"0","SINDEX":"0","SALT":"0","PHLO":"OFF","CHLOR":"OFF","ORPSET":"400","ALK":"25","LISTORD":"2","ORPTNK":"0","ORPVAL":"0","SUBTYP":"ICHEM","QUALTY":"0","CALC":"25"}},{"objnam":"FTR06","params":{"SNAME":"Fountains","SUBTYP":"GENERIC","STATUS":"OFF","FEATR":"ON"}},{"objnam":"FTR01","params":{"SNAME":"Pool High","SUBTYP":"GENERIC","STATUS":"OFF","FEATR":"ON"}},{"objnam":"FTR05","params":{"SNAME":"Laminars","SUBTYP":"GENERIC","STATUS":"OFF","FEATR":"ON"}},{"objnam":"FTR03","params":{"SNAME":"Bubblers","SUBTYP":"GENERIC","STATUS":"OFF","FEATR":"ON"}},{"objnam":"FTR02","params":{"SNAME":"Spa High","SUBTYP":"GENERIC","STATUS":"OFF","FEATR":"ON"}},{"objnam":"FTR04","params":{"SNAME":"Infinity Edge","SUBTYP":"GENERIC","STATUS":"OFF","FEATR":"ON"}},{"objnam":"C0011","params":{"SNAME":"AUX 9","SUBTYP":"GENERIC","USE":"WHITER","STATUS":"OFF","FEATR":"OFF"}},{"objnam":"C0002","params":{"SNAME":"Pool Lights","SUBTYP":"INTELLI","USE":"SSET","STATUS":"OFF","FEATR":"ON"}},{"objnam":"C0010","params":{"SNAME":"AUX 8","SUBTYP":"GENERIC","USE":"WHITER","STATUS":"OFF","FEATR":"OFF"}},{"objnam":"C0001","params":{"SNAME":"Spa","SUBTYP":"SPA","USE":"WHITER","STATUS":"ON","FEATR":"OFF"}},{"objnam":"B1101","params":{"HEATER":"H0001","SNAME":"Pool","VOL":"15000","LSTTMP":"77","LOTMP":"77","HTMODE":"1","STATUS":"ON"}},{"objnam":"B1202","params":{"HEATER":"00000","SNAME":"Spa","VOL":"1000","LSTTMP":"69","LOTMP":"77","HTMODE":"0","STATUS":"ON"}}]}

2021-05-28 17:07:08 DEBUG (MainThread) [custom_components.intellicenter.pyintellicenter.protocol] PROTOCOL: processMessage {"command":"NotifyList","messageID":"3","timeSince":"0","timeNow":"1621013400","response":"200","objectList":[{"objnam":"X0053","params":{"SNAME":"All Lights Off","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0052","params":{"SNAME":"Solar","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0050","params":{"SNAME":"Cleaners","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0051","params":{"SNAME":"Heater","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0054","params":{"SNAME":"All Lights On","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"_A135","params":{"SNAME":"Air Sensor","SOURCE":"51"}},{"objnam":"X0055","params":{"SNAME":"Pool Heat Enable","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"_A111","params":{"SNAME":"All Lights On","SUBTYP":"ALL","STATUS":"PERMIT","FEATR":"OFF"}},{"objnam":"_5451","params":{"MODE":"ENGLISH","VACFLO":"OFF"}},{"objnam":"_A110","params":{"SNAME":"All Lights Off","SUBTYP":"ALL","STATUS":"PERMIT","FEATR":"OFF"}},{"objnam":"X0047","params":{"SNAME":"Pool/Spa","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0036","params":{"SNAME":"Hybrid","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0046","params":{"SNAME":"Freeze","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0035","params":{"SNAME":"UltraTemp","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0034","params":{"SNAME":"Heat Pump","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0037","params":{"SNAME":"Heat Boost","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0045","params":{"SNAME":"Spa Heater","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0038","params":{"SNAME":"Heat Enable","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0044","params":{"SNAME":"Pool Heater","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0040","params":{"SNAME":"Pump Speed -","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0039","params":{"SNAME":"Pump Speed +","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"X0043","params":{"SNAME":"Cleaner","SUBTYP":"Generic","STATUS":"OFF"}},{"objnam":"_FEA2","params":{"SNAME":"Freeze","SUBTYP":"FRZ","STATUS":"OFF"}},{"objnam":"CHR01","params":{"COMUART":"1","SNAME":"IntelliChlor 1","SHARE":"B1101","PRIM":"50","BODY":"B1101","SALT":"3050","SEC":"20","LISTORD":"1","SUBTYP":"ICHLOR","SUPER":"OFF","TIMOUT":"86400"}},{"objnam":"CHM01","params":{"ORPHI":"OFF","ORPLO":"OFF","COMUART":"1","SNAME":"IntelliChem 1","PHTNK":"4","PHVAL":"7.70","SHARE":"B1101","PHSET":"7.6","BODY":"B1101","PHHI":"OFF","CYACID":"0","SINDEX":"1.57","SALT":"0","PHLO":"OFF","CHLOR":"OFF","ORPSET":"720","ALK":"25","LISTORD":"1","ORPTNK":"5","ORPVAL":"720","SUBTYP":"ICHEM","QUALTY":"-0.99","CALC":"25"}},{"objnam":"CHM02","params":{"ORPHI":"OFF","ORPLO":"OFF","COMUART":"2","SNAME":"IntelliChem 2","PHTNK":"0","PHVAL":"0.00","SHARE":"B1101","PHSET":"7","BODY":"B1202","PHHI":"OFF","CYACID":"0","SINDEX":"0","SALT":"0","PHLO":"OFF","CHLOR":"OFF","ORPSET":"400","ALK":"25","LISTORD":"2","ORPTNK":"0","ORPVAL":"0","SUBTYP":"ICHEM","QUALTY":"0","CALC":"25"}},{"objnam":"FTR06","params":{"SNAME":"Fountains","SUBTYP":"GENERIC","STATUS":"OFF","FEATR":"ON"}},{"objnam":"FTR01","params":{"SNAME":"Pool High","SUBTYP":"GENERIC","STATUS":"OFF","FEATR":"ON"}},{"objnam":"FTR05","params":{"SNAME":"Laminars","SUBTYP":"GENERIC","STATUS":"OFF","FEATR":"ON"}},{"objnam":"FTR03","params":{"SNAME":"Bubblers","SUBTYP":"GENERIC","STATUS":"OFF","FEATR":"ON"}},{"objnam":"FTR02","params":{"SNAME":"Spa High","SUBTYP":"GENERIC","STATUS":"OFF","FEATR":"ON"}},{"objnam":"FTR04","params":{"SNAME":"Infinity Edge","SUBTYP":"GENERIC","STATUS":"OFF","FEATR":"ON"}},{"objnam":"C0011","params":{"SNAME":"AUX 9","SUBTYP":"GENERIC","USE":"WHITER","STATUS":"OFF","FEATR":"OFF"}},{"objnam":"C0002","params":{"SNAME":"Pool Lights","SUBTYP":"INTELLI","USE":"SSET","STATUS":"OFF","FEATR":"ON"}},{"objnam":"C0010","params":{"SNAME":"AUX 8","SUBTYP":"GENERIC","USE":"WHITER","STATUS":"OFF","FEATR":"OFF"}},{"objnam":"C0001","params":{"SNAME":"Spa","SUBTYP":"SPA","USE":"WHITER","STATUS":"ON","FEATR":"OFF"}},{"objnam":"B1101","params":{"HEATER":"H0001","SNAME":"Pool","VOL":"15000","LSTTMP":"77","LOTMP":"77","HTMODE":"1","STATUS":"ON"}},{"objnam":"B1202","params":{"HEATER":"00000","SNAME":"Spa","VOL":"1000","LSTTMP":"69","LOTMP":"77","HTMODE":"0","STATUS":"ON"}}]}

safadig commented 3 years ago

From above, the Intellichem section: ,{"objnam":"CHM01","params":{"ORPHI":"OFF","ORPLO":"OFF","COMUART":"1","SNAME":"IntelliChem 1","PHTNK":"4","PHVAL":"7.70","SHARE":"B1101","PHSET":"7.6","BODY":"B1101","PHHI":"OFF","CYACID":"0","SINDEX":"1.57","SALT":"0","PHLO":"OFF","CHLOR":"OFF","ORPSET":"720","ALK":"25","LISTORD":"1","ORPTNK":"5","ORPVAL":"720","SUBTYP":"ICHEM","QUALTY":"-0.99","CALC":"25"}},{"objnam":"CHM02","params":{"ORPHI":"OFF","ORPLO":"OFF","COMUART":"2","SNAME":"IntelliChem 2","PHTNK":"0","PHVAL":"0.00","SHARE":"B1101","PHSET":"7","BODY":"B1202","PHHI":"OFF","CYACID":"0","SINDEX":"0","SALT":"0","PHLO":"OFF","CHLOR":"OFF","ORPSET":"400","ALK":"25","LISTORD":"2","ORPTNK":"0","ORPVAL":"0","SUBTYP":"ICHEM","QUALTY":"0","CALC":"25"}

safadig commented 3 years ago

Found it! sensor.py All Chem sensors listed under ICHLOR object.subtype/ Should be ICHEM

safadig commented 3 years ago

Having trouble with pH and Water quality reporting as unavailable and restored. May have to do with them being floats? File "/config/custom_components/intellicenter/sensor.py", line 225, in state value = int(self._poolObject[self._attribute_key]) ValueError: invalid literal for int() with base 10: '7.80'

jlvaillant commented 3 years ago

I wish I could try to reproduce what you are seeing but I don't have (yet) any intellichem units so the code was engineered from the Pentair demo site which did not have any "real" values. Your diagnostic sounds right though. Only thing I'm a bit confused is about is that other intellichem owners did not bump into this as far as I am aware. Which is to say that, in sensor.py, the code might need to be if object.subtype == "ICHLOR" OR object.subtype == "ICHEM". @dwradcliffe , I know you have a chemical unit, what does your object tree looks like?

dwradcliffe commented 3 years ago

I only have IntelliChlor but I can confirm based on my tree and @safadig's debug output that the IntelliChlor only has the salt attribute and the IntelliChem has the rest. I have a fix for that in #18.

safadig commented 3 years ago

The other issue relates to pH value (PHVAL_ATTR) and Water Qaulity (QALTY_ATTR) as both results are floats and sensor.py only reads values as int which causes an error. I circumvented that for now by having the statement as ' float" except it makes all values floats!

`@property def state(self): """Return the state of the sensor."""

    value = float(self._poolObject[self._attribute_key])

    # some sensors, like variable speed pumps, can vary constantly
    # so rounding their value to a nearest multiplier of 'rounding'
    # smoothes the curve and limits the number of updates in the log

    if self._rounding_factor:
        value = float(round(value / self._rounding_factor) * self._rounding_factor)

    return value`
dwradcliffe commented 3 years ago

Fix for that added to #18 too.

safadig commented 3 years ago

works without unit_of_measurment for SALT_ATTR

dwradcliffe commented 1 year ago

I think this one can be closed now.