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:

  1. 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).
  2. The Nightlight Toggle switch seems to only work intermittently, and at any rate is redundant with control 1).
  3. 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).

h7131_ha_switch_mismatch

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

Most upvoted comments

Awesome - I think this closes everything I’d reported in this issue. If I notice anything new I’ll raise a new issue.