0HomeAssistantのビンコレクション

私はホームアシスタントベースのスマートホームセットアップを約1年前から開発しています (SmartThingsを離れてから) 最初の急な学習曲線の後、私はホームアシスタントに非常に満足していたので、スマートホームの長期的な基盤を提供すると確信しているので、ホームアシスタントの機能を拡張する作業を開始しました。. 追加したかったことの1つは、ビン収集データで、どのビンがいつ期限になるかを思い出させることでした。. 私はシェフィールドに住んでいるので、地方自治体のアウトソースプロバイダーからこのデータを取得する必要がありました (ヴェオリア). 以下は私がこれをどのようにしたかを詳しく説明します, 他の地域のためにすでにそれを行った他の人の仕事に非常に基づいて構築する

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.

BeautifulSouppythonモジュールをインストールします

  • 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-scripts フォルダ
  • 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(URL)
    
    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].lstrip().スプリット(',')[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/
  • 郵便番号を入力し、リストから住所を選択します
  • 新しいURLをメモします. 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を使用して、ビンのタイプごとにエンティティを作成します

  • Imme­di­ately under the above sec­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

どう思いますか? 私たちは以下のコメントをドロップ! あなたが購読したい場合は、右上のメニューで購読リンクをご利用ください. また、下記の社会的なリンクを使用してお友達とこれを共有することができます. 乾杯.

返信を残す