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

Climate control cooling / heating identification issue #89

Open
robvanoostenrijk opened this issue Dec 28, 2024 · 4 comments
Open

Climate control cooling / heating identification issue #89

robvanoostenrijk opened this issue Dec 28, 2024 · 4 comments
Assignees

Comments

@robvanoostenrijk
Copy link

I have a Zigbee Climate control which only exposes current_heating_setpoint only:

Tuya BAC-003

The device can either heat or cool based on its mode.

In matterbridge-zigbee2mqtt I can see you are determining the cool or heat capability using the following logic:

const heat = zigbeeDevice.propertyMap.get('occupied_heating_setpoint') || zigbeeDevice.propertyMap.get('current_heating_setpoint');
const cool = zigbeeDevice.propertyMap.get('occupied_cooling_setpoint') || zigbeeDevice.propertyMap.get('current_cooling_setpoint');

But the zigbee2mqtt code restricts climate control devices to the following properties:

  • occupied_heating_setpoint
  • current_heating_setpoint
  • occupied_cooling_setpoint
  • unoccupied_heating_setpoint
  • unoccupied_cooling_setpoint

Source: src/lib/exposes.ts

I'm not clear on how to resolve this logic issue, but it looks like current_cooling_setpoint cannot be relied upon.
Upon testing Home Assistant only supports current_heating_setpoint for a single mode thermostat as well.

@Luligu Luligu self-assigned this Dec 30, 2024
@Luligu
Copy link
Owner

Luligu commented Dec 30, 2024

Can you send me the link the zigbeesite of your thermo please?

@robvanoostenrijk
Copy link
Author

Not sure what you are asking, but the device links are:
https://www.zigbee2mqtt.io/devices/BAC-003.html

Available via Chinese vendors here:
https://www.aliexpress.com/item/1005002593469162.html (The item provided is either the BAC-003 or BAC-002AZLB, but they are very similar and Zigbee behaves the same).

@robvanoostenrijk
Copy link
Author

I've now switched to Matterbridge v1.7.0 with -edge.

My climate controls now do not show up through matterbridge-zigbee2mqtt, only through matterbridge-hass:

The log shows the following:

info [16:02:17.350] [Airconditioning - Den] MQTT message for device Airconditioning - Den payload: { current_heating_setpoint: 26, deadzone_temperature: 1, fan_mode: 'medium', linkquality: 51, local_temperature: 24.5, local_temperature_calibration: 0, preset: 'manual', schedule: null, state: 'OFF', system_mode: 'off', system_mode_device: 'cool' }
error [16:02:17.351] [Airconditioning - Den] getAttribute thermostat.occupiedHeatingSetpoint error: Endpoint Airconditioning-Den is in the inactive state
fatal [16:02:17.352] [Logger] Unhandled error detected: Airconditioning-Den endpoint number is not yet assigned; set number or await endpoint.construction to avoid this error at get number (file:///usr/local/l ... t/Endpoint.js:68:13) at ZigbeeDevice.updateAttributeIfChanged (file:///usr/local/lib/node_modules/matterbridge-zigbee2mqtt/dist/entity.js:431:97) at file:///usr/local/lib/node_modules/matterbridge-zigbee2mqtt/dist/entity.js:146:34 at Array.forEach () at Zigbee2MQTT. (file:///usr/local/lib/node_modules/matterbridge-zigbee2mqtt/dist/entity.js:119:37) at Zigbee2MQTT.emit (node:events:524:28) at Zigbee2MQTT.handleDeviceMessage (file:///usr/local/lib/node_modules/matterbridge-zigbee2mqtt/dist/zigbee2mqtt.js:695:18) at Zigbee2MQTT.messageHandler (file:///usr/local/lib/node_modules/matterbridge-zigbee2mqtt/dist/zigbee2mqtt.js:634:22) at MqttClient. (file:///usr/local/lib/node_modules/matterbridge-zigbee2mqtt/dist/zigbee2mqtt.js:168:22) at MqttClient.emit (node:events:524:28)
fatal [16:02:17.352] [Matterbridge] Unhandled Exception detected at: Error: Airconditioning-Den endpoint number is not yet assigned; set number or await endpoint.construction to avoid this error at get number (file:///usr/local/l ... t/Endpoint.js:68:13) at ZigbeeDevice.updateAttributeIfChanged (file:///usr/local/lib/node_modules/matterbridge-zigbee2mqtt/dist/entity.js:431:97) at file:///usr/local/lib/node_modules/matterbridge-zigbee2mqtt/dist/entity.js:146:34 at Array.forEach () at Zigbee2MQTT. (file:///usr/local/lib/node_modules/matterbridge-zigbee2mqtt/dist/entity.js:119:37) at Zigbee2MQTT.emit (node:events:524:28) at Zigbee2MQTT.handleDeviceMessage (file:///usr/local/lib/node_modules/matterbridge-zigbee2mqtt/dist/zigbee2mqtt.js:695:18) at Zigbee2MQTT.messageHandler (file:///usr/local/lib/node_modules/matterbridge-zigbee2mqtt/dist/zigbee2mqtt.js:634:22) at MqttClient. (file:///usr/local/lib/node_modules/matterbridge-zigbee2mqtt/dist/zigbee2mqtt.js:168:22) at MqttClient.emit (node:events:524:28)

The Zigbee2MQTT does not expose occupiedHeatingSetpoint in its device definition, so unsure why Matterbridge is failing on this.

@Luligu
Copy link
Owner

Luligu commented Jan 11, 2025

Can you activate all debug (matterbridge and plugin) and send me a full log please?
If is not a problem for losing the configuration at controller would be perfect to put it on the whitelist so we have only this device in the log.
From the log you sent the device publish current_heating_setpoint but we need to understand what it exposes.
I need the file bridge-devices.json that is Matterbridge/matterbridge-zigbee2mqtt to check it.

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

No branches or pull requests

2 participants