diff --git a/addons/243ffc37_git-exporter.yaml b/addons/243ffc37_git-exporter.yaml deleted file mode 100644 index adbe685..0000000 --- a/addons/243ffc37_git-exporter.yaml +++ /dev/null @@ -1,44 +0,0 @@ -check: - check_for_ips: false - check_for_secrets: true - enabled: true -dry_run: false -exclude: -- '*.db' -- '*.log*' -- __pycache__ -- ._* -- .DS_Store -- deps/ -- known_devices.yaml -- tts/ -- '*.tmp' -- '*.swp' -- '*.bak' -- .nvimlog -- build/ -- '*.fault' -- secrets.yaml -- esphome/common/secrets.yaml -- .stversions -- custom_components -- .st* -- ~*-*.yaml -- log.text -- /www/ -- .local/ -- .vscode/ -- .cache/ -- .bash_history -export: - addons: true - esphome: true - lovelace: true - node_red: true -repository: - branch_name: main - commit_message: Home Assistant Git Exporter - password: '!secret git_export_token' - pull_before_push: true - url: '!secret git_export_url' - username: '!secret git_export_token' diff --git a/addons/243ffc37_rsync.yaml b/addons/243ffc37_rsync.yaml deleted file mode 100644 index f2a39cb..0000000 --- a/addons/243ffc37_rsync.yaml +++ /dev/null @@ -1,6 +0,0 @@ -folders: -- /config -private_key_file: /ssl/rsync/id_rsa -remote_folder: /home/user -remote_host: '' -username: user diff --git a/addons/243ffc37_syncthing.yaml b/addons/243ffc37_syncthing.yaml deleted file mode 100644 index 0967ef4..0000000 --- a/addons/243ffc37_syncthing.yaml +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/addons/45df7312_zigbee2mqtt.yaml b/addons/45df7312_zigbee2mqtt.yaml deleted file mode 100644 index ad71225..0000000 --- a/addons/45df7312_zigbee2mqtt.yaml +++ /dev/null @@ -1,9 +0,0 @@ -data_path: /config/zigbee2mqtt -mqtt: {} -serial: {} -socat: - enabled: false - log: false - master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777 - options: -d -d - slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5 diff --git a/addons/77b2833f_timescaledb.yaml b/addons/77b2833f_timescaledb.yaml deleted file mode 100644 index bf3bc8b..0000000 --- a/addons/77b2833f_timescaledb.yaml +++ /dev/null @@ -1,11 +0,0 @@ -databases: -- homeassistant -init_commands: [] -max_connections: 20 -system_packages: [] -timescale_enabled: -- homeassistant -timescaledb: - maxcpus: '4' - maxmemory: 512MB - telemetry: basic diff --git a/addons/9c51689a_pgweb.yaml b/addons/9c51689a_pgweb.yaml deleted file mode 100644 index 30630e7..0000000 --- a/addons/9c51689a_pgweb.yaml +++ /dev/null @@ -1 +0,0 @@ -db: '!secret recorder_db' diff --git a/addons/a0d7b954_esphome.yaml b/addons/a0d7b954_esphome.yaml deleted file mode 100644 index 6e29422..0000000 --- a/addons/a0d7b954_esphome.yaml +++ /dev/null @@ -1 +0,0 @@ -leave_front_door_open: true diff --git a/addons/a0d7b954_nodered.yaml b/addons/a0d7b954_nodered.yaml deleted file mode 100644 index 3bb2e7f..0000000 --- a/addons/a0d7b954_nodered.yaml +++ /dev/null @@ -1,16 +0,0 @@ -certfile: fullchain.pem -credential_secret: '!secret nodered_secret' -dark_mode: false -http_node: - password: '' - username: '' -http_static: - password: '' - username: '' -init_commands: [] -keyfile: privkey.pem -npm_packages: [] -require_ssl: false -ssl: false -system_packages: [] -theme: default diff --git a/addons/a0d7b954_zerotier.yaml b/addons/a0d7b954_zerotier.yaml deleted file mode 100644 index 087939f..0000000 --- a/addons/a0d7b954_zerotier.yaml +++ /dev/null @@ -1,3 +0,0 @@ -api_auth_token: G5XtXp31iwh1Xl0yfaGaXc317Oo9JgVB -networks: -- 17d709436c21ca93 diff --git a/addons/cebe7a76_hassio_google_drive_backup.yaml b/addons/cebe7a76_hassio_google_drive_backup.yaml deleted file mode 100644 index f489216..0000000 --- a/addons/cebe7a76_hassio_google_drive_backup.yaml +++ /dev/null @@ -1,4 +0,0 @@ -days_between_backups: 3 -max_backups_in_google_drive: 4 -max_backups_in_ha: 4 -send_error_reports: true diff --git a/addons/core_configurator.yaml b/addons/core_configurator.yaml deleted file mode 100644 index 9ff6ec3..0000000 --- a/addons/core_configurator.yaml +++ /dev/null @@ -1,9 +0,0 @@ -dirsfirst: false -enforce_basepath: true -git: true -ignore_pattern: -- __pycache__ -- .cloud -- .storage -- deps -ssh_keys: [] diff --git a/addons/core_mosquitto.yaml b/addons/core_mosquitto.yaml deleted file mode 100644 index 402d11a..0000000 --- a/addons/core_mosquitto.yaml +++ /dev/null @@ -1,13 +0,0 @@ -certfile: fullchain.pem -customize: - active: false - folder: mosquitto -keyfile: privkey.pem -logins: -- password: '!secret mosquitto_espresense_password' - username: espresense -- password: '!secret mosquitto_esphome_password' - username: esphome -- password: '!secret mosquitto_zigbee2mqtt_password' - username: zigbee2mqtt -require_certificate: false diff --git a/addons/core_samba.yaml b/addons/core_samba.yaml deleted file mode 100644 index 472d1d1..0000000 --- a/addons/core_samba.yaml +++ /dev/null @@ -1,13 +0,0 @@ -allow_hosts: -- '!secret lan_subnet' -- '!secret docker_subnet' -compatibility_mode: false -password: '!secret samba_password' -username: '!secret samba_username' -veto_files: -- ._* -- .DS_Store -- Thumbs.db -- icon? -- .Trashes -workgroup: WORKGROUP diff --git a/addons/core_ssh.yaml b/addons/core_ssh.yaml deleted file mode 100644 index 977d107..0000000 --- a/addons/core_ssh.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apks: -- neovim -- postgresql-client -- bat -authorized_keys: -- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO3TLYeC/VkgBdsabbhRDG5mdTgIsjvE2046Pir4DQFb -- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILIusX84DqZiOvTKgjD481KIF5gH5XZcC26AIo4y/E9M -- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCequm1RHBiWwfCRPcKc+I8ptsIwj5dW3O9ETbKbnkqkZv6Ent2nm5zVYK7YdmS2IEhcZtCZVmOOc+m0xH4/x5aRH7HnUtP1De72HTrR82yvOMa4uOsgF73Sb3Fo94UXT+9C3jdWiemiNVB87szi6RQxRTRxcEsX76r6ViMSigEPAviuNWiGMbmw+5hVJhVq4Vv8C6wN3C7F2GrKkSuorr5e7oXluaSEg5rgusuQn637dSK1kbJSeda4qsdaOj5zrOPYWxT/HkZLvAOnwz1XuLl+uLQVrkikFp3mXrYT8jarbt6q3e95JpA2SQJVZNpCL55akUUVEr7FocxOmGS7awprYI3PDryCbmTHp64mx/6XzhRDhYYnauKMu1nnU3pasCj2kCaFg1k9Ficq9o6yWpRGxvUb5ZPAE06YlTwXeEHFATIA/GXdi33G60Zjd0kmfEjbjOOihU+Oxvg7vCzFVHsg2qL5/8KpVHP7kpkYANgjjSvZE3zl2IKOMLvlBslpmcYX/GN/J5Ln0BSi1lw0e51PQePhVZC6Wqt1jQ2NMQ9BJRFWSNAraEeU2Df+GlJUF2yoDU0vVpSYETTpTZt6l2u/L3h+/YElWpZNAba1Y7EqvXgKF9C/DCZteAxXXcOmdNeUYrJnKD2er9vG5JqN0R5Fvws77R+fSc6ldrH1Ft7EQ== -- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJykg+5TulcwmeKFYSjZmnrL5/Fo4kWmOV1fAyt41Evh -password: '' -server: - tcp_forwarding: false diff --git a/addons/repositories.yaml b/addons/repositories.yaml index 98ed37d..0420c6c 100644 --- a/addons/repositories.yaml +++ b/addons/repositories.yaml @@ -1,3 +1,23 @@ +Add-On Repository for Cloudflare: + maintainer: Tobia Brenner + slug: 9074a9fa + source: https://github.com/brenner-tobias/ha-addons +Alex's Add-ons Shack: + maintainer: Alex van den Hoogen + slug: 2ca71ec5 + source: https://github.com/alex3305/home-assistant-addons +B Tasker HomeAssistant Addons: + maintainer: B Tasker + slug: 93f0ddc5 + source: https://github.com/bentasker/HomeAssistantAddons +EMHASS Add-on Energy Management for Home Assistant: + maintainer: David HERNANDEZ + slug: 5b918bf2 + source: https://github.com/davidusb-geek/emhass-add-on +ESPHome: + maintainer: ESPHome + slug: 5c53de3b + source: https://github.com/esphome/home-assistant-addon Expaso Home Assistant Add-Ons: maintainer: Hans van Essen slug: 77b2833f @@ -6,10 +26,6 @@ Frigate hass.io addons: maintainer: blakeblackshear slug: ccab4aaf source: https://github.com/blakeblackshear/frigate-hass-addons -HA Add-ons by alexbelgium: - maintainer: alexbelgium - slug: db21ed7f - source: https://github.com/alexbelgium/hassio-addons Hass.io add-ons by Nicolai: maintainer: Nicolai Bjerre Pedersen slug: 0844df1a @@ -26,35 +42,23 @@ Home Assistant Google Drive Backup Repository: maintainer: Stephen Beechen slug: cebe7a76 source: https://github.com/sabeechen/hassio-google-drive-backup -Local add-ons: - maintainer: you - slug: local - source: local MickMake Hass.io Add-ons: maintainer: MickMake slug: ba22da74 source: https://github.com/MickMake/HomeAssistantAddons -Official add-ons: - maintainer: Home Assistant - slug: core - source: core Poeschl Home Assistant Add-ons: maintainer: Poeschl slug: 243ffc37 source: https://github.com/Poeschl/Hassio-Addons -Sanderdw's add-on repository: - maintainer: Sander de Wildt - slug: 0826754b - source: https://github.com/sanderdw/hassio-addons -Tom's Home Assistant Add-ons: - maintainer: Thomas Mauerer - slug: 15d21743 - source: https://github.com/thomasmauerer/hassio-addons +Shortumations: + maintainer: Ari Sosnovsky + slug: 04377e81 + source: https://github.com/asosnovsky/Shortumation +TenySmart Hass.io Add-ons: + maintainer: TTVTien + slug: 4ee6ccd4 + source: https://github.com/TenySmart/HassioAddon bjeanes Home Assistant add-on repository: maintainer: Bo Jeanes slug: 9c51689a source: https://github.com/bjeanes/hassio-addons -bjeanes' fork of Poeschl Home Assistant Add-ons: - maintainer: bjeanes - slug: 61c150fb - source: https://github.com/bjeanes/Poeschl-Hassio-Addons diff --git a/config/.HA_VERSION b/config/.HA_VERSION index 22c18a9..8898b90 100644 --- a/config/.HA_VERSION +++ b/config/.HA_VERSION @@ -1 +1 @@ -2022.7.5 \ No newline at end of file +2022.8.5 \ No newline at end of file diff --git a/config/configuration.yaml b/config/configuration.yaml index 6a7581a..b0f0f71 100644 --- a/config/configuration.yaml +++ b/config/configuration.yaml @@ -22,6 +22,7 @@ recorder: http: use_x_forwarded_for: true trusted_proxies: + - !secret docker_subnet - !secret lan_subnet - !secret iot_subnet - !secret not_subnet @@ -33,6 +34,7 @@ logger: default: warning logs: homeassistant.loader: error + custom_components.magic_areas: debug ffmpeg: diff --git a/config/packages/3d_printing.yaml b/config/packages/3d_printing.yaml index 73bbfa3..83cfe70 100644 --- a/config/packages/3d_printing.yaml +++ b/config/packages/3d_printing.yaml @@ -1,5 +1,5 @@ switch: - - platform: command_line + - platform: command_line # TODO: turn this into https://www.home-assistant.io/integrations/switch.rest/ switches: 3d_printer_connection: # 3d_printer_command_on: /usr/bin/curl -m 10 -d '{"command":"connect"}' -H 'Content-Type: application/json' -H 'X-Api-Key: REDACTED' http://REDACTED/api/connection diff --git a/config/packages/dummy.yaml b/config/packages/dummy.yaml new file mode 100644 index 0000000..480caee --- /dev/null +++ b/config/packages/dummy.yaml @@ -0,0 +1,16 @@ +# This file just includes dummy entities for each integration which I use infrequently. It forces the integration to +# load so that I can reload the YAML instead of having to restart HA in the case where I am adding/enabling the first +# entity from that integration. + +sensor: + - platform: statistics # Force statistics integration to be loaded (even if no other sensors) so I can reload without restarting HA + name: "dummy_statistics" + unique_id: dummy + entity_id: sensor.energy_production_tomorrow + + - platform: filter # Force filter integration to be loaded (even if no other sensors) so I can reload without restarting HA + name: "dummy_filter" + unique_id: dummy + entity_id: sensor.energy_production_tomorrow + filters: + - filter: lowpass diff --git a/config/packages/energy.yaml b/config/packages/energy.yaml index 40ddbbd..d882ba8 100644 --- a/config/packages/energy.yaml +++ b/config/packages/energy.yaml @@ -1,8 +1,138 @@ # See also sungrow.yaml +utility_meter: + monthly_energy_import: + source: sensor.eagle_200_total_meter_energy_delivered + name: Energy imported + cycle: monthly + tariffs: + - peak + - offpeak + + daily_energy_import: + source: sensor.eagle_200_total_meter_energy_delivered + name: Energy imported + cycle: daily + tariffs: + - peak + - offpeak + + monthly_energy_export: + source: sensor.eagle_200_total_meter_energy_received + name: Energy exported + cycle: monthly + + daily_energy_export: + source: sensor.eagle_200_total_meter_energy_received + name: Energy exported + cycle: daily + +automation: + - id: b508954f792ff8483254 + alias: Change electricity tariff + mode: single + trigger: + - platform: time + at: "15:00:00" + variables: + tariff: peak + - platform: time + at: "21:00:00" + variables: + tariff: offpeak + action: + - service: select.select_option + target: + entity_id: + - select.monthly_energy_import + - select.daily_energy_import + data: + option: "{{ tariff }}" + + - id: 4f863af550147e9b3170 + alias: update pvoutput + trigger: + platform: time_pattern + minutes: /5 + action: + service: rest_command.update_pvoutput + data: {} + mode: single + +rest_command: + # https://pvoutput.org/help/api_specification.html#id1 + update_pvoutput: + url: https://pvoutput.org/service/r2/addstatus.jsp + method: post + headers: + Host: pvoutput.org + User-Agent: HomeAssistant + X-Pvoutput-Apikey: !secret pvoutput_api_key + X-Pvoutput-SystemId: !secret pvoutput_system_id + payload: >- + d={{now().strftime("%Y%m%d")}} {#- date -#} + &t={{now().strftime("%H:%M")}} {#- time -#} + &c1=2 {#- cumulative mode -#} + &v1={{(states('sensor.inverter_pv_generation_today')|float * 1000)|round(0) }} + {#- energy generation (Wh) -#} + &v2={{states('sensor.inverter_active_power')|float|round(0)}} {#- power generation (W) -#} + &v3= {#- energy consumption (Wh) -#} + &v4={{states('sensor.household_power_demand')|float|round(0)}} {#- power consumption (W) -#} + {#- &v5={{states('sensor.home_weather_temperature')|float|round(1)}} {#- panel temperature? -#} + &v6={{states('sensor.inverter_phase_a_voltage')|float|round(1)}} {#- voltage -#} + content_type: "application/x-www-form-urlencoded" + sensor: + # entity_id: sensor.inverter_grid_power_demand + # state_characteristic: average_linear + # max_age: "00:05" + # - platform: statistics + # name: "Eagle-200 meter power demand (smooth)" + # unique_id: 5596672fba54c89c2131 + # entity_id: sensor.eagle_200_meter_power_demand_w + # state_characteristic: average_linear + # max_age: "00:05" + + # - platform: filter + # name: "Inverter grid power demand (smooth)" + # unique_id: 88bfc3a211f1540c90cf + # entity_id: sensor.inverter_grid_power_demand + # filters: + # - filter: lowpass + # time_constant: 30 + # - filter: time_simple_moving_average + # window_size: "00:02" + + # - platform: filter + # name: "Eagle-200 meter power demand (smooth)" + # unique_id: 5596672fba54c89c2131 + # entity_id: sensor.eagle_200_meter_power_demand_w + # filters: + # - filter: lowpass + # time_constant: 30 + # - filter: time_simple_moving_average + # window_size: "00:02" + - platform: template sensors: + # energy_import_price: + # unique_id: 2b80f57455c84e873952 + # friendly_name: Energy import price + # value_template: >- + # {%- if is_state('select.daily_energy_import', 'peak') -%} + # 0.23320 + # {%- else -%} + # 0.15235 + # {%- endif -%} + # unit_of_measurement: AUD + # device_class: monetary + # energy_export_price: + # unique_id: a661839f99fbc85e23d9 + # friendly_name: Energy export price + # value_template: "0.067" + # unit_of_measurement: AUD + # device_class: monetary + eagle_200_meter_power_demand_w: unique_id: 528a94ffdd069f6f5dcd friendly_name: Eagle-200 Meter Power Demand (W) @@ -48,6 +178,20 @@ sensor: unit_of_measurement: W device_class: power + inverter_demand_gap_perc: + unique_id: 12b4d474286fab17319d + friendly_name: Inverter demand gap % + value_template: >- + {{ 100 * (-1 * states('sensor.inverter_export_power') | float) / (states('sensor.eagle_200_meter_power_demand_w') | float) }} + unit_of_measurement: "%" + + # inverter_demand_gap_perc_smooth: + # unique_id: ad811b463d9a0a332c62 + # friendly_name: Inverter demand gap % (smooth) + # value_template: >- + # {{ 100 * states('sensor.inverter_grid_power_demand_smooth') | float / states('sensor.eagle_200_meter_power_demand_smooth') | float }} + # unit_of_measurement: "%" + current_electricity_cost: unique_id: current_electricity_cost value_template: | diff --git a/config/packages/frigate.yaml b/config/packages/frigate.yaml new file mode 100644 index 0000000..e69de29 diff --git a/config/packages/home.yaml b/config/packages/home.yaml index 649fc41..bdc3034 100644 --- a/config/packages/home.yaml +++ b/config/packages/home.yaml @@ -7,6 +7,8 @@ homeassistant: return 'mdi:bed'; return 'mdi:bed-empty'; +magic_areas: + proximity: bo_home: zone: home @@ -38,6 +40,26 @@ group: - input_boolean.ri_in_bed automation: + - id: 29b7b074ebcbfa873522 + alias: turn off lights when everyone is in bed + trigger: + - platform: state + entity_id: binary_sensor.everyone_in_bed + from: "off" + to: "on" + for: + minutes: 1 + action: + - service: light.turn_off + target: + entity_id: all + - service: light.turn_on + data: + color_temp: 462 + brightness_pct: 10 + target: + entity_id: light.sconce + - id: not_in_bed alias: No longer in bed when phone leaves room trigger: @@ -143,6 +165,7 @@ homekit: - switch.bo_s_office_plug - switch.bos_office_heater - switch.ri_s_desk_plug + include_entity_globs: - binary_sensor.*_is_occupied - binary_sensor.*_motion @@ -160,6 +183,7 @@ homekit: - "sensor.*freezer*" - "sensor.*cure*" - "sensor.*stash*" + - light.shelly_* - sensor.*garden* - sensor.*battery_temperature* - sensor.*forecast* @@ -171,3 +195,9 @@ homekit: vacuum.robot_vacuum: linked_battery_sensor: sensor.robot_vacuum_battery_level linked_battery_charging_sensor: binary_sensor.robot_vacuum_charging + + - name: shelly + port: 21225 + filter: + include_entity_globs: + - light.shelly_* diff --git a/config/packages/media_centre.yaml b/config/packages/media_centre.yaml index 276889e..5153a6a 100644 --- a/config/packages/media_centre.yaml +++ b/config/packages/media_centre.yaml @@ -183,6 +183,16 @@ media_player: device_class: sensor.current_living_room_media|device_class automation: + - id: sign_into_heos + trigger: + - platform: time_pattern + hours: "1" + action: + - service: heos.sign_in + data: + username: !secret heos_username + password: !secret heos_password + - id: turn_on_apple_tv_on_source trigger: - platform: state @@ -214,7 +224,7 @@ automation: - variables: current_volume_level: "{{ state_attr('media_player.denon_avr_x1600h', 'volume_level') }}" - # TODO model as a dictionary https://community.home-assistant.io/t/remember-volume-levels-of-each-source-for-a-media-player-to-automate-restoring/416749/6?u=bjeanes + # TODO model as a dictionary https://community.home-assistant.io/t/remember-volume-levels-of-each-source-for-a-media-player-to-automate-restoring/416749/6?u=bjeanes #!notsecret!# new_volume_level: >- {% set volumes = state_attr('sensor.living_room_media_player_source_volumes', 'volumes') or [] %} {% set specific_source = state_attr('media_player.living_room_media_player', 'source') %} diff --git a/config/packages/misc.yaml b/config/packages/misc.yaml index ab0d3f1..1a0d8c4 100644 --- a/config/packages/misc.yaml +++ b/config/packages/misc.yaml @@ -32,6 +32,8 @@ anniversaries: date: "1987-02-17" - name: Jordon's Birthday date: "02-19" + - name: Skye's Birthday + date: "07-30" - name: Kate's Birthday date: "03-20" - name: Nick's Birthday @@ -58,3 +60,5 @@ anniversaries: date: "05-05" - name: Alex Charry's Birthday date: "08-06" + - name: Em Cheesman's Birthday + date: "07-20" diff --git a/config/packages/network.yaml b/config/packages/network.yaml index ba343fe..4f2d20b 100644 --- a/config/packages/network.yaml +++ b/config/packages/network.yaml @@ -21,3 +21,114 @@ switch: mac: !secret tumtum_mac host: !secret tumtum_ip broadcast_address: !secret lan_broadcast + turn_off: + - service: shell_command.shutdown_host + data: + host: !secret tumtum_ip + + - platform: wake_on_lan + name: NAS + mac: !secret nas_mac + host: !secret nas_ip + broadcast_address: !secret lan_broadcast + turn_off: + service: button.press + target: + entity_id: button.nas_shutdown + +automation: + - id: 964db306d8b009f8f640 + alias: Power NAS/Tumtum according to sleep + trigger: + - platform: template + value_template: | + {{ + is_state('sensor.everyone_in_bed', 'on') and + is_state('sensor.plex_tumtum_tree', '0') + }} + for: + minutes: 15 + variables: + service: switch.turn_off + - platform: template + value_template: | + {{ is_state('sensor.everyone_in_bed', 'off') }} + for: + minutes: 15 + variables: + service: switch.turn_on + action: + - service: "{{ service }}" + target: + entity_id: + - switch.nas + - switch.tumtum + + - id: 8bec9ab03377b5202cad + alias: Power NAS/Tumtum according to UPS + mode: restart # so we only do latest + trigger: # https://www.home-assistant.io/docs/automation/trigger/#event-trigger + - platform: event + event_type: nut.ups_event + event_data: + notify_type: ONBATT # on battery + variables: + direction: "off" + seconds: 120 + - platform: event + event_type: nut.ups_event + event_data: + notify_type: LOWBAT # low battery + variables: + direction: "off" + seconds: 10 + - platform: event + event_type: nut.ups_event + event_data: + notify_type: FSD # forced shutdown + variables: + direction: "off" + seconds: 3 + - platform: event + event_type: nut.ups_event + event_data: + notify_type: SHUTDOWN # system is shutting down + variables: + direction: "off" + seconds: 0 + - platform: event + event_type: nut.ups_event + event_data: + notify_type: ONLINE # system is (back) online + variables: + direction: "on" + seconds: 120 + action: + - delay: "{{ seconds }}" + - service: "switch.turn_{{ direction }}" + target: + entity_id: + - switch.nas + - switch.tumtum + + - id: 0300364ca8c814c4c325 + alias: "Notify on UPS state change" + trigger: + - platform: event + event_type: nut.ups_event + action: + - service: notify.mobile_app_bos_iphone + data_template: + title: "UPS changed state" + message: "{{ trigger.event.data.notify_msg }}" + data: + push: + interruption-level: time-sensitive + +shell_command: + # NOTE: make sure connecting user can execute specified sudo command without password on remote host + # See https://askubuntu.com/questions/168879/shutdown-from-terminal-without-entering-password, https://wiki.archlinux.org/title/allow_users_to_shutdown, https://toroid.org/sudoers-syntax + reboot_host: > + ssh -i /config/.ssh/id_rsa -o 'StrictHostKeyChecking=no' -l {% if user is defined %}{{user}}{%else%}homeassistant{% endif %} {{host}} -- 'sudo reboot' + shutdown_host: > + ssh -i /config/.ssh/id_rsa -o 'StrictHostKeyChecking=no' -l {% if user is defined %}{{user}}{%else%}homeassistant{% endif %} {{host}} -- 'sudo poweroff' diff --git a/config/packages/sungrow.yaml b/config/packages/sungrow.yaml index ee0c495..593e420 100644 --- a/config/packages/sungrow.yaml +++ b/config/packages/sungrow.yaml @@ -27,9 +27,142 @@ # {% else %} 204 {% endif %}" # hub: SungrowSHx # mode: single + +input_datetime: + inverter_charging_schedule_start: + has_time: true + name: Inverter charging schedule start + initial: "13:30:00" + inverter_charging_schedule_end: + has_time: true + name: Inverter charging schedule end + initial: "14:59:00" +input_number: + inverter_charging_schedule_target_soc: + name: Inverter charging target state of charge + min: 0 + max: 100 + unit_of_measurement: "%" + mode: box + inverter_battery_reserve: + name: Inverter battery reserve + min: 0 + max: 100 + initial: 5 + unit_of_measurement: "%" + mode: box + +automation: + - id: e7df7dc23815acacdd8c + alias: Inverter - apply charging schedule + mode: restart + trigger: + - platform: state + entity_id: + - input_datetime.inverter_charging_schedule_start + - input_datetime.inverter_charging_schedule_end + - input_number.inverter_charging_schedule_target_soc + not_from: + - unknown + - unavailable + not_to: + - unknown + - unavailable + action: + - service: script.apply_charging_schedule + data_template: + soc_1: "{{ states('input_number.inverter_charging_schedule_target_soc') | int }}" + start_time_1: "{{ states('input_datetime.inverter_charging_schedule_start') }}" + end_time_1: "{{ states('input_datetime.inverter_charging_schedule_end') }}" + + - id: 7b93d325bfe632a4e890 + alias: Inverter - update battery reserve + mode: restart + trigger: + - platform: state + entity_id: + - input_number.inverter_battery_reserve + not_from: + - unknown + - unavailable + not_to: + - unknown + - unavailable + action: + - service: script.inverter_set_battery_reserve + data_template: + reserved_percentage: >- + {{ states('input_number.inverter_battery_reserve') | int }} + script: + inverter_set_battery_reserve: + alias: "Set inverter battery reserve" + mode: restart + fields: + reserved_percentage: + name: "Percentage" + description: "Percentage of battery reserved for emergency power supply" + required: true + selector: + number: + min: 0 + max: 100 + step: 1 + unit_of_measurement: "%" + sequence: + - service: modbus.write_register + data_template: + address: 13099 # 13100 + slave: 1 + value: "{{ [ reserved_percentage | int ] }}" + hub: SungrowSHx + + # inverter_set_battery_mode: + # alias: Set inverter battery mode + # fields: + # battery_power: + # name: "Charge/discharge power" + # description: "Charge/discharge power" + # required: false + # selector: + # number: + # min: 0 + # max: 6600 + # step: 1 + # unit_of_measurement: "W" + + # battery_mode: + # name: "Battery mode" + # description: "Battery mode" + # required: true + # selector: + # select: + # options: + # - label: Self-consumption + # value: [0, 0xCC] + # - label: Force charge + # value: [2, 0xAA] + # - label: Force discharge + # value: [2, 0xBB] + # - label: Stop + # value: [2, 0xCC] + # sequence: + # - service: modbus.write_register + # data_template: + # address: 13049 # 13050-13051 + # slave: 1 + # # value: "{{ battery_mode }}" + # value: | + # {% if battery_power %} + # {{ battery_mode + [battery_power|int] }} + # {% else %} + # {{ battery_mode }} + # {% endif %} + # hub: SungrowSHx + inverter_force_battery_charge: alias: "Inverter - force battery charge" + mode: restart sequence: - service: modbus.write_register data_template: @@ -39,6 +172,7 @@ script: hub: SungrowSHx inverter_force_battery_discharge: alias: "Inverter - force battery discharge" + mode: restart sequence: - service: modbus.write_register data_template: @@ -48,6 +182,7 @@ script: hub: SungrowSHx inverter_force_battery_stop: alias: "Inverter - force battery stop" + mode: restart sequence: - service: modbus.write_register data_template: @@ -57,6 +192,7 @@ script: hub: SungrowSHx inverter_self_consumption: alias: "Inverter - self consumption" + mode: restart sequence: - service: modbus.write_register data_template: @@ -65,6 +201,93 @@ script: value: [0, 0xCC] hub: SungrowSHx + # https://github.com/bohdan-s/SunGather/pull/63#issuecomment-1195049341 + apply_charging_schedule: + alias: "Inverter - apply charging schedule" + + # Q: is this evaluated _after_ field values are captured or before? + variables: + enable_value: 0xAA + disable_value: 0x55 + every_day_value: 1 + is_enabled: "{{ (soc_1 is defined and soc_1 | int > 0) or (soc_2 is defined and soc_2 | int > 0) }}" + sched_1: > + {% if soc_1 is defined and soc_1 | int > 0 %} + {{ [ + today_at(start_time_1).hour, + today_at(start_time_1).minute, + today_at(end_time_1).hour, + today_at(end_time_1).minute, + soc_1 + ] }} + {% else %} + {{ [0, 0, 0, 0, 0] }} + {% endif %} + sched_2: > + {% if soc_2 is defined and soc_2 | int > 0 %} + {{ [ + today_at(start_time_2).hour, + today_at(start_time_2).minute, + today_at(end_time_2).hour, + today_at(end_time_2).minute, + soc_2 + ] }} + {% else %} + {{ [0, 0, 0, 0, 0] }} + {% endif %} + bytes: > + {% if is_enabled %} + {{ [enable_value, every_day_value] + sched_1 + sched_2 }} + {% else %} + {{ [disable_value] }} + {% endif %} + + fields: + start_time_1: + name: Schedule 1 Start Time + default: "13:30:00" + selector: + time: + end_time_1: + name: Schedule 1 End Time + default: "14:59:00" # 3PM is on-peak charging + selector: + time: + soc_1: + name: Schedule 1 Target State-of-Charge + default: 85 + selector: + number: + min: 0 + max: 100 + unit_of_measurement: "%" + start_time_2: + name: Schedule 2 Start Time + default: "0:00:00" + selector: + time: + end_time_2: + name: Schedule 2 End Time + default: "00:00:00" + selector: + time: + soc_2: + name: Schedule 2 Target State-of-Charge + default: 0 + selector: + number: + min: 0 + max: 100 + unit_of_measurement: "%" + + sequence: + - service: modbus.write_register + data_template: + address: 33207 # 33208 - ... + slave: 1 + value: "{{ bytes | list }}" + hub: SungrowSHx + modbus: - name: SungrowSHx type: tcp diff --git a/config/packages/work.yaml b/config/packages/work.yaml index 87c583a..826dd54 100644 --- a/config/packages/work.yaml +++ b/config/packages/work.yaml @@ -3,7 +3,7 @@ calendar: calendars: - name: "On-call" url: !secret oncall_schedule_url - includeAllDay: true + include_all_day: true days: 30 automation: @@ -12,16 +12,14 @@ automation: - platform: state entity_id: cover.front_gate from: "closed" - to: "open" - - platform: state - entity_id: cover.front_gate - from: "closed" - to: "opening" - - platform: event - event_type: homekit_state_change - event_data: - entity_id: cover.front_gate - service: open_cover + to: + - open + - opening + # - platform: event + # event_type: homekit_state_change + # event_data: + # entity_id: cover.front_gate + # service: open_cover condition: >- {{ is_state('calendar.on_call', 'on') or is_state('calendar.ical_on_call', 'on') }} action: diff --git a/config/solcast.json b/config/solcast.json index 3c9abce..a7eb6f1 100644 --- a/config/solcast.json +++ b/config/solcast.json @@ -1 +1 @@ -{"forecasts": [{"period_end": "2022-07-19T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T07:00:00+10:00", "pv_estimate": 0.1652}, {"period_end": "2022-07-19T08:00:00+10:00", "pv_estimate": 2.29865}, {"period_end": "2022-07-19T09:00:00+10:00", "pv_estimate": 4.29075}, {"period_end": "2022-07-19T10:00:00+10:00", "pv_estimate": 5.60435}, {"period_end": "2022-07-19T11:00:00+10:00", "pv_estimate": 6.4066}, {"period_end": "2022-07-19T12:00:00+10:00", "pv_estimate": 6.55395}, {"period_end": "2022-07-19T13:00:00+10:00", "pv_estimate": 6.01865}, {"period_end": "2022-07-19T14:00:00+10:00", "pv_estimate": 4.22555}, {"period_end": "2022-07-19T15:00:00+10:00", "pv_estimate": 3.2384}, {"period_end": "2022-07-19T16:00:00+10:00", "pv_estimate": 2.1896}, {"period_end": "2022-07-19T17:00:00+10:00", "pv_estimate": 0.0987}, {"period_end": "2022-07-19T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T07:00:00+10:00", "pv_estimate": 0.10435}, {"period_end": "2022-07-20T08:00:00+10:00", "pv_estimate": 2.22475}, {"period_end": "2022-07-20T09:00:00+10:00", "pv_estimate": 4.29155}, {"period_end": "2022-07-20T10:00:00+10:00", "pv_estimate": 5.5582}, {"period_end": "2022-07-20T11:00:00+10:00", "pv_estimate": 6.2748}, {"period_end": "2022-07-20T12:00:00+10:00", "pv_estimate": 6.54735}, {"period_end": "2022-07-20T13:00:00+10:00", "pv_estimate": 6.2224}, {"period_end": "2022-07-20T14:00:00+10:00", "pv_estimate": 5.4392499999999995}, {"period_end": "2022-07-20T15:00:00+10:00", "pv_estimate": 4.15705}, {"period_end": "2022-07-20T16:00:00+10:00", "pv_estimate": 2.03605}, {"period_end": "2022-07-20T17:00:00+10:00", "pv_estimate": 0.0781}, {"period_end": "2022-07-20T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T07:00:00+10:00", "pv_estimate": 0.08875}, {"period_end": "2022-07-21T08:00:00+10:00", "pv_estimate": 2.077}, {"period_end": "2022-07-21T09:00:00+10:00", "pv_estimate": 3.92595}, {"period_end": "2022-07-21T10:00:00+10:00", "pv_estimate": 5.246650000000001}, {"period_end": "2022-07-21T11:00:00+10:00", "pv_estimate": 6.0548}, {"period_end": "2022-07-21T12:00:00+10:00", "pv_estimate": 6.3704}, {"period_end": "2022-07-21T13:00:00+10:00", "pv_estimate": 6.0533}, {"period_end": "2022-07-21T14:00:00+10:00", "pv_estimate": 5.3351500000000005}, {"period_end": "2022-07-21T15:00:00+10:00", "pv_estimate": 4.1174}, {"period_end": "2022-07-21T16:00:00+10:00", "pv_estimate": 2.0458}, {"period_end": "2022-07-21T17:00:00+10:00", "pv_estimate": 0.07975}, {"period_end": "2022-07-21T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T07:00:00+10:00", "pv_estimate": 0.09145}, {"period_end": "2022-07-22T08:00:00+10:00", "pv_estimate": 2.0791500000000003}, {"period_end": "2022-07-22T09:00:00+10:00", "pv_estimate": 3.8309499999999996}, {"period_end": "2022-07-22T10:00:00+10:00", "pv_estimate": 5.1068999999999996}, {"period_end": "2022-07-22T11:00:00+10:00", "pv_estimate": 5.76485}, {"period_end": "2022-07-22T12:00:00+10:00", "pv_estimate": 5.902}, {"period_end": "2022-07-22T13:00:00+10:00", "pv_estimate": 5.2309}, {"period_end": "2022-07-22T14:00:00+10:00", "pv_estimate": 3.7748999999999997}, {"period_end": "2022-07-22T15:00:00+10:00", "pv_estimate": 2.1012}, {"period_end": "2022-07-22T16:00:00+10:00", "pv_estimate": 0.66015}, {"period_end": "2022-07-22T17:00:00+10:00", "pv_estimate": 0.03115}, {"period_end": "2022-07-22T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T07:00:00+10:00", "pv_estimate": 0.03865}, {"period_end": "2022-07-23T08:00:00+10:00", "pv_estimate": 0.5871999999999999}, {"period_end": "2022-07-23T09:00:00+10:00", "pv_estimate": 1.4879}, {"period_end": "2022-07-23T10:00:00+10:00", "pv_estimate": 2.1003}, {"period_end": "2022-07-23T11:00:00+10:00", "pv_estimate": 2.2268499999999998}, {"period_end": "2022-07-23T12:00:00+10:00", "pv_estimate": 2.0212}, {"period_end": "2022-07-23T13:00:00+10:00", "pv_estimate": 1.6935}, {"period_end": "2022-07-23T14:00:00+10:00", "pv_estimate": 1.31975}, {"period_end": "2022-07-23T15:00:00+10:00", "pv_estimate": 0.7945}, {"period_end": "2022-07-23T16:00:00+10:00", "pv_estimate": 0.2931}, {"period_end": "2022-07-23T17:00:00+10:00", "pv_estimate": 0.01795}, {"period_end": "2022-07-23T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T07:00:00+10:00", "pv_estimate": 0.076}, {"period_end": "2022-07-24T08:00:00+10:00", "pv_estimate": 1.76945}, {"period_end": "2022-07-24T09:00:00+10:00", "pv_estimate": 3.3737}, {"period_end": "2022-07-24T10:00:00+10:00", "pv_estimate": 4.5339}, {"period_end": "2022-07-24T11:00:00+10:00", "pv_estimate": 5.3882}, {"period_end": "2022-07-24T12:00:00+10:00", "pv_estimate": 5.5493500000000004}, {"period_end": "2022-07-24T13:00:00+10:00", "pv_estimate": 5.36705}, {"period_end": "2022-07-24T14:00:00+10:00", "pv_estimate": 4.63125}, {"period_end": "2022-07-24T15:00:00+10:00", "pv_estimate": 3.45115}, {"period_end": "2022-07-24T16:00:00+10:00", "pv_estimate": 1.83555}, {"period_end": "2022-07-24T17:00:00+10:00", "pv_estimate": 0.09175}, {"period_end": "2022-07-24T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T07:00:00+10:00", "pv_estimate": 0.06055}, {"period_end": "2022-07-25T08:00:00+10:00", "pv_estimate": 1.078}, {"period_end": "2022-07-25T09:00:00+10:00", "pv_estimate": 2.30975}, {"period_end": "2022-07-25T10:00:00+10:00", "pv_estimate": 3.12005}, {"period_end": "2022-07-25T11:00:00+10:00", "pv_estimate": 3.3581000000000003}, {"period_end": "2022-07-25T12:00:00+10:00", "pv_estimate": 3.1493}, {"period_end": "2022-07-25T13:00:00+10:00", "pv_estimate": 2.5834}, {"period_end": "2022-07-25T14:00:00+10:00", "pv_estimate": 1.7878500000000002}, {"period_end": "2022-07-25T15:00:00+10:00", "pv_estimate": 0.94625}, {"period_end": "2022-07-25T16:00:00+10:00", "pv_estimate": 0.31125}, {"period_end": "2022-07-25T17:00:00+10:00", "pv_estimate": 0.0197}, {"period_end": "2022-07-25T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T23:00:00+10:00", "pv_estimate": 0.0}], "energy": {"wh_hours": {"2022-07-19T06:00:00+10:00": 0.0, "2022-07-19T07:00:00+10:00": 165.20000000000002, "2022-07-19T08:00:00+10:00": 2298.6499999999996, "2022-07-19T09:00:00+10:00": 4290.75, "2022-07-19T10:00:00+10:00": 5604.35, "2022-07-19T11:00:00+10:00": 6406.6, "2022-07-19T12:00:00+10:00": 6553.950000000001, "2022-07-19T13:00:00+10:00": 6018.65, "2022-07-19T14:00:00+10:00": 4225.55, "2022-07-19T15:00:00+10:00": 3238.4, "2022-07-19T16:00:00+10:00": 2189.6, "2022-07-19T17:00:00+10:00": 98.7, "2022-07-19T18:00:00+10:00": 0.0, "2022-07-20T06:00:00+10:00": 0.0, "2022-07-20T07:00:00+10:00": 104.35, "2022-07-20T08:00:00+10:00": 2224.75, "2022-07-20T09:00:00+10:00": 4291.55, "2022-07-20T10:00:00+10:00": 5558.2, "2022-07-20T11:00:00+10:00": 6274.8, "2022-07-20T12:00:00+10:00": 6547.349999999999, "2022-07-20T13:00:00+10:00": 6222.400000000001, "2022-07-20T14:00:00+10:00": 5439.249999999999, "2022-07-20T15:00:00+10:00": 4157.05, "2022-07-20T16:00:00+10:00": 2036.05, "2022-07-20T17:00:00+10:00": 78.10000000000001, "2022-07-20T18:00:00+10:00": 0.0, "2022-07-21T06:00:00+10:00": 0.0, "2022-07-21T07:00:00+10:00": 88.75, "2022-07-21T08:00:00+10:00": 2077.0, "2022-07-21T09:00:00+10:00": 3925.95, "2022-07-21T10:00:00+10:00": 5246.650000000001, "2022-07-21T11:00:00+10:00": 6054.8, "2022-07-21T12:00:00+10:00": 6370.4, "2022-07-21T13:00:00+10:00": 6053.3, "2022-07-21T14:00:00+10:00": 5335.150000000001, "2022-07-21T15:00:00+10:00": 4117.4, "2022-07-21T16:00:00+10:00": 2045.7999999999997, "2022-07-21T17:00:00+10:00": 79.75, "2022-07-21T18:00:00+10:00": 0.0, "2022-07-22T06:00:00+10:00": 0.0, "2022-07-22T07:00:00+10:00": 91.45, "2022-07-22T08:00:00+10:00": 2079.15, "2022-07-22T09:00:00+10:00": 3830.95, "2022-07-22T10:00:00+10:00": 5106.9, "2022-07-22T11:00:00+10:00": 5764.85, "2022-07-22T12:00:00+10:00": 5902.0, "2022-07-22T13:00:00+10:00": 5230.900000000001, "2022-07-22T14:00:00+10:00": 3774.8999999999996, "2022-07-22T15:00:00+10:00": 2101.2, "2022-07-22T16:00:00+10:00": 660.15, "2022-07-22T17:00:00+10:00": 31.150000000000002, "2022-07-22T18:00:00+10:00": 0.0, "2022-07-23T06:00:00+10:00": 0.0, "2022-07-23T07:00:00+10:00": 38.65, "2022-07-23T08:00:00+10:00": 587.1999999999999, "2022-07-23T09:00:00+10:00": 1487.9, "2022-07-23T10:00:00+10:00": 2100.2999999999997, "2022-07-23T11:00:00+10:00": 2226.85, "2022-07-23T12:00:00+10:00": 2021.1999999999998, "2022-07-23T13:00:00+10:00": 1693.5, "2022-07-23T14:00:00+10:00": 1319.75, "2022-07-23T15:00:00+10:00": 794.5, "2022-07-23T16:00:00+10:00": 293.1, "2022-07-23T17:00:00+10:00": 17.95, "2022-07-23T18:00:00+10:00": 0.0, "2022-07-24T06:00:00+10:00": 0.0, "2022-07-24T07:00:00+10:00": 76.0, "2022-07-24T08:00:00+10:00": 1769.45, "2022-07-24T09:00:00+10:00": 3373.7, "2022-07-24T10:00:00+10:00": 4533.9, "2022-07-24T11:00:00+10:00": 5388.200000000001, "2022-07-24T12:00:00+10:00": 5549.35, "2022-07-24T13:00:00+10:00": 5367.05, "2022-07-24T14:00:00+10:00": 4631.25, "2022-07-24T15:00:00+10:00": 3451.15, "2022-07-24T16:00:00+10:00": 1835.55, "2022-07-24T17:00:00+10:00": 91.75, "2022-07-24T18:00:00+10:00": 0.0, "2022-07-25T06:00:00+10:00": 0.0, "2022-07-25T07:00:00+10:00": 60.55, "2022-07-25T08:00:00+10:00": 1078.0, "2022-07-25T09:00:00+10:00": 2309.75, "2022-07-25T10:00:00+10:00": 3120.05, "2022-07-25T11:00:00+10:00": 3358.1000000000004, "2022-07-25T12:00:00+10:00": 3149.3, "2022-07-25T13:00:00+10:00": 2583.4, "2022-07-25T14:00:00+10:00": 1787.8500000000001, "2022-07-25T15:00:00+10:00": 946.25, "2022-07-25T16:00:00+10:00": 311.25, "2022-07-25T17:00:00+10:00": 19.7, "2022-07-25T18:00:00+10:00": 0.0}}, "siteinfo": {"4441-cd83-3b0b-7ae4": {"forecasts": [{"period_end": "2022-07-19T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T00:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T01:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T02:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T03:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T04:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T05:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T06:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T07:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T07:30:00+10:00", "pv_estimate": 0.1652}, {"period_end": "2022-07-19T08:00:00+10:00", "pv_estimate": 0.8805}, {"period_end": "2022-07-19T08:30:00+10:00", "pv_estimate": 1.41815}, {"period_end": "2022-07-19T09:00:00+10:00", "pv_estimate": 1.9428}, {"period_end": "2022-07-19T09:30:00+10:00", "pv_estimate": 2.34795}, {"period_end": "2022-07-19T10:00:00+10:00", "pv_estimate": 2.6678}, {"period_end": "2022-07-19T10:30:00+10:00", "pv_estimate": 2.93655}, {"period_end": "2022-07-19T11:00:00+10:00", "pv_estimate": 3.1581}, {"period_end": "2022-07-19T11:30:00+10:00", "pv_estimate": 3.2485}, {"period_end": "2022-07-19T12:00:00+10:00", "pv_estimate": 3.2912}, {"period_end": "2022-07-19T12:30:00+10:00", "pv_estimate": 3.26275}, {"period_end": "2022-07-19T13:00:00+10:00", "pv_estimate": 3.0125}, {"period_end": "2022-07-19T13:30:00+10:00", "pv_estimate": 3.00615}, {"period_end": "2022-07-19T14:00:00+10:00", "pv_estimate": 2.5034}, {"period_end": "2022-07-19T14:30:00+10:00", "pv_estimate": 1.72215}, {"period_end": "2022-07-19T15:00:00+10:00", "pv_estimate": 1.53585}, {"period_end": "2022-07-19T15:30:00+10:00", "pv_estimate": 1.70255}, {"period_end": "2022-07-19T16:00:00+10:00", "pv_estimate": 1.31555}, {"period_end": "2022-07-19T16:30:00+10:00", "pv_estimate": 0.87405}, {"period_end": "2022-07-19T17:00:00+10:00", "pv_estimate": 0.0987}, {"period_end": "2022-07-19T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T18:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T19:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T20:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T21:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T22:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T23:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T00:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T01:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T02:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T03:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T04:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T05:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T06:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T07:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T07:30:00+10:00", "pv_estimate": 0.10435}, {"period_end": "2022-07-20T08:00:00+10:00", "pv_estimate": 0.81685}, {"period_end": "2022-07-20T08:30:00+10:00", "pv_estimate": 1.4079}, {"period_end": "2022-07-20T09:00:00+10:00", "pv_estimate": 1.9472}, {"period_end": "2022-07-20T09:30:00+10:00", "pv_estimate": 2.34435}, {"period_end": "2022-07-20T10:00:00+10:00", "pv_estimate": 2.6495}, {"period_end": "2022-07-20T10:30:00+10:00", "pv_estimate": 2.9087}, {"period_end": "2022-07-20T11:00:00+10:00", "pv_estimate": 3.042}, {"period_end": "2022-07-20T11:30:00+10:00", "pv_estimate": 3.2328}, {"period_end": "2022-07-20T12:00:00+10:00", "pv_estimate": 3.2839}, {"period_end": "2022-07-20T12:30:00+10:00", "pv_estimate": 3.26345}, {"period_end": "2022-07-20T13:00:00+10:00", "pv_estimate": 3.1999}, {"period_end": "2022-07-20T13:30:00+10:00", "pv_estimate": 3.0225}, {"period_end": "2022-07-20T14:00:00+10:00", "pv_estimate": 2.8573}, {"period_end": "2022-07-20T14:30:00+10:00", "pv_estimate": 2.58195}, {"period_end": "2022-07-20T15:00:00+10:00", "pv_estimate": 2.29265}, {"period_end": "2022-07-20T15:30:00+10:00", "pv_estimate": 1.8644}, {"period_end": "2022-07-20T16:00:00+10:00", "pv_estimate": 1.30235}, {"period_end": "2022-07-20T16:30:00+10:00", "pv_estimate": 0.7337}, {"period_end": "2022-07-20T17:00:00+10:00", "pv_estimate": 0.0781}, {"period_end": "2022-07-20T17:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T18:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T19:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T20:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T21:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T22:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-20T23:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T00:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T01:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T02:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T03:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T04:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T05:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T06:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T07:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T07:30:00+10:00", "pv_estimate": 0.08875}, {"period_end": "2022-07-21T08:00:00+10:00", "pv_estimate": 0.7617}, {"period_end": "2022-07-21T08:30:00+10:00", "pv_estimate": 1.3153}, {"period_end": "2022-07-21T09:00:00+10:00", "pv_estimate": 1.8125}, {"period_end": "2022-07-21T09:30:00+10:00", "pv_estimate": 2.11345}, {"period_end": "2022-07-21T10:00:00+10:00", "pv_estimate": 2.48085}, {"period_end": "2022-07-21T10:30:00+10:00", "pv_estimate": 2.7658}, {"period_end": "2022-07-21T11:00:00+10:00", "pv_estimate": 2.9095}, {"period_end": "2022-07-21T11:30:00+10:00", "pv_estimate": 3.1453}, {"period_end": "2022-07-21T12:00:00+10:00", "pv_estimate": 3.1948}, {"period_end": "2022-07-21T12:30:00+10:00", "pv_estimate": 3.1756}, {"period_end": "2022-07-21T13:00:00+10:00", "pv_estimate": 3.11165}, {"period_end": "2022-07-21T13:30:00+10:00", "pv_estimate": 2.94165}, {"period_end": "2022-07-21T14:00:00+10:00", "pv_estimate": 2.78575}, {"period_end": "2022-07-21T14:30:00+10:00", "pv_estimate": 2.5494}, {"period_end": "2022-07-21T15:00:00+10:00", "pv_estimate": 2.2615}, {"period_end": "2022-07-21T15:30:00+10:00", "pv_estimate": 1.8559}, {"period_end": "2022-07-21T16:00:00+10:00", "pv_estimate": 1.3023}, {"period_end": "2022-07-21T16:30:00+10:00", "pv_estimate": 0.7435}, {"period_end": "2022-07-21T17:00:00+10:00", "pv_estimate": 0.07975}, {"period_end": "2022-07-21T17:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T18:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T19:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T20:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T21:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T22:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-21T23:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T00:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T01:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T02:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T03:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T04:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T05:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T06:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T07:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T07:30:00+10:00", "pv_estimate": 0.09145}, {"period_end": "2022-07-22T08:00:00+10:00", "pv_estimate": 0.77075}, {"period_end": "2022-07-22T08:30:00+10:00", "pv_estimate": 1.3084}, {"period_end": "2022-07-22T09:00:00+10:00", "pv_estimate": 1.71755}, {"period_end": "2022-07-22T09:30:00+10:00", "pv_estimate": 2.1134}, {"period_end": "2022-07-22T10:00:00+10:00", "pv_estimate": 2.4807}, {"period_end": "2022-07-22T10:30:00+10:00", "pv_estimate": 2.6262}, {"period_end": "2022-07-22T11:00:00+10:00", "pv_estimate": 2.8498}, {"period_end": "2022-07-22T11:30:00+10:00", "pv_estimate": 2.91505}, {"period_end": "2022-07-22T12:00:00+10:00", "pv_estimate": 2.95675}, {"period_end": "2022-07-22T12:30:00+10:00", "pv_estimate": 2.94525}, {"period_end": "2022-07-22T13:00:00+10:00", "pv_estimate": 2.76565}, {"period_end": "2022-07-22T13:30:00+10:00", "pv_estimate": 2.46525}, {"period_end": "2022-07-22T14:00:00+10:00", "pv_estimate": 2.09745}, {"period_end": "2022-07-22T14:30:00+10:00", "pv_estimate": 1.67745}, {"period_end": "2022-07-22T15:00:00+10:00", "pv_estimate": 1.23985}, {"period_end": "2022-07-22T15:30:00+10:00", "pv_estimate": 0.86135}, {"period_end": "2022-07-22T16:00:00+10:00", "pv_estimate": 0.4793}, {"period_end": "2022-07-22T16:30:00+10:00", "pv_estimate": 0.18085}, {"period_end": "2022-07-22T17:00:00+10:00", "pv_estimate": 0.03115}, {"period_end": "2022-07-22T17:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T18:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T19:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T20:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T21:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T22:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-22T23:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T00:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T01:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T02:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T03:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T04:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T05:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T06:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T07:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T07:30:00+10:00", "pv_estimate": 0.03865}, {"period_end": "2022-07-23T08:00:00+10:00", "pv_estimate": 0.1808}, {"period_end": "2022-07-23T08:30:00+10:00", "pv_estimate": 0.4064}, {"period_end": "2022-07-23T09:00:00+10:00", "pv_estimate": 0.62985}, {"period_end": "2022-07-23T09:30:00+10:00", "pv_estimate": 0.85805}, {"period_end": "2022-07-23T10:00:00+10:00", "pv_estimate": 1.0045}, {"period_end": "2022-07-23T10:30:00+10:00", "pv_estimate": 1.0958}, {"period_end": "2022-07-23T11:00:00+10:00", "pv_estimate": 1.12385}, {"period_end": "2022-07-23T11:30:00+10:00", "pv_estimate": 1.103}, {"period_end": "2022-07-23T12:00:00+10:00", "pv_estimate": 1.0543}, {"period_end": "2022-07-23T12:30:00+10:00", "pv_estimate": 0.9669}, {"period_end": "2022-07-23T13:00:00+10:00", "pv_estimate": 0.8715}, {"period_end": "2022-07-23T13:30:00+10:00", "pv_estimate": 0.822}, {"period_end": "2022-07-23T14:00:00+10:00", "pv_estimate": 0.71645}, {"period_end": "2022-07-23T14:30:00+10:00", "pv_estimate": 0.6033}, {"period_end": "2022-07-23T15:00:00+10:00", "pv_estimate": 0.46445}, {"period_end": "2022-07-23T15:30:00+10:00", "pv_estimate": 0.33005}, {"period_end": "2022-07-23T16:00:00+10:00", "pv_estimate": 0.20055}, {"period_end": "2022-07-23T16:30:00+10:00", "pv_estimate": 0.09255}, {"period_end": "2022-07-23T17:00:00+10:00", "pv_estimate": 0.01795}, {"period_end": "2022-07-23T17:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T18:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T19:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T20:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T21:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T22:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-23T23:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T00:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T01:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T02:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T03:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T04:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T05:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T06:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T07:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T07:30:00+10:00", "pv_estimate": 0.076}, {"period_end": "2022-07-24T08:00:00+10:00", "pv_estimate": 0.64735}, {"period_end": "2022-07-24T08:30:00+10:00", "pv_estimate": 1.1221}, {"period_end": "2022-07-24T09:00:00+10:00", "pv_estimate": 1.50555}, {"period_end": "2022-07-24T09:30:00+10:00", "pv_estimate": 1.86815}, {"period_end": "2022-07-24T10:00:00+10:00", "pv_estimate": 2.14065}, {"period_end": "2022-07-24T10:30:00+10:00", "pv_estimate": 2.39325}, {"period_end": "2022-07-24T11:00:00+10:00", "pv_estimate": 2.64855}, {"period_end": "2022-07-24T11:30:00+10:00", "pv_estimate": 2.73965}, {"period_end": "2022-07-24T12:00:00+10:00", "pv_estimate": 2.7638}, {"period_end": "2022-07-24T12:30:00+10:00", "pv_estimate": 2.78555}, {"period_end": "2022-07-24T13:00:00+10:00", "pv_estimate": 2.73015}, {"period_end": "2022-07-24T13:30:00+10:00", "pv_estimate": 2.6369}, {"period_end": "2022-07-24T14:00:00+10:00", "pv_estimate": 2.42605}, {"period_end": "2022-07-24T14:30:00+10:00", "pv_estimate": 2.2052}, {"period_end": "2022-07-24T15:00:00+10:00", "pv_estimate": 1.90875}, {"period_end": "2022-07-24T15:30:00+10:00", "pv_estimate": 1.5424}, {"period_end": "2022-07-24T16:00:00+10:00", "pv_estimate": 1.1501}, {"period_end": "2022-07-24T16:30:00+10:00", "pv_estimate": 0.68545}, {"period_end": "2022-07-24T17:00:00+10:00", "pv_estimate": 0.09175}, {"period_end": "2022-07-24T17:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T18:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T19:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T20:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T21:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T22:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-24T23:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T00:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T01:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T02:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T03:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T04:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T05:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T06:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T07:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T07:30:00+10:00", "pv_estimate": 0.06055}, {"period_end": "2022-07-25T08:00:00+10:00", "pv_estimate": 0.3678}, {"period_end": "2022-07-25T08:30:00+10:00", "pv_estimate": 0.7102}, {"period_end": "2022-07-25T09:00:00+10:00", "pv_estimate": 1.0092}, {"period_end": "2022-07-25T09:30:00+10:00", "pv_estimate": 1.30055}, {"period_end": "2022-07-25T10:00:00+10:00", "pv_estimate": 1.4891}, {"period_end": "2022-07-25T10:30:00+10:00", "pv_estimate": 1.63095}, {"period_end": "2022-07-25T11:00:00+10:00", "pv_estimate": 1.68835}, {"period_end": "2022-07-25T11:30:00+10:00", "pv_estimate": 1.66975}, {"period_end": "2022-07-25T12:00:00+10:00", "pv_estimate": 1.61295}, {"period_end": "2022-07-25T12:30:00+10:00", "pv_estimate": 1.53635}, {"period_end": "2022-07-25T13:00:00+10:00", "pv_estimate": 1.3984}, {"period_end": "2022-07-25T13:30:00+10:00", "pv_estimate": 1.185}, {"period_end": "2022-07-25T14:00:00+10:00", "pv_estimate": 0.9997}, {"period_end": "2022-07-25T14:30:00+10:00", "pv_estimate": 0.78815}, {"period_end": "2022-07-25T15:00:00+10:00", "pv_estimate": 0.5711}, {"period_end": "2022-07-25T15:30:00+10:00", "pv_estimate": 0.37515}, {"period_end": "2022-07-25T16:00:00+10:00", "pv_estimate": 0.20795}, {"period_end": "2022-07-25T16:30:00+10:00", "pv_estimate": 0.1033}, {"period_end": "2022-07-25T17:00:00+10:00", "pv_estimate": 0.0197}, {"period_end": "2022-07-25T17:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T18:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T19:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T20:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T21:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T22:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-25T23:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-07-19T17:30:00+10:00", "pv_estimate": 0}], "tally": 41.09}}, "last_updated": "2022-07-19T08:00:00+00:00", "api_used": 10} \ No newline at end of file +{"forecasts": [{"period_end": "2022-08-24T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T07:00:00+10:00", "pv_estimate": 0.362}, {"period_end": "2022-08-24T08:00:00+10:00", "pv_estimate": 0.93325}, {"period_end": "2022-08-24T09:00:00+10:00", "pv_estimate": 2.049}, {"period_end": "2022-08-24T10:00:00+10:00", "pv_estimate": 3.10195}, {"period_end": "2022-08-24T11:00:00+10:00", "pv_estimate": 2.4787999999999997}, {"period_end": "2022-08-24T12:00:00+10:00", "pv_estimate": 1.9375499999999999}, {"period_end": "2022-08-24T13:00:00+10:00", "pv_estimate": 1.2566000000000002}, {"period_end": "2022-08-24T14:00:00+10:00", "pv_estimate": 1.0222}, {"period_end": "2022-08-24T15:00:00+10:00", "pv_estimate": 0.8463}, {"period_end": "2022-08-24T16:00:00+10:00", "pv_estimate": 0.3714}, {"period_end": "2022-08-24T17:00:00+10:00", "pv_estimate": 0.0888}, {"period_end": "2022-08-24T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T07:00:00+10:00", "pv_estimate": 0.48885}, {"period_end": "2022-08-25T08:00:00+10:00", "pv_estimate": 2.0675999999999997}, {"period_end": "2022-08-25T09:00:00+10:00", "pv_estimate": 3.23495}, {"period_end": "2022-08-25T10:00:00+10:00", "pv_estimate": 3.82355}, {"period_end": "2022-08-25T11:00:00+10:00", "pv_estimate": 3.9283}, {"period_end": "2022-08-25T12:00:00+10:00", "pv_estimate": 3.8263}, {"period_end": "2022-08-25T13:00:00+10:00", "pv_estimate": 3.28015}, {"period_end": "2022-08-25T14:00:00+10:00", "pv_estimate": 2.53335}, {"period_end": "2022-08-25T15:00:00+10:00", "pv_estimate": 1.63835}, {"period_end": "2022-08-25T16:00:00+10:00", "pv_estimate": 0.8514999999999999}, {"period_end": "2022-08-25T17:00:00+10:00", "pv_estimate": 0.1601}, {"period_end": "2022-08-25T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T07:00:00+10:00", "pv_estimate": 0.69445}, {"period_end": "2022-08-26T08:00:00+10:00", "pv_estimate": 2.5223500000000003}, {"period_end": "2022-08-26T09:00:00+10:00", "pv_estimate": 3.8317}, {"period_end": "2022-08-26T10:00:00+10:00", "pv_estimate": 4.7416}, {"period_end": "2022-08-26T11:00:00+10:00", "pv_estimate": 4.8461}, {"period_end": "2022-08-26T12:00:00+10:00", "pv_estimate": 4.301349999999999}, {"period_end": "2022-08-26T13:00:00+10:00", "pv_estimate": 3.27545}, {"period_end": "2022-08-26T14:00:00+10:00", "pv_estimate": 2.24025}, {"period_end": "2022-08-26T15:00:00+10:00", "pv_estimate": 1.3465}, {"period_end": "2022-08-26T16:00:00+10:00", "pv_estimate": 0.6545000000000001}, {"period_end": "2022-08-26T17:00:00+10:00", "pv_estimate": 0.12065000000000001}, {"period_end": "2022-08-26T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T07:00:00+10:00", "pv_estimate": 0.3969}, {"period_end": "2022-08-27T08:00:00+10:00", "pv_estimate": 1.4997500000000001}, {"period_end": "2022-08-27T09:00:00+10:00", "pv_estimate": 2.3405}, {"period_end": "2022-08-27T10:00:00+10:00", "pv_estimate": 2.94305}, {"period_end": "2022-08-27T11:00:00+10:00", "pv_estimate": 3.69365}, {"period_end": "2022-08-27T12:00:00+10:00", "pv_estimate": 3.90655}, {"period_end": "2022-08-27T13:00:00+10:00", "pv_estimate": 3.56425}, {"period_end": "2022-08-27T14:00:00+10:00", "pv_estimate": 2.7762000000000002}, {"period_end": "2022-08-27T15:00:00+10:00", "pv_estimate": 1.7597999999999998}, {"period_end": "2022-08-27T16:00:00+10:00", "pv_estimate": 0.8933}, {"period_end": "2022-08-27T17:00:00+10:00", "pv_estimate": 0.1629}, {"period_end": "2022-08-27T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T07:00:00+10:00", "pv_estimate": 0.40395}, {"period_end": "2022-08-28T08:00:00+10:00", "pv_estimate": 1.5001}, {"period_end": "2022-08-28T09:00:00+10:00", "pv_estimate": 2.3327999999999998}, {"period_end": "2022-08-28T10:00:00+10:00", "pv_estimate": 2.95685}, {"period_end": "2022-08-28T11:00:00+10:00", "pv_estimate": 3.3723}, {"period_end": "2022-08-28T12:00:00+10:00", "pv_estimate": 3.1285}, {"period_end": "2022-08-28T13:00:00+10:00", "pv_estimate": 2.9589}, {"period_end": "2022-08-28T14:00:00+10:00", "pv_estimate": 2.7641999999999998}, {"period_end": "2022-08-28T15:00:00+10:00", "pv_estimate": 2.0243}, {"period_end": "2022-08-28T16:00:00+10:00", "pv_estimate": 1.0206}, {"period_end": "2022-08-28T17:00:00+10:00", "pv_estimate": 0.15975}, {"period_end": "2022-08-28T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T07:00:00+10:00", "pv_estimate": 0.39765}, {"period_end": "2022-08-29T08:00:00+10:00", "pv_estimate": 1.6333000000000002}, {"period_end": "2022-08-29T09:00:00+10:00", "pv_estimate": 2.8377499999999998}, {"period_end": "2022-08-29T10:00:00+10:00", "pv_estimate": 3.72775}, {"period_end": "2022-08-29T11:00:00+10:00", "pv_estimate": 4.40005}, {"period_end": "2022-08-29T12:00:00+10:00", "pv_estimate": 4.74615}, {"period_end": "2022-08-29T13:00:00+10:00", "pv_estimate": 4.1997}, {"period_end": "2022-08-29T14:00:00+10:00", "pv_estimate": 3.32045}, {"period_end": "2022-08-29T15:00:00+10:00", "pv_estimate": 2.5556}, {"period_end": "2022-08-29T16:00:00+10:00", "pv_estimate": 1.6305999999999998}, {"period_end": "2022-08-29T17:00:00+10:00", "pv_estimate": 0.33855}, {"period_end": "2022-08-29T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T07:00:00+10:00", "pv_estimate": 0.9170499999999999}, {"period_end": "2022-08-30T08:00:00+10:00", "pv_estimate": 2.9566}, {"period_end": "2022-08-30T09:00:00+10:00", "pv_estimate": 4.64445}, {"period_end": "2022-08-30T10:00:00+10:00", "pv_estimate": 5.7029499999999995}, {"period_end": "2022-08-30T11:00:00+10:00", "pv_estimate": 5.694599999999999}, {"period_end": "2022-08-30T12:00:00+10:00", "pv_estimate": 5.33805}, {"period_end": "2022-08-30T13:00:00+10:00", "pv_estimate": 4.8294999999999995}, {"period_end": "2022-08-30T14:00:00+10:00", "pv_estimate": 3.6929499999999997}, {"period_end": "2022-08-30T15:00:00+10:00", "pv_estimate": 2.35755}, {"period_end": "2022-08-30T16:00:00+10:00", "pv_estimate": 1.20685}, {"period_end": "2022-08-30T17:00:00+10:00", "pv_estimate": 0.24220000000000003}, {"period_end": "2022-08-30T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T23:00:00+10:00", "pv_estimate": 0.0}], "energy": {"wh_hours": {"2022-08-24T06:00:00+10:00": 0.0, "2022-08-24T07:00:00+10:00": 362.0, "2022-08-24T08:00:00+10:00": 933.25, "2022-08-24T09:00:00+10:00": 2049.0, "2022-08-24T10:00:00+10:00": 3101.95, "2022-08-24T11:00:00+10:00": 2478.7999999999997, "2022-08-24T12:00:00+10:00": 1937.55, "2022-08-24T13:00:00+10:00": 1256.6000000000001, "2022-08-24T14:00:00+10:00": 1022.2, "2022-08-24T15:00:00+10:00": 846.3000000000001, "2022-08-24T16:00:00+10:00": 371.40000000000003, "2022-08-24T17:00:00+10:00": 88.8, "2022-08-24T18:00:00+10:00": 0.0, "2022-08-25T06:00:00+10:00": 0.0, "2022-08-25T07:00:00+10:00": 488.85, "2022-08-25T08:00:00+10:00": 2067.5999999999995, "2022-08-25T09:00:00+10:00": 3234.95, "2022-08-25T10:00:00+10:00": 3823.55, "2022-08-25T11:00:00+10:00": 3928.3, "2022-08-25T12:00:00+10:00": 3826.2999999999997, "2022-08-25T13:00:00+10:00": 3280.15, "2022-08-25T14:00:00+10:00": 2533.35, "2022-08-25T15:00:00+10:00": 1638.35, "2022-08-25T16:00:00+10:00": 851.4999999999999, "2022-08-25T17:00:00+10:00": 160.1, "2022-08-25T18:00:00+10:00": 0.0, "2022-08-26T06:00:00+10:00": 0.0, "2022-08-26T07:00:00+10:00": 694.45, "2022-08-26T08:00:00+10:00": 2522.3500000000004, "2022-08-26T09:00:00+10:00": 3831.7000000000003, "2022-08-26T10:00:00+10:00": 4741.6, "2022-08-26T11:00:00+10:00": 4846.099999999999, "2022-08-26T12:00:00+10:00": 4301.349999999999, "2022-08-26T13:00:00+10:00": 3275.4500000000003, "2022-08-26T14:00:00+10:00": 2240.25, "2022-08-26T15:00:00+10:00": 1346.5, "2022-08-26T16:00:00+10:00": 654.5000000000001, "2022-08-26T17:00:00+10:00": 120.65, "2022-08-26T18:00:00+10:00": 0.0, "2022-08-27T06:00:00+10:00": 0.0, "2022-08-27T07:00:00+10:00": 396.9, "2022-08-27T08:00:00+10:00": 1499.7500000000002, "2022-08-27T09:00:00+10:00": 2340.5, "2022-08-27T10:00:00+10:00": 2943.0499999999997, "2022-08-27T11:00:00+10:00": 3693.65, "2022-08-27T12:00:00+10:00": 3906.55, "2022-08-27T13:00:00+10:00": 3564.25, "2022-08-27T14:00:00+10:00": 2776.2000000000003, "2022-08-27T15:00:00+10:00": 1759.7999999999997, "2022-08-27T16:00:00+10:00": 893.3, "2022-08-27T17:00:00+10:00": 162.89999999999998, "2022-08-27T18:00:00+10:00": 0.0, "2022-08-28T06:00:00+10:00": 0.0, "2022-08-28T07:00:00+10:00": 403.95, "2022-08-28T08:00:00+10:00": 1500.1, "2022-08-28T09:00:00+10:00": 2332.7999999999997, "2022-08-28T10:00:00+10:00": 2956.8500000000004, "2022-08-28T11:00:00+10:00": 3372.3, "2022-08-28T12:00:00+10:00": 3128.5, "2022-08-28T13:00:00+10:00": 2958.8999999999996, "2022-08-28T14:00:00+10:00": 2764.2, "2022-08-28T15:00:00+10:00": 2024.3000000000002, "2022-08-28T16:00:00+10:00": 1020.5999999999999, "2022-08-28T17:00:00+10:00": 159.75, "2022-08-28T18:00:00+10:00": 0.0, "2022-08-29T06:00:00+10:00": 0.0, "2022-08-29T07:00:00+10:00": 397.65, "2022-08-29T08:00:00+10:00": 1633.3000000000002, "2022-08-29T09:00:00+10:00": 2837.75, "2022-08-29T10:00:00+10:00": 3727.75, "2022-08-29T11:00:00+10:00": 4400.05, "2022-08-29T12:00:00+10:00": 4746.15, "2022-08-29T13:00:00+10:00": 4199.7, "2022-08-29T14:00:00+10:00": 3320.4500000000003, "2022-08-29T15:00:00+10:00": 2555.6, "2022-08-29T16:00:00+10:00": 1630.6, "2022-08-29T17:00:00+10:00": 338.55, "2022-08-29T18:00:00+10:00": 0.0, "2022-08-30T06:00:00+10:00": 0.0, "2022-08-30T07:00:00+10:00": 917.05, "2022-08-30T08:00:00+10:00": 2956.6, "2022-08-30T09:00:00+10:00": 4644.45, "2022-08-30T10:00:00+10:00": 5702.95, "2022-08-30T11:00:00+10:00": 5694.599999999999, "2022-08-30T12:00:00+10:00": 5338.05, "2022-08-30T13:00:00+10:00": 4829.499999999999, "2022-08-30T14:00:00+10:00": 3692.95, "2022-08-30T15:00:00+10:00": 2357.5499999999997, "2022-08-30T16:00:00+10:00": 1206.85, "2022-08-30T17:00:00+10:00": 242.20000000000002, "2022-08-30T18:00:00+10:00": 0.0}}, "siteinfo": {"4441-cd83-3b0b-7ae4": {"forecasts": [{"period_end": "2022-08-24T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T00:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T01:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T02:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T03:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T04:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T05:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T06:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T07:00:00+10:00", "pv_estimate": 0.1211}, {"period_end": "2022-08-24T07:30:00+10:00", "pv_estimate": 0.2409}, {"period_end": "2022-08-24T08:00:00+10:00", "pv_estimate": 0.40435}, {"period_end": "2022-08-24T08:30:00+10:00", "pv_estimate": 0.5289}, {"period_end": "2022-08-24T09:00:00+10:00", "pv_estimate": 0.86235}, {"period_end": "2022-08-24T09:30:00+10:00", "pv_estimate": 1.18665}, {"period_end": "2022-08-24T10:00:00+10:00", "pv_estimate": 1.6122}, {"period_end": "2022-08-24T10:30:00+10:00", "pv_estimate": 1.48975}, {"period_end": "2022-08-24T11:00:00+10:00", "pv_estimate": 1.45765}, {"period_end": "2022-08-24T11:30:00+10:00", "pv_estimate": 1.02115}, {"period_end": "2022-08-24T12:00:00+10:00", "pv_estimate": 0.9931}, {"period_end": "2022-08-24T12:30:00+10:00", "pv_estimate": 0.94445}, {"period_end": "2022-08-24T13:00:00+10:00", "pv_estimate": 0.6458}, {"period_end": "2022-08-24T13:30:00+10:00", "pv_estimate": 0.6108}, {"period_end": "2022-08-24T14:00:00+10:00", "pv_estimate": 0.51405}, {"period_end": "2022-08-24T14:30:00+10:00", "pv_estimate": 0.50815}, {"period_end": "2022-08-24T15:00:00+10:00", "pv_estimate": 0.4777}, {"period_end": "2022-08-24T15:30:00+10:00", "pv_estimate": 0.3686}, {"period_end": "2022-08-24T16:00:00+10:00", "pv_estimate": 0.2388}, {"period_end": "2022-08-24T16:30:00+10:00", "pv_estimate": 0.1326}, {"period_end": "2022-08-24T17:00:00+10:00", "pv_estimate": 0.0782}, {"period_end": "2022-08-24T17:30:00+10:00", "pv_estimate": 0.0106}, {"period_end": "2022-08-24T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T18:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T19:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T20:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T21:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T22:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-24T23:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T00:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T01:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T02:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T03:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T04:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T05:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T06:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T07:00:00+10:00", "pv_estimate": 0.0666}, {"period_end": "2022-08-25T07:30:00+10:00", "pv_estimate": 0.42225}, {"period_end": "2022-08-25T08:00:00+10:00", "pv_estimate": 0.8553}, {"period_end": "2022-08-25T08:30:00+10:00", "pv_estimate": 1.2123}, {"period_end": "2022-08-25T09:00:00+10:00", "pv_estimate": 1.50475}, {"period_end": "2022-08-25T09:30:00+10:00", "pv_estimate": 1.7302}, {"period_end": "2022-08-25T10:00:00+10:00", "pv_estimate": 1.90565}, {"period_end": "2022-08-25T10:30:00+10:00", "pv_estimate": 1.9179}, {"period_end": "2022-08-25T11:00:00+10:00", "pv_estimate": 1.96535}, {"period_end": "2022-08-25T11:30:00+10:00", "pv_estimate": 1.96295}, {"period_end": "2022-08-25T12:00:00+10:00", "pv_estimate": 1.95775}, {"period_end": "2022-08-25T12:30:00+10:00", "pv_estimate": 1.86855}, {"period_end": "2022-08-25T13:00:00+10:00", "pv_estimate": 1.7179}, {"period_end": "2022-08-25T13:30:00+10:00", "pv_estimate": 1.56225}, {"period_end": "2022-08-25T14:00:00+10:00", "pv_estimate": 1.37065}, {"period_end": "2022-08-25T14:30:00+10:00", "pv_estimate": 1.1627}, {"period_end": "2022-08-25T15:00:00+10:00", "pv_estimate": 0.92405}, {"period_end": "2022-08-25T15:30:00+10:00", "pv_estimate": 0.7143}, {"period_end": "2022-08-25T16:00:00+10:00", "pv_estimate": 0.51925}, {"period_end": "2022-08-25T16:30:00+10:00", "pv_estimate": 0.33225}, {"period_end": "2022-08-25T17:00:00+10:00", "pv_estimate": 0.1387}, {"period_end": "2022-08-25T17:30:00+10:00", "pv_estimate": 0.0214}, {"period_end": "2022-08-25T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T18:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T19:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T20:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T21:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T22:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-25T23:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T00:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T01:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T02:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T03:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T04:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T05:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T06:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T07:00:00+10:00", "pv_estimate": 0.1071}, {"period_end": "2022-08-26T07:30:00+10:00", "pv_estimate": 0.58735}, {"period_end": "2022-08-26T08:00:00+10:00", "pv_estimate": 1.09755}, {"period_end": "2022-08-26T08:30:00+10:00", "pv_estimate": 1.4248}, {"period_end": "2022-08-26T09:00:00+10:00", "pv_estimate": 1.74105}, {"period_end": "2022-08-26T09:30:00+10:00", "pv_estimate": 2.09065}, {"period_end": "2022-08-26T10:00:00+10:00", "pv_estimate": 2.33215}, {"period_end": "2022-08-26T10:30:00+10:00", "pv_estimate": 2.40945}, {"period_end": "2022-08-26T11:00:00+10:00", "pv_estimate": 2.44715}, {"period_end": "2022-08-26T11:30:00+10:00", "pv_estimate": 2.39895}, {"period_end": "2022-08-26T12:00:00+10:00", "pv_estimate": 2.2628}, {"period_end": "2022-08-26T12:30:00+10:00", "pv_estimate": 2.03855}, {"period_end": "2022-08-26T13:00:00+10:00", "pv_estimate": 1.7896}, {"period_end": "2022-08-26T13:30:00+10:00", "pv_estimate": 1.48585}, {"period_end": "2022-08-26T14:00:00+10:00", "pv_estimate": 1.24965}, {"period_end": "2022-08-26T14:30:00+10:00", "pv_estimate": 0.9906}, {"period_end": "2022-08-26T15:00:00+10:00", "pv_estimate": 0.78085}, {"period_end": "2022-08-26T15:30:00+10:00", "pv_estimate": 0.56565}, {"period_end": "2022-08-26T16:00:00+10:00", "pv_estimate": 0.40055}, {"period_end": "2022-08-26T16:30:00+10:00", "pv_estimate": 0.25395}, {"period_end": "2022-08-26T17:00:00+10:00", "pv_estimate": 0.10785}, {"period_end": "2022-08-26T17:30:00+10:00", "pv_estimate": 0.0128}, {"period_end": "2022-08-26T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T18:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T19:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T20:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T21:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T22:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-26T23:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T00:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T01:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T02:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T03:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T04:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T05:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T06:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T07:00:00+10:00", "pv_estimate": 0.07225}, {"period_end": "2022-08-27T07:30:00+10:00", "pv_estimate": 0.32465}, {"period_end": "2022-08-27T08:00:00+10:00", "pv_estimate": 0.59545}, {"period_end": "2022-08-27T08:30:00+10:00", "pv_estimate": 0.9043}, {"period_end": "2022-08-27T09:00:00+10:00", "pv_estimate": 1.1211}, {"period_end": "2022-08-27T09:30:00+10:00", "pv_estimate": 1.2194}, {"period_end": "2022-08-27T10:00:00+10:00", "pv_estimate": 1.36955}, {"period_end": "2022-08-27T10:30:00+10:00", "pv_estimate": 1.5735}, {"period_end": "2022-08-27T11:00:00+10:00", "pv_estimate": 1.7806}, {"period_end": "2022-08-27T11:30:00+10:00", "pv_estimate": 1.91305}, {"period_end": "2022-08-27T12:00:00+10:00", "pv_estimate": 1.9329}, {"period_end": "2022-08-27T12:30:00+10:00", "pv_estimate": 1.97365}, {"period_end": "2022-08-27T13:00:00+10:00", "pv_estimate": 1.86635}, {"period_end": "2022-08-27T13:30:00+10:00", "pv_estimate": 1.6979}, {"period_end": "2022-08-27T14:00:00+10:00", "pv_estimate": 1.50765}, {"period_end": "2022-08-27T14:30:00+10:00", "pv_estimate": 1.26855}, {"period_end": "2022-08-27T15:00:00+10:00", "pv_estimate": 1.0168}, {"period_end": "2022-08-27T15:30:00+10:00", "pv_estimate": 0.743}, {"period_end": "2022-08-27T16:00:00+10:00", "pv_estimate": 0.5441}, {"period_end": "2022-08-27T16:30:00+10:00", "pv_estimate": 0.3492}, {"period_end": "2022-08-27T17:00:00+10:00", "pv_estimate": 0.1419}, {"period_end": "2022-08-27T17:30:00+10:00", "pv_estimate": 0.021}, {"period_end": "2022-08-27T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T18:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T19:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T20:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T21:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T22:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-27T23:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T00:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T01:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T02:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T03:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T04:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T05:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T06:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T07:00:00+10:00", "pv_estimate": 0.07365}, {"period_end": "2022-08-28T07:30:00+10:00", "pv_estimate": 0.3303}, {"period_end": "2022-08-28T08:00:00+10:00", "pv_estimate": 0.6111}, {"period_end": "2022-08-28T08:30:00+10:00", "pv_estimate": 0.889}, {"period_end": "2022-08-28T09:00:00+10:00", "pv_estimate": 1.1086}, {"period_end": "2022-08-28T09:30:00+10:00", "pv_estimate": 1.2242}, {"period_end": "2022-08-28T10:00:00+10:00", "pv_estimate": 1.4068}, {"period_end": "2022-08-28T10:30:00+10:00", "pv_estimate": 1.55005}, {"period_end": "2022-08-28T11:00:00+10:00", "pv_estimate": 1.69205}, {"period_end": "2022-08-28T11:30:00+10:00", "pv_estimate": 1.68025}, {"period_end": "2022-08-28T12:00:00+10:00", "pv_estimate": 1.6231}, {"period_end": "2022-08-28T12:30:00+10:00", "pv_estimate": 1.5054}, {"period_end": "2022-08-28T13:00:00+10:00", "pv_estimate": 1.4682}, {"period_end": "2022-08-28T13:30:00+10:00", "pv_estimate": 1.4907}, {"period_end": "2022-08-28T14:00:00+10:00", "pv_estimate": 1.44995}, {"period_end": "2022-08-28T14:30:00+10:00", "pv_estimate": 1.31425}, {"period_end": "2022-08-28T15:00:00+10:00", "pv_estimate": 1.1109}, {"period_end": "2022-08-28T15:30:00+10:00", "pv_estimate": 0.9134}, {"period_end": "2022-08-28T16:00:00+10:00", "pv_estimate": 0.64445}, {"period_end": "2022-08-28T16:30:00+10:00", "pv_estimate": 0.37615}, {"period_end": "2022-08-28T17:00:00+10:00", "pv_estimate": 0.14235}, {"period_end": "2022-08-28T17:30:00+10:00", "pv_estimate": 0.0174}, {"period_end": "2022-08-28T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T18:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T19:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T20:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T21:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T22:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-28T23:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T00:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T01:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T02:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T03:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T04:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T05:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T06:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T07:00:00+10:00", "pv_estimate": 0.07925}, {"period_end": "2022-08-29T07:30:00+10:00", "pv_estimate": 0.3184}, {"period_end": "2022-08-29T08:00:00+10:00", "pv_estimate": 0.65695}, {"period_end": "2022-08-29T08:30:00+10:00", "pv_estimate": 0.97635}, {"period_end": "2022-08-29T09:00:00+10:00", "pv_estimate": 1.2837}, {"period_end": "2022-08-29T09:30:00+10:00", "pv_estimate": 1.55405}, {"period_end": "2022-08-29T10:00:00+10:00", "pv_estimate": 1.7643}, {"period_end": "2022-08-29T10:30:00+10:00", "pv_estimate": 1.96345}, {"period_end": "2022-08-29T11:00:00+10:00", "pv_estimate": 2.1305}, {"period_end": "2022-08-29T11:30:00+10:00", "pv_estimate": 2.26955}, {"period_end": "2022-08-29T12:00:00+10:00", "pv_estimate": 2.38465}, {"period_end": "2022-08-29T12:30:00+10:00", "pv_estimate": 2.3615}, {"period_end": "2022-08-29T13:00:00+10:00", "pv_estimate": 2.2092}, {"period_end": "2022-08-29T13:30:00+10:00", "pv_estimate": 1.9905}, {"period_end": "2022-08-29T14:00:00+10:00", "pv_estimate": 1.77055}, {"period_end": "2022-08-29T14:30:00+10:00", "pv_estimate": 1.5499}, {"period_end": "2022-08-29T15:00:00+10:00", "pv_estimate": 1.3549}, {"period_end": "2022-08-29T15:30:00+10:00", "pv_estimate": 1.2007}, {"period_end": "2022-08-29T16:00:00+10:00", "pv_estimate": 0.97415}, {"period_end": "2022-08-29T16:30:00+10:00", "pv_estimate": 0.65645}, {"period_end": "2022-08-29T17:00:00+10:00", "pv_estimate": 0.29735}, {"period_end": "2022-08-29T17:30:00+10:00", "pv_estimate": 0.0412}, {"period_end": "2022-08-29T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T18:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T19:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T20:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T21:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T22:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-29T23:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T00:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T00:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T01:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T01:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T02:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T02:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T03:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T03:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T04:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T04:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T05:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T05:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T06:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T06:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T07:00:00+10:00", "pv_estimate": 0.2061}, {"period_end": "2022-08-30T07:30:00+10:00", "pv_estimate": 0.71095}, {"period_end": "2022-08-30T08:00:00+10:00", "pv_estimate": 1.2509}, {"period_end": "2022-08-30T08:30:00+10:00", "pv_estimate": 1.7057}, {"period_end": "2022-08-30T09:00:00+10:00", "pv_estimate": 2.1266}, {"period_end": "2022-08-30T09:30:00+10:00", "pv_estimate": 2.51785}, {"period_end": "2022-08-30T10:00:00+10:00", "pv_estimate": 2.76075}, {"period_end": "2022-08-30T10:30:00+10:00", "pv_estimate": 2.9422}, {"period_end": "2022-08-30T11:00:00+10:00", "pv_estimate": 2.89995}, {"period_end": "2022-08-30T11:30:00+10:00", "pv_estimate": 2.79465}, {"period_end": "2022-08-30T12:00:00+10:00", "pv_estimate": 2.69425}, {"period_end": "2022-08-30T12:30:00+10:00", "pv_estimate": 2.6438}, {"period_end": "2022-08-30T13:00:00+10:00", "pv_estimate": 2.5221}, {"period_end": "2022-08-30T13:30:00+10:00", "pv_estimate": 2.3074}, {"period_end": "2022-08-30T14:00:00+10:00", "pv_estimate": 1.9941}, {"period_end": "2022-08-30T14:30:00+10:00", "pv_estimate": 1.69885}, {"period_end": "2022-08-30T15:00:00+10:00", "pv_estimate": 1.33655}, {"period_end": "2022-08-30T15:30:00+10:00", "pv_estimate": 1.021}, {"period_end": "2022-08-30T16:00:00+10:00", "pv_estimate": 0.72965}, {"period_end": "2022-08-30T16:30:00+10:00", "pv_estimate": 0.4772}, {"period_end": "2022-08-30T17:00:00+10:00", "pv_estimate": 0.2088}, {"period_end": "2022-08-30T17:30:00+10:00", "pv_estimate": 0.0334}, {"period_end": "2022-08-30T18:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T18:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T19:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T19:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T20:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T20:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T21:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T21:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T22:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T22:30:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T23:00:00+10:00", "pv_estimate": 0.0}, {"period_end": "2022-08-30T23:30:00+10:00", "pv_estimate": 0.0}], "tally": 14.45}}, "last_updated": "2022-08-24T03:10:00+00:00", "api_used": 5} \ No newline at end of file diff --git a/config/zigbee2mqtt/configuration.yaml b/config/zigbee2mqtt/configuration.yaml index 4985ff8..c0c56dd 100644 --- a/config/zigbee2mqtt/configuration.yaml +++ b/config/zigbee2mqtt/configuration.yaml @@ -1 +1,39 @@ homeassistant: true +frontend: + port: 8099 +permit_join: false +mqtt: + base_topic: zigbee2mqtt + server: mqtt://core-mosquitto + keepalive: 60 + reject_unauthorized: true + version: 4 +serial: + port: /dev/ttyACM0 + adapter: deconz +devices: + '0x804b50fffe100ed4': + friendly_name: IKEA Remote + '0x00158d0008091c32': + friendly_name: Bo's Office Door + debounce: 1 + filtered_attributes: [] + optimistic: true + '0x00158d00080915bd': + friendly_name: Ri's Office Door + '0x00158d0007e7725b': + friendly_name: Back Door + '0x00158d0008091b58': + friendly_name: Front Door + '0x00158d0007e4c4f2': + friendly_name: Fridge Door + debounce: 1 + optimistic: true + '0x5c0272fffee93bae': + friendly_name: Bo's Office Motion Sensor + '0x00124b002359ed4c': + friendly_name: Ri's Office + '0xa4c138fda4db2c5e': + friendly_name: Bo's Office PIR 2 + '0x84b4dbfffe850fda': + friendly_name: Unused presence sensor diff --git a/config/zigbee2mqtt/state.json b/config/zigbee2mqtt/state.json index 9e26dfe..c3b08f7 100644 --- a/config/zigbee2mqtt/state.json +++ b/config/zigbee2mqtt/state.json @@ -1 +1,90 @@ -{} \ No newline at end of file +{ + "0x804b50fffe100ed4": { + "battery": 100, + "update": { + "state": "available" + }, + "update_available": true, + "linkquality": 215 + }, + "0x00158d0008091c32": { + "contact": false, + "voltage": 2995, + "battery": 41, + "temperature": 19, + "linkquality": 255, + "device_temperature": 21, + "power_outage_count": 8 + }, + "0x00158d00080915bd": { + "contact": true, + "voltage": 3005, + "battery": 44, + "temperature": 17, + "linkquality": 255, + "device_temperature": 16, + "power_outage_count": 7 + }, + "0x00158d0007e7725b": { + "contact": true, + "voltage": 2975, + "battery": 36, + "temperature": 18, + "linkquality": 255, + "device_temperature": 18, + "power_outage_count": 8 + }, + "0x00158d0008091b58": { + "contact": false, + "voltage": 3025, + "battery": 50, + "temperature": 12, + "linkquality": 255, + "device_temperature": 15, + "power_outage_count": 13 + }, + "0x00158d0007e4c4f2": { + "contact": true, + "voltage": 2975, + "battery": 36, + "temperature": 21, + "linkquality": 255, + "device_temperature": 21, + "power_outage_count": 41 + }, + "0x5c0272fffee93bae": { + "occupancy": false, + "tamper": false, + "battery_low": false, + "linkquality": 255 + }, + "0x00124b002359ed4c": { + "voltage": 3000, + "battery": 100, + "occupancy": false, + "tamper": false, + "battery_low": false, + "linkquality": 191 + }, + "0xa4c138fda4db2c5e": { + "occupancy": true, + "battery": 50, + "sensitivity": "high", + "keep_time": "120", + "illuminance": 898, + "linkquality": 127 + }, + "0x84b4dbfffe850fda": { + "target_distance": 0, + "presence": false, + "maximum_range": 3, + "radar_sensitivity": 2, + "minimum_range": 0, + "self_test": "check_success", + "detection_delay": 0.1, + "fading_time": 5, + "cli": " ", + "illuminance_lux": 0, + "linkquality": 255 + } +} \ No newline at end of file diff --git a/esphome/athom-smart-plug-v2-3ff494.yaml b/esphome/athom-smart-plug-v2-3ff494.yaml index 086ee35..867e40c 100644 --- a/esphome/athom-smart-plug-v2-3ff494.yaml +++ b/esphome/athom-smart-plug-v2-3ff494.yaml @@ -1,7 +1,7 @@ substitutions: device_name: athom-smart-plug-v2-3ff494 name: athom-smart-plug-v2-3ff494 - friendly_name: Bo's Desk Plug + friendly_name: Bo's Office Heater packages: athom.smart-plug-v2: github://athom-tech/athom-configs/athom-smart-plug-v2.yaml esphome: diff --git a/esphome/ble-gateway-2.yaml b/esphome/ble-gateway-2.yaml index f7c568d..68ac0da 100644 --- a/esphome/ble-gateway-2.yaml +++ b/esphome/ble-gateway-2.yaml @@ -9,6 +9,10 @@ esphome: packages: base: !include common/base.yaml ble: !include common/ble-gateway.yaml + +web_server: + version: 2 + include_internal: true wifi: use_address: 10.10.30.82 diff --git a/esphome/ble-gateway-3.yaml b/esphome/ble-gateway-3.yaml index 109e01e..5c36c8f 100644 --- a/esphome/ble-gateway-3.yaml +++ b/esphome/ble-gateway-3.yaml @@ -12,3 +12,7 @@ packages: wifi: use_address: 10.10.30.120 + +web_server: + version: 2 + include_internal: true diff --git a/esphome/front-gate.yaml b/esphome/front-gate.yaml index 7f012bc..6c34df8 100644 --- a/esphome/front-gate.yaml +++ b/esphome/front-gate.yaml @@ -26,31 +26,31 @@ binary_sensor: number: GPIO4 inverted: false mode: INPUT_PULLUP - filters: - # Takes advantage of the fact that gate movement causes this GPIO pin to - # flicker (probably due to wire moving). We can use that initial change - # in state as a signal to set the cover operation. Later, when the final - # value settles (after debounces) we can set it back to idle. - - lambda: |- - if(id(gate).current_operation == CoverOperation::COVER_OPERATION_IDLE) { - id(gate).current_operation = (x ? COVER_OPERATION_CLOSING : COVER_OPERATION_OPENING); - id(gate).publish_state(); - } - return x; + # filters: + # # Takes advantage of the fact that gate movement causes this GPIO pin to + # # flicker (probably due to wire moving). We can use that initial change + # # in state as a signal to set the cover operation. Later, when the final + # # value settles (after debounces) we can set it back to idle. + # - lambda: |- + # if(id(gate).current_operation == CoverOperation::COVER_OPERATION_IDLE) { + # id(gate).current_operation = (x ? COVER_OPERATION_CLOSING : COVER_OPERATION_OPENING); + # id(gate).publish_state(); + # } + # return x; - # during gate movement, the wire movement seems to cause the state to rapidly flicker - - delayed_on_off: 5000ms + # # during gate movement, the wire movement seems to cause the state to rapidly flicker + # - delayed_on_off: 5000ms - - lambda: |- - id(gate).current_operation = COVER_OPERATION_IDLE; - id(gate).publish_state(); - return x; + # - lambda: |- + # id(gate).current_operation = COVER_OPERATION_IDLE; + # id(gate).publish_state(); + # return x; - on_state: - then: - - cover.template.publish: - id: gate - current_operation: IDLE + # on_state: + # then: + # - cover.template.publish: + # id: gate + # current_operation: IDLE - platform: gpio pin: diff --git a/lovelace/lovelace.lovelace_servers.yaml b/lovelace/lovelace.lovelace_servers.yaml index e624ad3..d696adb 100644 --- a/lovelace/lovelace.lovelace_servers.yaml +++ b/lovelace/lovelace.lovelace_servers.yaml @@ -57,6 +57,10 @@ config: max: 100 min: 0 opposite: true + - entities: + - entity: switch.nas + - entity: switch.tumtum + type: entities icon: mdi:wardrobe-outline path: server-closet theme: Backend-selected diff --git a/lovelace/lovelace.lovelace_solar.yaml b/lovelace/lovelace.lovelace_solar.yaml index 662f633..ade63dd 100644 --- a/lovelace/lovelace.lovelace_solar.yaml +++ b/lovelace/lovelace.lovelace_solar.yaml @@ -2,143 +2,98 @@ config: views: - badges: [] cards: - - cards: - - content: "{%- set household_usage =\n states('sensor.inverter_active_power')\ - \ | float +\n states('sensor.eagle_200_meter_power_demand_w') | float\n\ - -%}\n**Household usage:** {{ household_usage }} W\n**PV+Bat:** {{ states('sensor.inverter_battery_power')\ - \ | float + states('sensor.inverter_pv_power') | float }} W\n**Active (AC?):**\ - \ {{ states('sensor.inverter_active_power') | float }} W\n**AC from PV:**\ - \ {{ states('sensor.inverter_active_power') | float - states('sensor.inverter_battery_power')\ - \ | float }} W\n**Inverter Load (claimed):** {{ states('sensor.inverter_load_power')\ - \ | float }} W\n**Inverter Load (gap):** {{ states('sensor.inverter_load_power')\ - \ | float - household_usage }} W\n**{Im,Ex}port:** {{ states('sensor.eagle_200_meter_power_demand_w')\ - \ | float }} W\n" - type: markdown - title: Scratch - type: custom:stack-in-card - cards: - entities: battery: sensor.inverter_battery_power battery_charge: sensor.inverter_battery_level - grid: sensor.eagle_200_meter_power_demand + grid: sensor.inverter_grid_power_demand solar: sensor.inverter_pv_power kw_decimals: 2 type: custom:power-flow-card w_decimals: 0 watt_threshold: 900 + - link_dashboard: true + type: energy-distribution - entities: - entity: sensor.inverter_active_power name: Active (AC) power secondary_info: last-updated - - entity: sensor.inverter_reactive_power - name: Reactive power - secondary_info: last-updated - - entity: sensor.inverter_power_factor - name: Power factor - secondary_info: last-updated - - entity: sensor.inverter_pv_power - name: PV Power - secondary_info: last-updated - - entity: sensor.inverter_load_power - name: Load power (inverter claimed) - secondary_info: last-updated - - entity: sensor.household_power_demand - name: Actual load + type: entities + - entities: + - entity: sensor.inverter_active_power + name: Active power secondary_info: last-updated + hours_to_show: 6 + type: history-graph + type: custom:stack-in-card + - entities: + - label: Today + type: section + - entity: sensor.solcast_forecast_today + name: Total + secondary_info: last-updated + - entity: sensor.solcast_forecast_remaining_today + name: Remaining + secondary_info: last-updated + - entity: sensor.solcast_forecast_this_hour + format: kilo + name: Current hour + secondary_info: last-updated + type: custom:multiple-entity-row + unit: kWh + - entity: sensor.solcast_forecast_next_hour + format: kilo + name: Next hour + secondary_info: last-updated + type: custom:multiple-entity-row + unit: kWh + - label: Tomorrow + type: section + - entity: sensor.solcast_forecast_tomorrow + name: Total + secondary_info: last-updated + - label: Peak hour + type: section + - entities: + - entity: sensor.solcast_peak_time_today + format: time + name: ' ' + entity: sensor.solcast_peak_forecast_today + format: kilo + name: Today + type: custom:multiple-entity-row + unit: kWh + - entities: + - entity: sensor.solcast_peak_time_tomorrow + format: time + name: ' ' + entity: sensor.solcast_peak_forecast_tomorrow + format: kilo + name: Tomorrow + type: custom:multiple-entity-row + unit: kWh + title: Forecast + type: entities + - cards: + - entities: + - entity: sensor.inverter_battery_level + name: Charge - entity: sensor.inverter_battery_power - name: Battery power - secondary_info: last-updated - - entity: sensor.inverter_grid_power_demand - name: Grid demand (inverter) - secondary_info: last-updated - - entity: sensor.eagle_200_meter_power_demand_w - name: Grid demand (meter) - secondary_info: last-updated + name: Power + type: history-graph + - entities: + - entity: sensor.inverter_battery_power + name: Power + - entity: sensor.inverter_battery_level + name: Level + - entity: sensor.inverter_battery_health + name: Health + - entity: sensor.inverter_battery_charge_today + name: Total daily charge + - entity: sensor.inverter_battery_discharge_today + name: Total daily discharge type: entities - - entities: - - entity: sensor.inverter_grid_power_demand - name: Grid demand (inverter) - secondary_info: last-updated - - entity: sensor.eagle_200_meter_power_demand_w - name: Grid demand (meter) - secondary_info: last-updated - hours_to_show: 6 - type: history-graph - - entities: - - entity: sensor.inverter_load_power - name: Inverter's claimed load power - - entity: sensor.household_power_demand - name: Actual household power demand - hours_to_show: 6 - type: history-graph - - entities: - - entity: sensor.inverter_load_gap - name: Load gap - - entity: sensor.inverter_demand_gap - name: Demand gap - hours_to_show: 6 - type: history-graph - title: Power - type: custom:stack-in-card - - cards: - - link_dashboard: false - type: energy-distribution - title: Energy (today) - type: custom:stack-in-card - - entities: - - entity: sensor.inverter_pv_power - name: PV Power - - entity: sensor.inverter_active_power - name: Active Power - - entity: sensor.inverter_load_power - name: Load power - type: history-graph - - entities: - - entity: sensor.inverter_battery_level - name: Charge - - entity: sensor.inverter_battery_power - name: Power title: Battery - type: history-graph - - card: - type: entities - filter: - exclude: - - state: unavailable - include: - - entity_id: sensor.eagle_200_meter_power_demand - - entity_id: /sensor.inverter_/ - type: custom:auto-entities - - card: - title: Actions - type: entities - filter: - exclude: [] - include: - - domain: /script|automation/ - entity_id: /\.inverter_/ - type: custom:auto-entities - - cards: - - entities: - - entity: sensor.inverter_grid_frequency - name: Frequency - secondary_info: last-updated - - entity: sensor.inverter_phase_a_voltage - name: Voltage - secondary_info: last-updated - - entity: sensor.inverter_phase_a_current - name: Current - secondary_info: last-updated - type: entities - - entities: - - entity: sensor.inverter_grid_frequency - name: Frequency - - entity: sensor.inverter_phase_a_voltage - name: Voltage - - entity: sensor.inverter_phase_a_current - name: Current - type: history-graph - title: Grid type: custom:stack-in-card icon: mdi:solar-power-variant theme: Backend-selected @@ -374,3 +329,176 @@ config: icon: hass:lightning-bolt path: power title: Electricity + - badges: [] + cards: + - entities: + - label: Charge schedule + type: section + - entity: input_datetime.inverter_charging_schedule_start + name: Start charging at + - entity: input_datetime.inverter_charging_schedule_end + name: Finish charging at + - entity: input_number.inverter_charging_schedule_target_soc + name: Charge until + - label: Misc + type: section + - entity: input_number.inverter_battery_reserve + icon: mdi:battery-lock + name: Reserve battery + secondary_info: last-changed + title: Settings + type: entities + - entities: + - action_name: Set + entity: script.inverter_self_consumption + icon: mdi:recycle-variant + name: Self-consumption + - action_name: Set + entity: script.inverter_force_battery_charge + icon: mdi:import + name: Force charge + - action_name: Set + entity: script.inverter_force_battery_discharge + icon: mdi:export + name: Force discharge + - action_name: Set + entity: script.inverter_force_battery_stop + icon: mdi:stop + name: Stop + title: Battery mode + type: entities + - entities: + - entity: automation.inverter_apply_charging_schedule + icon: mdi:calendar-import + name: Apply charging schedule + secondary_info: last-triggered + toggle: true + type: custom:multiple-entity-row + - entity: automation.inverter_update_battery_reserve + icon: mdi:battery-sync-outline + name: Apply battery reserve + secondary_info: last-triggered + toggle: true + type: custom:multiple-entity-row + - entity: automation.update_pvoutput + icon: mdi:solar-power-variant-outline + name: Send to PVOutput + secondary_info: last-triggered + title: Automations + type: entities + - card: + hours_to_show: 1 + type: logbook + filter: + exclude: [] + include: + - domain: automation + name: /[Ii]nverter/ + - domain: script + name: /[Ii]nverter/ + type: custom:auto-entities + icon: mdi:wrench + path: configure + theme: Backend-selected + title: Configure + - badges: [] + cards: + - cards: + - entities: + - entity: sensor.inverter_active_power + name: Active (AC) power + secondary_info: last-updated + - entity: sensor.inverter_pv_power + name: PV Power + secondary_info: last-updated + - entity: sensor.inverter_load_power + name: Load power (inverter claimed) + secondary_info: last-updated + - entity: sensor.household_power_demand + name: Actual load + secondary_info: last-updated + - entity: sensor.inverter_battery_power + name: Battery power + secondary_info: last-updated + - entity: sensor.inverter_grid_power_demand + name: Grid demand (inverter) + secondary_info: last-updated + - entity: sensor.eagle_200_meter_power_demand_w + name: Grid demand (meter) + secondary_info: last-updated + type: entities + - entities: + - entity: sensor.inverter_grid_power_demand + name: Grid demand (inverter) + secondary_info: last-updated + - entity: sensor.eagle_200_meter_power_demand_w + name: Grid demand (meter) + secondary_info: last-updated + hours_to_show: 6 + type: history-graph + title: Power + type: custom:stack-in-card + - cards: + - entities: + - entity: sensor.inverter_battery_level + name: Charge + - entity: sensor.inverter_battery_power + name: Power + type: history-graph + - entities: + - sensor.inverter_battery_power + - sensor.inverter_battery_level + - sensor.inverter_battery_current + - sensor.inverter_battery_voltage + - sensor.inverter_battery_temperature + - sensor.inverter_battery_health + - sensor.inverter_battery_charge_today + - sensor.inverter_battery_discharge_today + type: entities + title: Battery + type: custom:stack-in-card + - entities: + - entity: sensor.inverter_output_energy_today + name: Output energy (5003) + - entity: sensor.inverter_pv_generation_today + name: PV generation (13002) + - entity: sensor.inverter_battery_charge_today + name: Battery charge (13040) + - entity: sensor.inverter_battery_charge_from_pv_today + name: Battery charge from PV (13012) + - entity: sensor.inverter_battery_discharge_today + name: Battery discharge (13026) + - entity: sensor.inverter_imported_energy_today + name: Imported (13036) + - entity: sensor.inverter_exported_energy_today + name: Exported (13045) + - entity: sensor.inverter_exported_energy_from_pv_today + name: Exported from PV (13005) + - entity: sensor.inverter_direct_energy_consumption_today + name: Direct consumption (13017) + title: Energy + type: entities + - cards: + - entities: + - entity: sensor.inverter_grid_frequency + name: Frequency (5036) + secondary_info: last-updated + - entity: sensor.inverter_phase_a_voltage + name: Voltage (5019) + secondary_info: last-updated + - entity: sensor.inverter_phase_a_current + name: Current (13031) + secondary_info: last-updated + type: entities + - entities: + - entity: sensor.inverter_export_power + name: Export power (Inverter - 13010) + - entity: sensor.eagle_200_meter_power_demand_w + name: Import power (Eagle-200) + type: history-graph + title: Grid + type: custom:stack-in-card + icon: mdi:bug-outline + path: debug + theme: Backend-selected + title: Debug diff --git a/lovelace/lovelace.yaml b/lovelace/lovelace.yaml index 55d1e1b..2783da3 100644 --- a/lovelace/lovelace.yaml +++ b/lovelace/lovelace.yaml @@ -3,74 +3,6 @@ config: views: - badges: [] cards: - - cards: - - cards: - - entity: person.bo_jeanes - fill_container: false - hide_name: false - hide_state: false - type: custom:mushroom-person-card - use_entity_picture: true - - double_tap_action: - action: none - entity: sensor.template_room_bo_phone - icon: "{% if is_state(entity, 'not_home') and is_state('person.bo_jeanes',\ - \ 'home') %}\n mdi:cellphone-off\n{% else %}\n mdi:cellphone-marker\n\ - {% endif %}" - secondary: "{% if is_state('person.bo_jeanes', 'not_home') %}\n ~{{ states('proximity.bo_home')\ - \ }}m from home\n{% elif is_state(entity, 'not_home') %}\n Unknown\n\ - {% else %}\n {{ states(entity) | replace(\"_s_\",\"'s \") | replace(\"\ - _\",\" \") | title }}\n ~{{ state_attr(entity, 'distance') }}m\n{% endif\ - \ %}" - tap_action: - action: more-info - type: custom:mushroom-template-card - type: vertical-stack - - cards: - - entity: person.ri_liu - fill_container: false - hide_name: false - hide_state: false - layout: horizontal - type: custom:mushroom-person-card - use_entity_picture: true - - double_tap_action: - action: none - entity: sensor.template_room_ri_phone - icon: "{% if is_state(entity, 'not_home') and is_state('person.ri_liu',\ - \ 'home') %}\n mdi:cellphone-off\n{% else %}\n mdi:cellphone-marker\n\ - {% endif %}" - secondary: "{% if is_state('person.ri_liu', 'not_home') %}\n ~{{ states('proximity.ri_home')\ - \ }}m from home\n{% elif is_state(entity, 'not_home') %}\n Unknown\n\ - {% else %}\n {{ states(entity) | replace(\"_s_\",\"'s \") | replace(\"\ - _\",\" \") | title }}\n ~{{ state_attr(entity, 'distance') }}m\n{% endif\ - \ %}" - tap_action: - action: more-info - type: custom:mushroom-template-card - type: vertical-stack - type: horizontal-stack - - card: - type: custom:mushroom-chips-card - card_param: chips - filter: - exclude: [] - include: - - attributes: - device_class: door - domain: binary_sensor - options: - content: "{{ state_attr('this.entity_id', 'friendly_name') \n | replace('\ - \ contact','') \n | replace(' Door','') }}" - icon: "{% if is_state('this.entity_id', 'on') %}\n mdi:door-open\n{%\ - \ else %}\n mdi:door-closed\n{% endif %}" - tap_action: - action: more-info - type: template - use_light_color: true - state: 'on' - show_empty: false - type: custom:auto-entities - card: type: custom:mushroom-chips-card card_param: chips @@ -91,17 +23,6 @@ config: sort: method: friendly_name type: custom:auto-entities - - entity: cover.front_gate - layout: horizontal - show_buttons_control: true - show_position_control: false - tap_action: - action: call-service - service: button.press - service_data: {} - target: - entity_id: button.front_gate_button - type: custom:mushroom-cover-card - cards: - card: chips: @@ -300,6 +221,9 @@ config: - entity_id: /fire_danger/ not: state: /Low|^High/ + - entity_id: sensor.ups_status + not: + state: Online - entity_id: /octoprint_printing/ state: 'on' - attributes: @@ -353,7 +277,7 @@ config: - entities: battery: sensor.inverter_battery_power battery_charge: sensor.inverter_battery_level - grid: sensor.eagle_200_meter_power_demand + grid: sensor.inverter_grid_power_demand solar: sensor.inverter_pv_power kw_decimals: 2 type: custom:power-flow-card @@ -579,6 +503,59 @@ config: panel: false path: default_view title: Home + - badges: [] + cards: + - cards: + - cards: + - entity: person.bo_jeanes + fill_container: false + hide_name: false + hide_state: false + type: custom:mushroom-person-card + use_entity_picture: true + - double_tap_action: + action: none + entity: sensor.template_room_bo_phone + icon: "{% if is_state(entity, 'not_home') and is_state('person.bo_jeanes',\ + \ 'home') %}\n mdi:cellphone-off\n{% else %}\n mdi:cellphone-marker\n\ + {% endif %}" + secondary: "{% if is_state('person.bo_jeanes', 'not_home') %}\n ~{{ states('proximity.bo_home')\ + \ }}m from home\n{% elif is_state(entity, 'not_home') %}\n Unknown\n\ + {% else %}\n {{ states(entity) | replace(\"_s_\",\"'s \") | replace(\"\ + _\",\" \") | title }}\n ~{{ state_attr(entity, 'distance') }}m\n{% endif\ + \ %}" + tap_action: + action: more-info + type: custom:mushroom-template-card + type: vertical-stack + - cards: + - entity: person.ri_liu + fill_container: false + hide_name: false + hide_state: false + layout: horizontal + type: custom:mushroom-person-card + use_entity_picture: true + - double_tap_action: + action: none + entity: sensor.template_room_ri_phone + icon: "{% if is_state(entity, 'not_home') and is_state('person.ri_liu',\ + \ 'home') %}\n mdi:cellphone-off\n{% else %}\n mdi:cellphone-marker\n\ + {% endif %}" + secondary: "{% if is_state('person.ri_liu', 'not_home') %}\n ~{{ states('proximity.ri_home')\ + \ }}m from home\n{% elif is_state(entity, 'not_home') %}\n Unknown\n\ + {% else %}\n {{ states(entity) | replace(\"_s_\",\"'s \") | replace(\"\ + _\",\" \") | title }}\n ~{{ state_attr(entity, 'distance') }}m\n{% endif\ + \ %}" + tap_action: + action: more-info + type: custom:mushroom-template-card + type: vertical-stack + type: horizontal-stack + icon: mdi:account-supervisor-circle + path: people + theme: Backend-selected + title: People - badges: [] cards: - entities: diff --git a/lovelace/lovelace_resources.yaml b/lovelace/lovelace_resources.yaml index d9f0160..0e56591 100644 --- a/lovelace/lovelace_resources.yaml +++ b/lovelace/lovelace_resources.yaml @@ -61,7 +61,7 @@ items: url: /hacsfiles/lovelace-layout-card/layout-card.js?hacstag=156434866242 - id: b573b075ef40439ea3961ecd46ea285a type: module - url: /hacsfiles/scheduler-card/scheduler-card.js?hacstag=286270157234 + url: /hacsfiles/scheduler-card/scheduler-card.js?hacstag=286270157235 - id: 618ee66f432c46edbbf612f2c10faa28 type: module url: /hacsfiles/lovelace-multiple-entity-row/multiple-entity-row.js?hacstag=178921037441 @@ -118,7 +118,7 @@ items: url: /hacsfiles/power-flow-card/power-flow-card.js?hacstag=484538222251 - id: 8217392f44e24fe98b652c7f36ab302e type: module - url: /hacsfiles/ha-sankey-chart/ha-sankey-chart.js?hacstag=455846088070 + url: /hacsfiles/ha-sankey-chart/ha-sankey-chart.js?hacstag=4558460880110 - id: 84ed6341c9b245aba7e66cbdc51e2ccb type: module url: /hacsfiles/state-attribute-element/state-attribute-element.js?hacstag=142038085040 @@ -136,7 +136,7 @@ items: url: /hacsfiles/last-changed-element/last-changed-element.js?hacstag=4203650621598 - id: 713c44b772b54d5ebdb0061a188e2f7b type: module - url: /hacsfiles/custom-icons/custom-icons.js?hacstag=491465538021 + url: /hacsfiles/custom-icons/custom-icons.js?hacstag=491465538035 - id: c6b759faf93a4e22ab9faa3ebcaa218b type: module url: /hacsfiles/button-card/button-card.js?hacstag=146194325342