Skip to content

Conversation

@lemoinem
Copy link
Contributor

@lemoinem lemoinem commented Dec 10, 2025

Here is my first tentative to exposing ecoMode for Sinope thermostats TH1123ZB(-G2)/TH1124ZB(-G2).

My thermostats are all -G2, a mix of 23s and 24s. My tests are done on a TH1123ZB-G2.

This gives me the following error:
z2m sinope No converter available for 'set' 'eco_mode' (-128)

Even comparing to other properties from the same sinope.ts, I don't see what the difference is.

I've tried adding , manuSinope as a third parameter to entity.read and entity.write calls. but it didn't change much, except that setting the ecoMode stopped working completely.

I've tried adding logger.debug(JSON.stringify(***), NS) for entity, value, msg and pretty much every other bit of data I had available, but that only ended up with undefined variable entity error message (without a line number).

Even trying to set the ecoMode using the DevTools or a mqtt.publish action stopped working (it did before).

Whatever I write I see this appear:
[10/12/2025, 08:56:13] zhc:tz: Wrote '{"ecoMode":null}' to 'manuSpecificSinope'

And follow up reads always show:
[10/12/2025, 08:56:42] zhc:tz: Read result of 'manuSpecificSinope': {"ecoMode":0}

On the thermostat, the eco indicator is always flashing after any write, even -128, until I discard it by using the physical controls on the thermostat.

Additionally (unsure if related, feel free to ignore if not), since I've added these, (all) my thermostats fail to reconfigure upon restarting Z2M, because of INSUFICIENT_SPACE with this error:
[10/12/2025, 08:57:55] z2m: Failed to configure 'thermostat', attempt 4 (Error: ZCL command 0xf4b3b1fffeba6093/1 haElectricalMeasurement.configReport([{"minimumReportInterval":10,"maximumReportInterval":65000,"reportableChange":5,"attribute":"activePower"},{"minimumReportInterval":10,"maximumReportInterval":65000,"reportableChange":50,"attribute":"rmsCurrent"},{"minimumReportInterval":10,"maximumReportInterval":65000,"reportableChange":50,"attribute":"rmsVoltage"}], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"writeUndiv":false}) failed (Status 'INSUFFICIENT_SPACE')

But in the reporting tab for the device, I only see values for hvacThermostat cluser (localTemp, plHeatingDemand, occupiedHeatingSetpoint, systemMode, unoccupiedHeatingSetpoint), which are the defaults.

The reconfigure error eventually subsides and the thermostats seem to work fine despite that afterwards. There seem to be a bit of congestion and they are slow to respond to commands or refresh their states while the errors are pilling up in the logs. But that's not unexpected.

Both the ecoMode management and reconfigure issues remained even after removing the external converter, factory reset of the thermostat, or uninstall (with permanent remove add-on data) and reinstall of the Z2M addon.

I'd appreciate any help or suggestions.

@lemoinem lemoinem changed the title feature(add): Sinope thermostats expose ecoMode feature(add): Sinope thermostats (TH1123ZB(-G2)/TH1124ZB(-G2)) expose ecoMode Dec 10, 2025
@Koenkk
Copy link
Owner

Koenkk commented Dec 10, 2025

z2m sinope No converter available for 'set' 'eco_mode' (-128)

Is this after this change? With your PR it should work correctly. If not, can you provide the debug log of that?

See this on how to enable debug logging.

@lemoinem
Copy link
Contributor Author

lemoinem commented Dec 11, 2025

Yeah, that's with the PR changes.

So, I am running z2m as a HA addon with HAOS, I'm not quite sure how to run my own fork/build of the converters.
Because of this, in order to test, I'm using an external converter ( sinope.mjs.txt ).

The ecoMode does appear in the Exposes tab. Here is the log when I change it:

[...]
[10/12/2025, 22:23:10] z2m:mqtt: Received MQTT message on 'zigbee2mqtt/<DEVICE_ID>/set' with data '{"eco_mode":17}'
[10/12/2025, 22:23:10] z2m: No converter available for 'set' 'eco_mode' (17)

Here is a fuller log from the start of Z2M: log.log
But since I have quite a few devices, there is A LOT of noise. I've tried to remove irrelevant stuff, hopefully, I didn't remove everything useful.

I don't think I can easily disable devices temporarily (without having to repair and reconfigure everything afterwards that is) or exclude devices from the logs. So if I need to hunt down for something specific, let me know. I'm just not sure including the full 6MB of logs is really relevant or helpful.

That's with

advanced:
  log_level: debug
  log_debug_to_mqtt_frontend: true

Before, my changes, I was using message { "write": { "cluster": "manuSpecificSinope", "options":{}, "payload": {"ecoMode": <VALUE> } } } on topic zigbee2mqtt/<DEVICE_ID>/1/set to set the ecoMode. As I mentioned, this doesn't work anymore for some reason... I'm hoping this is just a matter of a misconfigured converter. And that, once the converters are setup properly, that will restore the functionality 🤞

@Koenkk Koenkk merged commit e34ffb6 into Koenkk:master Dec 13, 2025
3 checks passed
@Koenkk
Copy link
Owner

Koenkk commented Dec 13, 2025

Changes look good so I will merge this, can you check with the dev branch?

Changes will be available in the dev branch in a few hours from now and in the next release which is every 1st of the month.

Koenkk pushed a commit to Kigrou/zigbee-herdsman-converters that referenced this pull request Dec 13, 2025
@lemoinem
Copy link
Contributor Author

@Koenkk : Well, well, well,when set through Z2M edge, it does work!
There must be something wrong with the way I set my external converter.

FYI, I've pushed a new commit and will open a new PR with a cleaned up UI.
Thanks for your help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants