DIY মিডিয়া হোম লোগো

আপনার নিজের হোম থিয়েটার এবং হাই ফাই সেটআপ নকশা ও নির্মাণের জন্য চূড়ান্ত সাইট.

0হোম সহকারী বিন সংগ্রহ

I’ve been devel­op­ing my Home Assist­ant based smarthome setup for around a year now (since leav­ing SmartTh­ings) and after an ini­tial steep learn­ing curve I’ve been veyr happy with home assist­ant so I have star­ted work­ing to expand the things it does as I am con­if­dent it offers a long term basis for my smarthome. One thing I wanted to add was bin col­lec­tion data to remind me which bin is due when. As I live in Shef­field I needed to pull this data from the loc­al author­it­ies out-sources pro­vider (ভোলিয়া). The fol­low­ing details how I did this, build­ing very much on the work of oth­ers who have done it already for oth­er regions

Update 10-Aug-2022

I’ve tweaked the script to make it com­pat­ible with home assist­ant after the switch to Python 3

আপডেট 20-ডিসেম্বর-2021

I’ve made a change to both ths bash script AND the tem­plate — the first to make sure required pack­ages are avail­able and the second to fix a break­ing change made by recent releases of home assistant

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.

একটি স্ক্রিপ্ট যুক্ত করুন

  • 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 পাইথন-স্ক্রিপ্টস ফোল্ডার
  • Cre­ate a new python script in this folder — I called mine বিন_কলেশন.পি
  • Insert the fol­low­ing script
    import sys
    import subprocess
    import pkg_resources
    
    required = {'সুন্দর স্যুপ4', 'পাইথন-ডেটিউটিল', 'requests'}
    ইনস্টল করা = {pkg_resources.working_set-এ pkg-এর জন্য pkg.key}
    অনুপস্থিত = প্রয়োজনীয় - installed
    
    if missing:
        python = sys.executable
        subprocess.check_call([ময়াল সাপ, '-মি', 'pip', 'ইনস্টল', *অনুপস্থিত], stdout=subprocess.DEVNULL)
    
    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)
    
    স্যুপ = বিউটিফুলসুপ(page.text, 'html.parser')
    
    আউট = {}
    bh3s = soup.find_all('টিডি', শ্রেণি_ ="কাজের নাম")
    বিপিডিএস = স্যুপ.ফাইন্ড_ সব('টিডি', শ্রেণি_ ="পরের পরিষেবা")
    
    আমি পরিসীমা মধ্যে(লেন(বিপিডিএস)):
        bin_colour = str(bh3s[i].বিষয়বস্তু[3]).কম().বিভক্ত করা('>')[1].বিভক্ত করা('')[0]
        আউট[bin_colour] = parser.parse(বিপিডিএস[i].বিষয়বস্তু[2].lstrip().বিভক্ত করা(',')[0]).স্ট্রফটাইম('% 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

কনফিগারেশন থেকে আপনার স্ক্রিপ্ট কল করুন

  • কনফিগারেশনে একটি সাধারণ প্রবেশ
  • You may want to adjust the fre­quency of the run. Mine runs once per day.
    সেন্সর:
     - প্ল্যাটফর্ম: command_line
       name: "বিন সংগ্রহ"
       আদেশ: "পাইথন 3 / কনফিগ / স্পিথন- স্ক্রিপ্টস / বিন_কলেশন.পি"
       স্ক্যান_ইন্টারওয়াল: 86400
       কমান্ড_টাইমআউট: 60 #ওয়েবসাইটটি প্রতিক্রিয়া করতে ধীর এবং এটি ডিফল্ট অবস্থায় ছেড়ে গেলে প্রায়শই সময়সীমা অতিক্রম করবে needed
    

কনফিগারেশন.আইএমএল ব্যবহার করে প্রতিটি ধরণের বিনের জন্য সত্তা তৈরি করুন

  • Imme­di­ately under the above sec­tion (সেন্সরের অধীনে এখনও: সেকে-tion) নিম্নলিখিত যোগ করুন
     - প্ল্যাটফর্ম: template
       sensors:
         কালো_বিন:
           ডিভাইস_ক্লাস: timestamp
           value_template: '{{ strptime((রাজ্য("সেন্সর.বিন_কলেকশন")|from_json())["কালো"], "%Y-%m-%d") | হিসাবে_স্থানীয় }}'
           unique_id: "কালো_বিন"
         বাদামী_বিন:
           ডিভাইস_ক্লাস: timestamp
           value_template: '{{ strptime((রাজ্য("সেন্সর.বিন_কলেকশন")|from_json())["বাদামী"], "%Y-%m-%d") | হিসাবে_স্থানীয় }}'
           unique_id: "বাদামী_বিন"
         নীল_বিন:
           ডিভাইস_ক্লাস: timestamp
           value_template: '{{ strptime((রাজ্য("সেন্সর.বিন_কলেকশন")|from_json())["নীল"], "%Y-%m-%d") | হিসাবে_স্থানীয় }}'
           unique_id: "নীল_বিন"
    

সামনের প্রান্তে ফলাফলগুলি প্রদর্শন করুন

  • To show the res­ults on the front end simply add a card with the 3 এটি সেন্সর (spe­cific­ally sensor.black_bin, সেন্সর। ব্লু_বিন, এবং সেন্সর.ব্রাউন_বিন)
  • Note you may need to restart home assist­ant to load the new sensors you added to configuration.yaml

Leave a Reply