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

 找回密码
 立即注册
查看: 4153|回复: 4

[技术探讨] 小米网关灯改呼吸灯

[复制链接]

6

主题

180

帖子

893

积分

论坛积极会员

积分
893
金钱
713
HASS币
0
发表于 2019-2-9 17:03:27 | 显示全部楼层 |阅读模式
本帖最后由 sunny96e95 于 2019-2-9 17:11 编辑

初衷:1、晴天常亮;2、下雨天触发呼吸灯;

实现呼吸过程用了两个script,但为实现连贯的呼吸亮度,需要写很多行,求大神给个简洁的思路,谢谢!!!

  light_off:
    sequence:   
      - service: light.turn_on
        entity_id: light.gateway_light_34ce0085ae5
        data:
          brightness: 111
          color_name: "white"   

      ……省略N行
      - service: light.turn_on
        entity_id: light.gateway_light_34ce0085ae5
        data:
          brightness: 10
          color_name: "white"                           
      - service: script.turn_on
        data:
          entity_id: script.light_on
  light_on:
    sequence:  
      - service: light.turn_on
        entity_id: light.gateway_light_34ce0085ae5
        data:
          brightness: 10
          color_name: "white"   

      ……省略N行   
      - service: light.turn_on
        entity_id: light.gateway_light_34ce0085ae5
        data:
          brightness: 111
          color_name: "white"  
       - service: script.turn_on
        data:
          entity_id: script.light_off


大家新年快乐,大吉大利!!!








回复

使用道具 举报

0

主题

242

帖子

1719

积分

金牌会员

Rank: 6Rank: 6

积分
1719
金钱
1477
HASS币
0
发表于 2019-2-9 17:35:51 来自手机 | 显示全部楼层
大吉大利
回复

使用道具 举报

14

主题

657

帖子

3860

积分

论坛元老

Rank: 8Rank: 8

积分
3860
金钱
3198
HASS币
10
发表于 2019-2-10 10:59:08 | 显示全部楼层
今晚呼吸……担心寿命
回复

使用道具 举报

1

主题

81

帖子

257

积分

论坛分享达人

积分
257
金钱
176
HASS币
10
发表于 2019-4-13 20:50:04 | 显示全部楼层
刚刚进论坛, 还不是很熟悉很多术语,但是我觉得和嵌入式相通的, 我的思路(嵌入式学的):
light_on(k, time):
    light_on(n-1, time)

light(1, time):
   intensity_val = time %n # 这里通过取余数, 比方说我们呼吸有(0-1-2-3-4)五种状态n==5
   light.set_intensity(intensity_val)

这样变成一个recursion, 呼吸灯总共呼吸k次, 任何1,2,...k-1,k次调用的时候, time不一样就能呼吸?
---
方案2:
循环+break (伪代码用python写了)
light_intensityVal= 0 # 假设我们呼吸灯的强度是0,1,2...254,255 (数字越大, 光强越强)
time_duration = 60 #假设我们想60次循环停止
count =0
while count<time_duration:
    # 在循环里不断地形成三角波
    light.set_intensity(light_intensityVal)
    if (light_intensityVal >254):
       light_intensityVal--
    else
       light_intensityVal++
    count++
   
回复

使用道具 举报

6

主题

180

帖子

893

积分

论坛积极会员

积分
893
金钱
713
HASS币
0
 楼主| 发表于 2019-4-16 21:14:42 | 显示全部楼层
tomassam 发表于 2019-4-13 20:50
刚刚进论坛, 还不是很熟悉很多术语,但是我觉得和嵌入式相通的, 我的思路(嵌入式学的):
light_on(k, time):
...

多谢,后边因为担心寿命就没搞了,谢谢你
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-15 23:52 , Processed in 0.236484 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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