diff --git a/components/intent_scripts/setvolume.yaml b/components/intent_scripts/setvolume.yaml
index 9bd2f73..5fc880b 100644
--- a/components/intent_scripts/setvolume.yaml
+++ b/components/intent_scripts/setvolume.yaml
@@ -1,10 +1,10 @@
-# Example configuration.yaml
-intent_script:
- SetVolume:
- action:
- service: "media_player.volume_set"
- data:
- entity_id: "{{ media_player }}"
- volume_level: "{{ volume / 100.0 }}"
- speech:
+# Example configuration.yaml
+intent_script:
+ SetVolume:
+ action:
+ service: "media_player.volume_set"
+ data:
+ entity_id: "{{ media_player }}"
+ volume_level: "{{ volume / 100.0 }}"
+ speech:
text: "Volume changed to {{ volume }}"
\ No newline at end of file
diff --git a/components/packages/amcrest_cameras.yaml b/components/packages/amcrest_cameras.yaml
index 468c541..c8791b0 100644
--- a/components/packages/amcrest_cameras.yaml
+++ b/components/packages/amcrest_cameras.yaml
@@ -1,8 +1,8 @@
-amcrest:
- - name: Amcrest Camera19
- host: !secret camera19ip
- username: !secret camera19username
- password: !secret camerapassword
- stream_source: rtsp
- binary_sensors:
- - online
+amcrest:
+ - name: Amcrest Camera19
+ host: !secret camera19ip
+ username: !secret camera19username
+ password: !secret camerapassword
+ stream_source: rtsp
+ binary_sensors:
+ - online
diff --git a/components/tts/google.yaml b/components/tts/google.yaml
index 3977200..d567b39 100644
--- a/components/tts/google.yaml
+++ b/components/tts/google.yaml
@@ -1,5 +1,5 @@
platform: google_translate
cache: true
-cache_dir: config/tmp
+cache_dir: /tmp/tts
time_memory: 57600
service_name: google_translate_say
diff --git a/configuration.yaml b/configuration.yaml
index b6931e2..e487e9f 100644
--- a/configuration.yaml
+++ b/configuration.yaml
@@ -19,14 +19,14 @@ homeassistant:
#mnt: /mnt
#audio: /config/www/audio/
alarms: /config/www/audio/alarms
- lullabies: /config/www/audio/media/lullabies
- relaxing: /config/www/audio/media/relaxing
- tts: /config/www/audio/media/tts
+ relaxing: /config/www/audio/relaxing
+ tts: /config/www/audio/tts
#snapshots: /config/snapshots/
allowlist_external_dirs:
#- /config/image/
- /config/tmp/
+ - /config/tmp/tts
- /config/tmp/snapshots/
- /config/custom_logs/
#- /config/www/audio/
diff --git a/custom_sentences/en/media.yaml b/custom_sentences/en/media.yaml
index 32397fc..603601b 100644
--- a/custom_sentences/en/media.yaml
+++ b/custom_sentences/en/media.yaml
@@ -1,21 +1,21 @@
-# Example config/custom_sentences/en/media.yaml
-language: "en"
-intents:
- SetVolume:
- data:
- - sentences:
- - "(set|change) {media_player} volume to {volume} [percent]"
- - "(set|change) [the] volume for {media_player} to {volume} [percent]"
-lists:
- media_player:
- values:
- - in: "front room"
- out: "media_player.front_room_hub"
- - in: "master bedroom"
- out: "media_player.master_bedroom_clock"
- - in: "downstairs"
- out: "media_player.computer_area_hub"
- volume:
- range:
- from: 0
+# Example config/custom_sentences/en/media.yaml
+language: "en"
+intents:
+ SetVolume:
+ data:
+ - sentences:
+ - "(set|change) {media_player} volume to {volume} [percent]"
+ - "(set|change) [the] volume for {media_player} to {volume} [percent]"
+lists:
+ media_player:
+ values:
+ - in: "front room"
+ out: "media_player.front_room_hub"
+ - in: "master bedroom"
+ out: "media_player.master_bedroom_clock"
+ - in: "downstairs"
+ out: "media_player.computer_area_hub"
+ volume:
+ range:
+ from: 0
to: 100
\ No newline at end of file
diff --git a/esphome/archive/new-furnace-room-multisensor.yaml b/esphome/archive/new-furnace-room-multisensor.yaml
index 3511543..b2cc4e6 100644
--- a/esphome/archive/new-furnace-room-multisensor.yaml
+++ b/esphome/archive/new-furnace-room-multisensor.yaml
@@ -1,229 +1,229 @@
-# 3v3 en svp sun 34 35 32 33 25 26 27 14 12 gnd 13 sd2 sd3 gnd 5v
-
-
-substitutions:
- devicename: furnace-room-multisensor
- entity_name: furnace_room_multisensor
- friendly_name: Furnace Room MultiSensor
- comment: Clever MultiSensor
- platform: ESP32
- board: esp32dev
- static_ip: !secret furnace-room-multisensor-ip
-
- one_wire_pin: GPIO16
- sda_pin: GPIO21
- scl_pin: GPIO22
- door_pin: GPIO27
- trigger_pin: GPIO33
- echo_pin: GPIO35
- #mdc_pin: GPIO23
- #mdio_pin: GPIO18
- #clk_mode: GPIO17_OUT
- #power_pin: GPIO5
-
-packages:
- #wifi: !include common/wifi_no_power_save.yaml
- ethernet: !include common/ethernet.yaml
- device_base: !include common/device_base.yaml
- ble_proxy: !include common/ble_proxy.yaml
-
-esphome:
- name: ${devicename}
- friendly_name: ${friendly_name}
-
-esp32:
- board: ${board}
- framework:
- type: esp-idf
-
-# Enable logging
-logger:
-
-api: # Using settings from common/device_base.yaml
-
-ota: # Using settings from common/device_base.yaml
-
-wifi: # Using settings from common/wifi*.yaml
- use_address: "192.168.1.230"
-
-captive_portal:
-
-esp32_ble_tracker:
-
-globals:
- - id: screen_power
- type: bool
- restore_value: yes
- initial_value: 'true'
-
-font:
- - file: 'CascadiaMonoPL.ttf'
- id: font1
- size: 17
-
-one_wire:
- - platform: gpio
- pin: ${one_wire_pin}
-
-i2c:
- # sda: GPIO13 #D1
- # scl: GPIO15 #D2
- sda: ${sda_pin}
- scl: ${scl_pin}
- frequency: 800kHz
-
-display:
- - platform: ssd1306_i2c
- id: oled
- model: "SSD1306 128x64"
- #reset_pin: GPIO14 #D0
- address: 0x3C
- lambda: |-
- it.print(0, 0, id(font1), "Delt:");
- it.printf(128, 0, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_delta).state);
- it.print(0, 16, id(font1), "HVAC:");
- it.printf(128, 16, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac).state);
- it.print(0, 32, id(font1), "Retn:");
- it.printf(128, 32, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_return).state);
- it.print(0, 48, id(font1), "Ambt:");
- it.printf(128, 48, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(ambient).state);
-
-sensor:
- - platform: dallas_temp
- address: 0xB33C01B607798528
- name: "Return Temperature"
- id: hvac_return
- update_interval: 10s
- filters:
- - lambda: return x * (9.0/5.0) + 32.0;
- unit_of_measurement: "°F"
- state_class: measurement
-
- - platform: dallas_temp
- address: 0x0F3C01B6070C1328
- name: "HVAC Temperature"
- id: hvac
- update_interval: 10s
- filters:
- - lambda: return x * (9.0/5.0) + 32.0;
- unit_of_measurement: "°F"
- state_class: measurement
-
- - platform: dallas_temp
- address: 0xFA3C01B607005B28
- name: "Furnace Room Temperature"
- id: ambient
- update_interval: 10s
- filters:
- - lambda: return x * (9.0/5.0) + 32.0;
- unit_of_measurement: "°F"
- state_class: measurement
-
- - platform: template
- name: "HVAC Delta"
- id: hvac_delta
- lambda: |-
- return (id(hvac).state - id(hvac_return).state);
- update_interval: 10s
- unit_of_measurement: "°F"
- state_class: measurement
- filters:
- - or:
- - throttle: 60s
- - delta: 1.0
-
- - platform: ultrasonic
- trigger_pin: ${trigger_pin}
- echo_pin: ${echo_pin}
- id: ultrasonic_source
- #update_interval: 5s
- internal: True
- filters:
- - sliding_window_moving_average:
- window_size: 5
- send_every: 5
- send_first_at: 1
- on_value:
- then:
- - sensor.template.publish:
- id: distance_from_bottom
- state: !lambda 'return id(ultrasonic_source).state;'
-
- - sensor.template.publish:
- id: distance_from_top
- state: !lambda 'return id(ultrasonic_source).state;'
-
- - platform: template
- unit_of_measurement: "cm"
- state_class: measurement
- id: distance_from_bottom
- name: "Salt Level in CM"
- #update_interval: 5s
- filters:
- - lambda: 'return (0.94 - (id(ultrasonic_source).state)) * 100;'
- on_value:
- then:
- - sensor.template.publish:
- id: level_in_bags
- state: !lambda 'return id(distance_from_bottom).state;'
-
- - platform: template
- unit_of_measurement: "cm"
- state_class: measurement
- id: distance_from_top
- name: "Salt Level From Top in CM"
- #update_interval: 5s
- filters:
- - lambda: 'return (id(ultrasonic_source).state) * 100;'
-
- - platform: template
- unit_of_measurement: "bags"
- state_class: measurement
- id: level_in_bags
- name: "Salt Level in Bags"
- #update_interval: 5s
- filters:
- - lambda: 'return (id(distance_from_bottom).state) / 17.5;'
-
-binary_sensor:
- - platform: gpio
- name: "Furnace Room Door"
- device_class: door
- pin:
- number: ${door_pin}
- #mode: INPUT_PULLUP
-
- - platform: homeassistant
- internal: true
- id: light_state
- entity_id: light.furnace_room
- on_state:
- then:
- - if:
- condition:
- lambda: 'return id(light_state).state;'
- then:
- - logger.log: "The light is on"
- else:
- - logger.log: "The is off. Turning off display"
- - switch.turn_off: display_switch
-
-switch:
- - platform: template
- id: display_switch
- name: "HVAC Display Switch"
- lambda: |-
- if (id(screen_power)) {
- id(oled).turn_on();
- } else {
- id(oled).turn_off();
- }
- return id(screen_power);
- turn_on_action:
- - lambda: |-
- id(screen_power) = true;
- // id(oled).turn_on();
- turn_off_action:
- - lambda: |-
- id(screen_power) = false;
- // id(oled).turn_off();
+# 3v3 en svp sun 34 35 32 33 25 26 27 14 12 gnd 13 sd2 sd3 gnd 5v
+
+
+substitutions:
+ devicename: furnace-room-multisensor
+ entity_name: furnace_room_multisensor
+ friendly_name: Furnace Room MultiSensor
+ comment: Clever MultiSensor
+ platform: ESP32
+ board: esp32dev
+ static_ip: !secret furnace-room-multisensor-ip
+
+ one_wire_pin: GPIO16
+ sda_pin: GPIO21
+ scl_pin: GPIO22
+ door_pin: GPIO27
+ trigger_pin: GPIO33
+ echo_pin: GPIO35
+ #mdc_pin: GPIO23
+ #mdio_pin: GPIO18
+ #clk_mode: GPIO17_OUT
+ #power_pin: GPIO5
+
+packages:
+ #wifi: !include common/wifi_no_power_save.yaml
+ ethernet: !include common/ethernet.yaml
+ device_base: !include common/device_base.yaml
+ ble_proxy: !include common/ble_proxy.yaml
+
+esphome:
+ name: ${devicename}
+ friendly_name: ${friendly_name}
+
+esp32:
+ board: ${board}
+ framework:
+ type: esp-idf
+
+# Enable logging
+logger:
+
+api: # Using settings from common/device_base.yaml
+
+ota: # Using settings from common/device_base.yaml
+
+wifi: # Using settings from common/wifi*.yaml
+ use_address: "192.168.1.230"
+
+captive_portal:
+
+esp32_ble_tracker:
+
+globals:
+ - id: screen_power
+ type: bool
+ restore_value: yes
+ initial_value: 'true'
+
+font:
+ - file: 'CascadiaMonoPL.ttf'
+ id: font1
+ size: 17
+
+one_wire:
+ - platform: gpio
+ pin: ${one_wire_pin}
+
+i2c:
+ # sda: GPIO13 #D1
+ # scl: GPIO15 #D2
+ sda: ${sda_pin}
+ scl: ${scl_pin}
+ frequency: 800kHz
+
+display:
+ - platform: ssd1306_i2c
+ id: oled
+ model: "SSD1306 128x64"
+ #reset_pin: GPIO14 #D0
+ address: 0x3C
+ lambda: |-
+ it.print(0, 0, id(font1), "Delt:");
+ it.printf(128, 0, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_delta).state);
+ it.print(0, 16, id(font1), "HVAC:");
+ it.printf(128, 16, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac).state);
+ it.print(0, 32, id(font1), "Retn:");
+ it.printf(128, 32, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_return).state);
+ it.print(0, 48, id(font1), "Ambt:");
+ it.printf(128, 48, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(ambient).state);
+
+sensor:
+ - platform: dallas_temp
+ address: 0xB33C01B607798528
+ name: "Return Temperature"
+ id: hvac_return
+ update_interval: 10s
+ filters:
+ - lambda: return x * (9.0/5.0) + 32.0;
+ unit_of_measurement: "°F"
+ state_class: measurement
+
+ - platform: dallas_temp
+ address: 0x0F3C01B6070C1328
+ name: "HVAC Temperature"
+ id: hvac
+ update_interval: 10s
+ filters:
+ - lambda: return x * (9.0/5.0) + 32.0;
+ unit_of_measurement: "°F"
+ state_class: measurement
+
+ - platform: dallas_temp
+ address: 0xFA3C01B607005B28
+ name: "Furnace Room Temperature"
+ id: ambient
+ update_interval: 10s
+ filters:
+ - lambda: return x * (9.0/5.0) + 32.0;
+ unit_of_measurement: "°F"
+ state_class: measurement
+
+ - platform: template
+ name: "HVAC Delta"
+ id: hvac_delta
+ lambda: |-
+ return (id(hvac).state - id(hvac_return).state);
+ update_interval: 10s
+ unit_of_measurement: "°F"
+ state_class: measurement
+ filters:
+ - or:
+ - throttle: 60s
+ - delta: 1.0
+
+ - platform: ultrasonic
+ trigger_pin: ${trigger_pin}
+ echo_pin: ${echo_pin}
+ id: ultrasonic_source
+ #update_interval: 5s
+ internal: True
+ filters:
+ - sliding_window_moving_average:
+ window_size: 5
+ send_every: 5
+ send_first_at: 1
+ on_value:
+ then:
+ - sensor.template.publish:
+ id: distance_from_bottom
+ state: !lambda 'return id(ultrasonic_source).state;'
+
+ - sensor.template.publish:
+ id: distance_from_top
+ state: !lambda 'return id(ultrasonic_source).state;'
+
+ - platform: template
+ unit_of_measurement: "cm"
+ state_class: measurement
+ id: distance_from_bottom
+ name: "Salt Level in CM"
+ #update_interval: 5s
+ filters:
+ - lambda: 'return (0.94 - (id(ultrasonic_source).state)) * 100;'
+ on_value:
+ then:
+ - sensor.template.publish:
+ id: level_in_bags
+ state: !lambda 'return id(distance_from_bottom).state;'
+
+ - platform: template
+ unit_of_measurement: "cm"
+ state_class: measurement
+ id: distance_from_top
+ name: "Salt Level From Top in CM"
+ #update_interval: 5s
+ filters:
+ - lambda: 'return (id(ultrasonic_source).state) * 100;'
+
+ - platform: template
+ unit_of_measurement: "bags"
+ state_class: measurement
+ id: level_in_bags
+ name: "Salt Level in Bags"
+ #update_interval: 5s
+ filters:
+ - lambda: 'return (id(distance_from_bottom).state) / 17.5;'
+
+binary_sensor:
+ - platform: gpio
+ name: "Furnace Room Door"
+ device_class: door
+ pin:
+ number: ${door_pin}
+ #mode: INPUT_PULLUP
+
+ - platform: homeassistant
+ internal: true
+ id: light_state
+ entity_id: light.furnace_room
+ on_state:
+ then:
+ - if:
+ condition:
+ lambda: 'return id(light_state).state;'
+ then:
+ - logger.log: "The light is on"
+ else:
+ - logger.log: "The is off. Turning off display"
+ - switch.turn_off: display_switch
+
+switch:
+ - platform: template
+ id: display_switch
+ name: "HVAC Display Switch"
+ lambda: |-
+ if (id(screen_power)) {
+ id(oled).turn_on();
+ } else {
+ id(oled).turn_off();
+ }
+ return id(screen_power);
+ turn_on_action:
+ - lambda: |-
+ id(screen_power) = true;
+ // id(oled).turn_on();
+ turn_off_action:
+ - lambda: |-
+ id(screen_power) = false;
+ // id(oled).turn_off();
diff --git a/lovelace/templates/front-room-remote.yaml b/lovelace/templates/front-room-remote.yaml
index 439d691..e507df3 100644
--- a/lovelace/templates/front-room-remote.yaml
+++ b/lovelace/templates/front-room-remote.yaml
@@ -1,35 +1,35 @@
-type: grid
-cards:
- - type: custom:mini-media-player
- entity: media_player.front_room_tv
- toggle_power: true
- artwork: material
- info: short
- source: full
- volume_stateless: false
- group: false
- idle_view:
- when_standby: true
- when_idle: true
- - type: custom:firemote-card
- entity: media_player.front_room_tv
- device_family: roku
- device_type: roku-ultra-2020
- compatibility_mode: default
- roku_remote_entity: remote.front_room_tv
- app_launch_1: youtube
- app_launch_2: disney-plus
- app_launch_3: max
- app_launch_4: hulu
- app_launch_5: function-find-my-remote
- visible_name_text: Front Room
- name_position: top
- visible_name_text_color: '#ffffff'
- grid_options:
- columns: full
- defaultRemoteStyle_override: RVR
- app_launcher_relative_size: '8'
- useCustomSkin: true
- dpad_style: minimal
- scale: '100'
-column_span: 1
+type: grid
+cards:
+ - type: custom:mini-media-player
+ entity: media_player.front_room_tv
+ toggle_power: true
+ artwork: material
+ info: short
+ source: full
+ volume_stateless: false
+ group: false
+ idle_view:
+ when_standby: true
+ when_idle: true
+ - type: custom:firemote-card
+ entity: media_player.front_room_tv
+ device_family: roku
+ device_type: roku-ultra-2020
+ compatibility_mode: default
+ roku_remote_entity: remote.front_room_tv
+ app_launch_1: youtube
+ app_launch_2: disney-plus
+ app_launch_3: max
+ app_launch_4: hulu
+ app_launch_5: function-find-my-remote
+ visible_name_text: Front Room
+ name_position: top
+ visible_name_text_color: '#ffffff'
+ grid_options:
+ columns: full
+ defaultRemoteStyle_override: RVR
+ app_launcher_relative_size: '8'
+ useCustomSkin: true
+ dpad_style: minimal
+ scale: '100'
+column_span: 1
diff --git a/lovelace/templates/great-room-remote.yaml b/lovelace/templates/great-room-remote.yaml
index eb4025b..7cbd2f0 100644
--- a/lovelace/templates/great-room-remote.yaml
+++ b/lovelace/templates/great-room-remote.yaml
@@ -1,33 +1,33 @@
-type: grid
-cards:
- - type: custom:mini-media-player
- entity: media_player.downstairs_roku
- toggle_power: false
- artwork: cover
- info: scroll
- source: icon
- volume_stateless: false
- group: false
- idle_view:
- when_idle: true
- when_standby: true
- - type: custom:firemote-card
- entity: media_player.downstairs_roku
- device_family: roku
- device_type: roku-ultra-2020
- compatibility_mode: default
- roku_remote_entity: remote.downstairs_roku
- app_launch_1: youtube
- app_launch_2: disney-plus
- app_launch_3: max
- app_launch_4: hulu
- app_launch_5: function-find-my-remote
- visible_name_text: Great Room
- name_position: top
- visible_name_text_color: '#ffffff'
- grid_options:
- columns: full
- defaultRemoteStyle_override: RVR
- app_launcher_relative_size: '8'
- scale: '100'
+type: grid
+cards:
+ - type: custom:mini-media-player
+ entity: media_player.downstairs_roku
+ toggle_power: false
+ artwork: cover
+ info: scroll
+ source: icon
+ volume_stateless: false
+ group: false
+ idle_view:
+ when_idle: true
+ when_standby: true
+ - type: custom:firemote-card
+ entity: media_player.downstairs_roku
+ device_family: roku
+ device_type: roku-ultra-2020
+ compatibility_mode: default
+ roku_remote_entity: remote.downstairs_roku
+ app_launch_1: youtube
+ app_launch_2: disney-plus
+ app_launch_3: max
+ app_launch_4: hulu
+ app_launch_5: function-find-my-remote
+ visible_name_text: Great Room
+ name_position: top
+ visible_name_text_color: '#ffffff'
+ grid_options:
+ columns: full
+ defaultRemoteStyle_override: RVR
+ app_launcher_relative_size: '8'
+ scale: '100'
column_span: 1
\ No newline at end of file
diff --git a/tmp/tts/helloworld.txt b/tmp/tts/helloworld.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/www/icons/weather_icons/animated/cloudy-day-1.svg b/www/icons/weather_icons/animated/cloudy-day-1.svg
new file mode 100644
index 0000000..c1f1922
--- /dev/null
+++ b/www/icons/weather_icons/animated/cloudy-day-1.svg
@@ -0,0 +1,175 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/cloudy-day-2.svg b/www/icons/weather_icons/animated/cloudy-day-2.svg
new file mode 100644
index 0000000..712a564
--- /dev/null
+++ b/www/icons/weather_icons/animated/cloudy-day-2.svg
@@ -0,0 +1,176 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/cloudy-day-3.svg b/www/icons/weather_icons/animated/cloudy-day-3.svg
new file mode 100644
index 0000000..ddcd408
--- /dev/null
+++ b/www/icons/weather_icons/animated/cloudy-day-3.svg
@@ -0,0 +1,175 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/cloudy-night-1.svg b/www/icons/weather_icons/animated/cloudy-night-1.svg
new file mode 100644
index 0000000..bc6360d
--- /dev/null
+++ b/www/icons/weather_icons/animated/cloudy-night-1.svg
@@ -0,0 +1,198 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/cloudy-night-2.svg b/www/icons/weather_icons/animated/cloudy-night-2.svg
new file mode 100644
index 0000000..391ceeb
--- /dev/null
+++ b/www/icons/weather_icons/animated/cloudy-night-2.svg
@@ -0,0 +1,198 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/cloudy-night-3.svg b/www/icons/weather_icons/animated/cloudy-night-3.svg
new file mode 100644
index 0000000..2425af9
--- /dev/null
+++ b/www/icons/weather_icons/animated/cloudy-night-3.svg
@@ -0,0 +1,198 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/cloudy.svg b/www/icons/weather_icons/animated/cloudy.svg
new file mode 100644
index 0000000..d94fd30
--- /dev/null
+++ b/www/icons/weather_icons/animated/cloudy.svg
@@ -0,0 +1,500 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/day.svg b/www/icons/weather_icons/animated/day.svg
new file mode 100644
index 0000000..6566b16
--- /dev/null
+++ b/www/icons/weather_icons/animated/day.svg
@@ -0,0 +1,521 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/night.svg b/www/icons/weather_icons/animated/night.svg
new file mode 100644
index 0000000..0c13686
--- /dev/null
+++ b/www/icons/weather_icons/animated/night.svg
@@ -0,0 +1,503 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/rainy-1.svg b/www/icons/weather_icons/animated/rainy-1.svg
new file mode 100644
index 0000000..575df6c
--- /dev/null
+++ b/www/icons/weather_icons/animated/rainy-1.svg
@@ -0,0 +1,157 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/rainy-2.svg b/www/icons/weather_icons/animated/rainy-2.svg
new file mode 100644
index 0000000..faa8cf0
--- /dev/null
+++ b/www/icons/weather_icons/animated/rainy-2.svg
@@ -0,0 +1,133 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/rainy-3.svg b/www/icons/weather_icons/animated/rainy-3.svg
new file mode 100644
index 0000000..bfb2a4c
--- /dev/null
+++ b/www/icons/weather_icons/animated/rainy-3.svg
@@ -0,0 +1,157 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/rainy-4.svg b/www/icons/weather_icons/animated/rainy-4.svg
new file mode 100644
index 0000000..52252b4
--- /dev/null
+++ b/www/icons/weather_icons/animated/rainy-4.svg
@@ -0,0 +1,66 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/rainy-5.svg b/www/icons/weather_icons/animated/rainy-5.svg
new file mode 100644
index 0000000..52461db
--- /dev/null
+++ b/www/icons/weather_icons/animated/rainy-5.svg
@@ -0,0 +1,90 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/rainy-6.svg b/www/icons/weather_icons/animated/rainy-6.svg
new file mode 100644
index 0000000..ea384b1
--- /dev/null
+++ b/www/icons/weather_icons/animated/rainy-6.svg
@@ -0,0 +1,91 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/rainy-7.svg b/www/icons/weather_icons/animated/rainy-7.svg
new file mode 100644
index 0000000..220dcf8
--- /dev/null
+++ b/www/icons/weather_icons/animated/rainy-7.svg
@@ -0,0 +1,91 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/snowy-1.svg b/www/icons/weather_icons/animated/snowy-1.svg
new file mode 100644
index 0000000..1045466
--- /dev/null
+++ b/www/icons/weather_icons/animated/snowy-1.svg
@@ -0,0 +1,230 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/snowy-2.svg b/www/icons/weather_icons/animated/snowy-2.svg
new file mode 100644
index 0000000..f01f8b7
--- /dev/null
+++ b/www/icons/weather_icons/animated/snowy-2.svg
@@ -0,0 +1,237 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/snowy-3.svg b/www/icons/weather_icons/animated/snowy-3.svg
new file mode 100644
index 0000000..8c51ef8
--- /dev/null
+++ b/www/icons/weather_icons/animated/snowy-3.svg
@@ -0,0 +1,268 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/snowy-4.svg b/www/icons/weather_icons/animated/snowy-4.svg
new file mode 100644
index 0000000..e282d18
--- /dev/null
+++ b/www/icons/weather_icons/animated/snowy-4.svg
@@ -0,0 +1,94 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/snowy-5.svg b/www/icons/weather_icons/animated/snowy-5.svg
new file mode 100644
index 0000000..463d6d8
--- /dev/null
+++ b/www/icons/weather_icons/animated/snowy-5.svg
@@ -0,0 +1,166 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/snowy-6.svg b/www/icons/weather_icons/animated/snowy-6.svg
new file mode 100644
index 0000000..beba9e4
--- /dev/null
+++ b/www/icons/weather_icons/animated/snowy-6.svg
@@ -0,0 +1,225 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/thunder.svg b/www/icons/weather_icons/animated/thunder.svg
new file mode 100644
index 0000000..a27ff55
--- /dev/null
+++ b/www/icons/weather_icons/animated/thunder.svg
@@ -0,0 +1,268 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/weather-sprite.svg b/www/icons/weather_icons/animated/weather-sprite.svg
new file mode 100644
index 0000000..b0117b7
--- /dev/null
+++ b/www/icons/weather_icons/animated/weather-sprite.svg
@@ -0,0 +1,1245 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/weather.svg b/www/icons/weather_icons/animated/weather.svg
new file mode 100644
index 0000000..7258930
--- /dev/null
+++ b/www/icons/weather_icons/animated/weather.svg
@@ -0,0 +1,1245 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/weather_sagittarius.svg b/www/icons/weather_icons/animated/weather_sagittarius.svg
new file mode 100644
index 0000000..4285ab7
--- /dev/null
+++ b/www/icons/weather_icons/animated/weather_sagittarius.svg
@@ -0,0 +1,9 @@
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/animated/weather_sunset.svg b/www/icons/weather_icons/animated/weather_sunset.svg
new file mode 100644
index 0000000..f491da7
--- /dev/null
+++ b/www/icons/weather_icons/animated/weather_sunset.svg
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/www/icons/weather_icons/static/cloudy-day-1.svg b/www/icons/weather_icons/static/cloudy-day-1.svg
new file mode 100644
index 0000000..0779355
--- /dev/null
+++ b/www/icons/weather_icons/static/cloudy-day-1.svg
@@ -0,0 +1,59 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/cloudy-day-2.svg b/www/icons/weather_icons/static/cloudy-day-2.svg
new file mode 100644
index 0000000..e8d51a2
--- /dev/null
+++ b/www/icons/weather_icons/static/cloudy-day-2.svg
@@ -0,0 +1,60 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/cloudy-day-3.svg b/www/icons/weather_icons/static/cloudy-day-3.svg
new file mode 100644
index 0000000..6ccf90b
--- /dev/null
+++ b/www/icons/weather_icons/static/cloudy-day-3.svg
@@ -0,0 +1,59 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/cloudy-night-1.svg b/www/icons/weather_icons/static/cloudy-night-1.svg
new file mode 100644
index 0000000..1f43b45
--- /dev/null
+++ b/www/icons/weather_icons/static/cloudy-night-1.svg
@@ -0,0 +1,41 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/cloudy-night-2.svg b/www/icons/weather_icons/static/cloudy-night-2.svg
new file mode 100644
index 0000000..054d6ef
--- /dev/null
+++ b/www/icons/weather_icons/static/cloudy-night-2.svg
@@ -0,0 +1,41 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/cloudy-night-3.svg b/www/icons/weather_icons/static/cloudy-night-3.svg
new file mode 100644
index 0000000..3e9df40
--- /dev/null
+++ b/www/icons/weather_icons/static/cloudy-night-3.svg
@@ -0,0 +1,41 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/cloudy.svg b/www/icons/weather_icons/static/cloudy.svg
new file mode 100644
index 0000000..a95dacd
--- /dev/null
+++ b/www/icons/weather_icons/static/cloudy.svg
@@ -0,0 +1,33 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/day.svg b/www/icons/weather_icons/static/day.svg
new file mode 100644
index 0000000..e638ec7
--- /dev/null
+++ b/www/icons/weather_icons/static/day.svg
@@ -0,0 +1,54 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/night.svg b/www/icons/weather_icons/static/night.svg
new file mode 100644
index 0000000..918ffd5
--- /dev/null
+++ b/www/icons/weather_icons/static/night.svg
@@ -0,0 +1,36 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/rainy-1.svg b/www/icons/weather_icons/static/rainy-1.svg
new file mode 100644
index 0000000..f3bdb19
--- /dev/null
+++ b/www/icons/weather_icons/static/rainy-1.svg
@@ -0,0 +1,63 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/rainy-2.svg b/www/icons/weather_icons/static/rainy-2.svg
new file mode 100644
index 0000000..294e2d0
--- /dev/null
+++ b/www/icons/weather_icons/static/rainy-2.svg
@@ -0,0 +1,62 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/rainy-3.svg b/www/icons/weather_icons/static/rainy-3.svg
new file mode 100644
index 0000000..2576756
--- /dev/null
+++ b/www/icons/weather_icons/static/rainy-3.svg
@@ -0,0 +1,63 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/rainy-4.svg b/www/icons/weather_icons/static/rainy-4.svg
new file mode 100644
index 0000000..ca0a309
--- /dev/null
+++ b/www/icons/weather_icons/static/rainy-4.svg
@@ -0,0 +1,33 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/rainy-5.svg b/www/icons/weather_icons/static/rainy-5.svg
new file mode 100644
index 0000000..423a393
--- /dev/null
+++ b/www/icons/weather_icons/static/rainy-5.svg
@@ -0,0 +1,34 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/rainy-6.svg b/www/icons/weather_icons/static/rainy-6.svg
new file mode 100644
index 0000000..ebb00e6
--- /dev/null
+++ b/www/icons/weather_icons/static/rainy-6.svg
@@ -0,0 +1,35 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/rainy-7.svg b/www/icons/weather_icons/static/rainy-7.svg
new file mode 100644
index 0000000..6535324
--- /dev/null
+++ b/www/icons/weather_icons/static/rainy-7.svg
@@ -0,0 +1,35 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/snowy-1.svg b/www/icons/weather_icons/static/snowy-1.svg
new file mode 100644
index 0000000..d8217db
--- /dev/null
+++ b/www/icons/weather_icons/static/snowy-1.svg
@@ -0,0 +1,77 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/snowy-2.svg b/www/icons/weather_icons/static/snowy-2.svg
new file mode 100644
index 0000000..ba822b9
--- /dev/null
+++ b/www/icons/weather_icons/static/snowy-2.svg
@@ -0,0 +1,67 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/snowy-3.svg b/www/icons/weather_icons/static/snowy-3.svg
new file mode 100644
index 0000000..28fde7a
--- /dev/null
+++ b/www/icons/weather_icons/static/snowy-3.svg
@@ -0,0 +1,75 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/snowy-4.svg b/www/icons/weather_icons/static/snowy-4.svg
new file mode 100644
index 0000000..6825143
--- /dev/null
+++ b/www/icons/weather_icons/static/snowy-4.svg
@@ -0,0 +1,38 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/snowy-5.svg b/www/icons/weather_icons/static/snowy-5.svg
new file mode 100644
index 0000000..08345bf
--- /dev/null
+++ b/www/icons/weather_icons/static/snowy-5.svg
@@ -0,0 +1,46 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/snowy-6.svg b/www/icons/weather_icons/static/snowy-6.svg
new file mode 100644
index 0000000..f24d541
--- /dev/null
+++ b/www/icons/weather_icons/static/snowy-6.svg
@@ -0,0 +1,54 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/thunder.svg b/www/icons/weather_icons/static/thunder.svg
new file mode 100644
index 0000000..e2da380
--- /dev/null
+++ b/www/icons/weather_icons/static/thunder.svg
@@ -0,0 +1,36 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/weather-sprite.svg b/www/icons/weather_icons/static/weather-sprite.svg
new file mode 100644
index 0000000..654fb42
--- /dev/null
+++ b/www/icons/weather_icons/static/weather-sprite.svg
@@ -0,0 +1,1245 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/weather.svg b/www/icons/weather_icons/static/weather.svg
new file mode 100644
index 0000000..c194c2c
--- /dev/null
+++ b/www/icons/weather_icons/static/weather.svg
@@ -0,0 +1,622 @@
+
+
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/weather_sagittarius.svg b/www/icons/weather_icons/static/weather_sagittarius.svg
new file mode 100644
index 0000000..4285ab7
--- /dev/null
+++ b/www/icons/weather_icons/static/weather_sagittarius.svg
@@ -0,0 +1,9 @@
+
\ No newline at end of file
diff --git a/www/icons/weather_icons/static/weather_sunset.svg b/www/icons/weather_icons/static/weather_sunset.svg
new file mode 100644
index 0000000..f491da7
--- /dev/null
+++ b/www/icons/weather_icons/static/weather_sunset.svg
@@ -0,0 +1,14 @@
+
+
+
+