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

 找回密码
 立即注册
查看: 645|回复: 1

[技术探讨] 三星smartthings设备通过nodered接入ha

[复制链接]

11

主题

304

帖子

1635

积分

金牌会员

Rank: 6Rank: 6

积分
1635
金钱
1331
HASS币
0
发表于 2024-8-2 08:53:10 | 显示全部楼层 |阅读模式
这篇https://bbs.hassbian.com/thread-21803-1-1.html里面已经有网友分享了通过https的方式,通过smartthings官方集成来接入ha,我试用几天之后,外网https访问ha老是断线,而且还影响到我nodered里钉钉markdown的一些节点,故无奈放弃。

然后我在nodered里搜索到有三星的节点,安装试用后发现可用。在nodered里下载安装node-red-contrib-samsung-automation-studio-nodes节点;


QQ截图20240802083723.png
my device节点一定要设置,它是用来接入三星账号里所有设备的节点,无需跟前后节点,单独放着就行,token就是https://bbs.hassbian.com/thread-21803-1-1.html里面的方法,或者节点自带链接打开也一样;

QQ图片20240802084129.png
再就是拖入Status节点,选择你要的设备即可。然后前面加个inject节点,后面加个debug节点,看一下调试窗口,有哪些是你要的数据,做成新的ha实体,或者自动化吧。唯一的缺点是没有一个类似Event state节点,能实时监测设备状态的;或者直接用inject每隔几秒监测一下。我家的三星洗衣机接了一个米家的插座,所以我触发节点就是插座的功率值变化,待机时为1kw,即当插座功率值不为1时,则接入Status节点,然后插入函数节点,写入
var washerjobstate = msg.payload.components.main.washerOperatingState.washerJobState.value
var machinestate = msg.payload.components.main.washerOperatingState.machineState.value
var completiontime = msg.payload.components.main.washerOperatingState.completionTime.value

msg.payload = {
    '洗衣机工作模式': washerjobstate,
    '洗衣机状态': machinestate,
    '完成时间': completiontime,
}
return msg;

再分别添加三个新的home assistant实体,即洗衣机工作模式,洗衣机状态,完成时间。
QQ截图20240802084724.png
然后我在home assistant里写了个button card:
type: custom:button-card
entity: sensor.yang_tai_xi_yi_ji_gong_zuo_mo_shi
name: 阳台洗衣机
show_state: true
state:
  - value: none
    icon: mdi:washing-machine-off
    styles:
      icon:
        - color: grey
        - animation: none
      name:
        - font-size: 12px
        - color: grey
      state:
        - color: grey
    state_display: 【停止】
  - value: wash
    icon: mdi:washing-machine
    styles:
      icon:
        - color: orange
        - animation: blink 1.5s linear infinite
      name:
        - font-size: 12px
        - color: inherit
      state:
        - color: inherit
    state_display: 【洗涤】
  - value: rinse
    icon: mdi:washing-machine
    styles:
      icon:
        - color: orange
        - animation: blink 1.5s linear infinite
      name:
        - font-size: 12px
        - color: inherit
      state:
        - color: inherit
    state_display: 【漂洗】
  - value: spin
    icon: mdi:washing-machine
    styles:
      icon:
        - color: orange
        - animation: blink 1.5s linear infinite
      name:
        - font-size: 12px
        - color: inherit
      state:
        - color: inherit
    state_display: 【脱水】
styles:
  card:
    - height: 70px
    - font-weight: bold
    - font-size: 12px
    - border: none
  state:
    - font-size: 12px
QQ截图20240802084943.png
还写了个模板卡片:
{% set completion_time = states('sensor.yang_tai_xi_yi_ji_wan_cheng_shi_jian') %}
          {% set job_state = states('sensor.yang_tai_xi_yi_ji_gong_zuo_mo_shi') %}
          {% if job_state == 'none' %}
            阳台衣机已完成
          {% elif completion_time %}
            {% set completion_datetime = as_datetime(completion_time) %}
            {% set now = now() %}
            {% set remaining = completion_datetime - now %}
            {% if remaining.total_seconds() > 0 %}
              {% set hours = remaining.total_seconds() // 3600 %}
              {% set minutes = (remaining.total_seconds() % 3600) // 60 %}
              {% if hours > 0 %}
                阳台洗衣机剩余 {{ hours | int }}小时{{ minutes | int }}分钟
              {% else %}
                阳台洗衣机剩余 {{ minutes | int }}分钟
              {% endif %}
            {% else %}
              阳台洗衣机已完成
            {% endif %}
          {% else %}
            未知
          {% endif %}
QQ截图20240802085111.png

----------------------------
好了,先分享到这。这是比较简单的,用来查看洗衣机状态的一些方式方法,如有错误,请路过大佬不要笑话。
回复

使用道具 举报

11

主题

304

帖子

1635

积分

金牌会员

Rank: 6Rank: 6

积分
1635
金钱
1331
HASS币
0
 楼主| 发表于 2024-8-5 08:50:27 | 显示全部楼层
测试了几天,一切正常运行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 08:54 , Processed in 0.058291 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表