0家庭助理中的Bin集合

我已经开发基于家庭助手的智能家居设置大约一年了 (自从离开SmartThings) 在经历了最初的陡峭学习曲线之后,我一直对家庭助理感到非常满意,因此我开始扩大它的功能,因为我确信它为我的智能家居提供了长期基础. 我想添加的一件事是垃圾箱收集数据,以提醒我什么时候该垃圾箱到期. 当我住在谢菲尔德时,我需要从地方当局外包提供商处获取此数据 (威立雅). 以下详细说明了我如何做到这一点, 在其他地区已经取得成功的其他人的工作基础上

I used a script which i mod­i­fied from vari­ous examples on a HA sup­port thread by Rob­Brad. For this script to run I needed to install the beau­ti­ful­soup mod­ule on home-assistant.

安装BeautifulSoup python模块

  • Install the Super­visor add-on ‘SSH and Web Terminal’
  • Open the ter­min­al from the main left-hand menu
  • Use the com­mand pip3安装beautifulsoup4

添加脚本

  • I use the ‘Samba Share’ super­visor addon to access my home assist­ant files dir­ectly from my win­dows PC — unless you already have a pre­ferred access meth­od I recom­mend doing the same
  • 浏览到 \\ha-ip-address config
  • cre­ate a python脚本
  • Cre­ate a new python script in this folder — I called mine bin_collection.py
  • Insert the fol­low­ing script
    from bs4 import BeautifulSoup
    import datetime
    from dateutil import parser
    import requests
    import json
    
    url = 'https://wasteservices.sheffield.gov.uk/property/############'
    page = requests.get(网址)
    
    如果page.status_code != 200:
        出口(1)
    
    汤= BeautifulSoup(page.text, 'html.parser')
    
    出= {}
    bh3s = soup.find_all('td', class_ ="服务名称")
    bpds = soup.find_all('td', class_ ="下一服务")
    
    对于我在范围内(只(bpds)):
        bin_colour = str(bh3s[一世].内容[3]).降低().分裂(“>“)[1].分裂('')[0]
        出去[bin_colour] = parser.parse(bpds[一世].内容[2].剥离().分裂(“,“)[0]).strftime('%Y-%m-%d')
    
    打印(json.dumps(出去))
    
  • 您将需要更换 ############ with the unique num­ber for your prop­erty which I will explain how to get in the next step

获取您的唯一地址

  • 浏览 https://wasteservices.sheffield.gov.uk/property/
  • 输入您的邮政编码,然后从列表中选择您的地址
  • 记下新网址. Use it in the url line in the script above — the only part you will need to change is the 12 digit num­ber at the end

从configuration.yaml调用脚本

  • 使脚本运行所需的只是configuration.yaml中的一个简单条目
  • You may want to adjust the fre­quency of the run. Mine runs once per day.
    传感器:
     - 平台: command_line
       name: "垃圾箱集合"
       命令: "python3 /config/python-scripts/bin_collection.py"
       scan_interval: 86400
       command_timeout: 60 #由于网站反应缓慢,如果默认设置,通常会超时,因此需要
    

使用configuration.yaml为每种类型的bin创建实体

  • Imme­di­ately under the above sec­tion (所以仍然在传感器下: 仲tion) 添加如下
     - 平台: template
       sensors:
         black_bin:
           device_class: timestamp
           value_template: “{{ (状态("sensor.bin_collections")|from_json())["黑色的"] }}'
           unique_id: "black_bin"
         brown_bin:
           device_class: timestamp
           value_template: “{{ (状态("sensor.bin_collections")|from_json())["棕色的"] }}'
           unique_id: "brown_bin"
         blue_bin:
           device_class: timestamp
           value_template: “{{ (状态("sensor.bin_collections")|from_json())["蓝色"] }}'
           unique_id: "blue_bin"
    

在前端显示结果

  • To show the res­ults on the front end simply add a card with the 3 传感器就可以了 (spe­cific­ally sensor.black_bin, sensor.blue_bin, 和sensor.brown_bin)
  • Note you may need to restart home assist­ant to load the new sensors you added to configuration.yaml

你怎么看? 请给我们一个评论如下! 如果您想订阅,请使用菜单上的订阅链接右上方. 您还可以通过使用下面的链接社会分享这与你的朋友. 干杯.

发表评论