Wywóz śmieci powiadomienie

Witam mam w Node RED-zie zrobione śmieci by przychodziły powiadomienia na telefon. Problem mam z tym że każdego dnia przychodzą powiadomienia na telefon z pusta informacja o śmieciach prócz w tych co są do wywozu. Jak zrobić by tylko konkretnego dnia wyskakiwało powiadomienie tylko że są do wystawienia?

Co się dziwisz? :wink: Co by się nie działo i tak wszystko kończy się na powiadomieniu.

Podsunąłeś mi właśnie pomysł, ale nie do końca wiem jak to wcielić w życie. Mam dashobard informacyjny przygotowany i genialne byłoby stworzenie 3 ikon, które będą w przeddzień wywozu śmieci zmieniać kolor… Ciekawe czy dało by radę to zrobić…

Ja mam śmieci zrobione na podstawie kalendarza. Dostaje powiadomienie dzień przed wywozem co 30 min pomiędzy godzinami 18:30 a 23:00 chyba że kliknę że śmieci zostały wystawione. Dodatkowo powiadomienie leci do mojej żony i mamy że następnego dnia są śmieci z podaniem jakie. Wklejam printscreena jak to wygląda, mogę wkleić kod jak będzie potrzeba. Zrobiłem to na podstawie filmu Artura: https://www.youtube.com/watch?v=XswGyNU4OM0


Na dashbordzie mam coś takiego:

I jak kliknę “Wystawione” to powiadomienia które przychodzą co 30 minut w zadanym czasie już nie przychodzą. O północy przycisk się resetuje.
Na dole dołożyłem dwa dodatkowe powiadomienia.

1 polubienie

Ło Cię, wygląda i działa super - ale to nie dla takiego laika jak ja niestety

Chętnie bym skorzystał :wink:

To nie jest wcale jakoś trudne, uczyłem się z filmów Artura na YT i społeczności tego forum. Moje powiadomienia zrobiłem na podstawie filmu, link wcześniej.

Wrzucę kod wieczorem

EDIT:
Udało się szybciej, wyciągnąłem flow dla dwóch frakcji.
flows.json (4,8 KB)

Koleżko a jak zrobiłeś ten wygląd na dashboardzie razem z “wyniesione”?

To również sortuje według terminu odbioru śmieci.

cards:
  - type: custom:text-divider-row
    text: Śmieci
  - type: vertical-stack
    cards:
      - type: custom:mushroom-chips-card
        chips:
          - type: entity
            entity: input_boolean.smieci
            icon: mdi:trash-can-outline
            name: Wystawione
            content_info: name
            tap_action:
              action: toggle
            icon_color: red
        alignment: center
        card_mod:
          style: |
            :host { 
              --mush-chip-spacing: 8px;
              --mush-chip-padding: 0 0.25em;
              --mush-chip-height: 48px;
              --mush-chip-border-radius: 15px;
              --mush-chip-font-size: 0.3em;
              --mush-chip-font-weight: 
              --mush-chip-icon-size: 0.5em;
              --mush-chip-avatar-padding: 0.1em;
              --mush-chip-avatar-border-radius: 50%;
              --mush-chip-box-shadow: var(--ha-card-box-shadow);
              --mush-chip-background: var(--ha-card-background);
            }
      - type: custom:auto-entities
        card:
          type: entities
          show_header_toggle: false
        filter:
          include:
            - entity_id: sensor.zmieszan*
            - entity_id: sensor.plasti*
            - entity_id: sensor.szklo*
            - entity_id: sensor.bio*
            - entity_id: sensor.maku*
            - entity_id: sensor.popi*
        unique: entity
        sort:
          method: attribute
          attribute: days
          numeric: true
          reverse: false
          first: 0
          count: 6

A jaką kartę wybrałeś? Tworzysz to z encji kalendarza? U mnie nazywają się np. calendar.plastik … Coś mi zdecydowanie nie idzie…

Karta Mushroom, tak tworze to z kalendarza. Co Ci nie idzie?

Jaką kartę mushroom bym nie wybrał, kod nie wchodzi. Wywala błędy, mj kalendarz - mam zainstalowany kalendarz lokalny - inaczej calkowicie nazywa encje, tj.

Mam tak samo nazwane encje w kalendarzu.
Zapomniałem, że musisz w configuration.yaml dopisać dla każdej frakcji taki kod.
Wklejam dla dwóch frakcji, musisz zmienić tylko nazwę encji zgodnie z tym co Ty masz w kalendarzu. Ja nazywam bio, zmieszane itd., bez dopisku odpady, ale to nie ma znaczenia. Powiel kod dla każdej z frakcji.

template:
  - sensor:
      - name: Popiół
        icon: "mdi:trash-can-outline"

        state: >-
          {% set t = now() %}
          {% set midnight = today_at() %}
          {% set event = state_attr('calendar.popiol', 'start_time') | as_datetime | as_local %}
          {% set delta = event - midnight %}
          {% if delta.days == 0 %}
            Dziś
          {% elif delta.days == 1 %}
            Jutro
          {% elif delta.days == 2 %}
            Pojutrz
          {% else %}
            Za {{ delta.days }} dni
          {% endif %}
        attributes:
          days: >-
            {{ ((state_attr('calendar.popiol','start_time') | as_timestamp - today_at('00:00') | as_timestamp) / 86400) | int }}
          data: >-
            {{ state_attr('calendar.popiol','start_time') }}

      - name: Bio
        icon: "mdi:trash-can-outline"
        state: >-
          {% set t = now() %}
          {% set midnight = today_at() %}
          {% set event = state_attr('calendar.bio', 'start_time') | as_datetime | as_local %}
          {% set delta = event - midnight %}
          {% if delta.days == 0 %}
            Dziś
          {% elif delta.days == 1 %}
            Jutro
          {% elif delta.days == 2 %}
            Pojutrz
          {% else %}
            Za {{ delta.days }} dni
          {% endif %}
        attributes:
          days: >-
            {{ ((state_attr('calendar.bio','start_time') | as_timestamp - today_at('00:00') | as_timestamp) / 86400) | int }}
          data: >-
            {{ state_attr('calendar.bio','start_time') }}

Spróbuj tak, to się odnosi bezpośrednio do nazwy kalendarza

type: grid
cards:
  - type: heading
    heading: Nowa sekcja
  - type: vertical-stack
    title: ""
    cards:
      - type: custom:mushroom-template-card
        primary: Segregowane
        secondary: |2-
                    {% set t = now() %}
                    {% set midnight = today_at() %}
                    {% set event = state_attr('calendar.odpady_selektywne', 'start_time') | as_datetime | as_local %}
                    {% set delta = event - midnight %}
                    {% if delta.days == 0 %}
                      Dzisiaj
                    {% elif delta.days == 1 %}
                      Jutro
                    {% elif delta.days == 2 %}
                      Pojutrze
                    {% else %}
                      Za {{ delta.days }} dni
                    {% endif %}

          | 
                    {{ as_timestamp(strptime(state_attr('calendar.odpady_selektywne', 'start_time'), '%Y-%m-%d %H:%M:%S')) | timestamp_custom('%d-%m-%Y') }}
        icon: mdi:calendar-account
        double_tap_action:
          action: none
        hold_action:
          action: none
        tap_action:
          action: more-info
        icon_color: >-
          {{ 'green' if
          (as_timestamp(state_attr('calendar.odpady_selektywne','start_time')) -
          as_timestamp(now())) < 86400 else '' }}
      - type: custom:mushroom-template-card
        primary: Zmieszane
        secondary: |2-
                    {% set t = now() %}
                    {% set midnight = today_at() %}
                    {% set event = state_attr('calendar.odpady_zmieszane', 'start_time') | as_datetime | as_local %}
                    {% set delta = event - midnight %}
                    {% if delta.days == 0 %}
                      Dzisiaj
                    {% elif delta.days == 1 %}
                      Jutro
                    {% elif delta.days == 2 %}
                      Pojutrze
                    {% else %}
                      Za {{ delta.days }} dni
                    {% endif %}

          | 
                    {{ as_timestamp(strptime(state_attr('calendar.odpady_zmieszane', 'start_time'), '%Y-%m-%d %H:%M:%S')) | timestamp_custom('%d-%m-%Y') }}
        icon: mdi:calendar-account
        double_tap_action:
          action: none
        hold_action:
          action: none
        tap_action:
          action: more-info
        icon_color: >-
          {{ 'green' if
          (as_timestamp(state_attr('calendar.odpady_zmieszane','start_time')) -
          as_timestamp(now())) < 86400 else '' }}
    grid_options:
      columns: 9
      rows: auto
  - type: tile
    entity: input_boolean.smieciwystawione
    features_position: bottom
    vertical: true
    grid_options:
      columns: 3
      rows: 2
    tap_action:
      action: toggle
    icon_tap_action:
      action: toggle
    show_entity_picture: false
    hide_state: true
    name: " "

I to wrzucam jako karta w HA tak? Jakaś konkretna, czy skorzystać z tej ostatniej możliwości dostępnej z wpisaniem kodu?

tak jako karta HA, musisz mieć tylko zainstalowane mushroom-template-card i dopasować nazwy 'calendar.odpady_selektywne' do nazw swojego kalendarza.

Jeżeli chciałbyś korzysatać z automatyzacji powiadomień, utworzyć pomocnika typ przełącznik o nazwie smieciwystawione lub dowolna inna nazwa która wstawisz w input_boolean.smieciwystawione

kod bez przycisku

type: vertical-stack
title: ""
cards:
  - type: custom:mushroom-template-card
    primary: Segregowane
    secondary: |2-
                {% set t = now() %}
                {% set midnight = today_at() %}
                {% set event = state_attr('calendar.odpady_selektywne', 'start_time') | as_datetime | as_local %}
                {% set delta = event - midnight %}
                {% if delta.days == 0 %}
                  Dzisiaj
                {% elif delta.days == 1 %}
                  Jutro
                {% elif delta.days == 2 %}
                  Pojutrze
                {% else %}
                  Za {{ delta.days }} dni
                {% endif %}

      | 
                {{ as_timestamp(strptime(state_attr('calendar.odpady_selektywne', 'start_time'), '%Y-%m-%d %H:%M:%S')) | timestamp_custom('%d-%m-%Y') }}
    icon: mdi:trash-can-outline
    double_tap_action:
      action: none
    hold_action:
      action: none
    tap_action:
      action: more-info
    icon_color: >-
      {{ 'green' if
      (as_timestamp(state_attr('calendar.odpady_selektywne','start_time')) -
      as_timestamp(now())) < 86400 else '' }}
  - type: custom:mushroom-template-card
    primary: Zmieszane
    secondary: |2-
                {% set t = now() %}
                {% set midnight = today_at() %}
                {% set event = state_attr('calendar.odpady_zmieszane', 'start_time') | as_datetime | as_local %}
                {% set delta = event - midnight %}
                {% if delta.days == 0 %}
                  Dzisiaj
                {% elif delta.days == 1 %}
                  Jutro
                {% elif delta.days == 2 %}
                  Pojutrze
                {% else %}
                  Za {{ delta.days }} dni
                {% endif %}

      | 
                {{ as_timestamp(strptime(state_attr('calendar.odpady_zmieszane', 'start_time'), '%Y-%m-%d %H:%M:%S')) | timestamp_custom('%d-%m-%Y') }}
    icon: mdi:trash-can-outline
    double_tap_action:
      action: none
    hold_action:
      action: none
    tap_action:
      action: more-info
    icon_color: >-
      {{ 'green' if
      (as_timestamp(state_attr('calendar.odpady_zmieszane','start_time')) -
      as_timestamp(now())) < 86400 else '' }}
grid_options:
  columns: 9
  rows: auto

Jest prawie, że sukces… :slight_smile: Wyszło coś takiego (podstawione moje kalendarze). Teraz jak zrobić z tego powiadomienia z możliwością wyłączania powiadomienia?

EDIT:
Udało mi się trochę pokombinować ze stosem pionowym i finalnie wyszo tak:

Tylko po wciśnięciu “śmieci wystawione” podświetla się na żółto tak jakbym włączył jakiś przycisk i tak już pozostaje…

Fajnie, że się udało. Przycisk tak jak napisałem wyżej

Dzięki temu gdy wyłączysz przestaniesz otrzymywać przypomnienia o wystawieniu smieci.

Mam stworzonego. A Ty tworzyłeś te „śmieci” jako sensory? Widzę na firmie Artura, że on ma to jako sensory. Dlatego coś mi nie idzie z tymi powiadomieniami… :confused: