├── .gitignore ├── automations.yaml ├── configuration.yaml ├── custom_components └── hacs │ ├── iconset.js │ └── services.yaml ├── customize.yaml ├── includes ├── binary_sensor.yaml ├── camera.yaml ├── cover.yaml ├── device_tracker.yaml ├── google.yaml ├── google_assistant.yaml ├── group.yaml ├── input_number.yaml ├── input_select.yaml ├── joaoapps_join.yaml ├── media_player.yaml ├── mqtt.yaml ├── notify.yaml ├── panel_iframe.yaml.disabled ├── recorder.yaml ├── remote.yaml ├── rest_command.yaml ├── sensor │ ├── binary_sensor.yaml │ ├── calendar.yaml │ ├── cert.yaml │ ├── clock.yaml │ ├── command_line.yaml │ ├── denon_volume.yaml │ ├── harmony_current_activity.yaml │ ├── plex_recently_added.yaml │ ├── radarr_upcoming_media.yaml │ ├── shellyht.yaml │ ├── sonarr_upcoming_media.yaml │ └── trash.yaml ├── shell_command.yaml ├── switch.yaml ├── themes.yaml ├── themes.yaml.bak ├── timer.yaml ├── weather.yaml └── zone.yaml ├── scripts.yaml ├── themes ├── clear-dark │ └── clear-dark.yaml ├── material_dark_pink │ └── material_dark_pink.yaml └── slate │ └── slate.yaml └── www ├── bg.jpg ├── bg2.jpg ├── community ├── swipe-card │ └── swipe-card.js └── upcoming-media-card │ └── upcoming-media-card.js ├── custom-lovelace └── upcoming-media-card │ └── images │ └── plex │ ├── f14120.jpg │ ├── f14121.jpg │ ├── f14122.jpg │ ├── f14130.jpg │ ├── f14131.jpg │ ├── p14120.jpg │ ├── p14121.jpg │ ├── p14122.jpg │ ├── p14130.jpg │ └── p14131.jpg ├── custom_ui ├── beer-card.js ├── column-card.js ├── content-card-example.js ├── custom-weather-card.html ├── shopping-card.js ├── vertical-stack-in-card.js ├── weather-card.css └── weather-card.js ├── icons ├── media_icons │ ├── LHarmonyBG-Dark.jpg │ ├── LHarmonyBG-Dark.png │ ├── LHarmonyBG.jpg │ ├── LHarmonyBG2.jpg │ ├── LHarmonyBG_Dark.jpg │ ├── LHarmonyBG_Dark.png │ ├── arrow-down.png │ ├── arrow-left.png │ ├── arrow-right.png │ ├── arrow-up.png │ ├── arrow_bg.png │ ├── arrow_dn.png │ ├── arrow_lf.png │ ├── arrow_rt.png │ ├── arrow_up.png │ ├── bg-blank.png │ ├── horizontalRule.png │ ├── horizontal_Rule.png │ ├── kodi-logo.png │ ├── nintendo_switch_logo.png │ ├── playstation_logo.png │ ├── plex-logo.png │ ├── plex-logo_active.png │ ├── power-logo.png │ ├── power-logo_active.png │ ├── power_off_red.png │ ├── rxv677_transparent.png │ ├── sony_logo.png │ ├── switch-logo.png │ ├── switch-logo_active.png │ ├── volBorder.png │ ├── vol_+.png │ ├── vol_+_active.png │ ├── vol_-.png │ ├── vol_-_active.png │ ├── vol_btn_border.png │ ├── wiiu_logo.png │ ├── windows_logo.png │ ├── xbox-logo-active.png │ ├── xbox-logo.png │ └── xbox_one_logo.png └── weather_icons │ ├── animated │ ├── cloudy-day-1.svg │ ├── cloudy-day-2.svg │ ├── cloudy-day-3.svg │ ├── cloudy-night-1.svg │ ├── cloudy-night-2.svg │ ├── cloudy-night-3.svg │ ├── cloudy.svg │ ├── day.svg │ ├── night.svg │ ├── rainy-1.svg │ ├── rainy-2.svg │ ├── rainy-3.svg │ ├── rainy-4.svg │ ├── rainy-5.svg │ ├── rainy-6.svg │ ├── rainy-7.svg │ ├── snowy-1.svg │ ├── snowy-2.svg │ ├── snowy-3.svg │ ├── snowy-4.svg │ ├── snowy-5.svg │ ├── snowy-6.svg │ ├── thunder.svg │ ├── weather-sprite.svg │ ├── weather.svg │ ├── weather_sagittarius.svg │ └── weather_sunset.svg │ └── static │ ├── cloudy-day-1.svg │ ├── cloudy-day-2.svg │ ├── cloudy-day-3.svg │ ├── cloudy-night-1.svg │ ├── cloudy-night-2.svg │ ├── cloudy-night-3.svg │ ├── cloudy.svg │ ├── day.svg │ ├── night.svg │ ├── rainy-1.svg │ ├── rainy-2.svg │ ├── rainy-3.svg │ ├── rainy-4.svg │ ├── rainy-5.svg │ ├── rainy-6.svg │ ├── rainy-7.svg │ ├── snowy-1.svg │ ├── snowy-2.svg │ ├── snowy-3.svg │ ├── snowy-4.svg │ ├── snowy-5.svg │ ├── snowy-6.svg │ ├── thunder.svg │ ├── weather-sprite.svg │ ├── weather.svg │ ├── weather_sagittarius.svg │ └── weather_sunset.svg └── weather_icons └── animated ├── cloudy-day-1.svg ├── cloudy-day-2.svg ├── cloudy-day-3.svg ├── cloudy-fog.svg ├── cloudy-night-1.svg ├── cloudy-night-2.svg ├── cloudy-night-3.svg ├── cloudy.svg ├── day.svg ├── foggy-1.svg ├── foggy-2.svg ├── night.svg ├── rainy-1.svg ├── rainy-2.svg ├── rainy-3.svg ├── rainy-4.svg ├── rainy-5.svg ├── rainy-6.svg ├── rainy-7.svg ├── snowy-1.svg ├── snowy-2.svg ├── snowy-3.svg ├── snowy-4.svg ├── snowy-5.svg ├── snowy-6.svg ├── thunder-rainy.svg ├── thunder-rainy1.svg ├── thunder.svg ├── weather-sprite.svg ├── weather.svg ├── weather_sagittarius.svg ├── weather_sunset.svg ├── windy-1.svg ├── windy-2.svg ├── windy-3.svg └── windy-4.svg /.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !*/ 3 | !*.yaml 4 | !*.jpg 5 | !*.png 6 | !*.js 7 | !*.svg 8 | !*.css 9 | !*.html 10 | !.gitignore 11 | /custom_components/** 12 | secrets.yaml 13 | known_devices.yaml 14 | google_calendars.yaml 15 | google3864d8aceb1965f0.html 16 | home-assistant_v2.db 17 | matt.jpg 18 | sheila.jpg 19 | lexi.jpg 20 | !/includes/** 21 | !/includes/sensor/** 22 | !/includes/www/custom_ui/** 23 | !/includes/www/icons/** 24 | !/includes/www/weather_icons/** 25 | -------------------------------------------------------------------------------- /configuration.yaml: -------------------------------------------------------------------------------- 1 | homeassistant: 2 | customize: !include customize.yaml 3 | 4 | 5 | #removing default_config and enebling only what i want 6 | #default_config: 7 | automation: !include automations.yaml 8 | cloud: 9 | config: 10 | frontend: 11 | extra_html_url: 12 | - /local/custom_ui/custom-weather-card.html 13 | extra_html_url_es5: 14 | - /local/custom_ui/custom-weather-card.html 15 | themes: !include includes/themes.yaml 16 | javascript_version: latest 17 | history: 18 | logbook: 19 | #map: 20 | mobile_app: 21 | person: 22 | script: !include scripts.yaml 23 | ssdp: 24 | sun: 25 | system_health: 26 | updater: 27 | zeroconf: 28 | #zone: !include includes/zone.yaml 29 | #end default_config 30 | 31 | google_assistant: !include includes/google_assistant.yaml 32 | http: 33 | ssl_certificate: /ssl/fullchain.pem 34 | ssl_key: /ssl/privkey.pem 35 | ip_ban_enabled: False 36 | login_attempts_threshold: 5 37 | discovery: 38 | conversation: 39 | shopping_list: 40 | timer: !include includes/timer.yaml 41 | sensor: !include_dir_merge_list includes/sensor/ 42 | binary_sensor: !include includes/binary_sensor.yaml 43 | weather: !include includes/weather.yaml 44 | camera: !include includes/camera.yaml 45 | remote: !include includes/remote.yaml 46 | device_tracker: !include includes/device_tracker.yaml 47 | notify: !include includes/notify.yaml 48 | google: !include includes/google.yaml 49 | input_number: !include includes/input_number.yaml 50 | rest_command: !include includes/rest_command.yaml 51 | cover: !include includes/cover.yaml 52 | media_player: !include includes/media_player.yaml 53 | joaoapps_join: !include includes/joaoapps_join.yaml 54 | recorder: !include includes/recorder.yaml 55 | shell_command: !include includes/shell_command.yaml 56 | switch: !include includes/switch.yaml 57 | group: !include includes/group.yaml 58 | 59 | -------------------------------------------------------------------------------- /custom_components/hacs/iconset.js: -------------------------------------------------------------------------------- 1 | const iconset = document.createElement("ha-iconset-svg"); 2 | iconset.name = "hacs"; 3 | iconset.size = "1024"; 4 | iconset.innerHTML = ` 5 | 7 | 8 | 10 | 11 | 15 | 17 | 18 | 19 | 20 | 22 | 25 | 30 | 31 | 32 | 33 | ` 34 | document.body.appendChild(iconset); -------------------------------------------------------------------------------- /custom_components/hacs/services.yaml: -------------------------------------------------------------------------------- 1 | install: 2 | description: This is NOT intended to be used here, this is intended for developers! 3 | fields: 4 | repository: 5 | description: The repository ID 6 | example: '"123456789"' 7 | register: 8 | description: This is NOT intended to be used here, this is intended for developers! 9 | fields: 10 | repository: 11 | description: The full name of the repository 12 | example: 'developer/repo' 13 | repository_type: 14 | description: The repository type 15 | example: 'plugin' -------------------------------------------------------------------------------- /customize.yaml: -------------------------------------------------------------------------------- 1 | sensor.trash_pickup_day: 2 | friendly_name: Trash Pickup 3 | icon: mdi:delete 4 | sensor.recycling_pickup_day: 5 | friendly_name: Recycling Pickup 6 | icon: mdi:recycle 7 | sensor.matt_event_title: 8 | icon: mdi:calendar 9 | sensor.matt_event_end: 10 | icon: none 11 | sensor.matt_event_start: 12 | icon: none 13 | script.volume_down: 14 | icon: mdi:volume-low 15 | script.volume_up: 16 | icon: mdi:volume-high 17 | cover.double: 18 | device_class: garage 19 | homebridge_cover_type: garage_door 20 | google_assistant: true 21 | google_assistant_type: switch 22 | automation.server_status_dns: 23 | icon: mdi:server-network 24 | automation.server_status_freenas: 25 | icon: mdi:server-network 26 | automation.server_status_lidarr: 27 | icon: mdi:server-network 28 | automation.server_status_organizr: 29 | icon: mdi:server-network 30 | automation.server_status_plex: 31 | icon: mdi:server-network 32 | automation.server_status_radarr: 33 | icon: mdi:server-network 34 | automation.server_status_sabnzbd: 35 | icon: mdi:server-network 36 | automation.server_status_sonarr: 37 | icon: mdi:server-network 38 | person.sheila: 39 | entity_picture: /local/sheila.jpg 40 | picture_entity: /local/sheila.jpg 41 | person.alexis: 42 | entity_picture: /local/lexi.jpg 43 | person.matt: 44 | entity_picture: /local/matt.jpg 45 | device_tracker.galaxy_j3_v: 46 | entity_picture: /local/lexi.jpg 47 | device_tracker.sm_j337v: 48 | entity_picture: /local/lexi.jpg 49 | -------------------------------------------------------------------------------- /includes/binary_sensor.yaml: -------------------------------------------------------------------------------- 1 | - platform: workday 2 | country: US 3 | workdays: [mon, tue, wed, thu, fri] 4 | excludes: [sat, sun, holiday] -------------------------------------------------------------------------------- /includes/camera.yaml: -------------------------------------------------------------------------------- 1 | - platform: generic 2 | still_image_url: https://radblast.wunderground.com/cgi-bin/radar/WUNIDS_map?station=LSX&brand=wui&num=8&delay=15&type=N0R&frame=0&scale=1.000&noclutter=0&showstorms=0&mapx=400&mapy=240¢erx=400¢ery=240&transx=0&transy=0&showlabels=1&severe=0&rainsnow=1&lightning=1&smooth=0&rand=25328223&lat=0&lon=0&label=you 3 | name: Radar -------------------------------------------------------------------------------- /includes/cover.yaml: -------------------------------------------------------------------------------- 1 | - platform: mqtt 2 | name: "double" 3 | state_topic: "sensor/garage/state1" 4 | command_topic: "sensor/garage/action1" 5 | payload_open: "OPEN" 6 | payload_close: "OPEN" 7 | payload_stop: "OPEN" 8 | state_open: "open" 9 | state_closed: "closed" 10 | #optomistic: false 11 | retain: false 12 | -------------------------------------------------------------------------------- /includes/device_tracker.yaml: -------------------------------------------------------------------------------- 1 | # - platform: tplink 2 | # host: 192.168.1.254 3 | # username: !secret routerUser 4 | # password: !secret routerPW 5 | - platform: nmap_tracker 6 | hosts: 192.168.1.100-253 7 | consider_home: 600 8 | 9 | - platform: bluetooth_tracker 10 | # - platform: owntracks 11 | 12 | 13 | # - platform: google_maps 14 | # username: !secret google_maps_user 15 | # password: !secret google_maps_user_pw 16 | -------------------------------------------------------------------------------- /includes/google.yaml: -------------------------------------------------------------------------------- 1 | client_id: !secret google_client_id 2 | client_secret: !secret google_client_secret -------------------------------------------------------------------------------- /includes/google_assistant.yaml: -------------------------------------------------------------------------------- 1 | project_id: !secret google_assistant_projectID 2 | secure_devices_pin: !secret google_home_pin 3 | exposed_domains: 4 | - cover 5 | - media_player 6 | -------------------------------------------------------------------------------- /includes/group.yaml: -------------------------------------------------------------------------------- 1 | family: 2 | name: Family 3 | entities: 4 | - person.matt 5 | - person.sheila 6 | - person.alexis 7 | -------------------------------------------------------------------------------- /includes/input_number.yaml: -------------------------------------------------------------------------------- 1 | denon_volume: 2 | name: Media Volume 3 | icon: mdi:volume-medium 4 | initial: 0 5 | min: 0 6 | max: 85 7 | step: 0.5 8 | unit_of_measurement: "%" -------------------------------------------------------------------------------- /includes/input_select.yaml: -------------------------------------------------------------------------------- 1 | # remote: 2 | # name: Media Center Remote 3 | # options: 4 | # - PowerOff 5 | # - ShieldTV 6 | # - XBoxOne 7 | # - Switch 8 | # icon: mdi:remote 9 | -------------------------------------------------------------------------------- /includes/joaoapps_join.yaml: -------------------------------------------------------------------------------- 1 | - name: mattgs9 2 | device_id: !secret joinDeviceIdMattPhone 3 | api_key: !secret joinAPI -------------------------------------------------------------------------------- /includes/media_player.yaml: -------------------------------------------------------------------------------- 1 | # - platform: plex 2 | # entity_namespace: 'plex' 3 | # include_non_clients: true 4 | # scan_interval: 5 5 | # show_all_controls: false 6 | # use_custom_entity_ids: true 7 | # use_episode_art: true 8 | # remove_unavailable_clients: true 9 | # client_remove_interval: 600 10 | 11 | 12 | - platform: denonavr 13 | host: 192.168.1.90 14 | name: Denon AVR-X1000 15 | show_all_sources: false 16 | timeout: 2 -------------------------------------------------------------------------------- /includes/mqtt.yaml: -------------------------------------------------------------------------------- 1 | discovery: true 2 | discovery_prefix: homeassistant 3 | #broker: !secret mqtt_ip 4 | #username: !secret mqtt_user 5 | #password: !secret mqtt_pw 6 | -------------------------------------------------------------------------------- /includes/notify.yaml: -------------------------------------------------------------------------------- 1 | - name: Pushover 2 | platform: pushover 3 | api_key: !secret pushover_api_key 4 | user_key: !secret pushover_user_key 5 | 6 | #- platform: joaoapps_join 7 | # device_id: group.all 8 | # name: all 9 | # api_key: !secret joinAPI 10 | 11 | #- platform: joaoapps_join 12 | # device_id: !secret joinDeviceIdMattPhone 13 | # name: mattGS9 14 | # api_key: !secret joinAPI 15 | 16 | - platform: html5 17 | name: google_cloud_messaging 18 | vapid_pub_key: !secret vapid_pub_key 19 | vapid_prv_key: !secret vapid_pvt_key 20 | vapid_email: !secret matt_email 21 | #gcm_api_key: !secret google_cloud_messaging_aip_key 22 | #gcm_sender_id: !secret google_cloud_messaging_sender_id 23 | -------------------------------------------------------------------------------- /includes/panel_iframe.yaml.disabled: -------------------------------------------------------------------------------- 1 | configurator: 2 | title: Configurator 3 | icon: mdi:wrench 4 | url: !secret configurator_url 5 | -------------------------------------------------------------------------------- /includes/recorder.yaml: -------------------------------------------------------------------------------- 1 | purge_keep_days: 2 2 | purge_interval: 2 -------------------------------------------------------------------------------- /includes/remote.yaml: -------------------------------------------------------------------------------- 1 | - platform: harmony 2 | name: Living Room 3 | host: !secret harmony_ip 4 | activity: SHIELD TV 5 | 6 | -------------------------------------------------------------------------------- /includes/rest_command.yaml: -------------------------------------------------------------------------------- 1 | set_volume: 2 | url: 'http://192.168.1.90/goform/formiPhoneAppDirect.xml?MV{{ states("input_number.denon_volume").replace(".", "") }}' 3 | volume_up: 4 | url: 'http://192.168.1.90/goform/formiPhoneAppDirect.xml?MVUP' 5 | volume_down: 6 | url: 'http://192.168.1.90/goform/formiPhoneAppDirect.xml?MVDOWN' 7 | volume_correct: 8 | url: 'http://192.168.1.90/goform/formiPhoneAppDirect.xml?MV35' -------------------------------------------------------------------------------- /includes/sensor/binary_sensor.yaml: -------------------------------------------------------------------------------- 1 | - platform: command_line 2 | name: 'sabnzbd' 3 | command: curl -m 3 -s http://192.168.1.21:8080/ > /dev/null && echo ON || echo OFF 4 | scan_interval: 33 5 | 6 | - platform: command_line 7 | name: 'plex' 8 | command: curl -m 3 -s http://media_server.local/web/index.html/ > /dev/null && echo ON || echo OFF 9 | scan_interval: 33 10 | 11 | - platform: command_line 12 | name: 'radarr' 13 | command: curl -m 3 -s http://192.168.1.30:7878/ > /dev/null && echo ON || echo OFF 14 | scan_interval: 33 15 | 16 | - platform: command_line 17 | name: 'sonarr' 18 | command: curl -m 3 -s http://192.168.1.21:8080/ > /dev/null && echo ON || echo OFF 19 | scan_interval: 33 20 | 21 | - platform: command_line 22 | name: 'lidarr' 23 | command: curl -m 3 -s http://192.168.1.27:8686/ > /dev/null && echo ON || echo OFF 24 | scan_interval: 33 25 | 26 | - platform: command_line 27 | name: 'organizr' 28 | command: curl -m 3 -s http://192.168.1.25:80/ > /dev/null && echo ON || echo OFF 29 | scan_interval: 33 30 | 31 | - platform: command_line 32 | name: 'freenas' 33 | command: curl -m 3 -s http://192.168.1.10:80/ > /dev/null && echo ON || echo OFF 34 | scan_interval: 33 35 | 36 | - platform: command_line 37 | name: 'dns' 38 | command: curl -m 3 -s http://192.168.1.42:80/ > /dev/null && echo ON || echo OFF 39 | scan_interval: 33 40 | 41 | - platform: template 42 | sensors: 43 | recycling_pickup_tomorrow: 44 | friendly_name: "Recycling Pick-up is Tomorrow" 45 | value_template: >- 46 | {%- set pickupday = strptime(states.calendar.recycling_pick_up.attributes.start_time, "%Y-%m-%d %H:%M:%S").strftime("%Y-%m-%d") -%} 47 | {%- if pickupday.split("-")[2] | int -1 == states.sensor.date.state.split("-")[2] | int -%} 48 | true 49 | {% else %} 50 | false 51 | {%- endif -%} 52 | 53 | - platform: template 54 | sensors: 55 | trash_pickup_tomorrow: 56 | friendly_name: "Trash Pick-up is Tomorrow" 57 | value_template: >- 58 | {%- set pickupday = strptime(states.calendar.trash_pick_up.attributes.start_time, "%Y-%m-%d %H:%M:%S").strftime("%Y-%m-%d") -%} 59 | {%- if pickupday.split("-")[2] | int -1 == states.sensor.date.state.split("-")[2] | int -%} 60 | true 61 | {% else %} 62 | false 63 | {%- endif -%} 64 | 65 | -------------------------------------------------------------------------------- /includes/sensor/calendar.yaml: -------------------------------------------------------------------------------- 1 | # Calendar Tempalate Sensor 2 | - platform: template 3 | sensors: 4 | matt_event_title: 5 | friendly_name: Event 6 | value_template: "{{ states.calendar.mattlclairgmailcom.attributes.message }}" 7 | - platform: template 8 | sensors: 9 | matt_event_start: 10 | friendly_name: Start Time 11 | value_template: "{{ states.calendar.mattlclairgmailcom.attributes.start_time }}" 12 | - platform: template 13 | sensors: 14 | matt_event_end: 15 | friendly_name: End Time 16 | value_template: "{{ states.calendar.mattlclairgmailcom.attributes.end_time }}" -------------------------------------------------------------------------------- /includes/sensor/cert.yaml: -------------------------------------------------------------------------------- 1 | - platform: cert_expiry 2 | host: cfautomation.duckdns.org 3 | -------------------------------------------------------------------------------- /includes/sensor/clock.yaml: -------------------------------------------------------------------------------- 1 | - platform: yr 2 | - platform: time_date 3 | display_options: 4 | - 'time' 5 | - 'date' 6 | - 'date_time' 7 | - 'time_date' 8 | - 'time_utc' 9 | - 'beat' 10 | -------------------------------------------------------------------------------- /includes/sensor/command_line.yaml: -------------------------------------------------------------------------------- 1 | - platform: command_line 2 | name: shopping_list 3 | command: python3 /config/shopping_list.py 4 | scan_interval: 20 5 | -------------------------------------------------------------------------------- /includes/sensor/denon_volume.yaml: -------------------------------------------------------------------------------- 1 | # Denon Receiver Volume Template Sensor 2 | - platform: template 3 | sensors: 4 | denon_volume: 5 | value_template: > 6 | {% if is_state('media_player.denon_avr_x1000', 'on') %} 7 | {% set n = states.media_player.denon_avr_x1000.attributes.volume_level | float %} 8 | {{ '%.1f'%( n*100.0|round(0.0) ) }} 9 | {% else %} 10 | "0" 11 | {% endif %} 12 | friendly_name: Reciever Volume Level 13 | unit_of_measurement: "%" 14 | icon_template: mdi:volume-medium 15 | -------------------------------------------------------------------------------- /includes/sensor/harmony_current_activity.yaml: -------------------------------------------------------------------------------- 1 | # Harmony Remote Status Tempalate Sensor 2 | - platform: template 3 | sensors: 4 | harmony_remote_activity: 5 | value_template: > 6 | {% if is_state("remote.living_room", 'on') %} 7 | {{ states.remote.living_room.attributes.current_activity }} 8 | {% else %} 9 | PowerOff 10 | {% endif %} 11 | -------------------------------------------------------------------------------- /includes/sensor/plex_recently_added.yaml: -------------------------------------------------------------------------------- 1 | - platform: plex_recently_added 2 | token: !secret plex_token 3 | host: !secret plex_ip 4 | port: !secret plex_port -------------------------------------------------------------------------------- /includes/sensor/radarr_upcoming_media.yaml: -------------------------------------------------------------------------------- 1 | - platform: radarr_upcoming_media 2 | api_key: !secret radarr_api 3 | host: !secret radarr_ip 4 | port: 7878 5 | days: 120 6 | theaters: false -------------------------------------------------------------------------------- /includes/sensor/shellyht.yaml: -------------------------------------------------------------------------------- 1 | #Shelly HT Running on Static IP 192.168.1.99 2 | - platform: mqtt 3 | name: "Shelly_HT_Temp" 4 | state_topic: "shellies/shellyht-22C4B6/sensor/temperature" 5 | unit_of_measurement: '°F' 6 | 7 | - platform: mqtt 8 | name: "Shelly_HT_Humidity" 9 | state_topic: "shellies/shellyht-22C4B6/sensor/humidity" 10 | unit_of_measurement: '%' 11 | 12 | - platform: mqtt 13 | name: "Shelly_HT_Battery" 14 | state_topic: "shellies/shellyht-22C4B6/sensor/battery" 15 | unit_of_measurement: '%' 16 | -------------------------------------------------------------------------------- /includes/sensor/sonarr_upcoming_media.yaml: -------------------------------------------------------------------------------- 1 | - platform: sonarr_upcoming_media 2 | api_key: !secret sonarr_api 3 | host: !secret sonarr_ip 4 | port: 8989 5 | days: 5 -------------------------------------------------------------------------------- /includes/sensor/trash.yaml: -------------------------------------------------------------------------------- 1 | # Trash Tempalate Sensor 2 | - platform: template 3 | sensors: 4 | trash_pickup_day: 5 | friendly_name: Trash Pick-Up 6 | value_template: >- 7 | {%- set pickupday = strptime(states.calendar.trash_pick_up.attributes.start_time, "%Y-%m-%d %H:%M:%S").strftime("%Y-%m-%d") -%} 8 | {%- if pickupday == states.sensor.date.state -%} 9 | Today 10 | {%- elif pickupday.split("-")[2] | int -1 == states.sensor.date.state.split("-")[2] | int -%} 11 | Tomorrow 12 | {% else %} 13 | {{as_timestamp(states.calendar.trash_pick_up.attributes.start_time) | timestamp_custom("%A %B %d",true)}} 14 | {% endif %} 15 | 16 | # Recycling Tempalate Sensor 17 | - platform: template 18 | sensors: 19 | recycling_pickup_day: 20 | friendly_name: Recycleing Pick-Up 21 | value_template: >- 22 | {%- set pickupday = strptime(states.calendar.recycling_pick_up.attributes.start_time, "%Y-%m-%d %H:%M:%S").strftime("%Y-%m-%d") -%} 23 | {%- if pickupday == states.sensor.date.state -%} 24 | Today 25 | {%- elif pickupday.split("-")[2] | int -1 == states.sensor.date.state.split("-")[2] | int -%} 26 | Tomorrow 27 | {% else %} 28 | {{as_timestamp(states.calendar.recycling_pick_up.attributes.start_time) | timestamp_custom("%A %B %d",true)}} 29 | {% endif %} -------------------------------------------------------------------------------- /includes/shell_command.yaml: -------------------------------------------------------------------------------- 1 | renew_ssl: ~/certbot/certbot-auto renew --quiet --no-self-upgrade --standalone --preferred-challenges http-01 -------------------------------------------------------------------------------- /includes/switch.yaml: -------------------------------------------------------------------------------- 1 | - platform: template 2 | switches: 3 | # ZONE 1 MEDIA SWITCH 4 | zone_1: 5 | value_template: "{{ is_state('media_player.denon_avr_x1000', 'on') }}" 6 | turn_on: 7 | service: media_player.turn_on 8 | entity_id: media_player.denon_avr_x1000 9 | turn_off: 10 | service: media_player.turn_off 11 | entity_id: media_player.denon_avr_x1000 12 | 13 | 14 | # XBOX HARMONY ACTIVITY 15 | xbox_one: 16 | value_template: "{{ is_state_attr('remote.living_room', 'current_activity', 'Play XBox One') }}" 17 | turn_on: 18 | service: remote.turn_on 19 | data: 20 | entity_id: remote.living_room 21 | activity: 'Play XBox One' 22 | turn_off: 23 | service: remote.turn_on 24 | data: 25 | entity_id: remote.living_room 26 | activity: 'PowerOff' 27 | 28 | 29 | 30 | # SWITCH HARMONY ACTIVITY 31 | switch: 32 | value_template: "{{ is_state_attr('remote.living_room', 'current_activity', 'Play Nintendo Switch') }}" 33 | turn_on: 34 | service: remote.turn_on 35 | data: 36 | entity_id: remote.living_room 37 | activity: 'Play Nintendo Switch' 38 | turn_off: 39 | service: remote.turn_on 40 | data: 41 | entity_id: remote.living_room 42 | activity: 'PowerOff' 43 | 44 | # SHIELD TV HARMONY ACTIVITY 45 | shield_tv: 46 | value_template: "{{ is_state_attr('remote.living_room', 'current_activity', 'SHIELD TV') }}" 47 | turn_on: 48 | service: remote.turn_on 49 | data: 50 | entity_id: remote.living_room 51 | activity: 'SHIELD TV' 52 | turn_off: 53 | service: remote.turn_on 54 | data: 55 | entity_id: remote.living_room 56 | activity: 'PowerOff' 57 | 58 | # AUDIO 1, USED FOR ECHO AND MUSIC ZONE 1 59 | #audio_1: 60 | #value_template: "{{ is_state_attr('media_player.yamaha_receiver', 'source', 'Echo') and is_state('switch.floating_outlet_switch', 'on') }}" 61 | #turn_on: 62 | #- service: switch.turn_on 63 | #entity_id: switch.floating_outlet_switch 64 | #- service: media_player.turn_on 65 | #entity_id: media_player.yamaha_receiver 66 | #- service: media_player.select_source 67 | #data: 68 | #entity_id: media_player.yamaha_receiver 69 | #source: Echo 70 | #- service: media_player.volume_set 71 | #data: 72 | #entity_id: media_player.yamaha_receiver 73 | #volume_level: 0.7 74 | #turn_off: 75 | #- service: switch.turn_off 76 | #entity_id: switch.floating_outlet_switch 77 | #- service: media_player.turn_off 78 | #entity_id: media_player.yamaha_receiver 79 | -------------------------------------------------------------------------------- /includes/themes.yaml: -------------------------------------------------------------------------------- 1 | slate: 2 | # Main colors 3 | primary-color: '#2980b9' 4 | accent-color: '#b58e31' 5 | dark-primary-color: '#2980b9' 6 | light-primary-color: '#2980b9' 7 | # Text colors 8 | primary-text-color: '#FFFFFF' 9 | text-primary-color: 'var(--primary-text-color)' 10 | secondary-text-color: '#b58e31' 11 | disabled-text-color: '#777777' 12 | label-badge-border-color: 'green' 13 | # Sidebar 14 | sidebar-icon-color: '#777777' 15 | # Background colors 16 | primary-background-color: '#222222' 17 | secondary-background-color: '#222222' 18 | divider-color: 'rgba(0, 0, 0, .12)' 19 | table-row-background-color: '#292929' 20 | table-row-alternative-background-color: '#292929' 21 | # Nav Menu 22 | paper-listbox-color: '#777777' 23 | paper-listbox-background-color: '#141414' 24 | paper-grey-50: 'var(--primary-text-color)' 25 | paper-grey-200: '#222222' 26 | # Paper card 27 | paper-card-header-color: '#2980b9' 28 | paper-card-background-color: '#292929' 29 | paper-dialog-background-color: '#292929' 30 | paper-item-icon-color: 'var(--primary-text-color)' 31 | paper-item-icon-active-color: '#b58e31' 32 | paper-item-icon_-_color: 'green' 33 | paper-item-selected_-_background-color: '#292929' 34 | paper-tabs-selection-bar-color: 'green' 35 | # Labels 36 | label-badge-red: 'var(--primary-color)' 37 | label-badge-text-color: 'var(--primary-text-color)' 38 | label-badge-background-color: '#222222' 39 | # Switches 40 | paper-toggle-button-checked-button-color: '#2980b9' 41 | paper-toggle-button-checked-bar-color: '#2980b9' 42 | paper-toggle-button-checked-ink-color: '#2980b9' 43 | paper-toggle-button-unchecked-button-color: 'var(--disabled-text-color)' 44 | paper-toggle-button-unchecked-bar-color: 'var(--disabled-text-color)' 45 | paper-toggle-button-unchecked-ink-color: 'var(--disabled-text-color)' 46 | # Sliders 47 | paper-slider-knob-color: '#2980b9' 48 | paper-slider-knob-start-color: '#2980b9' 49 | paper-slider-pin-color: '#2980b9' 50 | paper-slider-active-color: '#2980b9' 51 | paper-slider-container-color: 'linear-gradient(var(--primary-background-color), var(--secondary-background-color)) no-repeat' 52 | paper-slider-secondary-color: 'var(--secondary-background-color)' 53 | paper-slider-disabled-active-color: 'var(--disabled-text-color)' 54 | paper-slider-disabled-secondary-color: 'var(--disabled-text-color)' 55 | # Google colors 56 | google-red-500: '#b93829' 57 | google-green-500: '#2980b9' 58 | # Changes to fix history/logbook menus 59 | lumo-primary-text-color: '#2980b9' 60 | lumo-secondary-text-color: '#2980b9' 61 | lumo-primary-color: '#2980b9' 62 | # Calendar day numbers 63 | lumo-body-text-color: '#b58e31' 64 | # Calendar/Date-Picker Background 65 | lumo-base-color: '#222222' 66 | # Month/Year header 67 | lumo-header-text-color: 'var(--lumo-body-text-color)' 68 | # DayOfWeek Header 69 | lumo-tertiary-text-color: 'var(--lumo-body-text-color)' 70 | lumo-shade: '#222222' 71 | lumo-shade-90pct: 'rgba(34, 34, 34, .9)' 72 | lumo-shade-80pct: 'rgba(34, 34, 34, .8)' 73 | lumo-shade-70pct: 'rgba(34, 34, 34, .7)' 74 | lumo-shade-60pct: 'rgba(34, 34, 34, .6)' 75 | lumo-shade-50pct: 'rgba(34, 34, 34, .5)' 76 | lumo-shade-40pct: 'rgba(34, 34, 34, .4)' 77 | lumo-shade-30pct: 'rgba(34, 34, 34, .3)' 78 | lumo-shade-20pct: 'rgba(34, 34, 34, .2)' 79 | lumo-shade-10pct: 'rgba(34, 34, 34, .1)' 80 | lumo-shade-5pct: 'rgba(34, 34, 34, .05)' 81 | lumo-tint-5pct: '#222222' 82 | # fix for device configuration screen 83 | card-background-color: "var(--paper-card-background-color)" -------------------------------------------------------------------------------- /includes/themes.yaml.bak: -------------------------------------------------------------------------------- 1 | transparent_pannel: 2 | paper-card-background-color: 'rgba(255, 255, 255, 0.8)' 3 | background: center / cover no-repeat url("/local/bg.jpg") fixed 4 | 5 | slate: 6 | # Main colors 7 | primary-color: '#2980b9' 8 | accent-color: '#b58e31' 9 | dark-primary-color: '#2980b9' 10 | light-primary-color: '#2980b9' 11 | # Text colors 12 | primary-text-color: '#FFFFFF' 13 | text-primary-color: 'var(--primary-text-color)' 14 | secondary-text-color: '#b58e31' 15 | disabled-text-color: '#777777' 16 | label-badge-border-color: 'green' 17 | # Sidebar 18 | sidebar-icon-color: '#777777' 19 | # Background colors 20 | primary-background-color: '#222222' 21 | secondary-background-color: '#222222' 22 | divider-color: 'rgba(0, 0, 0, .12)' 23 | table-row-background-color: '#292929' 24 | table-row-alternative-background-color: '#292929' 25 | # Nav Menu 26 | paper-listbox-color: '#777777' 27 | paper-listbox-background-color: '#141414' 28 | paper-grey-50: 'var(--primary-text-color)' 29 | paper-grey-200: '#222222' 30 | # Paper card 31 | paper-card-header-color: '#2980b9' 32 | paper-card-background-color: '#292929' 33 | paper-dialog-background-color: '#292929' 34 | paper-item-icon-color: 'var(--primary-text-color)' 35 | paper-item-icon-active-color: '#b58e31' 36 | paper-item-icon_-_color: 'green' 37 | paper-item-selected_-_background-color: '#292929' 38 | paper-tabs-selection-bar-color: 'green' 39 | # Labels 40 | label-badge-red: 'var(--primary-color)' 41 | label-badge-text-color: 'var(--primary-text-color)' 42 | label-badge-background-color: '#222222' 43 | # Switches 44 | paper-toggle-button-checked-button-color: '#2980b9' 45 | paper-toggle-button-checked-bar-color: '#2980b9' 46 | paper-toggle-button-checked-ink-color: '#2980b9' 47 | paper-toggle-button-unchecked-button-color: 'var(--disabled-text-color)' 48 | paper-toggle-button-unchecked-bar-color: 'var(--disabled-text-color)' 49 | paper-toggle-button-unchecked-ink-color: 'var(--disabled-text-color)' 50 | # Sliders 51 | paper-slider-knob-color: '#2980b9' 52 | paper-slider-knob-start-color: '#2980b9' 53 | paper-slider-pin-color: '#2980b9' 54 | paper-slider-active-color: '#2980b9' 55 | paper-slider-container-color: 'linear-gradient(var(--primary-background-color), var(--secondary-background-color)) no-repeat' 56 | paper-slider-secondary-color: 'var(--secondary-background-color)' 57 | paper-slider-disabled-active-color: 'var(--disabled-text-color)' 58 | paper-slider-disabled-secondary-color: 'var(--disabled-text-color)' 59 | # Google colors 60 | google-red-500: '#b58e31' 61 | google-green-500: '#2980b9' 62 | #Changes to fix history/logbook menus 63 | lumo-primary-text-color: '#2980b9' 64 | lumo-secondary-text-color: '#2980b9' 65 | lumo-primary-color: '#2980b9' 66 | #Calendar day numbers 67 | lumo-body-text-color: '#b58e31' 68 | #Calendar/Date-Picker Background 69 | lumo-base-color: '#222222' 70 | #Month/Year header 71 | lumo-header-text-color: 'var(--lumo-body-text-color)' 72 | #DayOfWeek Header 73 | lumo-tertiary-text-color: 'var(--lumo-body-text-color)' 74 | lumo-shade: '#222222' 75 | lumo-shade-90pct: 'rgba(34, 34, 34, .9)' 76 | lumo-shade-80pct: 'rgba(34, 34, 34, .8)' 77 | lumo-shade-70pct: 'rgba(34, 34, 34, .7)' 78 | lumo-shade-60pct: 'rgba(34, 34, 34, .6)' 79 | lumo-shade-50pct: 'rgba(34, 34, 34, .5)' 80 | lumo-shade-40pct: 'rgba(34, 34, 34, .4)' 81 | lumo-shade-30pct: 'rgba(34, 34, 34, .3)' 82 | lumo-shade-20pct: 'rgba(34, 34, 34, .2)' 83 | lumo-shade-10pct: 'rgba(34, 34, 34, .1)' 84 | lumo-shade-5pct: 'rgba(34, 34, 34, .05)' 85 | lumo-tint-5pct: '#222222' 86 | -------------------------------------------------------------------------------- /includes/timer.yaml: -------------------------------------------------------------------------------- 1 | garage_door: 2 | duration: '00:15:00' 3 | name: 'Garage Door' -------------------------------------------------------------------------------- /includes/weather.yaml: -------------------------------------------------------------------------------- 1 | - platform: darksky 2 | api_key: !secret darkSkyAPI 3 | -------------------------------------------------------------------------------- /includes/zone.yaml: -------------------------------------------------------------------------------- 1 | #- name: Matt Work 2 | #latitude: !secret workLat 3 | #longitude: !secret workLong 4 | #radius: 400 5 | #icon: mdi:briefcase 6 | 7 | #- name: Sheila Work 8 | #latitude: !secret sworkLat 9 | #longitude: !secret sworkLong 10 | #radius: 200 11 | #icon: mdi:briefcase 12 | 13 | #- name: Alexis School 14 | #latitude: !secret aschoolLat 15 | #longitude: !secret aschoolLong 16 | #radius: 250 17 | #icon: mdi:bus-school -------------------------------------------------------------------------------- /scripts.yaml: -------------------------------------------------------------------------------- 1 | volume_up: 2 | alias: Volume Up 3 | sequence: 4 | - service: rest_command.volume_up 5 | volume_down: 6 | alias: Volume Down 7 | sequence: 8 | - service: rest_command.volume_down 9 | turn_on_plex: 10 | alias: Start Plex Activity 11 | sequence: 12 | - data: 13 | activity: 40847892 14 | entity_id: remote.living_room 15 | service: remote.turn_on 16 | turn_on_xbox: 17 | alias: Start XBox One Activity 18 | sequence: 19 | service: remote.turn_on 20 | data: 21 | entity_id: remote.living_room 22 | activity: 11870230 23 | turn_on_switch: 24 | alias: Start Nintendo Switch Activity 25 | sequence: 26 | service: remote.turn_on 27 | data: 28 | entity_id: remote.living_room 29 | activity: 35293083 30 | turn_off_tv: 31 | alias: Power Off TV 32 | sequence: 33 | service: remote.turn_on 34 | data: 35 | entity_id: remote.living_room 36 | activity: -1 37 | input_select_harmony: 38 | alias: Start Remote activity from input select 39 | sequence: 40 | service: remote.turn_on 41 | data_template: 42 | entity_id: remote.living_room 43 | activity: "{% if is_state(\"input_select.remote\", \"PowerOff\") %}\n -1\n\ 44 | {% elif is_state(\"input_select.remote\", \"SHIELD TV\") %}\n 40847892\n\ 45 | {% elif is_state(\"input_select.remote\", \"Play Xbox One\") %}\n 11870230\n\ 46 | {% elif is_state(\"input_select.remote\", \"Play Nintendo Switch\") %}\n \ 47 | \ 35293083\n{% endif %}\n" 48 | send_shopping_list_via_sms: 49 | alias: Text Shopping List to Sheila 50 | sequence: 51 | - service: joaoapps_join.mattgs9_send_sms 52 | data_template: 53 | number: 6189788691 54 | message: 'Shopping List: 55 | 56 | {{ states(''sensor.shopping_list'') }}' 57 | -------------------------------------------------------------------------------- /themes/material_dark_pink/material_dark_pink.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | # 3 | # Material Dark Pink Theme 4 | # 5 | material_dark_pink: 6 | accent: "#FF4081" 7 | accent-color: "var(--accent)" 8 | card-background-color: "#1D1D1D" 9 | dark-primary-color: "var(--accent)" 10 | disabled-text-color: "#FFFFFF61" 11 | divider-color: "#2D2D2D" 12 | ha-label-badge-color: "var(--accent)" 13 | label-badge-background-color: "#121212" 14 | label-badge-text-color: "var(--secondary-text-color)" 15 | light-primary-color: "var(--accent)" 16 | lumo-base-color: "#2D2D2D" 17 | lumo-body-text-color: "var(--primary-text-color)" 18 | lumo-box-shadow-m: "none" 19 | lumo-header-text-color: "var(--primary-text-color)" 20 | lumo-primary-color: "var(--accent)" 21 | lumo-primary-color-10pct: "#2D2D2D" 22 | lumo-primary-color-50pct: "none" 23 | lumo-primary-contrast-color: "var(--primary-text-color)" 24 | lumo-shade-5pct: "#272727" 25 | lumo-tertiary-text-color: "var(--secondary-text-color)" 26 | lumo-tint-5pct: "none" 27 | mdc-theme-primary: "var(--accent)" 28 | paper-card-background-color: "#1D1D1D" 29 | paper-checkbox-checked-color: "var(--accent)" 30 | paper-checkbox-checked-ink-color: "var(--accent)" 31 | paper-dropdown-menu-focus-color: "var(--accent)" 32 | paper-grey-200: "#272727" 33 | paper-input-container-focus-color: "var(--accent)" 34 | paper-radio-button-checked-color: "var(--accent)" 35 | paper-tab-ink: "var(--accent)" 36 | paper-toggle-button-checked-bar-color: "var(--accent)" 37 | paper-toggle-button-checked-button-color: "var(--accent)" 38 | paper-toggle-button-checked-ink-color: "var(--accent)" 39 | paper-toggle-button-unchecked-bar-color: "#787878" 40 | paper-toggle-button-unchecked-button-color: "#A5A5A5" 41 | primary-background-color: "#121212" 42 | primary-color: "#1D1D1D" 43 | primary-text-color: "#FFFFFFDE" 44 | secondary-background-color: "#1D1D1D" 45 | secondary-text-color: "#FFFFFF99" 46 | sidebar-icon-color: "#A0A0A0" 47 | sidebar-selected-icon-color: "var(--accent)" 48 | sidebar-selected-text-color: "var(--accent)" 49 | slider-color: "var(--accent)" 50 | state-icon-active-color: "var(--accent)" 51 | state-icon-color: "#A0A0A0" 52 | toggle-button-color: "var(--accent)" 53 | -------------------------------------------------------------------------------- /themes/slate/slate.yaml: -------------------------------------------------------------------------------- 1 | slate: 2 | # Main colors 3 | primary-color: '#2980b9' 4 | accent-color: '#b58e31' 5 | dark-primary-color: '#2980b9' 6 | light-primary-color: '#2980b9' 7 | # Text colors 8 | primary-text-color: '#FFFFFF' 9 | text-primary-color: 'var(--primary-text-color)' 10 | secondary-text-color: '#b58e31' 11 | disabled-text-color: '#777777' 12 | label-badge-border-color: 'green' 13 | # Sidebar 14 | sidebar-icon-color: '#777777' 15 | # Background colors 16 | primary-background-color: '#222222' 17 | secondary-background-color: '#222222' 18 | divider-color: 'rgba(0, 0, 0, .12)' 19 | table-row-background-color: '#292929' 20 | table-row-alternative-background-color: '#292929' 21 | # Nav Menu 22 | paper-listbox-color: '#777777' 23 | paper-listbox-background-color: '#141414' 24 | paper-grey-50: 'var(--primary-text-color)' 25 | paper-grey-200: '#222222' 26 | # Paper card 27 | paper-card-header-color: '#2980b9' 28 | paper-card-background-color: '#292929' 29 | paper-dialog-background-color: '#292929' 30 | paper-item-icon-color: 'var(--primary-text-color)' 31 | paper-item-icon-active-color: '#b58e31' 32 | paper-item-icon_-_color: 'green' 33 | paper-item-selected_-_background-color: '#292929' 34 | paper-tabs-selection-bar-color: 'green' 35 | # Labels 36 | label-badge-red: 'var(--primary-color)' 37 | label-badge-text-color: 'var(--primary-text-color)' 38 | label-badge-background-color: '#222222' 39 | # Switches 40 | paper-toggle-button-checked-button-color: '#2980b9' 41 | paper-toggle-button-checked-bar-color: '#2980b9' 42 | paper-toggle-button-checked-ink-color: '#2980b9' 43 | paper-toggle-button-unchecked-button-color: 'var(--disabled-text-color)' 44 | paper-toggle-button-unchecked-bar-color: 'var(--disabled-text-color)' 45 | paper-toggle-button-unchecked-ink-color: 'var(--disabled-text-color)' 46 | switch-checked-color: 'var(--paper-toggle-button-checked-button-color)' 47 | switch-unchecked-color: 'var(--disabled-text-color)' 48 | switch-unchecked-button-color: 'var(--disabled-text-color)' 49 | switch-unchecked-track-color: 'var(--disabled-text-color)' 50 | # Sliders 51 | paper-slider-knob-color: '#2980b9' 52 | paper-slider-knob-start-color: '#2980b9' 53 | paper-slider-pin-color: '#2980b9' 54 | paper-slider-active-color: '#2980b9' 55 | paper-slider-container-color: 'linear-gradient(var(--primary-background-color), var(--secondary-background-color)) no-repeat' 56 | paper-slider-secondary-color: 'var(--secondary-background-color)' 57 | paper-slider-disabled-active-color: 'var(--disabled-text-color)' 58 | paper-slider-disabled-secondary-color: 'var(--disabled-text-color)' 59 | # Google colors 60 | google-red-500: '#b93829' 61 | google-green-500: '#2980b9' 62 | # Changes to fix history/logbook menus 63 | lumo-primary-text-color: '#2980b9' 64 | lumo-secondary-text-color: '#2980b9' 65 | lumo-primary-color: '#2980b9' 66 | # Calendar day numbers 67 | lumo-body-text-color: '#b58e31' 68 | # Calendar/Date-Picker Background 69 | lumo-base-color: '#222222' 70 | # Month/Year header 71 | lumo-header-text-color: 'var(--lumo-body-text-color)' 72 | # DayOfWeek Header 73 | lumo-tertiary-text-color: 'var(--lumo-body-text-color)' 74 | lumo-shade: '#222222' 75 | lumo-shade-90pct: 'rgba(34, 34, 34, .9)' 76 | lumo-shade-80pct: 'rgba(34, 34, 34, .8)' 77 | lumo-shade-70pct: 'rgba(34, 34, 34, .7)' 78 | lumo-shade-60pct: 'rgba(34, 34, 34, .6)' 79 | lumo-shade-50pct: 'rgba(34, 34, 34, .5)' 80 | lumo-shade-40pct: 'rgba(34, 34, 34, .4)' 81 | lumo-shade-30pct: 'rgba(34, 34, 34, .3)' 82 | lumo-shade-20pct: 'rgba(34, 34, 34, .2)' 83 | lumo-shade-10pct: 'rgba(34, 34, 34, .1)' 84 | lumo-shade-5pct: 'rgba(34, 34, 34, .05)' 85 | lumo-tint-5pct: '#222222' 86 | # fix for device configuration screen 87 | card-background-color: "var(--paper-card-background-color)" 88 | # Fix for Person Device Chooser - thanks to vajonam! 89 | material-background-color: "var(--paper-listbox-background-color)" 90 | material-secondary-background-color: '#222222' 91 | material-body-text-color: '#FFFFFF' 92 | -------------------------------------------------------------------------------- /www/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/bg.jpg -------------------------------------------------------------------------------- /www/bg2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/bg2.jpg -------------------------------------------------------------------------------- /www/custom-lovelace/upcoming-media-card/images/plex/f14120.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/custom-lovelace/upcoming-media-card/images/plex/f14120.jpg -------------------------------------------------------------------------------- /www/custom-lovelace/upcoming-media-card/images/plex/f14121.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/custom-lovelace/upcoming-media-card/images/plex/f14121.jpg -------------------------------------------------------------------------------- /www/custom-lovelace/upcoming-media-card/images/plex/f14122.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/custom-lovelace/upcoming-media-card/images/plex/f14122.jpg -------------------------------------------------------------------------------- /www/custom-lovelace/upcoming-media-card/images/plex/f14130.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/custom-lovelace/upcoming-media-card/images/plex/f14130.jpg -------------------------------------------------------------------------------- /www/custom-lovelace/upcoming-media-card/images/plex/f14131.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/custom-lovelace/upcoming-media-card/images/plex/f14131.jpg -------------------------------------------------------------------------------- /www/custom-lovelace/upcoming-media-card/images/plex/p14120.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/custom-lovelace/upcoming-media-card/images/plex/p14120.jpg -------------------------------------------------------------------------------- /www/custom-lovelace/upcoming-media-card/images/plex/p14121.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/custom-lovelace/upcoming-media-card/images/plex/p14121.jpg -------------------------------------------------------------------------------- /www/custom-lovelace/upcoming-media-card/images/plex/p14122.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/custom-lovelace/upcoming-media-card/images/plex/p14122.jpg -------------------------------------------------------------------------------- /www/custom-lovelace/upcoming-media-card/images/plex/p14130.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/custom-lovelace/upcoming-media-card/images/plex/p14130.jpg -------------------------------------------------------------------------------- /www/custom-lovelace/upcoming-media-card/images/plex/p14131.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/custom-lovelace/upcoming-media-card/images/plex/p14131.jpg -------------------------------------------------------------------------------- /www/custom_ui/beer-card.js: -------------------------------------------------------------------------------- 1 | class BeerCard extends HTMLElement { 2 | 3 | constructor() { 4 | super(); 5 | this.attachShadow({ mode: 'open' }); 6 | } 7 | 8 | setConfig(config) { 9 | if (!config.entity) { 10 | throw new Error('Please define an entity'); 11 | } 12 | 13 | const root = this.shadowRoot; 14 | if (root.lastChild) root.removeChild(root.lastChild); 15 | 16 | const cardConfig = Object.assign({}, config); 17 | if (!cardConfig.icon) cardConfig.icon = 'mdi:beer'; 18 | if (!cardConfig.attribute) cardConfig.attribute = 'list'; 19 | if (!cardConfig.list_type) cardConfig.list_type = 'none'; 20 | 21 | const card = document.createElement('ha-card'); 22 | const content = document.createElement('div'); 23 | const style = document.createElement('style'); 24 | const icon = document.createElement('ha-icon'); 25 | const [prefix, type] = cardConfig.icon.split('.', 2); 26 | ['png', 'jpg', 'svg', 'gif'].includes(type)?icon.src = cardConfig.icon:icon.icon = cardConfig.icon; 27 | style.textContent = ` 28 | ha-card { 29 | position: relative; 30 | ${cardConfig.style} 31 | } 32 | ha-icon { 33 | float: left; 34 | margin-left: 30px; 35 | margin-top: 30px; 36 | } 37 | #container { 38 | padding: 30px; 39 | margin-left: 50px; 40 | } 41 | `; 42 | content.id = 'container'; 43 | card.appendChild(icon); 44 | card.header = cardConfig.title; 45 | card.appendChild(content); 46 | card.appendChild(style); 47 | root.appendChild(card); 48 | this._config = cardConfig; 49 | } 50 | 51 | set hass(hass) { 52 | const config = this._config; 53 | const root = this.shadowRoot; 54 | if (hass.states[config.entity]) { 55 | const list = `${hass.states[config.entity].attributes[config.attribute]}`; 56 | this.style.display = 'block'; 57 | if (list !== 'undefined' && list.length > 0) { 58 | root.getElementById('container').innerHTML = ''; 59 | } else { 60 | this.style.display = 'none'; 61 | } 62 | root.lastChild.hass = hass; 63 | } else { 64 | this.style.display = 'none'; 65 | } 66 | } 67 | 68 | getCardSize() { 69 | return 1; 70 | } 71 | } 72 | 73 | customElements.define('beer-card', BeerCard); -------------------------------------------------------------------------------- /www/custom_ui/column-card.js: -------------------------------------------------------------------------------- 1 | class ColumnCard extends HTMLElement { 2 | constructor() { 3 | super(); 4 | // Make use of shadowRoot to avoid conflicts when reusing 5 | this.attachShadow({ mode: 'open' }); 6 | this.shadowRoot.innerHTML = ` 7 | 24 | `; 25 | 26 | this.cols = document.createElement('div'); 27 | this.cols.setAttribute("id", "columns"); 28 | this.shadowRoot.appendChild(this.cols); 29 | 30 | this.columns = 0; 31 | this._cards = []; 32 | } 33 | 34 | setConfig(config) { 35 | this.config = config; 36 | if (!config || !config.cards || !Array.isArray(config.cards)) { 37 | throw new Error('Card config incorrect'); 38 | } 39 | 40 | // The cards are created here in order to allow finding their height later 41 | // hui-view.js recreated the cards whenever the number of columns change, but that didn't work for me. 42 | // There might be some bad side effects of this, but I haven't encountered any so far. 43 | // Heads up, though... 44 | this._cards = config.cards.map((item) => { 45 | let element; 46 | if (item.type.startsWith("custom:")){ 47 | element = document.createElement(`${item.type.substr("custom:".length)}`); 48 | } else { 49 | element = document.createElement(`hui-${item.type}-card`); 50 | } 51 | element.setConfig(item); 52 | if(this.hass) 53 | element.hass = this.hass; 54 | return element; 55 | }); 56 | 57 | window.addEventListener('resize', (event) => {this._updateColumns()}); 58 | window.setTimeout((event) => {this._updateColumns()}, 10); 59 | } 60 | 61 | _updateColumns() { 62 | let numcols = Math.max(1,Math.floor(this.cols.clientWidth/300)); 63 | if(numcols != this.columns) { 64 | this.columns = numcols 65 | this._createColumns(); 66 | } 67 | } 68 | 69 | _createColumns() { 70 | // This code is copied more or less verbatim from hui-view.js in home-assistant. 71 | // https://github.com/home-assistant/home-assistant-polymer/blob/master/src/panels/lovelace/hui-view.js 72 | // The credit for anything good you find here goes to the home-assistant team. 73 | const root = this.cols; 74 | // Remove old columns 75 | while (root.lastChild) { 76 | root.removeChild(root.lastChild); 77 | } 78 | 79 | // Prepare a number of new columns 80 | let columns = []; 81 | const columnEntityCount = []; 82 | for(let i = 0; i < this.columns; i++) { 83 | columns.push([]); 84 | columnEntityCount.push(0); 85 | } 86 | 87 | function getColumnIndex(size) { 88 | // Find the shortest column 89 | let minIndex = 0; 90 | for (let i = 0; i < columnEntityCount.length; i++) { 91 | if (columnEntityCount[i] < 5) { 92 | minIndex = i; 93 | break; 94 | } 95 | if (columnEntityCount[i] < columnEntityCount[minIndex]) { 96 | minIndex = i; 97 | } 98 | } 99 | columnEntityCount[minIndex] += size; 100 | return minIndex; 101 | } 102 | 103 | // Go through each card and find which column to place it in (the shortest one) 104 | this._cards.forEach((el) => { 105 | this.appendChild(el); 106 | const cardSize = typeof el.getCardSize === 'function' ? el.getCardSize() : 1; 107 | columns[getColumnIndex(cardSize)].push(el); 108 | }); 109 | 110 | this.columnEntityCount = columnEntityCount 111 | 112 | // Remove any empty columns 113 | columns = columns.filter(val => val.length > 0); 114 | 115 | // Actually place the cards in the columns 116 | columns.forEach((column) => { 117 | const columnEl = document.createElement('div'); 118 | columnEl.classList.add('column'); 119 | column.forEach(el => columnEl.appendChild(el)); 120 | root.appendChild(columnEl); 121 | }); 122 | } 123 | 124 | set hass(hass) { 125 | // console.log(hass); 126 | this._cards.forEach(item => { 127 | item.hass = hass; 128 | }); 129 | } 130 | 131 | getCardSize() { 132 | return 1; 133 | return Math.max(this.columnEntityCount); 134 | } 135 | } 136 | customElements.define('column-card', ColumnCard); -------------------------------------------------------------------------------- /www/custom_ui/content-card-example.js: -------------------------------------------------------------------------------- 1 | class ContentCardExample extends HTMLElement { 2 | set hass(hass) { 3 | if (!this.content) { 4 | const card = document.createElement('ha-card'); 5 | card.header = 'Example card'; 6 | this.content = document.createElement('div'); 7 | this.content.style.padding = '0 16px 16px'; 8 | card.appendChild(this.content); 9 | this.appendChild(card); 10 | } 11 | 12 | const entityId = this.config.entity; 13 | const state = hass.states[entityId]; 14 | const stateStr = state ? state.state : 'unavailable'; 15 | 16 | this.content.innerHTML = ` 17 | ${stateStr}! 18 | `; 19 | } 20 | 21 | setConfig(config) { 22 | if (!config.entity) { 23 | throw new Error('You need to define an entity'); 24 | } 25 | this.config = config; 26 | } 27 | 28 | // The height of your card. Home Assistant uses this to automatically 29 | // distribute all cards over the available columns. 30 | getCardSize() { 31 | return 3; 32 | } 33 | } 34 | 35 | customElements.define('content-card-example', ContentCardExample); 36 | -------------------------------------------------------------------------------- /www/custom_ui/shopping-card.js: -------------------------------------------------------------------------------- 1 | class ShoppingCard extends HTMLElement { 2 | set hass(hass) { 3 | if (!this.content) { 4 | const card = document.createElement('ha-card'); 5 | card.header = "Shopping List"; 6 | this.content = document.createElement('div'); 7 | this.content.style.padding = '0 16px 16px'; 8 | card.appendChild(this.content); 9 | this.appendChild(card); 10 | } 11 | 12 | const entityId = this.config.entity; 13 | const state = hass.states[entityId]; 14 | const stateStr = state ? state.state : 'unavailable'; 15 | 16 | 17 | this.content.innerHTML = '\
  • ' + `${stateStr.split(/[\n,]/).join('
  • ')}` + '
  • '; 18 | 19 | } 20 | 21 | setConfig(config) { 22 | if (!config.entity) { 23 | throw new Error('You need to define an entity'); 24 | } 25 | this.config = config; 26 | } 27 | 28 | // The height of your card. Home Assistant uses this to automatically 29 | // distribute all cards over the available columns. 30 | getCardSize() { 31 | return 3; 32 | } 33 | } 34 | 35 | customElements.define('shopping-card', ShoppingCard); 36 | -------------------------------------------------------------------------------- /www/custom_ui/weather-card.css: -------------------------------------------------------------------------------- 1 | .clear { 2 | clear: both; 3 | } 4 | 5 | .card { 6 | margin: auto; 7 | padding-top: 2em; 8 | padding-bottom: 1em; 9 | padding-left: 1em; 10 | padding-right:1em; 11 | position: relative; 12 | } 13 | 14 | .ha-icon { 15 | height: 18px; 16 | margin-right: 5px; 17 | color: var(--paper-item-icon-color); 18 | } 19 | 20 | .temp { 21 | font-weight: 300; 22 | font-size: 4em; 23 | color: var(--primary-text-color); 24 | position: absolute; 25 | right: 1em; 26 | } 27 | 28 | .tempc { 29 | font-weight: 300; 30 | font-size: 1.5em; 31 | vertical-align: super; 32 | color: var(--primary-text-color); 33 | position: absolute; 34 | right: 1em; 35 | margin-top: -14px; 36 | margin-right: 7px; 37 | } 38 | 39 | .variations { 40 | display: inline-block; 41 | font-weight: 300; 42 | color: var(--primary-text-color); 43 | list-style: none; 44 | margin-left: -2em; 45 | margin-top: 4.5em; 46 | } 47 | 48 | .variations.right { 49 | position: absolute; 50 | right: 1em; 51 | margin-left: 0; 52 | margin-right: 1em; 53 | } 54 | 55 | .unit { 56 | font-size: .8em; 57 | } 58 | 59 | .forecast { 60 | width: 100%; 61 | margin: 0 auto; 62 | height: 9em; 63 | } 64 | 65 | .day { 66 | display: block; 67 | width: 20%; 68 | float: left; 69 | text-align: center; 70 | color: var(--primary-text-color); 71 | border-right: .1em solid #d9d9d9; 72 | line-height: 2; 73 | box-sizing: border-box; 74 | } 75 | 76 | .dayname { 77 | text-transform: uppercase; 78 | } 79 | 80 | .forecast .day:first-child { 81 | margin-left: 0; 82 | } 83 | 84 | .forecast .day:nth-last-child(1) { 85 | border-right: none; 86 | margin-right: 0; 87 | } 88 | 89 | .highTemp { 90 | font-weight: bold; 91 | } 92 | 93 | .lowTemp { 94 | color: var(--secondary-text-color); 95 | } 96 | 97 | .icon.bigger { 98 | width: 10em; 99 | height: 10em; 100 | margin-top: -4em; 101 | position: absolute; 102 | left: 0em; 103 | } 104 | 105 | .icon { 106 | width: 50px; 107 | height: 50px; 108 | margin-right: 5px; 109 | display: inline-block; 110 | vertical-align: middle; 111 | background-size: contain; 112 | background-position: center center; 113 | background-repeat: no-repeat; 114 | text-indent: -9999px; 115 | } 116 | 117 | .weather { 118 | font-weight: 300; 119 | font-size: 1.5em; 120 | color: var(--primary-text-color); 121 | text-align: left; 122 | position: absolute; 123 | top: -0.5em; 124 | left: 6em; 125 | word-wrap: break-word; 126 | width: 30%; 127 | } -------------------------------------------------------------------------------- /www/custom_ui/weather-card.js: -------------------------------------------------------------------------------- 1 | class WeatherCard extends HTMLElement { 2 | set hass(hass) { 3 | if (!this.content) { 4 | const card = document.createElement('ha-card'); 5 | const link = document.createElement('link'); 6 | link.type = 'text/css'; 7 | link.rel = 'stylesheet'; 8 | link.href = '/local/custom_ui/weather-card.css'; 9 | card.appendChild(link); 10 | this.content = document.createElement('div'); 11 | this.content.className = 'card'; 12 | card.appendChild(this.content); 13 | this.appendChild(card); 14 | } 15 | 16 | const getUnit = function (measure) { 17 | const lengthUnit = hass.config.unit_system.length; 18 | switch (measure) { 19 | case 'air_pressure': 20 | return lengthUnit === 'km' ? 'hPa' : 'inHg'; 21 | case 'length': 22 | return lengthUnit; 23 | case 'precipitation': 24 | return lengthUnit === 'km' ? 'mm' : 'in'; 25 | default: 26 | return hass.config.unit_system[measure] || ''; 27 | } 28 | }; 29 | 30 | const transformDayNight = { 31 | "below_horizon": "night", 32 | "above_horizon": "day", 33 | } 34 | const sunLocation = transformDayNight[hass.states[this.config.entity_sun].state]; 35 | const weatherIcons = { 36 | 'clear-night': `${sunLocation}`, 37 | 'cloudy': 'cloudy', 38 | 'fog': 'cloudy', 39 | 'hail': 'rainy-7', 40 | 'lightning': 'thunder', 41 | 'lightning-rainy': 'thunder', 42 | 'partlycloudy': `cloudy-${sunLocation}-3`, 43 | 'pouring': 'rainy-6', 44 | 'rainy': 'rainy-5', 45 | 'snowy': 'snowy-6', 46 | 'snowy-rainy': 'rainy-7', 47 | 'sunny': `${sunLocation}`, 48 | 'windy': 'cloudy', 49 | 'windy-variant': `cloudy-${sunLocation}-3`, 50 | 'exceptional': '!!', 51 | } 52 | 53 | const windDirections = [ 54 | 'N', 55 | 'NNE', 56 | 'NE', 57 | 'ENE', 58 | 'E', 59 | 'ESE', 60 | 'SE', 61 | 'SSE', 62 | 'S', 63 | 'SSW', 64 | 'SW', 65 | 'WSW', 66 | 'W', 67 | 'WNW', 68 | 'NW', 69 | 'NNW', 70 | 'N' 71 | ]; 72 | const entity = hass.states[this.config.entity_weather]; 73 | const currentCondition = entity.state; 74 | const humidity = entity.attributes.humidity; 75 | const pressure = entity.attributes.pressure; 76 | const temperature = Math.round(entity.attributes.temperature); 77 | const visibility = entity.attributes.visibility; 78 | const windBearing = windDirections[(parseInt((entity.attributes.wind_bearing + 11.25) / 22.5))]; 79 | const windSpeed = entity.attributes.wind_speed; 80 | const forecast = entity.attributes.forecast.slice(0, 5); 81 | 82 | this.content.innerHTML = ` 83 | ${currentCondition} 84 | ${temperature} ${getUnit('temperature')} 85 | 86 | 90 | 94 | 95 |
    96 | ${forecast.map(daily => ` 97 |
    98 | ${(new Date(daily.datetime)).toLocaleDateString((navigator.language) ? navigator.language : navigator.userLanguage, {weekday: 'short'}).split(' ')[0]} 99 |
    100 |
    ${daily.temperature}${getUnit('temperature')} 101 |
    ${daily.templow}${getUnit('temperature')} 102 |
    `).join('')} 103 |
    `; 104 | } 105 | 106 | setConfig(config) { 107 | if (!config.entity_weather || !config.entity_sun) { 108 | throw new Error('Please define entities'); 109 | } 110 | this.config = config; 111 | } 112 | 113 | // @TODO: This requires more intelligent logic 114 | getCardSize() { 115 | return 3; 116 | } 117 | } 118 | 119 | customElements.define('weather-card', WeatherCard); -------------------------------------------------------------------------------- /www/icons/media_icons/LHarmonyBG-Dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/LHarmonyBG-Dark.jpg -------------------------------------------------------------------------------- /www/icons/media_icons/LHarmonyBG-Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/LHarmonyBG-Dark.png -------------------------------------------------------------------------------- /www/icons/media_icons/LHarmonyBG.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/LHarmonyBG.jpg -------------------------------------------------------------------------------- /www/icons/media_icons/LHarmonyBG2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/LHarmonyBG2.jpg -------------------------------------------------------------------------------- /www/icons/media_icons/LHarmonyBG_Dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/LHarmonyBG_Dark.jpg -------------------------------------------------------------------------------- /www/icons/media_icons/LHarmonyBG_Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/LHarmonyBG_Dark.png -------------------------------------------------------------------------------- /www/icons/media_icons/arrow-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/arrow-down.png -------------------------------------------------------------------------------- /www/icons/media_icons/arrow-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/arrow-left.png -------------------------------------------------------------------------------- /www/icons/media_icons/arrow-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/arrow-right.png -------------------------------------------------------------------------------- /www/icons/media_icons/arrow-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/arrow-up.png -------------------------------------------------------------------------------- /www/icons/media_icons/arrow_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/arrow_bg.png -------------------------------------------------------------------------------- /www/icons/media_icons/arrow_dn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/arrow_dn.png -------------------------------------------------------------------------------- /www/icons/media_icons/arrow_lf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/arrow_lf.png -------------------------------------------------------------------------------- /www/icons/media_icons/arrow_rt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/arrow_rt.png -------------------------------------------------------------------------------- /www/icons/media_icons/arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/arrow_up.png -------------------------------------------------------------------------------- /www/icons/media_icons/bg-blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/bg-blank.png -------------------------------------------------------------------------------- /www/icons/media_icons/horizontalRule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/horizontalRule.png -------------------------------------------------------------------------------- /www/icons/media_icons/horizontal_Rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/horizontal_Rule.png -------------------------------------------------------------------------------- /www/icons/media_icons/kodi-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/kodi-logo.png -------------------------------------------------------------------------------- /www/icons/media_icons/nintendo_switch_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/nintendo_switch_logo.png -------------------------------------------------------------------------------- /www/icons/media_icons/playstation_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/playstation_logo.png -------------------------------------------------------------------------------- /www/icons/media_icons/plex-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/plex-logo.png -------------------------------------------------------------------------------- /www/icons/media_icons/plex-logo_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/plex-logo_active.png -------------------------------------------------------------------------------- /www/icons/media_icons/power-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/power-logo.png -------------------------------------------------------------------------------- /www/icons/media_icons/power-logo_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/power-logo_active.png -------------------------------------------------------------------------------- /www/icons/media_icons/power_off_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/power_off_red.png -------------------------------------------------------------------------------- /www/icons/media_icons/rxv677_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/rxv677_transparent.png -------------------------------------------------------------------------------- /www/icons/media_icons/sony_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/sony_logo.png -------------------------------------------------------------------------------- /www/icons/media_icons/switch-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/switch-logo.png -------------------------------------------------------------------------------- /www/icons/media_icons/switch-logo_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/switch-logo_active.png -------------------------------------------------------------------------------- /www/icons/media_icons/volBorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/volBorder.png -------------------------------------------------------------------------------- /www/icons/media_icons/vol_+.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/vol_+.png -------------------------------------------------------------------------------- /www/icons/media_icons/vol_+_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/vol_+_active.png -------------------------------------------------------------------------------- /www/icons/media_icons/vol_-.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/vol_-.png -------------------------------------------------------------------------------- /www/icons/media_icons/vol_-_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/vol_-_active.png -------------------------------------------------------------------------------- /www/icons/media_icons/vol_btn_border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/vol_btn_border.png -------------------------------------------------------------------------------- /www/icons/media_icons/wiiu_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/wiiu_logo.png -------------------------------------------------------------------------------- /www/icons/media_icons/windows_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/windows_logo.png -------------------------------------------------------------------------------- /www/icons/media_icons/xbox-logo-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/xbox-logo-active.png -------------------------------------------------------------------------------- /www/icons/media_icons/xbox-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/xbox-logo.png -------------------------------------------------------------------------------- /www/icons/media_icons/xbox_one_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattclair/Home-AssistantConfig/b0481ebf27c5d9b33faaeaa26375e1fa9fa42406/www/icons/media_icons/xbox_one_logo.png -------------------------------------------------------------------------------- /www/icons/weather_icons/animated/rainy-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | -------------------------------------------------------------------------------- /www/icons/weather_icons/animated/rainy-3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /www/icons/weather_icons/animated/rainy-4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /www/icons/weather_icons/animated/rainy-5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /www/icons/weather_icons/animated/rainy-6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /www/icons/weather_icons/animated/rainy-7.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /www/icons/weather_icons/animated/snowy-4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /www/icons/weather_icons/animated/weather_sagittarius.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | Created with Sketch. 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /www/icons/weather_icons/animated/weather_sunset.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 14 | 15 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/cloudy-day-1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/cloudy-day-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/cloudy-day-3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/cloudy-night-1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/cloudy-night-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/cloudy-night-3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/cloudy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/day.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/night.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/rainy-1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/rainy-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/rainy-3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/rainy-4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/rainy-5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/rainy-6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/rainy-7.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/snowy-1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/snowy-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/snowy-3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/snowy-4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/snowy-5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/snowy-6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/thunder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/weather_sagittarius.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | Created with Sketch. 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /www/icons/weather_icons/static/weather_sunset.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 14 | 15 | -------------------------------------------------------------------------------- /www/weather_icons/animated/rainy-1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /www/weather_icons/animated/rainy-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | -------------------------------------------------------------------------------- /www/weather_icons/animated/rainy-3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | -------------------------------------------------------------------------------- /www/weather_icons/animated/rainy-4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /www/weather_icons/animated/rainy-5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /www/weather_icons/animated/rainy-6.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /www/weather_icons/animated/rainy-7.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /www/weather_icons/animated/snowy-4.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /www/weather_icons/animated/weather_sagittarius.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | Created with Sketch. 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /www/weather_icons/animated/weather_sunset.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 14 | 15 | --------------------------------------------------------------------------------