DIY Главная Медиа Logo

Конечная сайт для проектирования и создания вашей установке домашнего кинотеатра и Привет-Fi.

0Коллекции корзин в Home Assistant

Я занимаюсь разработкой своего умного дома на основе Home Assistant около года. (с момента ухода из SmartThings) и после начального крутого обучения я был очень доволен домашним помощником, поэтому я начал работать над расширением его функций, поскольку я уверен, что он предлагает долгосрочную основу для моего умного дома. Одна вещь, которую я хотел добавить, - это данные сбора мусорных корзин, чтобы напомнить мне, какая корзина должна быть отправлена, когда. Поскольку я живу в Шеффилде, мне нужно было получить эти данные у местных властей. (Veolia). Следующие подробности, как я это сделал, во многом опираясь на работу других, которые уже сделали это для других регионов

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.

Установите модуль Python BeautifulSoup

  • 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
  • перейти к \\ха-ip-адрес конфигурация
  • 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(URL)
    
    если page.status_code != 200:
        Выход(1)
    
    soup = BeautifulSoup(page.text, 'html.parser')
    
    out = {}
    bh3s = soup.find_all('тд', class_ ="наименование услуги")
    bpds = soup.find_all('тд', class_ ="следующая услуга")
    
    для меня в пределах досягаемости(только(баррелей в сутки)):
        bin_colour = str(bh3s[я].содержание[3]).ниже().Трещина('>')[1].Трещина('')[0]
        из[bin_colour] = parser.parse(баррелей в сутки[я].содержание[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 (так что еще под датчиком: сек-ции) добавить следующее
     - Платформа: шаблон
       датчики:
         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

Думаю, мы что-то упустили? Дайте нам знать, комментируя ниже. Если вы хотите подписаться, используйте ссылку подписки в меню вверху справа.. Вы также можете поделиться этим со своими друзьями, используя приведенные ниже социальные ссылки.. Ваше здоровье.

оставьте ответ