govee2mqtt: H7131 Space Heater: HA switch controls seem mismatched
Govee Device SKU
H7131
Govee2MQTT Version
2024.01.11-9564506d
Describe the issue
After installing and configuring the add-on I have noted a number of anomalies in the operation of the heater’s switches in HA. In the included screenshot:
- This switch is apparently a light control, however the toggle actually turns the heater on/off (in addition to working to control the light color and brightness).
- The Nightlight Toggle switch seems to only work intermittently, and at any rate is redundant with control 1).
- The Power Switch is what I would expect to use to turn the heater on/off, and it does work but seems to conflict with control 1).
The other controls (auto, fan, and gearMode parameters) are confusing as to why they are 3 separate controls. As I understand it, the working mode for this device is a single property with 5 possible values:
"properties":{"mode":{"options":[{"name":"Low","value":"1"},{"name":"Medium","value":"2"},{"name":"High","value":"3"},{"name":"Fan","value":"4"},{"name":"Auto","value":"5"}]}}
Please let me know if you’d like me to do any testing or need additional info. Thanks!
Startup Diagnostics
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
GOVEE_API_KEY=REDACTED
GOVEE_MQTT_HOST=192.168.1.49
GOVEE_EMAIL=REDACTED
GOVEE_PASSWORD=REDACTED
GOVEE_MQTT_PASSWORD=REDACTED
GOVEE_MQTT_USER=ecowitt2mqtt
GOVEE_MQTT_PORT=1883
++ cd /app
++ exec /app/govee serve
[2024-01-12T09:55:10 INFO govee::commands::serve] Starting service. version 2024.01.11-9564506d
[2024-01-12T09:55:10 INFO govee::commands::serve] Querying platform API for device list
[2024-01-12T09:55:11 INFO govee::commands::serve] Querying undocumented API for device + room list
[2024-01-12T09:55:13 INFO govee::service::iot] Connected to IoT: CONNACK code 0: Connection Accepted.
[2024-01-12T09:55:13 INFO govee::commands::serve] Starting LAN discovery
[2024-01-12T09:55:13 INFO govee::service::iot] IoT (re)connected with status CONNACK code 0: Connection Accepted.
[2024-01-12T09:55:13 INFO govee::commands::serve] Waiting 10 seconds for LAN API discovery
[2024-01-12T09:55:23 INFO govee::commands::serve] Devices returned from Govee's APIs
[2024-01-12T09:55:23 INFO govee::commands::serve] H5074_E454 (A7:90:A4:C1:38:AA:E4:54 H5074)
[2024-01-12T09:55:23 INFO govee::commands::serve] Undoc: room=None supports_iot=false ble_only=true
[2024-01-12T09:55:23 WARN govee::commands::serve] Unknown device type. Cannot map to Home Assistant.
[2024-01-12T09:55:23 INFO govee::commands::serve]
[2024-01-12T09:55:23 INFO govee::commands::serve] Smart Space Heater (REDACTED H7131)
[2024-01-12T09:55:23 INFO govee::commands::serve] Platform API: devices.types.heater. supports_rgb=true supports_brightness=true
[2024-01-12T09:55:23 INFO govee::commands::serve] color_temp=None segment_rgb=None
[2024-01-12T09:55:23 INFO govee::commands::serve] Undoc: room=None supports_iot=true ble_only=false
[2024-01-12T09:55:23 INFO govee::commands::serve]
[2024-01-12T09:55:23 INFO govee::commands::serve] H5074_8B55 (B7:08:A4:C1:38:D5:8B:55 H5074)
[2024-01-12T09:55:23 INFO govee::commands::serve] Undoc: room=None supports_iot=false ble_only=true
[2024-01-12T09:55:23 WARN govee::commands::serve] Unknown device type. Cannot map to Home Assistant.
[2024-01-12T09:55:23 INFO govee::commands::serve]
[2024-01-12T09:55:23 INFO govee::commands::serve] H5074_24DB (AB:30:A4:C1:38:C8:24:DB H5074)
[2024-01-12T09:55:23 INFO govee::commands::serve] Undoc: room=None supports_iot=false ble_only=true
[2024-01-12T09:55:23 WARN govee::commands::serve] Unknown device type. Cannot map to Home Assistant.
[2024-01-12T09:55:23 INFO govee::commands::serve]
[2024-01-12T09:55:23 INFO govee::service::http] http server addr is 0.0.0.0:8056
[2024-01-12T09:55:28 WARN govee::cache] request https://openapi.api.govee.com/router/api/v1/device/scenes status 200: OK: parsing https://openapi.api.govee.com/router/api/v1/device/scenes response: Failed with status 400 Bad Request Bad Request: Request to https://openapi.api.govee.com/router/api/v1/device/scenes failed with code 400 Bad Request devices not support this instance. Full response: {"requestId":"uuid","msg":"devices not support this instance","code":400,"payload":{"sku":"H7131","device":"REDACTED"}}, will use prior results
[2024-01-12T09:55:28 ERROR govee::hass_mqtt::light] Unable to list scenes for Smart Space Heater (REDACTED H7131): list_scene_names: get_scene_caps: request https://openapi.api.govee.com/router/api/v1/device/scenes status 200: OK: parsing https://openapi.api.govee.com/router/api/v1/device/scenes response: Failed with status 400 Bad Request Bad Request: Request to https://openapi.api.govee.com/router/api/v1/device/scenes failed with code 400 Bad Request devices not support this instance. Full response: {"requestId":"uuid","msg":"devices not support this instance","code":400,"payload":{"sku":"H7131","device":"REDACTED"}}
[2024-01-12T09:55:28 WARN govee::hass_mqtt::enumerator] Do something about Mode nightlightScene for Smart Space Heater (REDACTED H7131) DeviceCapability { kind: Mode, instance: "nightlightScene", parameters: Some(Enum { options: [EnumOption { name: "Flame", value: Number(1), extras: {} }, EnumOption { name: "Rainbow", value: Number(2), extras: {} }, EnumOption { name: "Rhythm", value: Number(3), extras: {} }, EnumOption { name: "Easy", value: Number(4), extras: {} }, EnumOption { name: "Sleep", value: Number(5), extras: {} }] }), alarm_type: None, event_state: None }
[2024-01-12T09:55:28 WARN govee::hass_mqtt::enumerator] Do something about TemperatureSetting targetTemperature for Smart Space Heater (REDACTED H7131) DeviceCapability { kind: TemperatureSetting, instance: "targetTemperature", parameters: Some(Struct { fields: [StructField { field_name: "autoStop", field_type: Enum { options: [EnumOption { name: "Auto Stop", value: Number(1), extras: {} }, EnumOption { name: "Maintain", value: Number(0), extras: {} }] }, default_value: Some(Number(0)), required: false }, StructField { field_name: "temperature", field_type: Integer { unit: None, range: IntegerRange { min: 5, max: 30, precision: 1 } }, default_value: None, required: true }, StructField { field_name: "unit", field_type: Enum { options: [EnumOption { name: "Celsius", value: String("Celsius"), extras: {} }, EnumOption { name: "Fahrenheit", value: String("Fahrenheit"), extras: {} }] }, default_value: Some(String("Celsius")), required: true }] }), alarm_type: None, event_state: None }
[2024-01-12T09:55:28 INFO govee::service::hass] Wait 500ms for hass to settle on 10 entity configs
[2024-01-12T09:55:29 INFO govee::service::hass] MQTT connected with status=CONNACK code 0: Connection Accepted.
[2024-01-12T09:55:41 ERROR govee::hass_mqtt::light] Unable to list scenes for Smart Space Heater (REDACTED H7131): list_scene_names: get_scene_caps: request https://openapi.api.govee.com/router/api/v1/device/scenes status 200: OK: parsing https://openapi.api.govee.com/router/api/v1/device/scenes response: Failed with status 400 Bad Request Bad Request: Request to https://openapi.api.govee.com/router/api/v1/device/scenes failed with code 400 Bad Request devices not support this instance. Full response: {"requestId":"uuid","msg":"devices not support this instance","code":400,"payload":{"sku":"H7131","device":"REDACTED"}}
[2024-01-12T09:55:41 WARN govee::hass_mqtt::enumerator] Do something about Mode nightlightScene for Smart Space Heater (REDACTED H7131) DeviceCapability { kind: Mode, instance: "nightlightScene", parameters: Some(Enum { options: [EnumOption { name: "Flame", value: Number(1), extras: {} }, EnumOption { name: "Rainbow", value: Number(2), extras: {} }, EnumOption { name: "Rhythm", value: Number(3), extras: {} }, EnumOption { name: "Easy", value: Number(4), extras: {} }, EnumOption { name: "Sleep", value: Number(5), extras: {} }] }), alarm_type: None, event_state: None }
[2024-01-12T09:55:41 WARN govee::hass_mqtt::enumerator] Do something about TemperatureSetting targetTemperature for Smart Space Heater (REDACTED H7131) DeviceCapability { kind: TemperatureSetting, instance: "targetTemperature", parameters: Some(Struct { fields: [StructField { field_name: "autoStop", field_type: Enum { options: [EnumOption { name: "Auto Stop", value: Number(1), extras: {} }, EnumOption { name: "Maintain", value: Number(0), extras: {} }] }, default_value: Some(Number(0)), required: false }, StructField { field_name: "temperature", field_type: Integer { unit: None, range: IntegerRange { min: 5, max: 30, precision: 1 } }, default_value: None, required: true }, StructField { field_name: "unit", field_type: Enum { options: [EnumOption { name: "Celsius", value: String("Celsius"), extras: {} }, EnumOption { name: "Fahrenheit", value: String("Fahrenheit"), extras: {} }] }, default_value: Some(String("Celsius")), required: true }] }), alarm_type: None, event_state: None }
Additional Logs
No response
Home Assistant Logs
No response
Anything else?
No response
About this issue
- Original URL
- State: closed
- Created 6 months ago
- Reactions: 1
- Comments: 20 (10 by maintainers)
Commits related to this issue
- fix "devices not support this instance" error message This was actually harmless, but noisy. The cause was that Govee API returns this error message when trying to list the available scenes for the ... — committed to wez/govee2mqtt by wez 6 months ago
- Potentially fix temperature sensor scaling This commit introduces temperature (and humidity) units awareness to the quirks layer, and defines some quirks for a handful of devices. These quirks allow... — committed to wez/govee2mqtt by wez 6 months ago
- speculatively support changing target temperature For devices that report temperature settings, this commit will now expose a number entity in Celsius that will change the target temperature when set... — committed to wez/govee2mqtt by wez 5 months ago
- Add Temperature Scale option * *Important*: when upgrading from an earlier version, you should delete any devices that have temperature sensors or controls and then stop the addon/docker containe... — committed to wez/govee2mqtt by wez 5 months ago
- H7131: show gearMode as preset buttons rather than sliders refs: https://github.com/wez/govee2mqtt/issues/59 — committed to wez/govee2mqtt by wez 5 months ago
- fixup representation of presets that have labels in metadata refs: https://github.com/wez/govee2mqtt/issues/59 — committed to wez/govee2mqtt by wez 5 months ago
- always use step size of 1 for temperature sliders We were converting eg: 1C in 33.8F which is the correct absolute value, but nonsense when talking about deltas. refs: https://github.com/wez/govee2m... — committed to wez/govee2mqtt by wez 5 months ago
- Add Mode/Scene select box for non-light devices with modes/scenes refs: https://github.com/wez/govee2mqtt/issues/81 refs: https://github.com/wez/govee2mqtt/issues/59 refs: https://github.com/wez/gove... — committed to wez/govee2mqtt by wez 5 months ago
Awesome - I think this closes everything I’d reported in this issue. If I notice anything new I’ll raise a new issue.