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? 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.
Ło Cię, wygląda i działa super - ale to nie dla takiego laika jak ja niestety
Chętnie bym skorzystał
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… 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…