Nexia and Trane XL1050 / XL850 thermostat

I have the polling rate set to 300 seconds right now. That may be a bit low for an HVAC system. Inside of nexia_thermostat.py, you should see “UPDATE_RATE = 300 # 5 minutes” on line 17. You can try decreasing that value and restarting Home Assistant. I don’t know yet if Nexia will rate limit. I do know they’ll lock your account after 5 password failures. :slight_smile:

As far as the state (Off, Idle, Cool, Heat), that comes from the get_zone_current_mode(). Mine seems to return “Damper Open”, “Relieving Air”, or “”, which seems to indicate for me that the damper is closed.

I’m guessing you have a single-zone system, i.e. no actuated dampers? I’m guessing your “zone_status” is “” all the time. I may need to get a dump of your JSON to compare with mine. If you want, for now, comment out lines 116 and 117 in climate.py.

If you don’t want to mess with Python, you can get your JSON data from the website directly:
https://www.mynexia.com/houses/<house_id>/xxl_thermostats

For the hold mode, I’ve been having intermittent issues where the modes only returns back “away”, instead of “away”, “home”, and “sleep” in my case. I don’t know of a way around this right now… perhaps we can manually set the hold modes in the configuration? Right now it’s hard coded to “away”, “home”, and “sleep”.

The actual hold mode works on mine if I call climate.set_hold_mode(). It does seem to take a minute or two to update.

Thanks for the updated version. Not seeing the errors anymore, though I don’t see my change reflected in the mobile app at least. Also not seeing the second unit. Also, is there a way to set the temperature in .5 degree increments? This is necessary when using Celsius.

Here’s a somewhat sanitized version of the JSON output. Please be aware that it contains a pin field that you probably shouldn’t share (if anyone else sends this).

[
  {
    "id": 555555,
    "pin": "[RETRACTED]",
    "is_setup": true,
    "expires_at": "[RETRACTED]",
    "account_id": 000000,
    "house_id": 111111,
    "created_at": "[RETRACTED]",
    "updated_at": "2019-06-02T15:33:44.000Z",
    "auid": "[RETRACTED]",
    "operating_mode": "COOL",
    "system_code": "CALL",
    "fan_mode": "auto",
    "current_time": "Sun, Jun 02 - 10:37AM",
    "installation_locked": false,
    "have_odt": true,
    "raw_outdoor_temperature": 29.0,
    "have_rh": true,
    "raw_relative_humidity": 32768.0,
    "outdoor_state": "COOL",
    "heat_active": false,
    "temperature_deadband": 2.5,
    "zoning_enabled": false,
    "notified_for_temperature": null,
    "temperature_blackout": null,
    "temperature_high_limit": 38.0,
    "temperature_low_limit": 7.0,
    "system_name": "Downstairs",
    "instance_number": 1,
    "blower_active": true,
    "emergency_heat_supported": false,
    "emergency_heat_active": false,
    "name": "Downstairs",
    "current_relative_humidity": 0.5575,
    "humidify_allowed": false,
    "dehumidify_allowed": true,
    "humidify_setpoint": 0.35,
    "dehumidify_setpoint": 0.45,
    "frost_index": 5,
    "dealer_phone_number": "[RETRACTED]",
    "manufacturer_code": "TRAN",
    "dev_build_number": "1450083251",
    "firmware_build_name": null,
    "onboard_device_id": null,
    "onboard_device_type": null,
    "enrollment_failure": null,
    "scale": "c",
    "system_guid": "[RETRACTED]",
    "enrolled_at": "[RETRACTED]",
    "smart_optimizer_running": false,
    "demand_response_start": "",
    "demand_response_end": "",
    "demand_response_status": null,
    "last_operating_state": "Cooling",
    "occupied_tid": null,
    "unoccupied_tid": null,
    "fan_speed": 0.75,
    "min_fan_speed": 0.35,
    "max_fan_speed": 1.0,
    "fan_circulation_time": 30,
    "compressor_speed": 0.0,
    "requested_compressor_speed": 0.0,
    "fan_type": "VSPD",
    "has_variable_speed_compressor": true,
    "has_heatpump": false,
    "quiet_mode_enabled": false,
    "last_listened_to_at": null,
    "model_number": "TZONE950AC52ZAA",
    "ecofactor_enrolled": false,
    "notified_for_sensor_fault": false,
    "access_level_type": "NONE",
    "pin_enabled": false,
    "pin_passcode": null,
    "technican_pin_enabled": false,
    "technican_passcode": null,
    "system_status": "Cooling",
    "outdoor_temperature": "29.0",
    "edge_update_delta": 48032.750065518,
    "dealer_identifier": "[RETRACTED]",
    "zones": [
      {
        "id": 82026240,
        "xxl_thermostat_id": 555555,
        "name": "Downstairs",
        "tid": 666666,
        "temperature": 24.5,
        "cooling_setpoint": 23.5,
        "heating_setpoint": 21.0,
        "zone_mode": "COOL",
        "created_at": "[RETRACTED]",
        "updated_at": "2019-06-02T15:28:51.000Z",
        "requested_zone_mode": "COOL",
        "schedule_mode_status": "MANN",
        "zone_manual_status": "NEXT",
        "preset_selected": "none",
        "preset_cool1": 24.5,
        "preset_heat1": 21.0,
        "preset_cool2": 27.0,
        "preset_heat2": 16.5,
        "preset_cool3": 22.5,
        "preset_heat3": 19.0,
        "manual_heating_setpoint": 21.0,
        "manual_cooling_setpoint": 23.5,
        "slot": 1,
        "on_off_code": "CALL",
        "scheduling_enabled": "enabled",
        "schedule_status": "OVRR",
        "current_schedule_uid": "7D8FA510",
        "current_period_uid": "7F9A9972",
        "manual_duration": 480,
        "last_zone_mode": "COOL",
        "activated_at": "2019-05-26T21:48:59.000Z",
        "activation_state": "activated",
        "occupancy_override_mode": null,
        "setpoint_expiration_time": null,
        "setpoint_degree_limit_enabled": null,
        "setpoint_degree_limit": null,
        "occupancy_override_enabled": null,
        "occupancy_override_time": null,
        "occupancy_override_start_date": null,
        "occupancy_override_start_time": null,
        "last_requested_zone_mode": "OFF",
        "setpoint_status": "Holding Until Today 9:00 PM",
        "zone_status": "",
        "current_schedule": {
          "id": 11534993,
          "uid": "7D8FA510",
          "tid": 23279,
          "xxl_thermostat_id": 555555,
          "label": "1437192240511",
          "read_only": false,
          "earliest_edge_time": 360,
          "days": [
            {
              "day_of_week": 0,
              "edges": [
                {
                  "id": 459484325,
                  "uid": "36934CC8",
                  "tid": 12615,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Wake",
                  "group": "16746513",
                  "day_of_week": 0,
                  "time_of_day": 360,
                  "cooling_setpoint": 25.0,
                  "heating_setpoint": 22.5,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:40.000Z",
                  "edge_length": 165
                },
                {
                  "id": 459484328,
                  "uid": "7F9A9972",
                  "tid": 37051,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Home",
                  "group": "16746513",
                  "day_of_week": 0,
                  "time_of_day": 525,
                  "cooling_setpoint": 25.0,
                  "heating_setpoint": 21.0,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:40.000Z",
                  "edge_length": 735
                },
                {
                  "id": 459484331,
                  "uid": "2CE8EED9",
                  "tid": 64767,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Sleep",
                  "group": "16746513",
                  "day_of_week": 0,
                  "time_of_day": 1260,
                  "cooling_setpoint": 23.0,
                  "heating_setpoint": 19.5,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:40.000Z",
                  "edge_length": 180
                }
              ],
              "group_of_week": 1
            },
            {
              "day_of_week": 1,
              "edges": [
                {
                  "id": 459484223,
                  "uid": "A96DACF5",
                  "tid": 11247,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Wake",
                  "group": "1155327",
                  "day_of_week": 1,
                  "time_of_day": 360,
                  "cooling_setpoint": 25.0,
                  "heating_setpoint": 22.5,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 120
                },
                {
                  "id": 459484217,
                  "uid": "EC6C05E5",
                  "tid": 50834,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Home",
                  "group": "1155327",
                  "day_of_week": 1,
                  "time_of_day": 480,
                  "cooling_setpoint": 25.0,
                  "heating_setpoint": 18.0,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 780
                },
                {
                  "id": 459484211,
                  "uid": "489C372",
                  "tid": 65082,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Sleep",
                  "group": "1155327",
                  "day_of_week": 1,
                  "time_of_day": 1260,
                  "cooling_setpoint": 23.0,
                  "heating_setpoint": 20.0,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 180
                }
              ],
              "group_of_week": 2
            },
            {
              "day_of_week": 2,
              "edges": [
                {
                  "id": 459484226,
                  "uid": "671E1419",
                  "tid": 1942,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Wake",
                  "group": "1155327",
                  "day_of_week": 2,
                  "time_of_day": 360,
                  "cooling_setpoint": 25.0,
                  "heating_setpoint": 22.5,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 120
                },
                {
                  "id": 459484232,
                  "uid": "AADB91C7",
                  "tid": 14359,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Home",
                  "group": "1155327",
                  "day_of_week": 2,
                  "time_of_day": 480,
                  "cooling_setpoint": 25.0,
                  "heating_setpoint": 18.0,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 780
                },
                {
                  "id": 459484235,
                  "uid": "F30E972B",
                  "tid": 17954,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Sleep",
                  "group": "1155327",
                  "day_of_week": 2,
                  "time_of_day": 1260,
                  "cooling_setpoint": 23.0,
                  "heating_setpoint": 20.0,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 180
                }
              ],
              "group_of_week": 2
            },
            {
              "day_of_week": 3,
              "edges": [
                {
                  "id": 459484241,
                  "uid": "E3DA22A3",
                  "tid": 47342,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Wake",
                  "group": "1155327",
                  "day_of_week": 3,
                  "time_of_day": 360,
                  "cooling_setpoint": 25.0,
                  "heating_setpoint": 22.5,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 120
                },
                {
                  "id": 459484250,
                  "uid": "CB97A8AB",
                  "tid": 30413,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Home",
                  "group": "1155327",
                  "day_of_week": 3,
                  "time_of_day": 480,
                  "cooling_setpoint": 25.0,
                  "heating_setpoint": 18.0,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 780
                },
                {
                  "id": 459484256,
                  "uid": "B34EC765",
                  "tid": 430,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Sleep",
                  "group": "1155327",
                  "day_of_week": 3,
                  "time_of_day": 1260,
                  "cooling_setpoint": 23.0,
                  "heating_setpoint": 20.0,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 180
                }
              ],
              "group_of_week": 2
            },
            {
              "day_of_week": 4,
              "edges": [
                {
                  "id": 459484262,
                  "uid": "F518C76",
                  "tid": 46107,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Wake",
                  "group": "1155327",
                  "day_of_week": 4,
                  "time_of_day": 360,
                  "cooling_setpoint": 25.0,
                  "heating_setpoint": 22.5,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 120
                },
                {
                  "id": 459484265,
                  "uid": "65747273",
                  "tid": 47320,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Home",
                  "group": "1155327",
                  "day_of_week": 4,
                  "time_of_day": 480,
                  "cooling_setpoint": 25.0,
                  "heating_setpoint": 18.0,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 780
                },
                {
                  "id": 459484271,
                  "uid": "925CE534",
                  "tid": 8865,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Sleep",
                  "group": "1155327",
                  "day_of_week": 4,
                  "time_of_day": 1260,
                  "cooling_setpoint": 23.0,
                  "heating_setpoint": 20.0,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 180
                }
              ],
              "group_of_week": 2
            },
            {
              "day_of_week": 5,
              "edges": [
                {
                  "id": 459484274,
                  "uid": "E49B6C2E",
                  "tid": 59838,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Wake",
                  "group": "1155327",
                  "day_of_week": 5,
                  "time_of_day": 360,
                  "cooling_setpoint": 25.0,
                  "heating_setpoint": 22.5,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 120
                },
                {
                  "id": 459484280,
                  "uid": "7D5B5AED",
                  "tid": 41917,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Home",
                  "group": "1155327",
                  "day_of_week": 5,
                  "time_of_day": 480,
                  "cooling_setpoint": 25.0,
                  "heating_setpoint": 18.0,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 780
                },
                {
                  "id": 459484283,
                  "uid": "B3FF1138",
                  "tid": 25888,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Sleep",
                  "group": "1155327",
                  "day_of_week": 5,
                  "time_of_day": 1260,
                  "cooling_setpoint": 23.0,
                  "heating_setpoint": 20.0,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 180
                }
              ],
              "group_of_week": 2
            },
            {
              "day_of_week": 6,
              "edges": [
                {
                  "id": 459484304,
                  "uid": "83843C42",
                  "tid": 33180,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Wake",
                  "group": "16746513",
                  "day_of_week": 6,
                  "time_of_day": 360,
                  "cooling_setpoint": 25.0,
                  "heating_setpoint": 22.5,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 165
                },
                {
                  "id": 459484313,
                  "uid": "6EDEF275",
                  "tid": 48942,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Home",
                  "group": "16746513",
                  "day_of_week": 6,
                  "time_of_day": 525,
                  "cooling_setpoint": 25.0,
                  "heating_setpoint": 21.0,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 735
                },
                {
                  "id": 459484319,
                  "uid": "D46C2E84",
                  "tid": 31777,
                  "xxl_weekly_schedule_id": 11534993,
                  "label": "Sleep",
                  "group": "16746513",
                  "day_of_week": 6,
                  "time_of_day": 1260,
                  "cooling_setpoint": 23.0,
                  "heating_setpoint": 19.5,
                  "created_at": "2019-06-02T02:16:37.000Z",
                  "updated_at": "2019-06-02T02:16:39.000Z",
                  "edge_length": 180
                }
              ],
              "group_of_week": 1
            }
          ]
        },
        "permanent_hold": false,
        "hold_time": 1559527200000.0,
        "time_zone_offset": -300,
        "presets": [
          "home",
          "away",
          "sleep"
        ]
      }
    ],
    "stale": false,
    "last_update_time": "Sun, Jun 02 - 10:37AM",
    "thermostat_type": "xxl",
    "air_cleaner_mode": "auto",
    "current_timestamp": 1559489820000.0,
    "alert_settings": {
      "temperature": {
        "temperature_high_limit": 38.0,
        "temperature_low_limit": 7.0,
        "enabled": null
      }
    },
    "type": "XxlThermostat",
    "supports_runtime_history": false,
    "hide_monthly_runtime_history": true,
    "show_demand_response": false,
    "demand_response_state": null,
    "max_schedule_periods": 6
  },
  {
    "id": 777777,
    "pin": "[RETRACTED]",
    "is_setup": true,
    "expires_at": "[RETRACTED]",
    "account_id": 000000,
    "house_id": 111111,
    "created_at": "[RETRACTED]",
    "updated_at": "2019-06-02T15:33:51.000Z",
    "auid": "[RETRACTED]",
    "operating_mode": "OFF",
    "system_code": "NOCL",
    "fan_mode": "auto",
    "current_time": "Sun, Jun 02 - 10:36AM",
    "installation_locked": false,
    "have_odt": true,
    "raw_outdoor_temperature": 29.0,
    "have_rh": true,
    "raw_relative_humidity": 32768.0,
    "outdoor_state": "OFF",
    "heat_active": false,
    "temperature_deadband": 2.5,
    "zoning_enabled": false,
    "notified_for_temperature": null,
    "temperature_blackout": null,
    "temperature_high_limit": 38.0,
    "temperature_low_limit": 7.0,
    "system_name": "Upstairs",
    "instance_number": 2,
    "blower_active": false,
    "emergency_heat_supported": false,
    "emergency_heat_active": false,
    "name": "Upstairs",
    "current_relative_humidity": 0.5436,
    "humidify_allowed": false,
    "dehumidify_allowed": true,
    "humidify_setpoint": 0.35,
    "dehumidify_setpoint": 0.45,
    "frost_index": 5,
    "dealer_phone_number": "[RETRACTED]",
    "manufacturer_code": "TRAN",
    "dev_build_number": "1450083251",
    "firmware_build_name": null,
    "onboard_device_id": null,
    "onboard_device_type": null,
    "enrollment_failure": null,
    "scale": "c",
    "system_guid": "[RETRACTED]",
    "enrolled_at": "[RETRACTED]",
    "smart_optimizer_running": false,
    "demand_response_start": "",
    "demand_response_end": "",
    "demand_response_status": null,
    "last_operating_state": "Cooling",
    "occupied_tid": null,
    "unoccupied_tid": null,
    "fan_speed": 0.75,
    "min_fan_speed": 0.35,
    "max_fan_speed": 1.0,
    "fan_circulation_time": 30,
    "compressor_speed": 0.0,
    "requested_compressor_speed": 0.0,
    "fan_type": "VSPD",
    "has_variable_speed_compressor": true,
    "has_heatpump": false,
    "quiet_mode_enabled": false,
    "last_listened_to_at": null,
    "model_number": "TZONE950AC52ZAB",
    "ecofactor_enrolled": false,
    "notified_for_sensor_fault": false,
    "access_level_type": "NONE",
    "pin_enabled": false,
    "pin_passcode": null,
    "technican_pin_enabled": false,
    "technican_passcode": null,
    "system_status": "System Off",
    "outdoor_temperature": "29.0",
    "edge_update_delta": 47846.767828272,
    "dealer_identifier": "[RETRACTED]",
    "zones": [
      {
        "id": 88888888,
        "xxl_thermostat_id": 777777,
        "name": "Upstairs",
        "tid": 12121,
        "temperature": 26.0,
        "cooling_setpoint": 26.0,
        "heating_setpoint": 21.0,
        "zone_mode": "OFF",
        "created_at": "[RETRACTED]",
        "updated_at": "2019-06-02T13:45:03.000Z",
        "requested_zone_mode": "OFF",
        "schedule_mode_status": "SCHW",
        "zone_manual_status": "SCHD",
        "preset_selected": "none",
        "preset_cool1": 25.5,
        "preset_heat1": 21.0,
        "preset_cool2": 29.5,
        "preset_heat2": 16.5,
        "preset_cool3": 25.5,
        "preset_heat3": 16.5,
        "manual_heating_setpoint": 18.0,
        "manual_cooling_setpoint": 24.0,
        "slot": 1,
        "on_off_code": "NOCL",
        "scheduling_enabled": "enabled",
        "schedule_status": "RUN",
        "current_schedule_uid": "EF72191E",
        "current_period_uid": "17E4E6EC",
        "manual_duration": 0,
        "last_zone_mode": "COOL",
        "activated_at": "2019-05-30T13:33:42.000Z",
        "activation_state": "activated",
        "occupancy_override_mode": null,
        "setpoint_expiration_time": null,
        "setpoint_degree_limit_enabled": null,
        "setpoint_degree_limit": null,
        "occupancy_override_enabled": null,
        "occupancy_override_time": null,
        "occupancy_override_start_date": null,
        "occupancy_override_start_time": null,
        "last_requested_zone_mode": "OFF",
        "setpoint_status": "Following Schedule - Home",
        "zone_status": "",
        "current_schedule": {
          "id": 11534998,
          "uid": "EF72191E",
          "tid": 30838,
          "xxl_thermostat_id": 777777,
          "label": "1483563300173",
          "read_only": false,
          "earliest_edge_time": 360,
          "days": [

          ]
        },
        "permanent_hold": false,
        "hold_time": 1559490300000.0,
        "time_zone_offset": -300,
        "presets": [
          "home",
          "away",
          "sleep"
        ]
      }
    ],
    "stale": false,
    "last_update_time": "Sun, Jun 02 - 10:36AM",
    "thermostat_type": "xxl",
    "air_cleaner_mode": "auto",
    "current_timestamp": 1559489818000.0,
    "alert_settings": {
      "temperature": {
        "temperature_high_limit": 38.0,
        "temperature_low_limit": 7.0,
        "enabled": null
      }
    },
    "type": "XxlThermostat",
    "supports_runtime_history": false,
    "hide_monthly_runtime_history": true,
    "show_demand_response": false,
    "demand_response_state": null,
    "max_schedule_periods": 6
  }
]

That’s right…

That should be pretty easy to do. I’m booked in the evenings until Wednesday, so don’t expect a fix until at least then.

I pushed a new changeset. It should add support for Celsius, although I appear to be encountering a Home Assistant core bug where it doesn’t like to change on the fly or even through restarts, but I did verify the values being read back from Nexia are in Celsius, and that is what Home Assistant is getting… not sure what’s up with that.

I also changed how the system status is calculated.

I also added a new parameter called scan_interval, which will change the update rate / rate limiting:

nexia:
  username: !secret nexia_username
  password: !secret nexia_password
  id: !secret home_id
  scan_interval: 30

Let me know how it looks after this update.

Thanks, I’ll check it out this weekend when I’m back home.

Statuses update much faster than before. I just noticed the blower and outdoor temp binary sensors and they’re responsive as well.

I haven’t tested the scan interval or emergency heat, but all the rest is looking great. Thanks!

image

I can’t seem to get this to work. I have downloaded the six files in your gethub to a folder called nexia in my custom_components and added the nexia information in this post to my configuration.yaml file and when I attempt to run Configuration validation it never finishes and when I reboot it fails.

I am really new at this and any help would be appricated.

Thank you

If you have access to your homeassistant.log, you can try to search for “Traceback” and see what errors are shown.

You should see something like this:

2019-06-06 14:23:34 ERROR (MainThread) [homeassistant.helpers.entity] Update for vacuum.neato fails
Traceback (most recent call last):
  File "/usr/src/app/homeassistant/helpers/entity.py", line 220, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/app/homeassistant/helpers/entity.py", line 377, in async_device_update
    await self.hass.async_add_executor_job(self.update)
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/app/homeassistant/components/neato/vacuum.py", line 118, in update
    self.neato.update_robots()
  File "/usr/src/app/homeassistant/util/__init__.py", line 224, in wrapper
    result = method(*args, **kwargs)
  File "/usr/src/app/homeassistant/components/neato/__init__.py", line 220, in update_robots
    self._hass.data[NEATO_MAP_DATA] = self.my_neato.maps
  File "/usr/local/lib/python3.7/site-packages/pybotvac/account.py", line 75, in maps
    self.refresh_maps()
  File "/usr/local/lib/python3.7/site-packages/pybotvac/account.py", line 89, in refresh_maps
    resp2.raise_for_status()
  File "/usr/local/lib/python3.7/site-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)

Tracebacks or Exceptions are pretty common. You’d probably want to look for one talking about your configuration or something about nexia.

The username and password parameters should have “quotes” around them. The id is just a number without quotes.

Thanks for checking this out!

Feel free to post your configuration, but please replace the username with some random characters like:

nexia:
    username: "ryan*@*.com"
    password: "p****ord"
    id: 0123**890

Here’s exactly how mine is integrated in, for example:

nexia:
  username: !secret nexia_username
  password: !secret nexia_password
  id: !secret home_id
  scan_interval: 30

  sensor:
    - platform: nexia

  binary_sensor:
    - platform: nexia

  climate:
    - platform: nexia

Yea, most stuff seems responsive. The requested and current compressor speed doesn’t seem to change much, but that’s just how the thermostat is reporting it. I see the same thing in the native Nexia app on iOS.

How did you download them? I can’t find a link for that anywhere… I’ve been copying “raw” and pasting in local files. If you are copying and pasting, using any format other than raw will not work and will cause the symptoms you describe.

how do you copy raw and paste the files?

On GitHub, when looking at the code of a file, there are three buttons at the upper right hand corner of the code pane. Click raw, Ctrl+a, Ctrl+c.

Edit: While viewing a raw file, you can “save as” and copy that to hassio via a Samba share. If the code you’re wanting is published with a “release” (not this component), there are links to download all files on the release’s page.

This is what I added to my configuration.yaml file.

nexia:
  username: "u******e"
  password: "p*******d"
  id: 3****8
  scan_interval: 30
climate:
  - platform: nexia
binary_sensor:
  - platform: nexia
sensor:
  - platform: nexia

Thank you @gohassgo I was downloading the files incorrectly and as soon as I downloaded them as raw with a copy and paste I was all set. It is all working like a charm.

1 Like

OK, I updated to the latest and I’m seeing the following:

  • I can not set temperature in 0.5 degree increments in the UI
  • Changes I make via the UI card still do not seem to actually get applied. For example: Click the … menu icon in the card, click the down arrow to drop the max temperature, the text goes red for a bit and then back to black. However, when I check the thermostat, app, or the Nexia website, the setting hasn’t changed.
  • I still don’t see my second unit, not sure if that was part of the update.

EDIT: Never mind, I see the outdoor sensor - it just wasn’t prefix with the unit name as I expected for some reason. (-Also, do you have plans to add support for the outside temperature sensor?-)

Thanks,

//Tomi B.

I’ll try to test it more tonight. I spent some time this weekend adding unit testing and found a few small things, but nothing that would prevent setting temperature or changes from propagating to the thermostat.

I should be able to nuke the database in my development environment to get Celsius showing properly. I do need to do something about the presets as well. I’m not sure why they don’t show up in the JSON list, but since Nexia doesn’t support this, they won’t help.

I also need to set a way for the NexiaThermostate.get*() methods to not auto-update as it does seem to cause some occasional hangs within Home Assistant:

Updating state for sensor.garage_zone_setpoint_status (<class 'custom_components.nexia.sensor.NexiaZoneSensor'>) took 0.406 seconds. Please report platform to the developers at https://goo.gl/Nvioub

Hey @docBliny,

I can’t seem to replicate your issue with not being able to change temperature in 0.5 degree increments in the UI, nor the issue with changes in Home Assistant not applying.

Can you triple check that all of custom_component/nexia files are up to date?

Thanks,
Ryan

I coped the files over again from Github and restarted, and I’m getting the same results.

However, I think I may have narrowed it down. I’m usually running the system in “COOL” instead of “Auto”. When I switch to Auto the temperature changes, but when I’m in Cool it doesn’t change. Looking at the video, the temp change you made was also in Auto.

Could this be the real bug?

//Tomi B.

P.S. Based on your Github profile, it looks like we live in the same area if you ever want to do local debugging :smiley: