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

Issue with ST218 stelpro heater #12246

Closed
onixx opened this issue Apr 22, 2022 · 4 comments
Closed

Issue with ST218 stelpro heater #12246

onixx opened this issue Apr 22, 2022 · 4 comments
Labels
problem Something isn't working stale Stale issues

Comments

@onixx
Copy link

onixx commented Apr 22, 2022

What happened?

The ST218 heater is supported by stelpro.js. However, there is a problem when this device announces its zigbeeModel string. It seems like there is some extra random garbage added to the zigbeeModel when pairing. It varies by device and is not practical as when pairing, sometimes an external converter is needed to support some units.

Here's some info form my database.db
the manufName has a few null chars at the end, I think this is handled already in the code to ignore those.
"manufName":"Stelpro\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"

However, the zigbeeModel is garbled. Always starts with ST218 but not all chars after are null and they are random. This is an extract from database.db for 6 of those devices
"modelId":"ST218\u0000\u0000\u0000(\u0001\u0000(\u0000\u0000\u0000\u0000\u0000\u0007\u0000�r\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"
"modelId":"ST218\u0000\u0000�r\u0001\u0000�\u0000 \u0001\u0011\u0000 \u0001\u0011\u0015\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"
"modelId":"ST218\u0000\u0000\u0000(\u0001\u0000(\u0000\u0000\u0000\u0000\u0000\u0007\u0000�r\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"
"modelId":"ST218\u0000\u0000\u0000(\u0001\u0000(\u0000�A\u0000\u0000�_\u0004\u0001\u000e\r\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"
"modelId":"ST218\u0000\u0000\u0000\u0000\u0000\u0007\u0000\u0000\u0000\u0000\u0000\u0000\u0007\u0000�r\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"
"modelId":"ST218\u0000\u0000�\u0000 \u0001\u0011\u0000 \u0001\u0011\u0015\u0000\u0001\u0011\u0015 \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"

When I go to the web interface, the problem is easy to see under the about tab:
By vendor summary:
Stelpro: 6
By model summary:
image

In the end, and I cannot explain why, only 2 of those devices needed an external converter to work; these 2
ST218\u0000\u0000\u0000(\u0001\u0000(\u0000�A\u0000\u0000�_\u0004\u0001\u000e\r\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000
ST218\u0000\u0000\u0000\u0000\u0000\u0007\u0000\u0000\u0000\u0000\u0000\u0000\u0007\u0000�r\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000

What did you expect to happen?

Is there a way to wildcard in stelpro.js to handle this device's problem with modelid ?

How to reproduce it (minimal and precise)

Pairing the Stelpro ST218 produces those random modelID

Zigbee2MQTT version

1.24.0 commit: 7a2ddf2

Adapter firmware version

20211217

Adapter

Electrolama

Debug log

No response

@onixx onixx added the problem Something isn't working label Apr 22, 2022
@onixx
Copy link
Author

onixx commented Apr 22, 2022

Issue #810 was an attempt to fix this. Looks like in my case it is not working

@onixx
Copy link
Author

onixx commented Apr 22, 2022

@Koenkk seems like this change is not in zigbee-herdsmans findByDevice

@github-actions
Copy link
Contributor

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days

@github-actions github-actions bot added the stale Stale issues label May 23, 2022
@bwrsandman
Copy link

bwrsandman commented May 20, 2023

I am also seeing this on 1.30.3. Looks like a regression. Can a dev comment on how to fix this or give a workaround?

Looks like manufName, modelId and dateCode all give false end strings (\u0000).

image

in database.db

{
  "id": 5,
  "type": "Router",
  "ieeeAddr": "0xf8f005ffff71c9d9",
  "nwkAddr": 44534,
  "manufId": 4485,
  "manufName": "Stelpro\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000",
  "powerSource": "Mains (single phase)",
  "modelId": "ST218\u0000\u0000\u0000(\u0001\u0000(\u0000�A\u0000\u0000�_\u0004\u0001\u000e\r\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000",
  "epList": [
    25
  ],
  "endpoints": {
    "25": {
      "profId": 260,
      "epId": 25,
      "devId": 769,
      "inClusterList": [
        0,
        3,
        513,
        516,
        4
      ],
      "outClusterList": [
        1026
      ],
      "clusters": {
        "genBasic": {
          "attributes": {
            "modelId": "ST218\u0000\u0000\u0000(\u0001\u0000(\u0000�A\u0000\u0000�_\u0004\u0001\u000e\r\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000",
            "manufacturerName": "Stelpro\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000",
            "powerSource": 1,
            "zclVersion": 1,
            "appVersion": 109,
            "stackVersion": 4,
            "hwVersion": 1,
            "dateCode": "20200709 00008\u0000"
          }
        }
      },
      "binds": [],
      "configuredReportings": [],
      "meta": {}
    }
  },
  "appVersion": 109,
  "stackVersion": 4,
  "hwVersion": 1,
  "dateCode": "20200709 00008\u0000",
  "zclVersion": 1,
  "interviewCompleted": true,
  "meta": {},
  "lastSeen": 1684595443383,
  "defaultSendRequestWhen": "immediate"
}

cc @Koenkk @qosmio

Edit: Workaround is to edit the entry in database.db and manually remove \u0000 and everything after.

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

No branches or pull requests

2 participants