s7这玩意儿之前感觉接入了也只能看个体重,加上家里的十几块电子秤还能用就一直没买,直到前几天刷到有大佬居然还在研究[url=更新【全功能】s7体https://bbs.hassbian.com/thread-30967-1-1.html]这货[/url],而且进展颇大,火速斥巨资购入了一个,打算先玩着等大佬固件。到手测完就刷了a2633063大佬的固件,趁着周末压榨ai搞了个符合使用习惯的流程出来。
功能:
- 会根据已有数据动态匹配称重人员,只要同一人某两次称重的差值不超过nodered中设置的tolerance值,理论上可以随着体重变化一直自动匹配,灵感来自comeon_000,感谢大佬
- 当存在匹配到超过1个人员或没有匹配到人员时数据会保存,可通过认领流程认领
- 1分钟之内连续2次称重除了给出2次称重值外还会给出2次的差值,用来称小猫小狗或者小货物之类的
- tts流程也做了的,调用即可
1中的数据优先级为:HA人员体重数据(称重或手动设置)>nodered预设数据>手动认领
无用数据搞了个认领人`无用数据`,流程跟认领一样
食用方法:
HA中辅助元素中新建如下实体
注意:人员格式统一前缀为:“input_number.weight_”
具体选项查看附件中的图片
HA导入自动化
alias: 动态加载未认领记录
description: ""
triggers:
- trigger: state
entity_id:
- input_text.scale_unidentified_list
to: null
conditions: []
actions:
- action: input_select.set_options
data:
entity_id: input_select.scale_claim_record
options: >
{% set list = states('input_text.scale_unidentified_list').split(',') if
states('input_text.scale_unidentified_list') else [] %} {% set options =
list | map('regex_replace', find='(.*)\\|(.*)', replace='\\1 kg - \\2 |
\\1|\\2') | list %} {{ ['空'] + options if list else ['空'] }}
- action: input_select.select_option
data:
entity_id: input_select.scale_claim_record
option: 空
mode: single
界面添加
下面的未认领记录是markdown,选空白卡片导入
type: markdown
content: >
### 未认领记录(剩余{{ states('input_text.scale_unidentified_list').split(',') |
length if states('input_text.scale_unidentified_list') else 0 }}条)
{% set list = states('input_text.scale_unidentified_list').split(',') if
states('input_text.scale_unidentified_list') else [] %}
{% for item in list if item and item != '' %} {# 额外过滤空字符串,避免空行 #}
- 体重:{{ item.split('|')[0] }} kg
时间:{{ item.split('|')[1] | regex_replace(find='(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})', replace='\\1/\\2/\\3 \\4:\\5:\\6') }}
{% else %}
- 暂无未认领记录
{% endfor %}
style:
padding: 10px
background: null
border-radius: 8px
nodered导入流程
需要修改的地方
具体修改还是看附件哈
附件.7z
(658.42 KB, 下载次数: 1)
|