al-one / hass-xiaomi-miot

Automatic integrate all Xiaomi devices to HomeAssistant via miot-spec, support Wi-Fi, BLE, ZigBee devices. 小米米家智能家居设备接入Hass集成
https://miot-spec.com
Apache License 2.0
4.32k stars 606 forks source link

viomi.fridge.x4冰箱 Freezing Chamber Target Temperature 不可用 #1426

Closed qq610368720 closed 1 week ago

qq610368720 commented 8 months ago

Device model / 设备型号

viomi.fridge.x4

Component version / 插件版本

0.7.13

HA core version / HA版本

2023.12.2

Integrated mode / 集成方式

Automatic (自动模式)

The problem / 问题详情

viomi.fridge.x4冰箱 Freezing Chamber Target Temperature 不可用 微信截图_20231214113815

Entity attributes / 实体属性

number.viomi_x4_c399_target_temperature
min: 2
max: 8
step: 1
mode: auto
entity_class: MiotNumberSubEntity
parent_entity_id: sensor.viomi_x4_c399_refrigerating_chamber
service_description: Refrigerating Chamber
property_description: Target Temperature
target_temperature-3-2: 4
unit_of_measurement: °C
device_class: temperature
icon: mdi:coolant-temperature
friendly_name: 冰箱 Refrigerating Chamber Target Temperature
supported_features: 0
----------------------------
number.viomi_x4_c399_target_temperature_2
min: -23
max: -15
step: 1
mode: auto
unit_of_measurement: °C
device_class: temperature
icon: mdi:coolant-temperature
friendly_name: 冰箱 Freezing Chamber Target Temperature
supported_features: 0
------------------------
sensor.viomi_x4_c399_freezing_chamber
state_class: measurement
model: viomi.fridge.x4
lan_ip: 192.168.11.79
mac_address: 50:ec:50:b7:c3:99
entity_class: MiotSensorEntity
home_room: 904 厨房
miot_type: urn:miot-spec-v2:device:fridge:0000A00F:viomi-x4:1
state_property: fridge_chamber-4.temperature
fridge_chamber-4.temperature: -19
target_temperature-4-2: -18
fridge.mode: 0
state_updater: cloud
unit_of_measurement: °C
device_class: temperature
friendly_name: 冰箱 Freezing Chamber Temperature
supported_features: 0
------------------------------
sensor.viomi_x4_c399_refrigerating_chamber
state_class: measurement
model: viomi.fridge.x4
lan_ip: 192.168.11.79
mac_address: 50:ec:50:b7:c3:99
entity_class: MiotSensorEntity
home_room: 904 厨房
miot_type: urn:miot-spec-v2:device:fridge:0000A00F:viomi-x4:1
state_property: fridge_chamber.temperature
fridge_chamber.temperature: 7
target_temperature-3-2: 4
fridge_chamber.on: true
fridge.mode: 0
state_updater: cloud
sub_entities: fridge_chamber-3.on-3, fridge_chamber-3.target_temperature-2, fridge_chamber-4.target_temperature-2
unit_of_measurement: °C
device_class: temperature
friendly_name: 冰箱 Refrigerating Chamber Temperature
supported_features: 0
------------------------------------
switch.viomi_x4_c399_switch_status
entity_class: MiotSwitchSubEntity
parent_entity_id: sensor.viomi_x4_c399_refrigerating_chamber
service_description: Refrigerating Chamber
property_description: Switch Status
fridge_chamber.on: true
icon: mdi:power
friendly_name: 冰箱 Refrigerating Chamber Switch Status
supported_features: 0

Home Assistant Logs / 系统日志

风扇(dmaker.fan.p9): Got MiioException while fetching the state: Unable to discover the device 192.168.31.89, mapping: {'fan.on': {'siid': 2, 'piid': 1}, 'fan.fan_level': {'siid': 2, 'piid': 2}, 'fan.mode': {'siid': 2, 'piid': 4}, 'fan.horizontal_swing': {'siid': 2, 'piid': 5}, 'fan.horizontal_angle': {'siid': 2, 'piid': 6}, 'fan.alarm': {'siid': 2, 'piid': 7}, 'fan.off_delay_time': {'siid': 2, 'piid': 8}, 'fan.brightness': {'siid': 2, 'piid': 9}, 'fan.speed_level': {'siid': 2, 'piid': 11}, 'indicator_light.on': {'siid': 5, 'piid': 1}, 'alarm': {'siid': 4, 'piid': 1}, 'physical_controls_locked': {'siid': 3, 'piid': 1}}, max_properties: 6/12 11:42:49 – (ERROR) Xiaomi Miot Auto (自定义集成) - 消息首次出现在 09:29:46,显示了 267 次 加湿器(deerma.humidifier.mjjsq): Got MiioException while fetching the state: Unable to discover the device 192.168.11.71, mapping: {'humidifier.on': {'siid': 2, 'piid': 1}, 'humidifier.fan_level': {'siid': 2, 'piid': 2}, 'humidifier.target_humidity': {'siid': 2, 'piid': 3}, 'humidifier.water_status': {'siid': 2, 'piid': 102}, 'humidifier.tank_status': {'siid': 2, 'piid': 103}, 'indicator_light.on': {'siid': 5, 'piid': 1}, 'alarm': {'siid': 4, 'piid': 1}, 'environment.relative_humidity': {'siid': 3, 'piid': 1}, 'environment.temperature': {'siid': 3, 'piid': 2}}, max_properties: 10/9 11:42:28 – (ERROR) Xiaomi Miot Auto (自定义集成) - 消息首次出现在 09:29:47,显示了 134 次 扫地机器人(roborock.vacuum.t6): Got MiioException while fetching the state: Unable to discover the device 192.168.31.174, mapping: {'vacuum.status': {'siid': 2, 'piid': 1}, 'vacuum.mode': {'siid': 2, 'piid': 2}, 'battery_level': {'siid': 3, 'piid': 1}}, max_properties: 10/3 11:42:28 – (ERROR) Xiaomi Miot Auto (自定义集成) - 消息首次出现在 09:29:47,显示了 134 次 Setup of vacuum platform xiaomi_miot is taking over 10 seconds. 11:06:23 – (WARNING) 扫地机 - 消息首次出现在 09:29:52,显示了 2 次 Setup of humidifier platform xiaomi_miot is taking over 10 seconds. 11:06:23 – (WARNING) 加湿器 Request xiaomi api: user/get_user_device_data {'did': 'lumi.158d0005449d62', 'key': 'device_log', 'type': 'prop', 'time_start': 1702262627, 'time_end': 1702521887, 'limit': 1} failed, response: None 10:43:58 – (WARNING) Xiaomi Miot Auto (自定义集成)

qq610368720 commented 8 months ago

微信截图_20231214134443 冰箱 Freezing Chamber Target Temperature 可以用了 冰箱 Refrigerating Chamber Switch Status 不可用 冰箱 Refrigerating Chamber Target Temperature不可用

ptbsare commented 8 months ago

这个问题在许多云米冰箱上都可以复现,表现为冷藏室的调节温度实体和冷冻室的调节温度实体不能共存,同时只能有一个可用,另一个会变为不可用。

个人推测问题的源头可能为云米冰箱的两者miot属性命名相同,例如本例中 https://home.miot-spec.com/spec/viomi.fridge.x4

miot spec: 3.2 4.2 均为target-temperature

区别是一个是冷藏室温度调节,一个是冷冻室温度调节。

两者在插件会都会生成一个叫number.viomi_x4_XXXX_target_temperature的实体(初始enity_id相同) HA log有大致警告:xiaomi_miot not generating unique id, ignoring XXXX 可能是number实体生成命名逻辑需要改善。 以上均为个人推测。

chunfengyao commented 4 months ago

midjd6.fridge.540 也有相同问题。

chunfengyao commented 4 months ago

midjd6.fridge.540 也有相同问题。

对应日志: homeassistant | 2024-03-26 20:54:28.008 ERROR (MainThread) [homeassistant.components.number] Platform xiaomi_miot does not generate unique IDs. ID xx:xx:xx:xx:xx:xx-fridge_chamber-3.target_temperature-2 is already used by number.midjd6_540_bf5b_target_temperature - ignoring number.midjd6_540_bf5b_target_temperature

homeassistant | 2024-03-26 20:54:28.080 ERROR (MainThread) [homeassistant.components.number] Platform xiaomi_miot does not generate unique IDs. ID xx:xx:xx:xx:xx:xx-fridge_chamber-4.target_temperature-2 is already used by number.midjd6_540_bf5b_target_temperature_2 - ignoring number.midjd6_540_bf5b_target_temperature

ptbsare commented 3 months ago

此问题貌似在最新版本依旧 v7.0.18

qq610368720 commented 2 weeks ago

新建自动化可以解决 以下是代码,以3分钟更新一次举例,

QQ20240730-203304 QQ20240730-203316

qq610368720 commented 2 weeks ago

此问题貌似在最新版本依旧 v7.0.18

我用自动化解决了

ptbsare commented 2 weeks ago

@qq610368720 你好,这个可能还是没有解决,看看能不能麻烦reopen下

qq610368720 commented 2 weeks ago

@qq610368720 你好,这个可能还是没有解决,看看能不能麻烦reopen下

你看一下 我上面说的用自动化

chunfengyao commented 2 weeks ago

新建自动化可以解决 以下是代码,以5分钟更新一次举例,

alias: 更新冰箱数据 description: "" trigger:

  • platform: time_pattern minutes: /5 condition: [] action:
  • service: xiaomi_miot.get_properties data: entity_id: sensor.viomi_x4_c399_freezing_chamber update_entity: true mapping:
    • siid: 2 piid: 1
    • siid: 3 piid: 1
    • siid: 3 piid: 2
    • siid: 3 piid: 3
    • siid: 4 piid: 1
    • siid: 4 piid: 2 mode: single

@qq610368720 麻烦编辑下,用代码块,防止markdown格式化。

qq610368720 commented 2 weeks ago

新建自动化可以解决 以下是代码,以5分钟更新一次举例, 别名: 更新冰箱数据 description: “” 触发器:

  • 平台:time_pattern 分钟:/5 条件:[] 动作:
  • 服务: xiaomi_miot.get_properties 数据: entity_id: sensor.viomi_x4_c399_freezing_chamber update_entity: 真映射:
    • SIID:2 PIID:1
    • SIID:3 PIID:1
    • SIID:3 PIID:2
    • SIID:3 PIID:3
    • SIID:4 PIID:1
    • SIID:4 PIID:2 模式:单

@qq610368720 麻烦编辑下,用代码块,防止markdown格式化。

上面已经编辑了

chunfengyao commented 2 weeks ago

新建自动化可以解决 以下是代码,以3分钟更新一次举例,

@qq610368720 麻烦编辑下,用代码块,防止markdown格式化。

给有需要的小伙伴

alias: 更新冰箱数据
description: ""
trigger:
  - platform: time_pattern
    minutes: /5
condition: []
action:
  - service: xiaomi_miot.get_properties
    data:
      entity_id: sensor.viomi_x4_c399_freezing_chamber
      update_entity: true
      mapping:
        - siid: 2
          piid: 1
        - siid: 3
          piid: 1
        - siid: 3
          piid: 2
        - siid: 3
          piid: 3
        - siid: 4
          piid: 1
        - siid: 4
          piid: 2
mode: single
chunfengyao commented 2 weeks ago

midjd6.fridge.540 也有相同问题。

对于该型号(对开门540L 冰晶岩):

alias: Update 冰箱 对开门540L 冰晶岩
description: "更新冰箱属性值-Fixed: Target Temperature不可用的问题"
trigger:
  - platform: time_pattern
    minutes: /5
condition: []
action:
  - service: xiaomi_miot.get_properties
    data:
      update_entity: true
      mapping:
        - siid: 2
          piid: 1
        - siid: 3
          piid: 1
        - siid: 3
          piid: 2
        - siid: 3
          piid: 3
        - siid: 4
          piid: 1
        - siid: 4
          piid: 2
      entity_id: sensor.midjd6_540_bf5b_freezing_chamber
mode: single
chunfengyao commented 2 weeks ago

@qq610368720 你好,这个可能还是没有解决,看看能不能麻烦reopen下

你看一下 我上面说的用自动化

重启了HA之后,又不行了。看日志,自动任务是执行了的。

qq610368720 commented 2 weeks ago

@qq610368720 你好,这个可能还是没有解决,看看能不能麻烦reopen下

你看一下 我上面说的用自动化

重启了HA之后,又不行了。看日志,自动任务是执行了的。

要不把时间改短一些试一下,2分钟,1分钟,30秒?我这边目前没问题

chunfengyao commented 2 weeks ago

@qq610368720 你好,这个可能还是没有解决,看看能不能麻烦reopen下

你看一下 我上面说的用自动化

重启了HA之后,又不行了。看日志,自动任务是执行了的。

要不把时间改短一些试一下,2分钟,1分钟,30秒?我这边目前没问题

重启后,又手动执行的。执行完之后去看,还是没效果。

qq610368720 commented 2 weeks ago

@qq610368720 你好,这个可能还是没有解决,看看能不能麻烦reopen下

你看一下 我上面说的用自动化

重启了HA之后,又不行了。看日志,自动任务是执行了的。

要不把时间改短一些试一下,2分钟,1分钟,30秒?我这边目前没问题

重启后,又手动执行的。执行完之后去看,还是没效果。

你看一下你的,冷藏室和冷冻室温度传感器的属性,你要选择对,你看一下对比,就知道选哪一个了,