0HomeAssistantのビンコレクション

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

さまざまな例から変更したスクリプトを使用しました RobBradによるHAサポートスレッド. このスクリプトを実行するには、Beautifulsoupモジュールをホームアシスタントにインストールする必要がありました.

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

  • スーパーバイザーアドオンをインストールします ‘SSH およびWebターミナル」
  • メインの左側のメニューからターミナルを開きます
  • コマンドを使用する pip3インストールbeautifulsoup4

スクリプトを追加する

  • 「SambaShare」スーパーバイザーアドオンを使用して、Windows PCから直接ホームアシスタントファイルにアクセスします。優先するアクセス方法が既にない場合は、同じようにすることをお勧めします。
  • 参照する \\ha-ip-address config
  • 作成する python-scripts フォルダ
  • このフォルダに新しいPythonスクリプトを作成します—私は私のと呼びました bin_collection.py
  • 次のスクリプトを挿入します
    bs4からインポートBeautifulSoup
    インポート日時
    dateutilインポートパーサーから
    インポートリクエスト
    jsonをインポートする
    
    url = 'https://Wasteservices.sheffield.gov.uk/property/############ '
    ページ= 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(アウト))
    
  • 交換する必要があります ############ 次のステップで取得する方法を説明するあなたの財産の一意の番号で

一意のアドレスを取得する

  • を参照 https://wasteservices.sheffield.gov.uk/property/
  • 郵便番号を入力し、リストから住所を選択します
  • 新しいURLをメモします. 上記のスクリプトのURL行で使用してください—変更する必要があるのは 12 最後の桁番号

configuration.yamlからスクリプトを呼び出します

  • スクリプトを実行するために必要なのは、configuration.yamlの単純なエントリだけです。
  • 実行の頻度を調整することをお勧めします. 鉱山は1日1回実行されます。
    センサー:
     - プラットホーム: コマンドライン
       名前: "ビンコレクション"
       コマンド: "python3 / config / python-scripts / bin_collection.py"
       scan_interval: 86400
       command_timeout: 60 #ウェブサイトの応答が遅く、デフォルトのままにするとタイムアウトになることが多いため、必要です
    

configuration.yamlを使用して、ビンのタイプごとにエンティティを作成します

  • 上記のセクションのすぐ下 (まだセンサーの下にあります: セクション) 以下を追加します。
     - プラットホーム: テンプレート
       センサー:
         black_bin:
           device_class: タイムスタンプ
           value_template: '{{ (州("sensor.bin_collections")|from_json())["黒"] }}'
           一意のID: "black_bin"
         brown_bin:
           device_class: タイムスタンプ
           value_template: '{{ (州("sensor.bin_collections")|from_json())["褐色"] }}'
           一意のID: "brown_bin"
         blue_bin:
           device_class: タイムスタンプ
           value_template: '{{ (州("sensor.bin_collections")|from_json())["青い"] }}'
           一意のID: "blue_bin"
    

フロントエンドに結果を表示する

  • フロントエンドに結果を表示するには、カードを追加するだけです。 3 その上のセンサー (具体的にはsensor.black_bin, sensor.blue_bin, およびsensor.brown_bin)
  • configuration.yamlに追加した新しいセンサーをロードするには、HomeAssistantを再起動する必要がある場合があることに注意してください

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

返信を残す