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

 找回密码
 立即注册
查看: 782|回复: 3

[技术探讨] 请教Esphome内部计数模板自动化

[复制链接]

3

主题

295

帖子

2876

积分

金牌会员

Rank: 6Rank: 6

积分
2876
金钱
2581
HASS币
0
发表于 2022-3-30 11:51:21 | 显示全部楼层 |阅读模式
本帖最后由 iamhyde 于 2022-4-1 11:17 编辑

[size=15.008px]想在EspHome内部做一个计数自动化,HA挂掉的话也不影响它
目标是统计开关1打开的次数,达到比如100次后清0并且运行打开开关2
计数也会同步到HA里
参考官方文档:https://esphome.io/components/number/template.html
大概写出了这个统计组件:
globals:  #全局变量
  - id: bubble_int
    type: int
    restore_value: no
    initial_value: '0'

number:
  - platform: template
    name: Number Of Bubble
    id: numberbubble
    min_value: 0
    max_value: 1000
    step: 1
    set_action:    #同步HA里操作
      then:
        - globals.set:
            id: bubble_int
            value: !lambda 'return x;'   
    on_value_range:      #次数超过5后设置清0,然后打开开关2
      above: 5
      then:
        - number.set:
            id: numberbubble
            value: 0   
        - switch.turn_on: relay2
遇到的问题是:
[size=15.008px]1.esphome重启后数量会清0,应该是全局变量那的起始数的问题
2.手动增加计数超过5后也不会清0和启动开关2
3.开关1打开的时候不会计数,应该是lambda代码有误
或者不用globals单纯用number组件的话也行,官方也没这方面的详细说明,谢谢
回复

使用道具 举报

26

主题

2096

帖子

8514

积分

论坛元老

Rank: 8Rank: 8

积分
8514
金钱
6413
HASS币
30

论坛元老

发表于 2022-3-30 16:38:24 | 显示全部楼层
https://esphome.io/guides/automations.html

# Example configuration entry
 globals:
   - id: my_global_int
     type: int
     restore_value: no
     initial_value: '0'

# In an automation
on_press:
  then:
    - lambda: |-
        if (id(my_global_int) > 5) {
          // global value is greater than 5
          id(my_global_int) += 1;
        } else {
          id(my_global_int) += 10;
        }

        ESP_LOGD(TAG, "Global value is: %d", id(my_global_int));
回复

使用道具 举报

3

主题

295

帖子

2876

积分

金牌会员

Rank: 6Rank: 6

积分
2876
金钱
2581
HASS币
0
 楼主| 发表于 2022-3-31 11:01:41 | 显示全部楼层
情非殇 发表于 2022-3-30 16:38
https://esphome.io/guides/automations.html

谢谢,我看这个是设置个全局变量,让它计数?不过看不到累计的数,用Number的话HA也能看
回复

使用道具 举报

26

主题

2096

帖子

8514

积分

论坛元老

Rank: 8Rank: 8

积分
8514
金钱
6413
HASS币
30

论坛元老

发表于 2022-4-2 09:50:03 | 显示全部楼层
iamhyde 发表于 2022-3-31 11:01
谢谢,我看这个是设置个全局变量,让它计数?不过看不到累计的数,用Number的话HA也能看 ...

让你看看文档是怎么用lamb写加一动作的
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-2 17:25 , Processed in 0.769320 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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