w1ll1am23 / pyeconet

Python 3 interface to the EcoNet API
MIT License
34 stars 20 forks source link

HomeAssistant - Unknown equipment. #21

Closed theOrakle closed 1 year ago

theOrakle commented 2 years ago

I see the following 2 errors on every restart. All works as expected and I have been seeing this in the logs since I implemented the integration.

2022-10-09 15:06:06.561 ERROR (MainThread) [pyeconet.equipment] Unknown equipment type state: None
2022-10-09 15:06:06.574 ERROR (MainThread) [pyeconet.equipment] Unknown equipment type state: None

The errors have carried through all the versions of HA throughout the last year. (I'm always running the latest versions) I have 2 econet thermostats, let me know what else I can provide or debug for you.

theOrakle commented 2 years ago
image

Only one of the thermostats connect to the network...

w1ll1am23 commented 1 year ago

So it looks like you must have some other equipment in your devices that isn't a thermostat or water heater. Based on the code I'm seeing that would be the only thing that could cause this. Any change you can provide debug logs?

theOrakle commented 1 year ago

Sorry for the delayed response...

I have tried (in logger) homeassistant.components.pyeconet: debug with no extra output for pyeconet.

I even tried (in logger) homeassistant.components: debug with tons of extra output, but nothing more related to pyeconet than I posted above.

Am I attempting to debug it incorrectly?

w1ll1am23 commented 1 year ago

Sorry would have helped to explain how to do that.

logger:
  logs:
    pyeconet: debug
theOrakle commented 1 year ago

Wow - that was fast... I redacted a few fields

2022-12-29 11:46:17.624 DEBUG (MainThread) [pyeconet.api] {'options': {'@CONNECTIVITY': {'last_connected': 1672335026302, 'last_disconnected': 1672335970108}, '_id': 'ObjectID("61faab629d6d1fa5709268c1")', 'account_id': '<redacted>', 'address': '', 'allow_email_notifications': False, 'allow_product_alert_emails': False, 'allow_product_alert_text_msg': False, 'allow_push_notifications': True, 'allow_special_offers_emails': False, 'allow_special_offers_text_msg': False, 'allow_text_notifications': False, 'cb_service_account': False, 'cb_ttl_override': 0, 'city': '', 'connected': False, 'email': '14671@googlegroups.com', 'email_validated': False, 'first_name': '<redacted>', 'is_phone_verified': True, 'last_name': '<redacted>', 'phone': None, 'phone_number': '<redacted>', 'phone_validated': False, 'postal_code': '', 'receive_marketing_messages': False, 'report_state': True, 'role': 0, 'state': '', 'success': True, 'temperature_display_unit': 'Fahrenheit', 'two_factor_enabled': False, 'two_factor_method': 'email', 'user_id': '<redacted>'}, 'user_id': '<redacted>', 'user_token': '<redacted>'}
2022-12-29 11:46:23.291 DEBUG (MainThread) [pyeconet.api] {'results': {'locations': [{'@AWAY': False, '@AWAYCONFIG': True, '@LOCATION_INFO': '<redacted>', '@LOCATION_NAME': '<redacted>', '@LOCATION_STATUS': "I'm Home", '@VACATION': False, '@VACATIONCONFIG': False, '@WEATHER': '60.96°', '@WEATHER_F': 60, '@WEATHER_I': 'sunny.png', 'equiptments': [{'error': 'Dynamic Ui Configuration for the product not found'}, {'@ALERTCOUNT': 0, '@AWAY': False, '@AWAYCONFIG': False, '@AWAY_MSG': '', '@BCONFIG': [{'align': 'center', 'isConversion': True, 'name': '@RUNNINGSTATUS', 'type': 'TEXT_LABEL_VIEW', 'value': ''}, {'align': 'center', 'name': '@SCHEDULESTATUS', 'type': 'TEXT_LABEL_VIEW', 'value': ''}, {'name': '@SCHEDULERESUME', 'title': 'Resume', 'type': 'BUTTON_VIEW', 'value': ''}], '@BEEP': {'constraints': {'enumText': ['No ', 'Yes'], 'enumTextIcon': [], 'lowerLimit': 0, 'upperLimit': 1}, 'status': 'No ', 'value': 0}, '@CARDSTATUS': 'Auto          ', '@CONNECTED': True, '@COOLSETPOINT': {'constraints': {'formatDecimal': 0, 'isConversion': True, 'lowerLimit': 52, 'units': 'deg F', 'upperLimit': 92}, 'value': 78}, '@DEADBAND': {'constraints': {'formatDecimal': 0, 'lowerLimit': 0, 'units': 'delta F', 'upperLimit': 6}, 'value': 2}, '@DEHUMENABLE': {'constraints': {'enumText': ['No ', 'Yes'], 'enumTextIcon': [], 'lowerLimit': 0, 'upperLimit': 1}, 'status': 'Yes', 'value': 1}, '@DEHUMSETPOINT': {'constraints': {'formatDecimal': 0, 'lowerLimit': 40, 'units': '%', 'upperLimit': 60}, 'value': 40}, '@DRACTIVE': {'constraints': {'dialog': [{'message': 'This should not impact the water temperature in your home. Do you want to opt out for this event ?', 'title': 'Tank temperature has been changed in response to a Utility Load Control event', 'value': 1}]}, 'value': ''}, '@FANSPEED': {'constraints': {'enumText': ['Auto', 'Low', 'Med.Lo', 'Medium', 'Med.Hi', 'High'], 'lowerLimit': 0, 'upperLimit': 5}, 'status': 'Auto', 'value': 0}, '@HEATSETPOINT': {'constraints': {'formatDecimal': 0, 'isConversion': True, 'lowerLimit': 50, 'units': 'deg F', 'upperLimit': 90}, 'value': 73}, '@HUMIDITY': {'constraints': {'formatDecimal': 1, 'lowerLimit': 0, 'units': '%', 'upperLimit': 100}, 'value': 37}, '@MODE': {'constraints': {'enumText': ['Heating       ', 'Cooling       ', 'Auto          ', 'Fan Only      ', 'Off           ', 'Emergency Heat'], 'enumTextIcon': ['ic_thermo_heating.png', 'ic_thermo_cooling.png', 'ic_thermo_auto.png', 'ic_fan.png', 'ic_device_off.png', 'ic_thermo_emergency_heat.png'], 'lowerLimit': 0, 'upperLimit': 5}, 'status': 'Auto          ', 'value': 2}, '@NAME': {'constraints': {'stringLength': 64}, 'value': 'Main Floor'}, '@RESUME': False, '@RUNNINGSTATUS': '', '@SCHEDULE': False, '@SCHEDULERESUME': '', '@SCHEDULESTATUS': '', '@SCREENLOCK': {'constraints': {'enumText': ['No ', 'Yes'], 'enumTextIcon': [], 'lowerLimit': 0, 'upperLimit': 1}, 'status': 'No ', 'value': 0}, '@SETPOINT': {'constraints': {'formatDecimal': 3, 'isConversion': True, 'lowerLimit': -40, 'units': 'deg F', 'upperLimit': 99}, 'value': 76}, '@STATUS': 'Auto', '@TYPE': 'econetControlCenter', '@VACATION': False, 'actions': ['networkSettings', 'thermostatProductSettings', 'thermostatScheduleView'], 'device_name': '018598296724773533', 'device_type': 'HVAC', 'mac_address': 'EC-2E-98-42-7F-32', 'serial_number': '03-1b-15-0a-31-2c-01-02-01', 'zoning_devices': [{'@ALERTCOUNT': 0, '@AWAY': False, '@AWAYCONFIG': False, '@AWAY_MSG': '', '@BCONFIG': [{'align': 'center', 'name': '@SCHEDULESTATUS', 'type': 'TEXT_LABEL_VIEW', 'value': ''}, {'name': '@SCHEDULERESUME', 'title': 'Resume', 'type': 'BUTTON_VIEW', 'value': ''}], '@BEEP': {'constraints': {'enumText': ['No ', 'Yes'], 'enumTextIcon': [], 'lowerLimit': 0, 'upperLimit': 1}, 'status': 'No ', 'value': 0}, '@CARDSTATUS': 'Auto          ', '@CHILDVIEW': True, '@CHILDVIEWEN': True, '@CONNECTED': True, '@COOLSETPOINT': {'constraints': {'formatDecimal': 0, 'isConversion': True, 'lowerLimit': 52, 'units': 'deg F', 'upperLimit': 92}, 'value': 78}, '@DEADBAND': {'constraints': {'formatDecimal': 0, 'lowerLimit': 0, 'units': 'delta F', 'upperLimit': 6}, 'value': 2}, '@DEHUMENABLE': {'value': ''}, '@DEHUMSETPOINT': {'value': ''}, '@DRACTIVE': {'constraints': {'dialog': [{'message': 'This should not impact the water temperature in your home. Do you want to opt out for this event ?', 'title': 'Tank temperature has been changed in response to a Utility Load Control event', 'value': 1}]}, 'value': ''}, '@EQUIPMENTNAME': {'constraints': {'stringLength': 17}, 'value': 'Upstairs         '}, '@FANSPEED': {'constraints': {'enumText': ['Auto', 'Low', 'Med.Lo', 'Medium', 'Med.Hi', 'High'], 'lowerLimit': 0, 'upperLimit': 5}, 'status': 'Auto', 'value': 0}, '@HEATSETPOINT': {'constraints': {'formatDecimal': 0, 'isConversion': True, 'lowerLimit': 50, 'units': 'deg F', 'upperLimit': 90}, 'value': 73}, '@HUMIDITY': {'constraints': {'formatDecimal': 1, 'lowerLimit': 0, 'units': '%', 'upperLimit': 100}, 'value': 38}, '@MASTERPRODUCT': 'econetControlCenter', '@MODE': {'constraints': {'enumText': ['Heating       ', 'Cooling       ', 'Auto          ', 'Fan Only      ', 'Off           ', 'Emergency Heat'], 'enumTextIcon': ['ic_thermo_heating.png', 'ic_thermo_cooling.png', 'ic_thermo_auto.png', 'ic_fan.png', 'ic_device_off.png', 'ic_thermo_emergency_heat.png'], 'lowerLimit': 0, 'upperLimit': 5}, 'status': 'Auto          ', 'value': 2}, '@NAME': {'constraints': {'stringLength': 64}, 'value': 'Upstairs'}, '@RESUME': False, '@SCHEDULE': False, '@SCHEDULERESUME': '', '@SCHEDULESTATUS': '', '@SCREENLOCK': {'constraints': {'enumText': ['No ', 'Yes'], 'enumTextIcon': [], 'lowerLimit': 0, 'upperLimit': 1}, 'status': 'No ', 'value': 0}, '@SETPOINT': {'constraints': {'formatDecimal': 2, 'isConversion': True, 'lowerLimit': -40, 'units': 'deg F', 'upperLimit': 199}, 'value': 75}, '@STATUS': 'Auto', '@TYPE': 'econetZoneController', '@VACATION': False, '@ZONE_ID_NAME': 'Zone 2', 'actions': ['thermostatScheduleView', 'thermostatProductSettings'], 'device_name': '018598296724773533', 'device_type': 'HVAC', 'mac_address': 'EC-2E-NO-PE-7F-NO', 'serial_number': '01-23-15-67-2e-02-01-01-01'}]}], 'location_id': 'af35c2af-89ba-d710-7d66-51301da897c8'}]}, 'success': True, 'logs': '', 'stack': ''}
2022-12-29 11:46:23.348 ERROR (MainThread) [pyeconet.equipment] Unknown equipment type state: None
2022-12-29 11:46:23.349 ERROR (MainThread) [pyeconet.equipment] Unknown equipment type state: None
w1ll1am23 commented 1 year ago

So this shows up under the equipment section which is why there is an error.

{'error': 'Dynamic Ui Configuration for the product not found'}

Not sure what that means or how it happens, but it shouldn't cause you any issues.

theOrakle commented 1 year ago

That was my thoughts - just couldn't get the reasoning... Thank you for the fast responses.

Have a Happy New Year my friend!