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

 找回密码
 立即注册
查看: 13819|回复: 17

[经验分享] Awtrix2 mqtt控制

[复制链接]

21

主题

188

帖子

1481

积分

金牌会员

Rank: 6Rank: 6

积分
1481
金钱
1288
HASS币
60
发表于 2020-12-10 06:17:59 | 显示全部楼层 |阅读模式

实现功能

  1. 通知推送
  2. 亮度控制
  3. 自动亮度开关
  4. 应用持续时间控制
  5. 应用自动关闭开关

吐槽

  1. 这货真的只适合跑在内网,API访问完全没有鉴权措施,被人发现就随便玩了……
  2. mqtt不会自动反馈状态,要publish需查询的字段,返回结果还统一在awtrix/response下……服了
  3. 控制逻辑太奇葩了,app pause后只要换一个应用就取消pause……就不能好好当个钟吗
  4. 没有WiFi这货就是个显示器……(想加装时钟模块和锂电充电模块了)

心累……

效果

配置

前提:Controller网页端先填写mqtt服务器信息进行接入

# 辅助元素 可以在Lovelace中手动创建
input_number:
  awtrix_brightness:
    name: 亮度
    icon: mdi:brightness-6
    mode: slider
    min: 5
    max: 75
    step: 5
  awtrix_appduration:
    name: 应用停留时间
    icon: mdi:clock
    mode: slider
    min: 5
    max: 60
    step: 5
input_text:
  awtrix_notify:
    name: 通知内容
    icon: mdi:form-textarea

switch:
    - platform: template
      switches:
        friendly_name: 自动亮度
        awtrix_autobrightness:
          value_template: '{{ states.sensor.awtrix_autobrightness.state }}'
          turn_on: 
            - service: mqtt.publish
              data:
                topic: awtrix/settings
                payload: '{"AutoBrightness":true}'
            - service: mqtt.publish
              data:
                topic: awtrix/basics
                payload: '{"get":"settings"}'
          turn_off: 
            - service: mqtt.publish
              data:
                topic: awtrix/settings
                payload: '{"AutoBrightness":false}'
            - service: mqtt.publish
              data:
                topic: awtrix/basics
                payload: '{"get":"settings"}'

sensor:
  - platform: mqtt
    name: 'awtrix_brightness'
    state_topic: 'awtrix/response'
    value_template: '{{ value_json.Brightness }}'
  - platform: mqtt
    name: 'awtrix_AutoBrightness'
    state_topic: 'awtrix/response'
    value_template: '{{ value_json.AutoBrightness }}'
  - platform: mqtt
    name: 'awtrix_activeApp'
    state_topic: 'awtrix/activeApp'

script:
  awtrix_notify:
    alias: 发送Awtrix通知
      sequence:
        - service: mqtt.publish
          data:
            topic: awtrix/notify
            payload_template: >
              {"name":"hass_notify", "force":true, "duration":5, "repeat":2,
              "icon":1208, "text":"{{states.input_text.awtrix_notify.state}}"}
            # duration: 当文本无需滚动即显示完毕时文本的停留时间(优先级低于repeat)
            # repeat: 当文本需滚动时文本滚动次数
      mode: single
      icon: 'mdi:message'

automation:
  - alias: awtrix暂停应用(禁止自动翻页)
    description: ''
    trigger:
      - platform: state
        entity_id: sensor.awtrix_activeapp
    condition: []
    action:
      - service: mqtt.publish
        data:
          topic: awtrix/basics
          payload: '{"app":"pause"}'
    mode: single
  - alias: awtrix应用停留时间
    description: ''
    trigger:
      - platform: state
        entity_id: input_number.awtrix_appduration
    condition: []
    action:
      - service: mqtt.publish
        data:
          topic: awtrix/settings
          payload_template: '{"AppDuration": {{states.input_number.awtrix_AppDuration.state|int}}}'
      - service: mqtt.publish
        data:
          topic: awtrix/basics
          payload: '{"get":"settings"}'
    mode: single
  - alias: awtrix亮度
    description: ''
    trigger:
      - platform: state
        entity_id: input_number.awtrix_brightness
    condition: []
    action:
      - service: mqtt.publish
        data:
          topic: awtrix/settings
          payload_template: '{"Brightness": {{states.input_number.awtrix_brightness.state|int}}}'
      - service: mqtt.publish
        data:
          topic: awtrix/basics
          payload: '{"get":"settings"}'
    mode: single

评分

参与人数 1金钱 +20 HASS币 +10 收起 理由
+ 20 + 10 虽然看不懂,但感觉很厉害的样子。.

查看全部评分

回复

使用道具 举报

0

主题

173

帖子

1403

积分

金牌会员

Rank: 6Rank: 6

积分
1403
金钱
1230
HASS币
0
发表于 2020-12-11 18:10:25 | 显示全部楼层
同是使用MQTT控制Awtrix2,只能寫自動化去要求狀態真的是有點麻煩
用Hass OS的有現成的Add-On可以使用
https://github.com/lubeda/repository
回复

使用道具 举报

18

主题

691

帖子

3796

积分

元老级技术达人

积分
3796
金钱
3095
HASS币
60
发表于 2020-12-19 17:34:46 | 显示全部楼层
本帖最后由 houhd 于 2020-12-19 17:37 编辑
jasonlai79 发表于 2020-12-11 18:10
同是使用MQTT控制Awtrix2,只能寫自動化去要求狀態真的是有點麻煩
用Hass OS的有現成的Add-On可以使用
http ...
这是awtrix 的hassio服务端?
回复

使用道具 举报

0

主题

173

帖子

1403

积分

金牌会员

Rank: 6Rank: 6

积分
1403
金钱
1230
HASS币
0
发表于 2020-12-22 09:12:09 | 显示全部楼层
houhd 发表于 2020-12-19 17:34
这是awtrix 的hassio服务端?

是的,沒錯,我目前就是在HassOS用這個套件架server
回复

使用道具 举报

2

主题

123

帖子

589

积分

高级会员

Rank: 4

积分
589
金钱
466
HASS币
10
发表于 2021-1-4 05:28:17 | 显示全部楼层
jasonlai79 发表于 2020-12-11 18:10
同是使用MQTT控制Awtrix2,只能寫自動化去要求狀態真的是有點麻煩
用Hass OS的有現成的Add-On可以使用
http ...

这个只是一个HA内建的awtrix服务器端,如何直接接入HA呢?
回复

使用道具 举报

0

主题

173

帖子

1403

积分

金牌会员

Rank: 6Rank: 6

积分
1403
金钱
1230
HASS币
0
发表于 2021-1-4 10:08:47 | 显示全部楼层
本帖最后由 jasonlai79 于 2021-1-4 10:11 编辑
毛毛卷 发表于 2021-1-4 05:28
这个只是一个HA内建的awtrix服务器端,如何直接接入HA呢?

如版主所寫的,可以透過MQTT與HA溝通
用template switch/sensor可以達到更方便控制
switch:
  - platform: template
    switches:

      awtrix_power:
        friendly_name: "Awtrix電源"
        value_template: "{{ is_state('sensor.awtrix_power', 'true') }}"
        turn_on:
          - service: mqtt.publish
            data:
              topic: "awtrix/basics"
              payload: "{'power': true}"
        turn_off:
          - service: mqtt.publish
            data:
              topic: "awtrix/basics"
              payload: "{'power': false}"


回复

使用道具 举报

2

主题

123

帖子

589

积分

高级会员

Rank: 4

积分
589
金钱
466
HASS币
10
发表于 2021-1-14 17:47:21 | 显示全部楼层
jasonlai79 发表于 2021-1-4 10:08
如版主所寫的,可以透過MQTT與HA溝通
用template switch/sensor可以達到更方便控制
switch:

感谢回复,我自己稍微修改了一下,但是只要重启HA之后无法获得AWTRIX的状态,只能在触发开关才会获得状态,请问应该怎么修改才行,谢谢

light:
    - platform: template
      lights:
        awtrix_lights:
          value_template: '{{ states.sensor.awtrix_powerstate.state }}'
          turn_on: 
            - service: mqtt.publish
              data:
                topic: awtrix/basics
                payload: '{"power": true}'
            - service: mqtt.publish
              data:
                topic: awtrix/basics
                payload: '{"get":"powerState"}'
          turn_off: 
            - service: mqtt.publish
              data:
                topic: awtrix/basics
                payload: '{"power":false}'
            - service: mqtt.publish
              data:
                topic: awtrix/basics
                payload: '{"get":"powerState"}'

sensor:
  - platform: mqtt
    name: 'awtrix_activeApp'
    state_topic: 'awtrix/activeApp'
  - platform: mqtt
    name: 'awtrix_powerState'
    state_topic: 'awtrix/response'
    value_template: '{{ value_json.powerState }}'
回复

使用道具 举报

0

主题

173

帖子

1403

积分

金牌会员

Rank: 6Rank: 6

积分
1403
金钱
1230
HASS币
0
发表于 2021-1-15 09:45:01 | 显示全部楼层
毛毛卷 发表于 2021-1-14 17:47
感谢回复,我自己稍微修改了一下,但是只要重启HA之后无法获得AWTRIX的状态,只能在触发开关才会获得状态 ...

忘了說,我寫自動化每分鐘讓Awtrix回傳最新的狀態
回复

使用道具 举报

2

主题

123

帖子

589

积分

高级会员

Rank: 4

积分
589
金钱
466
HASS币
10
发表于 2021-1-15 15:17:42 | 显示全部楼层
jasonlai79 发表于 2021-1-15 09:45
忘了說,我寫自動化每分鐘讓Awtrix回傳最新的狀態

能提供一下代码么?谢谢
回复

使用道具 举报

2

主题

86

帖子

1558

积分

金牌会员

Rank: 6Rank: 6

积分
1558
金钱
1472
HASS币
0
发表于 2021-1-15 23:45:51 来自手机 | 显示全部楼层
支持一下 回头试试看
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-9 09:24 , Processed in 0.231048 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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