Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

S40 firmware 4.27.0054 - Exception in _processEquipments #321

Closed
gdoerr opened this issue Apr 15, 2024 · 8 comments
Closed

S40 firmware 4.27.0054 - Exception in _processEquipments #321

gdoerr opened this issue Apr 15, 2024 · 8 comments
Assignees
Labels
bug Something isn't working

Comments

@gdoerr
Copy link

gdoerr commented Apr 15, 2024

Describe the bug
With the newest version of the S40 software, it appears that the format of some of the JSON has changed from a single "value" to an array of values (example of the new JSON below). This causes an exception.

This causes the enumeration of equipment to fail and many entities to be Unavailable.

To Reproduce
Upgrade thermostat to the latest Lennox version (4.27.0054)

Expected behavior
The code should accept both legacy and new "values" JSON data formats.

Screenshots/Logs

File "/usr/local/lib/python3.12/site-packages/lennoxs30api/s30api_async.py", line 1654, in _processEquipments
eq.equipment_name = parameter["parameter"]["value"]
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
KeyError: 'value'

JSON snippet:

            {
              "id": 1,
              "feature": {
                "name": "Equipment Type Name",
                "format": "nts",
                "szValues": 1,
                "values": [
                  {
                    "id": 0,
                    "value": "Air Conditioner"
                  }
                ],
                "fid": 15,
                "unit": ""
              }
            },
            {
              "id": 2,
              "feature": {
                "name": "Unit Model Number",
                "format": "nts",
                "szValues": 1,
                "values": [
                  {
                    "id": 0,
                    "value": "SL28XCV048-230A01"
                  }
                ],
                "fid": 6,
                "unit": ""
              }
            },

Version

  • Home Assistant: 2024.4.3
  • This Integration: 2024.3.0

**Integration Configuration **

  • Cloud or Local Connection: Local
  • Inverter or Sensor Diagnostics Enabled: Both are enabled

Additional context
None

@PeteRager
Copy link
Owner

PeteRager commented Apr 16, 2024

The section it is having problems with is the equipment parameters. The excerpt supplied is from the equipment features. So we will need the entire message.

Please configure message logging, see this documentation:

https://github.com/PeteRager/lennoxs30?tab=readme-ov-file#reporting-bugs

Restart HA, let it run for 5 minutes, then post or email me the log file.

@gdoerr
Copy link
Author

gdoerr commented Apr 16, 2024

As requested
S30_msg.log

@PeteRager
Copy link
Owner

PeteRager commented Apr 16, 2024

Thanks for the file.

None of the equipment parameters for eqtype=18 (air conditioner) have any values and have a descriptor of "error". The other equipment seems fine, so it's just that one unit.

While I can and will update the software to not crash when this occurs. The equipment name and the parameters for the air conditioner are not available. The diagnostics look ok.

I would try power cycling everything. The S40 panels, indoor units, outdoor unit. And have the integration not running. To see if that corrects the problem. If it doesn't go into the panel and go into advanced mode / equipment and look at the air conditioner parameters. This display and the json data should be the same.

Here is the excerpt from your message.

                            "parameters": [
                                {
                                    "parameter": {
                                        "name": "Equipment Name",
                                        "format": "nts",
                                        "pid": 18,
                                        "enabled": true,
                                        "descriptor": "error",
                                        "unit": ""
                                    },
                                    "id": 0
                                },
                                {
                                    "parameter": {
                                        "name": "Compressor Short Cycle Delay",
                                        "format": "uint16",
                                        "pid": 40,
                                        "enabled": true,
                                        "descriptor": "error",
                                        "unit": "sec"
                                    },
                                    "id": 1
                                },
                                {
                                    "parameter": {
                                        "name": "High Normal Cooling Airflow",
                                        "format": "uint16",
                                        "pid": 44,
                                        "enabled": true,
                                        "descriptor": "error",
                                        "unit": "CFM"
                                    },
                                    "id": 2
                                },
                                {
                                    "parameter": {
                                        "name": "Low Normal Cooling Airflow",
                                        "format": "uint16",
                                        "pid": 45,
                                        "enabled": true,
                                        "descriptor": "error",
                                        "unit": "CFM"
                                    },
                                    "id": 3
                                },
                                {
                                    "parameter": {
                                        "name": "Dehum Airflow Adjustment Adder",
                                        "format": "0p5",
                                        "pid": 24,
                                        "enabled": true,
                                        "descriptor": "error",
                                        "unit": "%"
                                    },
                                    "id": 4
                                }
                            ],

@PeteRager PeteRager changed the title Exception in _processEquipments S40 firmware 4.27.0054 - Exception in _processEquipments Apr 16, 2024
@PeteRager PeteRager added the bug Something isn't working label Apr 16, 2024
@PeteRager PeteRager self-assigned this Apr 16, 2024
@PeteRager
Copy link
Owner

PeteRager commented Apr 17, 2024

The exception has been fixed in the API. When it encounters this issue, it will default the name to the equipment_type name which is this case is "Air Conditioner". The equipment parameters will get created, there values will be None.

To test with the updated API, edit the custom_components/lennoxs30/manifest.json and change this line from

  "requirements": ["lennoxs30api==0.2.14"],

to

  "requirements": ["lennoxs30api==0.2.15"],

Restart HA and it will pull the new API down automatically.

PeteRager/lennoxs30api#80

@PeteRager
Copy link
Owner

Updates on this item?

@gdoerr
Copy link
Author

gdoerr commented May 3, 2024

The exception is resolved with the API change, thank you. I have rebooted the indoor, outdoor and thermostat units but I'm still not getting good data.

I have time this weekend and will try a full power down again (have to climb into the attic so it's a bit of a pain)

@PeteRager
Copy link
Owner

Thanks for the update. You may be able to toss the breakers. Mine has a 30amp for outdoor unit and a 20 for the air handler.

@PeteRager
Copy link
Owner

Released in 2024.6.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants