Open gkwok1 opened 7 months ago
This is also true for other devices like the smart heaters H7135 and H7132. With such a wide range it's nearly impossible to use the slider on a mobile device. In a previous version of G2M these devices had a gearMode Presets but was removed and replaced with the slider. Not sure if it would make more sense to bring back the presets for the smart heaters and humidifiers vs reducing the range of the slider...
Here is the log that I am able to pull from the docker image. Hopefully this will help with the troubleshooting.
[2024-04-11T11:07:12 TRACE govee::lan_api] Send disco packet to 239.255.255.250
[2024-04-11T11:07:16 INFO govee::commands::serve] Devices returned from Govee's APIs
[2024-04-11T11:07:16 INFO govee::commands::serve] Smart Dehumidifier Max (XX:XX:XX:XX:XX:XX:XX:XX H7151)
[2024-04-11T11:07:16 INFO govee::commands::serve] Platform API: devices.types.dehumidifier. supports_rgb=false supports_brightness=false
[2024-04-11T11:07:16 INFO govee::commands::serve] color_temp=None segment_rgb=None
[2024-04-11T11:07:16 TRACE govee::commands::serve] HttpDeviceInfo {
sku: "H7151",
device: "XX:XX:XX:XX:XX:XX:XX:XX",
device_name: "Smart Dehumidifier Max",
device_type: Dehumidifier,
capabilities: [
DeviceCapability {
kind: OnOff,
instance: "powerSwitch",
parameters: Some(
Enum {
options: [
EnumOption {
name: "on",
value: Number(1),
extras: {},
},
EnumOption {
name: "off",
value: Number(0),
extras: {},
},
],
},
),
alarm_type: None,
event_state: None,
},
DeviceCapability {
kind: Range,
instance: "humidity",
parameters: Some(
Integer {
unit: Some(
"unit.percent",
),
range: IntegerRange {
min: 30,
max: 80,
precision: 1,
},
},
),
alarm_type: None,
event_state: None,
},
DeviceCapability {
kind: WorkMode,
instance: "workMode",
parameters: Some(
Struct {
fields: [
StructField {
field_name: "workMode",
field_type: Enum {
options: [
EnumOption {
name: "gearMode",
value: Number(1),
extras: {},
},
EnumOption {
name: "Auto",
value: Number(3),
extras: {},
},
EnumOption {
name: "Dryer",
value: Number(8),
extras: {},
},
],
},
default_value: None,
required: true,
},
StructField {
field_name: "modeValue",
field_type: Enum {
options: [
EnumOption {
name: "gearMode",
value: Null,
extras: {
"options": Array [
Object {
"name": String("Low"),
"value": Number(1),
},
Object {
"name": String("Medium"),
"value": Number(2),
},
Object {
"name": String("High"),
"value": Number(3),
},
],
},
},
EnumOption {
name: "Auto",
value: Null,
extras: {
"range": Object {
"max": Number(80),
"min": Number(80),
},
},
},
EnumOption {
name: "Dryer",
value: Null,
extras: {
"defaultValue": Number(0),
},
},
],
},
default_value: None,
required: true,
},
],
},
),
alarm_type: None,
event_state: None,
},
DeviceCapability {
kind: Event,
instance: "waterFullEvent",
parameters: None,
alarm_type: Some(
58,
),
event_state: Some(
Object {
"options": Array [
Object {
"message": String("Water bucket is full or has been pulled out"),
"name": String("waterFull"),
"value": Number(1),
},
],
},
),
},
],
}
[2024-04-11T11:07:16 INFO govee::commands::serve] Undoc: room=None supports_iot=true ble_only=false
[2024-04-11T11:07:16 TRACE govee::commands::serve] UndocDeviceInfo {
room_name: None,
entry: DeviceEntry {
attributes_id: 0,
device_id: Some(
19665277,
),
device: "XX:XX:XX:XX:XX:XX:XX:XX",
device_ext: DeviceEntryExt {
device_settings: DeviceSettings {
wifi_name: Some(
"XXXXX",
),
address: Some(
"XX:XX:XX:XX:XX:XX",
),
ble_name: Some(
"ihoment_H7151_255F",
),
topic: Some(
REDACTED,
),
wifi_mac: Some(
"XX:XX:XX:XX:XX:XX",
),
pact_type: Some(
1,
),
pact_code: Some(
1,
),
dsp_version_soft: None,
wifi_soft_version: Some(
"1.00.24",
),
wifi_hard_version: Some(
"1.02.00",
),
ic: Some(
0,
),
ic_sub_1: None,
ic_sub_2: None,
secret_code: Some(
REDACTED,
),
boil_water_completed_noti_on_off: true,
boil_water_exception_noti_on_off: false,
completion_noti_on_off: true,
auto_shut_down_on_off: true,
water_shortage_on_off: false,
air_quality_on_off: false,
mcu_soft_version: Some(
"1.00.10",
),
mcu_hard_version: Some(
"1.00.03",
),
sku: Some(
"H7151",
),
device: Some(
"XX:XX:XX:XX:XX:XX:XX:XX",
),
device_name: Some(
"Smart Dehumidifier Max",
),
version_hard: Some(
"1.02.00",
),
version_soft: Some(
"1.00.24",
),
play_state: Some(
false,
),
tem_min: None,
tem_max: None,
tem_warning: None,
fah_open: None,
tem_cali: None,
hum_min: None,
hum_max: None,
hum_warning: None,
hum_cali: None,
net_waring: None,
upload_rate: None,
battery: None,
time: None,
wifi_level: None,
pm25_min: None,
pm25_max: None,
pm25_warning: None,
sub_devices: None,
bd_type: None,
filter_expire_on_off: false,
shapes: None,
},
ext_resources: ExtResources {
sku_url: Some(
"https://d1f2504ijhdyjw.cloudfront.net/sku-img/e56fed8032f2a7c161baad696732350e-add_list_type_device_7151.png",
),
head_on_img_new: Some(
"",
),
head_on_img: Some(
"",
),
head_off_img: Some(
"",
),
head_off_img_new: Some(
"",
),
ext: Some(
"",
),
ic: Some(
0,
),
},
last_device_data: LastDeviceData {
online: Some(
false,
),
bind: None,
tem: None,
hum: None,
last_time: None,
avg_day_tem: None,
avg_day_hum: None,
},
},
device_name: "Smart Dehumidifier Max",
goods_type: 147,
group_id: 0,
pact_code: Some(
1,
),
pact_type: Some(
1,
),
share: Some(
0,
),
sku: "H7151",
spec: "",
support_scene: false,
version_hard: "1.02.00",
version_soft: "1.00.24",
},
}
[2024-04-11T11:07:16 INFO govee::commands::serve]
[2024-04-11T11:07:16 INFO govee::service::http] http server addr is 0.0.0.0:8056
[2024-04-11T11:07:20 TRACE govee::lan_api] Send disco packet to 239.255.255.250
[2024-04-11T11:07:21 TRACE govee::cache] cache miss for community-login
[2024-04-11T11:07:21 TRACE govee::cache] cache miss for one-click-shortcuts
[2024-04-11T11:07:21 TRACE govee::cache] cache miss for scenes-H7151
[2024-04-11T11:07:21 TRACE govee::service::hass] register_with_hass: register entities
[2024-04-11T11:07:21 TRACE govee::service::hass] homeassistant/sensor/global-version/config -> {"availability_topic":"gv2mqtt/availability","name":"Version","origin":{"name":"gv2mqtt","sw_version":"2024.02.05-4c4fa0db","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Govee to MQTT","manufacturer":"Wez Furlong","model":"govee2mqtt","sw_version":"2024.02.05-4c4fa0db","identifiers":["gv2mqtt"]},"unique_id":"global-version","entity_category":"diagnostic","state_topic":"gv2mqtt/sensor/global-version/state"}
[2024-04-11T11:07:21 TRACE govee::service::hass] homeassistant/button/global-purge_caches/config -> {"availability_topic":"gv2mqtt/availability","name":"Purge Caches","origin":{"name":"gv2mqtt","sw_version":"2024.02.05-4c4fa0db","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Govee to MQTT","manufacturer":"Wez Furlong","model":"govee2mqtt","sw_version":"2024.02.05-4c4fa0db","identifiers":["gv2mqtt"]},"unique_id":"global-purge_caches","command_topic":"gv2mqtt/purge-caches"}
[2024-04-11T11:07:21 TRACE govee::service::hass] homeassistant/sensor/sensor-XXXXXXXXXXXXXXXX-gv2mqtt-status/config -> {"availability_topic":"gv2mqtt/availability","name":"Status","origin":{"name":"gv2mqtt","sw_version":"2024.02.05-4c4fa0db","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Smart Dehumidifier Max","manufacturer":"Govee","model":"H7151","via_device":"gv2mqtt","identifiers":["gv2mqtt-XXXXXXXXXXXXXXXX"]},"unique_id":"sensor-XXXXXXXXXXXXXXXX-gv2mqtt-status","entity_category":"diagnostic","state_topic":"gv2mqtt/sensor/sensor-XXXXXXXXXXXXXXXX-gv2mqtt-status/state","json_attributes_topic":"gv2mqtt/sensor/sensor-XXXXXXXXXXXXXXXX-gv2mqtt-status/attributes"}
[2024-04-11T11:07:21 TRACE govee::service::hass] homeassistant/button/gv2mqtt-XXXXXXXXXXXXXXXX-request-platform-data/config -> {"availability_topic":"gv2mqtt/availability","name":"Request Platform API State","origin":{"name":"gv2mqtt","sw_version":"2024.02.05-4c4fa0db","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Smart Dehumidifier Max","manufacturer":"Govee","model":"H7151","via_device":"gv2mqtt","identifiers":["gv2mqtt-XXXXXXXXXXXXXXXX"]},"unique_id":"gv2mqtt-XXXXXXXXXXXXXXXX-request-platform-data","entity_category":"diagnostic","command_topic":"gv2mqtt/XXXXXXXXXXXXXXXX/request-platform-data"}
[2024-04-11T11:07:21 TRACE govee::service::hass] homeassistant/humidifier/gv2mqtt-XXXXXXXXXXXXXXXX-humidifier/config -> {"availability_topic":"gv2mqtt/availability","name":null,"device_class":"dehumidifier","origin":{"name":"gv2mqtt","sw_version":"2024.02.05-4c4fa0db","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Smart Dehumidifier Max","manufacturer":"Govee","model":"H7151","via_device":"gv2mqtt","identifiers":["gv2mqtt-XXXXXXXXXXXXXXXX"]},"unique_id":"gv2mqtt-XXXXXXXXXXXXXXXX-humidifier","command_topic":"gv2mqtt/switch/XXXXXXXXXXXXXXXX/command/powerSwitch","target_humidity_command_topic":"gv2mqtt/humidifier/XXXXXXXXXXXXXXXX/set-target","target_humidity_state_topic":"gv2mqtt/humidifier/XXXXXXXXXXXXXXXX/notify-target","mode_command_topic":"gv2mqtt/humidifier/XXXXXXXXXXXXXXXX/set-mode","mode_state_topic":"gv2mqtt/humidifier/XXXXXXXXXXXXXXXX/notify-mode","min_humidity":30,"max_humidity":80,"optimistic":true,"modes":["Auto","Dryer","gearMode"],"state_topic":"gv2mqtt/humidifier/XXXXXXXXXXXXXXXX/state"}
[2024-04-11T11:07:21 TRACE govee::service::hass] homeassistant/switch/gv2mqtt-XXXXXXXXXXXXXXXX-powerSwitch/config -> {"availability_topic":"gv2mqtt/availability","name":"Power Switch","origin":{"name":"gv2mqtt","sw_version":"2024.02.05-4c4fa0db","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Smart Dehumidifier Max","manufacturer":"Govee","model":"H7151","via_device":"gv2mqtt","identifiers":["gv2mqtt-XXXXXXXXXXXXXXXX"]},"unique_id":"gv2mqtt-XXXXXXXXXXXXXXXX-powerSwitch","command_topic":"gv2mqtt/switch/XXXXXXXXXXXXXXXX/command/powerSwitch","state_topic":"gv2mqtt/switch/XXXXXXXXXXXXXXXX/powerSwitch/state"}
[2024-04-11T11:07:21 TRACE govee::service::hass] homeassistant/number/gv2mqtt-XXXXXXXXXXXXXXXX-Auto-number/config -> {"availability_topic":"gv2mqtt/availability","name":"Auto","origin":{"name":"gv2mqtt","sw_version":"2024.02.05-4c4fa0db","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Smart Dehumidifier Max","manufacturer":"Govee","model":"H7151","via_device":"gv2mqtt","identifiers":["gv2mqtt-XXXXXXXXXXXXXXXX"]},"unique_id":"gv2mqtt-XXXXXXXXXXXXXXXX-Auto-number","command_topic":"gv2mqtt/number/XXXXXXXXXXXXXXXX/command/Auto/3","state_topic":"gv2mqtt/number/XXXXXXXXXXXXXXXX/state/auto","min":80.0,"max":80.0,"step":1.0}
[2024-04-11T11:07:21 TRACE govee::service::hass] homeassistant/button/gv2mqtt-XXXXXXXXXXXXXXXX-preset-Dryer-8-0/config -> {"availability_topic":"gv2mqtt/availability","name":"Activate Mode: Dryer","origin":{"name":"gv2mqtt","sw_version":"2024.02.05-4c4fa0db","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Smart Dehumidifier Max","manufacturer":"Govee","model":"H7151","via_device":"gv2mqtt","identifiers":["gv2mqtt-XXXXXXXXXXXXXXXX"]},"unique_id":"gv2mqtt-XXXXXXXXXXXXXXXX-preset-Dryer-8-0","command_topic":"gv2mqtt/number/XXXXXXXXXXXXXXXX/command/Dryer/8","payload_press":"0"}
[2024-04-11T11:07:21 TRACE govee::service::hass] homeassistant/number/gv2mqtt-XXXXXXXXXXXXXXXX-gearMode-number/config -> {"availability_topic":"gv2mqtt/availability","name":"gearMode","origin":{"name":"gv2mqtt","sw_version":"2024.02.05-4c4fa0db","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Smart Dehumidifier Max","manufacturer":"Govee","model":"H7151","via_device":"gv2mqtt","identifiers":["gv2mqtt-XXXXXXXXXXXXXXXX"]},"unique_id":"gv2mqtt-XXXXXXXXXXXXXXXX-gearMode-number","command_topic":"gv2mqtt/number/XXXXXXXXXXXXXXXX/command/gearMode/1","state_topic":"gv2mqtt/number/XXXXXXXXXXXXXXXX/state/gearmode","min":0.0,"max":255.0,"step":1.0}
[2024-04-11T11:07:21 TRACE govee::service::hass] homeassistant/select/gv2mqtt-XXXXXXXXXXXXXXXX-workMode/config -> {"availability_topic":"gv2mqtt/availability","name":"Mode","origin":{"name":"gv2mqtt","sw_version":"2024.02.05-4c4fa0db","url":"https://github.com/wez/govee2mqtt"},"device":{"name":"Smart Dehumidifier Max","manufacturer":"Govee","model":"H7151","via_device":"gv2mqtt","identifiers":["gv2mqtt-XXXXXXXXXXXXXXXX"]},"unique_id":"gv2mqtt-XXXXXXXXXXXXXXXX-workMode","command_topic":"gv2mqtt/XXXXXXXXXXXXXXXX/set-work-mode","options":["Auto","Dryer","gearMode"],"state_topic":"gv2mqtt/XXXXXXXXXXXXXXXX/notify-work-mode"}
[2024-04-11T11:07:21 INFO govee::service::hass] Wait 500ms for hass to settle on 10 entity configs
[2024-04-11T11:07:22 TRACE govee::service::hass] register_with_hass: mark as online
[2024-04-11T11:07:22 TRACE govee::service::hass] gv2mqtt/availability -> online
[2024-04-11T11:07:22 TRACE govee::service::hass] register_with_hass: reporting state
[2024-04-11T11:07:22 TRACE govee::service::hass] gv2mqtt/sensor/global-version/state -> 2024.02.05-4c4fa0db
[2024-04-11T11:07:22 TRACE govee::service::hass] gv2mqtt/sensor/sensor-XXXXXXXXXXXXXXXX-gv2mqtt-status/state -> Unknown
[2024-04-11T11:07:22 TRACE govee::service::hass] gv2mqtt/sensor/sensor-XXXXXXXXXXXXXXXX-gv2mqtt-status/attributes -> {"http":null,"iot":null,"lan":null,"overall":null,"platform_metadata":{"capabilities":[{"alarmType":null,"eventState":null,"instance":"powerSwitch","parameters":{"dataType":"ENUM","options":[{"name":"on","value":1},{"name":"off","value":0}]},"type":"devices.capabilities.on_off"},{"alarmType":null,"eventState":null,"instance":"humidity","parameters":{"dataType":"INTEGER","range":{"max":80,"min":30,"precision":1},"unit":"unit.percent"},"type":"devices.capabilities.range"},{"alarmType":null,"eventState":null,"instance":"workMode","parameters":{"dataType":"STRUCT","fields":[{"dataType":"ENUM","defaultValue":null,"fieldName":"workMode","options":[{"name":"gearMode","value":1},{"name":"Auto","value":3},{"name":"Dryer","value":8}],"required":true},{"dataType":"ENUM","defaultValue":null,"fieldName":"modeValue","options":[{"name":"gearMode","options":[{"name":"Low","value":1},{"name":"Medium","value":2},{"name":"High","value":3}],"value":null},{"name":"Auto","range":{"max":80,"min":80},"value":null},{"defaultValue":0,"name":"Dryer","value":null}],"required":true}]},"type":"devices.capabilities.work_mode"},{"alarmType":58,"eventState":{"options":[{"message":"Water bucket is full or has been pulled out","name":"waterFull","value":1}]},"instance":"waterFullEvent","parameters":null,"type":"devices.capabilities.event"}],"device":"XX:XX:XX:XX:XX:XX:XX:XX","deviceName":"Smart Dehumidifier Max","sku":"H7151","type":"devices.types.dehumidifier"},"platform_state":null}
[2024-04-11T11:07:22 TRACE govee::service::hass] gv2mqtt/humidifier/XXXXXXXXXXXXXXXX/state -> OFF
[2024-04-11T11:07:22 TRACE govee::service::hass] gv2mqtt/humidifier/XXXXXXXXXXXXXXXX/notify-target -> 30
[2024-04-11T11:07:22 DEBUG govee::hass_mqtt::number] Don't know how to report state for XX:XX:XX:XX:XX:XX:XX:XX workMode Auto value
[2024-04-11T11:07:22 DEBUG govee::hass_mqtt::number] Don't know how to report state for XX:XX:XX:XX:XX:XX:XX:XX workMode gearMode value
[2024-04-11T11:07:22 TRACE govee::service::hass] register_with_hass: done
[2024-04-11T11:07:22 INFO govee::service::hass] MQTT connected with status=CONNACK code 0: Connection Accepted.
Govee Device SKU
H7151
Govee2MQTT Version
2024.01.24-ea3cd430
Describe the issue
The smart dehumidifier gearmode range from 0 - 255 when it should be 1 - 3 only for Low - Medium - High respectively.
Below is the devices response from the API showing that it supports humidity.
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=core-mosquitto GOVEE_TEMPERATURE_SCALE=F GOVEE_EMAIL=REDACTED GOVEE_PASSWORD=REDACTED GOVEE_MQTT_PASSWORD=REDACTED GOVEE_MQTT_USER=addons GOVEE_MQTT_PORT=1883 ++ cd /app ++ exec /app/govee serve [2024-02-27T21:29:26 INFO govee::commands::serve] Starting service. version 2024.01.24-ea3cd430 [2024-02-27T21:29:26 INFO govee::commands::serve] Querying platform API for device list [2024-02-27T21:29:26 INFO govee::commands::serve] Querying undocumented API for device + room list [2024-02-27T21:29:27 INFO govee::service::iot] Connected to IoT: CONNACK code 0: Connection Accepted. [2024-02-27T21:29:27 INFO govee::commands::serve] Starting LAN discovery [2024-02-27T21:29:27 INFO govee::commands::serve] Waiting 10 seconds for LAN API discovery [2024-02-27T21:29:27 INFO govee::service::iot] IoT (re)connected with status CONNACK code 0: Connection Accepted.
Additional Logs
[2024-02-27T20:54:27 ERROR govee::service::hass] While dispatching Message { topic: "gv2mqtt/number/XXXXXXXXXXXX/command/gearMode/1", payload: "255", qos: AtMostOnce, retain: false, mid: 0 }: request https://openapi.api.govee.com/router/api/v1/device/control status 200: OK: parsing https://openapi.api.govee.com/router/api/v1/device/control response: Failed with status 400 Bad Request Bad Request: Request to https://openapi.api.govee.com/router/api/v1/device/control failed with code 400 Bad Request Parameter value out of range. Full response: {"requestId":"uuid","msg":"Parameter value out of range","code":400,"capability":{"type":"devices.capabilities.work_mode","instance":"workMode","state":{"status":"failure","errorCode":400,"errorMsg":"Parameter value out of range"},"value":{"modeValue":255,"workMode":1}}}
Home Assistant Logs
No response
Anything else?
No response