wernerhp / ha.integration.load_shedding

A Home Assistant integration to track your load schedding schedule.
MIT License
113 stars 21 forks source link

card issue #75

Closed McAllstar closed 11 months ago

McAllstar commented 1 year ago

Anyone know why this happens when I change the area from Milnerton to Edenvale? Edenvale image Milnerton image

barnwern commented 1 year ago

Are you referring to the template colour change and the icon (green tick mark etc) changing?

wernerhp commented 1 year ago

262121182-67b1a123-d907-471c-be6b-09156c379760~2

McAllstar commented 1 year ago

Referring to the colour change and the icon (green tick mark etc.) changing, for some reason if I select Edenvale then it goes from green to the triangle with the exclamation mark and permanently stays like that.

wernerhp commented 1 year ago

Green if next load shedding for the area is > 24 hours away Yellow if between 60min and 24hrs Red within the next hour or currently load shedding

The second screenshot's code doesn't correlate with the image on the right.

If you don't have a sensor for Milnerton set up, chances are it's breaking the UI.

wernerhp commented 1 year ago

Please paste your full card config.

McAllstar commented 1 year ago
Click to expand ```yaml type: vertical-stack cards: - type: custom:mushroom-chips-card chips: - type: entity entity: sensor.load_shedding_stage_eskom icon: '' - type: entity entity: sensor.load_shedding_stage_eskom icon: '' - type: entity entity: sensor.load_shedding_area_ekurhuleni3_9_edenvale icon: '' - type: template content: '{{state_attr(entity, "count")}}/{{state_attr(entity, "limit")}}' entity: sensor.load_shedding_sepush_quota icon: mdi:api tap_action: action: more-info alignment: center - type: markdown content: | {% set stage_sensor = "sensor.load_shedding_stage_eskom" %} {% set area_sensor = "sensor.load_shedding_area_ekurhuleni3_9_edenvale" %} {% set area_schedule = state_attr(area_sensor, "forecast") %} {% if area_schedule %} {% set start_time = area_schedule[0].start_time %} {% set end_time = area_schedule[0].end_time %} {% if is_state(area_sensor, "off") %} {% set starts_in = timedelta(minutes=state_attr(area_sensor, "starts_in")).total_seconds() | int // 60 %} {% set mins = starts_in % 60 %} {% set hrs = starts_in // 60 % 24 %} {% set days = starts_in // 1440 %} {% set alert = "Load Shedding starts in {d}d {h}h {m}m ({next})".format(d=days, m=mins, h=hrs, next=as_timestamp(start_time) | timestamp_custom("%H:%M", True)) %} {% if starts_in > 1440 %} {{ states(stage_sensor) }} {% elif 60 < starts_in <= 1440 %} {{ alert }} {% else %} {{ alert }} {% endif %} {% else %} {% set ends_in = timedelta(minutes=state_attr(area_sensor, "ends_in")).total_seconds() | int // 60 %} {% set mins = ends_in % 60 %} {% set hrs = ends_in // 60 % 24 %} {% set days = ends_in // 1440 %} {% set alert = "Load Shedding ends in {d}d {h}h {m}m ({next})".format(d=days, m=mins, h=hrs, next=as_timestamp(end_time) | timestamp_custom("%H:%M", True)) %} {{ alert }} {% endif %} {% else %} {% set stage = state_attr(stage_sensor, "next_stage") %} {% set start_time = state_attr(stage_sensor, "next_start_time") %} {% set end_time = state_attr(stage_sensor, "next_end_time") %} {% set starts_in = timedelta(minutes=state_attr(stage_sensor, "starts_in")).total_seconds() | int // 60 %} {% set mins = starts_in % 60 %} {% set hrs = starts_in // 60 % 24 %} {% set days = starts_in // 1440 %} {% if (start_time == 0 or end_time == 0) %} {% set alert = "No Load Shedding" %} {% else %} {% set alert = "Stage {stage} starts in {d}d {h}h {m}m ({next})".format(stage=stage, d=days, m=mins, h=hrs, next=as_timestamp(start_time) | timestamp_custom("%H:%M", True)) %} {% endif %} {{ alert }} {% endif %} - type: custom:atomic-calendar-revive enableModeChange: true firstDayOfWeek: 1 refreshInterval: 1800 entities: - calendar.load_shedding_forecast showCurrentEventLine: false showMonth: true showWeekDay: true disableEventLink: true showNoEventsForToday: true disableLocationLink: true showFullDayProgress: false showEventIcon: false showHiddenText: false showCalendarName: false calShowDescription: false showLastCalendarWeek: true disableCalEventLink: true disableCalLocationLink: true disableCalLink: true showDescription: false dateFormat: LL showDate: false sortByStartTime: false showRelativeTime: true showProgressBar: true showLocation: true showDeclined: true showMultiDayEventParts: false showMultiDay: false showLoader: false maxDaysToShow: 3 ```
wernerhp commented 1 year ago

Please also send the sensor details from Developer tools for both sensor.load_shedding_stage_eskom and sensor.load_shedding_area_ekurhuleni3_9_edenvale

McAllstar commented 1 year ago

sure here you go.

sensor.load_shedding_stage_eskom ```yaml stage: 2 start_time: '2023-08-29T03:00:00+00:00' end_time: '2023-08-29T14:00:00+00:00' ends_in: 382 starts_in: 382 next_stage: 3 next_start_time: '2023-08-29T14:00:00+00:00' next_end_time: '2023-08-30T03:00:00+00:00' planned: - stage: 2 start_time: '2023-08-29T03:00:00+00:00' end_time: '2023-08-29T14:00:00+00:00' - stage: 3 start_time: '2023-08-29T14:00:00+00:00' end_time: '2023-08-30T03:00:00+00:00' - stage: 1 start_time: '2023-08-30T03:00:00+00:00' end_time: '2023-08-30T14:00:00+00:00' - stage: 3 start_time: '2023-08-30T14:00:00+00:00' end_time: '2023-08-31T03:00:00+00:00' - stage: 1 start_time: '2023-08-31T03:00:00+00:00' end_time: '2023-08-31T14:00:00+00:00' - stage: 3 start_time: '2023-08-31T14:00:00+00:00' end_time: '2023-09-01T03:00:00+00:00' - stage: 1 start_time: '2023-09-01T03:00:00+00:00' end_time: '2023-09-01T14:00:00+00:00' - stage: 3 start_time: '2023-09-01T14:00:00+00:00' end_time: '2023-09-08T14:00:00+00:00' last_update: '2023-08-29T07:16:27+00:00' attribution: Data provided by sepush.co.za icon: mdi:lightning-bolt-outline friendly_name: Eskom Stage ```
sensor.load_shedding_area_ekurhuleni3_9_edenvale ```yaml stage: 0 start_time: 0 end_time: 0 ends_in: 0 starts_in: 499 next_stage: 3 next_start_time: '2023-08-29T16:00:00+00:00' next_end_time: '2023-08-29T18:00:00+00:00' forecast: - stage: 3 start_time: '2023-08-29T16:00:00+00:00' end_time: '2023-08-29T18:00:00+00:00' - stage: 3 start_time: '2023-08-30T00:00:00+00:00' end_time: '2023-08-30T02:00:00+00:00' - stage: 1 start_time: '2023-08-30T08:00:00+00:00' end_time: '2023-08-30T10:00:00+00:00' - stage: 3 start_time: '2023-08-31T00:00:00+00:00' end_time: '2023-08-31T02:00:00+00:00' - stage: 3 start_time: '2023-08-31T16:00:00+00:00' end_time: '2023-08-31T18:00:00+00:00' - stage: 3 start_time: '2023-08-31T22:00:00+00:00' end_time: '2023-09-01T00:00:00+00:00' - stage: 3 start_time: '2023-09-01T14:00:00+00:00' end_time: '2023-09-01T16:00:00+00:00' - stage: 3 start_time: '2023-09-02T06:00:00+00:00' end_time: '2023-09-02T08:00:00+00:00' - stage: 3 start_time: '2023-09-02T14:00:00+00:00' end_time: '2023-09-02T16:00:00+00:00' - stage: 3 start_time: '2023-09-02T22:00:00+00:00' end_time: '2023-09-03T00:00:00+00:00' - stage: 3 start_time: '2023-09-03T14:00:00+00:00' end_time: '2023-09-03T16:00:00+00:00' last_update: '2023-08-28T08:02:05+00:00' attribution: Data provided by sepush.co.za icon: mdi:calendar friendly_name: Edenvale (9) ```
wernerhp commented 1 year ago

There must be a typo somewhere...try this

Click to expand ```yaml type: vertical-stack cards: - type: custom:mushroom-chips-card chips: - type: template content: '{{state_attr(entity, "count")}}/{{state_attr(entity, "limit")}}' entity: sensor.load_shedding_sepush_api_quota icon: mdi:api tap_action: action: more-info - type: entity entity: sensor.load_shedding_stage_eskom icon: '' - type: entity entity: sensor.load_shedding_area_ekurhuleni3_9_edenvale icon: '' hold_action: action: more-info alignment: center - type: markdown content: > {% set stage_sensor = "sensor.load_shedding_stage_eskom" %} {% set area_sensor = "sensor.load_shedding_area_ekurhuleni3_9_edenvale" %} {% set area_schedule = state_attr(area_sensor, "forecast") %} {% if area_schedule %} {% set start_time = area_schedule[0].start_time %} {% set end_time = area_schedule[0].end_time %} {% if is_state(area_sensor, "off") %} {% set starts_in = timedelta(minutes=state_attr(area_sensor, "starts_in")).total_seconds() | int // 60 %} {% set mins = starts_in % 60 %} {% set hrs = starts_in // 60 % 24 %} {% set days = starts_in // 1440 %} {% set alert = "Load Shedding starts in {d}d {h}h {m}m ({next})".format(d=days, m=mins, h=hrs, next=as_timestamp(start_time) | timestamp_custom("%H:%M", True)) %} {% if starts_in > 1440 %} {{ states(stage_sensor) }} {% elif 60 < starts_in <= 1440 %} {{ alert }} {% else %} {{ alert }} {% endif %} {% else %} {% set ends_in = timedelta(minutes=state_attr(area_sensor, "ends_in")).total_seconds() | int // 60 %} {% set mins = ends_in % 60 %} {% set hrs = ends_in // 60 % 24 %} {% set days = ends_in // 1440 %} {% set alert = "Load Shedding ends in {d}d {h}h {m}m ({next})".format(d=days, m=mins, h=hrs, next=as_timestamp(end_time) | timestamp_custom("%H:%M", True)) %} {{ alert }} {% endif %} {% else %} {% set stage = state_attr(stage_sensor, "next_stage") %} {% set start_time = state_attr(stage_sensor, "next_start_time") %} {% set end_time = state_attr(stage_sensor, "next_end_time") %} {% set starts_in = timedelta(minutes=state_attr(stage_sensor, "starts_in")).total_seconds() | int // 60 %} {% set mins = starts_in % 60 %} {% set hrs = starts_in // 60 % 24 %} {% set days = starts_in // 1440 %} {% if (start_time == 0 or end_time == 0) %} {% set alert = "No Load Shedding" %} {% else %} {% set alert = "Stage {stage} starts in {d}d {h}h {m}m ({next})".format(stage=stage, d=days, m=mins, h=hrs, next=as_timestamp(start_time) | timestamp_custom("%H:%M", True)) %} {% endif %} {{ alert }} {% endif %} - type: custom:atomic-calendar-revive enableModeChange: true firstDayOfWeek: 1 refreshInterval: 900 entities: - calendar.load_shedding_forecast showCurrentEventLine: false showMonth: true showWeekDay: true disableEventLink: true showNoEventsForToday: true disableLocationLink: true showFullDayProgress: false showEventIcon: false showHiddenText: false showCalendarName: false calShowDescription: false showLastCalendarWeek: true disableCalEventLink: true disableCalLocationLink: true disableCalLink: true showDescription: false dateFormat: LL showDate: false sortByStartTime: false showRelativeTime: true showProgressBar: true showLocation: true showDeclined: true showMultiDayEventParts: false showMultiDay: false showLoader: false maxDaysToShow: 2 ```
wernerhp commented 11 months ago

Any update or can I close the issue?

McAllstar commented 11 months ago

Hi, you can close the issue. Thanks. I seems to be sorted out now.

Regards Brett