『瀚思彼岸』» 智能家居技术论坛

标题: 子擎存在传感器Loong该如何加进Xiaomi Gateway 3 [打印本页]

作者: leo755008    时间: 2024-10-23 21:41
标题: 子擎存在传感器Loong该如何加进Xiaomi Gateway 3
本帖最后由 leo755008 于 2024-10-24 15:25 编辑

大家好,近期购买的子擎存在传感器Loong,加进Xiaomi Gateway 3后无法显示相关资料,厂牌显示未知,请教该如何设定才能显示如米家app上的调整功能?  先向大家说声谢谢。

如果改用Miot,可以看到其他資訊,但感測器的數據並不能作為自動化的設定,例如自動化的選項中不能單純選擇"當有人..則如何",所以我現在是改成當無人狀態超過1min,則關掉電燈,這樣便會拉長關燈的時間。



2024/10/24-15:23更新:

我參考網上資訊,做了個PY,資料如下,結果訊息都變未知,希望有人可以一起測試看看https://home.miot-spec.com/s/izq.sensor_occupy.ble


from custom_components.xiaomi_gateway3.core.devices import *

DEVICES = [{
    18788: ["izq", "ZQ Occupy Sensor Loong", "izq.sensor_occupy.ble"],
    "spec": [
        BoolConv("occupancy", "binary_sensor", mi="2.p.1078"),
        MathConv("detection_distance", "number", mi="2.p.1", multiply=0.01),
        MathConv("no_one_determine_time", "number", mi="2.p.2", min=0, max=10000),
        MathConv("has_someone_detection-sensitivity", "sensor", mi="2.p.3"),
        MathConv("no_one_detection_sensitivity", "sensor", mi="2.p.4"),
        MathConv("continuous_detection_distance", "sensor", mi="2.p.5"),
        MathConv("illuminance", "sensor", mi="2.p.1005"),
        MathConv("idle_time", "sensor", mi="2.p.1079", multiply=60),  # diagnostic
        MathConv("has_someone_duration", "sensor", mi="2.p.1080"),
        BaseConv("indicator-light", "switch", mi="3.p.1032"),  # config
        BaseConv("battery_level", "sensor", mi="4.p.1003"),
        MapConv("occupancy_status", "sensor", mi="2.p.1078", map={0: "NoOne", 1: " Has One "}),
        ],

}] + DEVICES






2024/10/24:
子擎loong PIID資訊:https://home.miot-spec.com/spec/izq.sensor_occupy.ble
我在Devices.py上找到以下子擎Lite的代碼,我試著改改看。


{
    10356: ["ZiQing", "IZQ Presence Sensor Lite", "IZQ-24", "izq.sensor_occupy.24"],
    "spec": [
        BoolConv("occupancy", "binary_sensor", mi="2.p.1"),
        MathConv("no_one_determine_time", "number", mi="2.p.2", min=0, max=10000),
        MathConv("has_someone_duration", "sensor", mi="2.p.3"),
        MathConv("idle_time", "sensor", mi="2.p.4", multiply=60),  # diagnostic
        MathConv("illuminance", "sensor", mi="2.p.5"),
        MathConv("distance", "sensor", mi="2.p.6", multiply=0.01),
        BaseConv("led", "switch", mi="3.p.1"),  # config
        BaseConv("pir", "switch", mi="3.p.3"),
        MathConv("detect_range", "number", mi="3.p.2", min=0, max=8, step=0.1),
        MathConv("enterin_confirm_time", "number", mi="3.p.5", min=0, max=60),
        MapConv("occupancy_status", "sensor", mi="2.p.1", map={0: "NoOne", 1: "EnterIn", 2: "SmallMove", 3: "MicroMove", 4: "Approaching", 5: "MoveAway"}),
    ],












作者: hungheo    时间: 2024-10-23 23:22
比较新的设备需要自己写Converters,论坛有人出过教程,可以参考着自己写一下https://bbs.hassbian.com/thread-17548-1-1.html
作者: taioner    时间: 2024-10-24 02:28
同求
作者: forever2021    时间: 2024-10-24 08:23
插眼学习。
作者: lovelyelfpop    时间: 2024-10-24 09:22
我写过2个电动窗帘的Converters
作者: leo755008    时间: 2024-10-24 13:43
hungheo 发表于 2024-10-23 23:22
比较新的设备需要自己写Converters,论坛有人出过教程,可以参考着自己写一下https://bbs.hassbian.com/thr ...

謝謝您的幫助,我來研究看看如何寫Converters,如果成功再分享出來!
作者: taioner    时间: 2024-10-26 15:19
leo755008 发表于 2024-10-24 13:43
謝謝您的幫助,我來研究看看如何寫Converters,如果成功再分享出來!

搞定了吗?
作者: leo755008    时间: 2024-10-27 01:58
taioner 发表于 2024-10-26 15:19
搞定了吗?

失敗了

前幾天自己試著寫PY的文件,但顯示的資訊都是未知,最後還是先搭配MIOT湊著使用。



from custom_components.xiaomi_gateway3.core.devices import *

DEVICES = [{
    18788: ["izq", "ZQ Occupy Sensor Loong", "izq.sensor_occupy.ble"],
    "spec": [
        BoolConv("occupancy", "binary_sensor", mi="2.p.1078"),
        MathConv("detection_distance", "number", mi="2.p.1", multiply=0.01),
        MathConv("no_one_determine_time", "number", mi="2.p.2", min=0, max=10000),
        MathConv("has_someone_detection-sensitivity", "sensor", mi="2.p.3"),
        MathConv("no_one_detection_sensitivity", "sensor", mi="2.p.4"),
        MathConv("continuous_detection_distance", "sensor", mi="2.p.5"),
        MathConv("illuminance", "sensor", mi="2.p.1005"),
        MathConv("idle_time", "sensor", mi="2.p.1079", multiply=60),  # diagnostic
        MathConv("has_someone_duration", "sensor", mi="2.p.1080"),
        BaseConv("indicator-light", "switch", mi="3.p.1032"),  # config
        BaseConv("battery_level", "sensor", mi="4.p.1003"),
        MapConv("occupancy_status", "sensor", mi="2.p.1078", map={0: "NoOne", 1: " Has One "}),
        ],

}] + DEVICES



作者: zhanfu86    时间: 2024-10-30 13:50
同求,刚买了还在路上。
作者: innx    时间: 2024-10-31 01:08
DEVICES = [{
    18788: ["izq", "ZQ Occupy Sensor Loong", "izq.sensor_occupy.ble"],
    "spec": [
        BaseConv("illuminance", "sensor", mi="2.p.1005"),
        MapConv("occupancy_status", "sensor", mi="2.p.1078", map={0: "NoOne", 1: "HasOne"}),
        BaseConv("no-one-duration", "sensor", mi="2.p.1079"),
        BaseConv("has-someone-duration", "sensor", mi="2.p.1080")
    ],
}] + DEVICES

最小化这样试试呢?Has One 不要空格
作者: zhanfu86    时间: 2024-11-2 21:02
innx 发表于 2024-10-31 01:08
DEVICES = [{
    18788: ["izq", "ZQ Occupy Sensor Loong", "izq.sensor_occupy.ble"],
    "spec": [

不行,也是未知
作者: liuxk    时间: 2024-11-6 10:06
  1. DEVICES = [{
  2.     # https://home.miot-spec.com/spec/izq.sensor_occupy.ble
  3.     18788: ["ZiQing", "IZQ Presence Sensor Loong", "IZQ-BLE", "izq.sensor_occupy.ble"],
  4.     "spec": [
  5.         BoolConv("occupancy", "binary_sensor", mi="2.p.1078"),
  6.         MapConv("occupancy_status", "sensor", mi="2.p.1078", map={0: "NoOne", 1: "HasOne"}),
  7.         MathConv("has_someone_duration", "sensor", mi="2.p.1080", min=0, max=60),
  8.         MathConv("no_one_duration", "sensor", mi="2.p.1079", min=0, max=60),
  9.         MathConv("illuminance", "sensor", mi="2.p.1005", min=0, max=60000),
  10.         BoolConv("indicator_light", "binary_sensor", mi="3.p.1032"),
  11.         MathConv("battery", "sensor", mi="4.p.1003", min=0, max=100, step=1),
  12.         MathConv("object_distance", "sensor", mi="5.p.1", min=0, max=80),
  13.         MapConv("detect_mode", "sensor", mi="5.p.4", map={1: "Fast", 2: "Standard", 3: "Eco"}),
  14.     ],
  15. }] + DEVICES
复制代码


我看gateway3的github页面已经更新代码显示支持了,不过我放在xiaomi_gateway3.py里还是不行,loong的数据不会实时更新在HA,有时候也会显示不可用。不知道为啥。。
https://github.com/AlexxIT/Xiaom ... ay3/core/devices.py
作者: homl    时间: 2024-11-6 15:34
liuxk 发表于 2024-11-6 10:06
我看gateway3的github页面已经更新代码显示支持了,不过我放在xiaomi_gateway3.py里还是不行,loong的数 ...

插眼期待更新 还在学习中
作者: hongyedba    时间: 2024-11-6 16:45
liuxk 发表于 2024-11-6 10:06
我看gateway3的github页面已经更新代码显示支持了,不过我放在xiaomi_gateway3.py里还是不行,loong的数 ...

添加到 devices.py 中就可以了,正常更新显示了。

需要注意的是好像和加的位置有关系,这个要加到 BLE 这个区域中
作者: leo755008    时间: 2024-11-11 12:51
剛剛把以下代碼放進Devices.py,設備的功能名稱有更新,但數值仍顯示未知,已放棄


}, {
    # https://home.miot-spec.com/spec/izq.sensor_occupy.ble
    18788: ["ZiQing", "IZQ Presence Sensor Loong", "IZQ-BLE", "izq.sensor_occupy.ble"],
    "spec": [
        BoolConv("occupancy", "binary_sensor", mi="2.p.1078"),
        MapConv("occupancy_status", "sensor", mi="2.p.1078", map={0: "NoOne", 1: "HasOne"}),
        MathConv("has_someone_duration", "sensor", mi="2.p.1080", min=0, max=60),
        MathConv("no_one_duration", "sensor", mi="2.p.1079", min=0, max=60),
        MathConv("illuminance", "sensor", mi="2.p.1005", min=0, max=60000),
        BoolConv("indicator_light", "binary_sensor", mi="3.p.1032"),
        MathConv("battery", "sensor", mi="4.p.1003", min=0, max=100, step=1),
        MathConv("object_distance", "sensor", mi="5.p.1", min=0, max=80),
        MapConv("detect_mode", "sensor", mi="5.p.4", map={1: "Fast", 2: "Standard", 3: "Eco"}),
    ],




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5