Tu dois retrouver tes sensor poubelles_verte, jaune, bleu,marron tu vas dans outils développement/état et tu tape poubelle dans la barre de recherche, tu verras les sensors poubelle.
Ok parfait j’ai bien mes sensors ! Merci beaucoup
Pour la carte j’ai repris le code que tu as mis ça semble fonctionner !
Par contre comment je le duplique pour les autres ? Je veux dire notamment comment tu as fait pour avoir deux poubelles par ligne ?
Car moi pour l’instant avec ton code pour une poubelle ça me prend tout l’écran …
Enfin as tu fait une automatisation pour avoir un rappel avant chaque ramassage ?
Merci pour l’aide
Il faut utiliser grille (grid) et pile horizontale
(Horizontal-stack) quand tu crée la carte.
title: Poubelle
square: false
type: grid
cards:
- type: horizontal-stack
cards:
- type: custom:button-card
entity: sensor.poubelle_marron_jour
Voici le code complet.
title: Poubelle
square: false
type: grid
cards:
- type: horizontal-stack
cards:
- type: custom:button-card
entity: sensor.poubelle_marron_jour
name: Menager
icon: mdi:delete-restore
layout: icon_name_state2nd
show_state: true
size: 50%
custom_fields:
date: |
[[[
return 'Le ' + states['sensor.poubelle_marron_jour'].attributes.date;
]]]
state:
- value: Dans 7 Jours
operator: '=='
color: purple
styles:
state:
- color: black
- value: Dans 6 Jours
operator: '=='
color: purple
styles:
state:
- color: black
- value: Dans 5 Jours
operator: '=='
color: purple
styles:
state:
- color: black
- value: Dans 4 Jours
operator: '=='
color: purple
styles:
state:
- color: black
- value: Dans 3 Jours
operator: '=='
color: purple
styles:
state:
- color: black
- value: Dans 2 Jours
operator: '=='
color: purple
styles:
state:
- color: black
- value: Demain
operator: '=='
color: purple
icon: mdi:dump-truck
name: 'Passage:'
styles:
icon:
- animation: blink 10s infinite
state:
- color: red
- value: Aujourd'hui
operator: '=='
color: purple
icon: mdi:dump-truck
name: 'Ramassage:'
styles:
icon:
- animation: blink 5s infinite
state:
- color: red
styles:
card:
- background-color: auto
- color: auto
- border: 2px solid grey
icon:
- margin-left: 30px
name:
- margin-left: 6px
- justify-self: start
- font-size: 15px
state:
- font-weight: bold
- margin-left: 6px
- justify-self: start
- font-size: 12px
custom_fields:
date:
- top: 73%
- left: 43%
- position: absolute
- color: black
- font-size: 12px
card_mod:
style: |
ha-card {
margin-top: -3px;
}
- type: custom:button-card
entity: sensor.poubelle_bleu_jour
name: Tri
icon: mdi:delete-restore
layout: icon_name_state2nd
show_state: true
size: 50%
custom_fields:
date: |
[[[
return 'Le ' + states['sensor.poubelle_bleu_jour'].attributes.date;
]]]
state:
- value: Dans 7 Jours
operator: '=='
color: blue
styles:
state:
- color: black
- value: Dans 6 Jours
operator: '=='
color: blue
styles:
state:
- color: black
- value: Dans 5 Jours
operator: '=='
color: blue
styles:
state:
- color: black
- value: Dans 4 Jours
operator: '=='
color: blue
styles:
state:
- color: black
- value: Dans 3 Jours
operator: '=='
color: blue
styles:
state:
- color: black
- value: Dans 2 Jours
operator: '=='
color: blue
styles:
state:
- color: black
- value: Demain
operator: '=='
color: blue
icon: mdi:dump-truck
name: 'Passage:'
styles:
icon:
- animation: blink 10s infinite
state:
- color: red
- value: Aujourd'hui
operator: '=='
color: blue
icon: mdi:dump-truck
name: 'Ramassage:'
styles:
icon:
- animation: blink 5s infinite
state:
- color: red
styles:
card:
- background-color: auto
- color: auto
- border: 2px solid grey
icon:
- margin-left: 30px
name:
- margin-left: 6px
- justify-self: start
- font-size: 15px
state:
- font-weight: bold
- margin-left: 6px
- justify-self: start
- font-size: 12px
custom_fields:
date:
- top: 73%
- left: 43%
- position: absolute
- color: black
- font-size: 12px
card_mod:
style: |
ha-card {
margin-top: -3px;
}
- type: horizontal-stack
cards:
- type: custom:button-card
entity: sensor.poubelle_verte_jour
name: Vegetaux
icon: mdi:delete-restore
layout: icon_name_state2nd
show_state: true
size: 50%
custom_fields:
date: |
[[[
return 'Le ' + states['sensor.poubelle_verte_jour'].attributes.date;
]]]
state:
- value: Dans 7 Jours
operator: '=='
color: green
styles:
state:
- color: black
- value: Dans 6 Jours
operator: '=='
color: green
styles:
state:
- color: black
- value: Dans 5 Jours
operator: '=='
color: green
styles:
state:
- color: black
- value: Dans 4 Jours
operator: '=='
color: green
styles:
state:
- color: black
- value: Dans 3 Jours
operator: '=='
color: green
styles:
state:
- color: black
- value: Dans 2 Jours
operator: '=='
color: green
styles:
state:
- color: black
- value: Demain
operator: '=='
color: green
icon: mdi:dump-truck
name: 'Passage:'
styles:
icon:
- animation: blink 10s infinite
state:
- color: red
- value: Aujourd'hui
operator: '=='
color: green
name: 'Ramassage:'
icon: mdi:dump-truck
styles:
icon:
- animation: blink 5s infinite
state:
- color: red
styles:
card:
- background-color: auto
- color: auto
- border: 2px solid grey
icon:
- margin-left: 30px
name:
- margin-left: 6px
- justify-self: start
- font-size: 15px
state:
- font-weight: bold
- margin-left: 6px
- justify-self: start
- font-size: 12px
custom_fields:
date:
- top: 73%
- left: 43%
- position: absolute
- color: black
- font-size: 12px
card_mod:
style: |
ha-card {
margin-top: -3px;
}
- type: custom:button-card
entity: sensor.poubelle_jaune_jour
name: Encombrants
icon: mdi:delete-restore
layout: icon_name_state2nd
show_state: true
size: 50%
custom_fields:
date: |
[[[
return 'Le ' + states['sensor.poubelle_jaune_jour'].attributes.date;
]]]
state:
- value: Dans 7 Jours
operator: '=='
color: brown
styles:
state:
- color: black
- value: Dans 6 Jours
operator: '=='
color: brown
styles:
state:
- color: black
- value: Dans 5 Jours
operator: '=='
color: brown
styles:
state:
- color: black
- value: Dans 4 Jours
operator: '=='
color: brown
styles:
state:
- color: black
- value: Dans 3 Jours
operator: '=='
color: brown
styles:
state:
- color: black
- value: Dans 2 Jours
operator: '=='
color: brown
styles:
state:
- color: black
- value: Demain
operator: '=='
color: brown
icon: mdi:dump-truck
name: 'Passage:'
styles:
icon:
- animation: blink 10s infinite
state:
- color: red
- value: Aujourd'hui
operator: '=='
color: brown
icon: mdi:dump-truck
name: 'Ramassage:'
styles:
icon:
- animation: blink 5s infinite
state:
- color: red
styles:
card:
- background-color: auto
- color: auto
- border: 2px solid grey
icon:
- margin-left: 30px
name:
- margin-left: 6px
- justify-self: start
- font-size: 15px
state:
- font-weight: bold
- margin-left: 6px
- justify-self: start
- font-size: 12px
custom_fields:
date:
- top: 73%
- left: 43%
- position: absolute
- color: black
- font-size: 12px
card_mod:
style: |
ha-card {
margin-top: -3px;
}
columns: 1
Oui j’ai fait une automatisation par nodered.
Mais c’est réalisable avec les automatisations de HA.
Mais je ne pas encore fait le transfert de automatisation nodered en automatisation HA
Mais dans le principe, je demande a HA tous les jours à 19h30 (pour moi) de vérifier si le sensor a comme valeur « demain ».
Si c’est le cas je reçois une notification sur mon mobile « sortir les poubelles ce soir »
(La levé des poubelles étant entre 5h et 7h le matin)
tu as un exemple ici :
Ok merci
J’ai mis ton code complet dans une carte en yaml mais voici l’affichage que j’ai …
D’avance merci
Chez moi j’ai bien 2 lignes
Vérifie si tu as bien la même chose quand tu édite la carte. Surtout la case colonnes.
ok top c’était bien ça (colonne à 3…)
merci !
dis pas curiosité je vois que tu gères aussi le courrier, tu peux me dire avec quel équipement tu as fait ça ?
Merci
Je fonctionne comme cela actuellement.
Mais ayant un esp32 à proximité, Je vais voir pour passer par esp.(Quand j’aurai un moment )
Bonjour,
tu as déja plein de solution proposer Résultats de recherche pour « boite au lettre » - Home Assistant Communauté Francophone
Avec le code précisé :
#template:
# code garbage warc0zes + ajout monstres
- name: "poubelle_grise"
state: >-
{% set delta = state_attr('calendar.poubelles_grises', 'start_time') | as_datetime | as_local - today_at() %}
{{ {0: "Aujourd'hui", 1: "Demain"}.get(delta.days, 'Dans ' ~ delta.days ~ ' Jours') }}
attributes:
date: >-
{{ as_timestamp(states.calendar.poubelles_grises.attributes.start_time) | timestamp_custom("%d/%m/%y", True) }}
jours: "{{((as_timestamp(states.calendar.poubelles_grises.attributes.start_time)- as_timestamp(now())) /86400+1) | int}}"
- name: "poubelle_jaune"
state: >-
{% set delta = state_attr('calendar.poubelles_jaunes', 'start_time') | as_datetime | as_local - today_at() %}
{{ {0: "Aujourd'hui", 1: "Demain"}.get(delta.days, 'Dans ' ~ delta.days ~ ' Jours') }}
attributes:
date: >-
{{ as_timestamp(states.calendar.poubelles_jaunes.attributes.start_time) | timestamp_custom("%d/%m/%y", True) }}
jours: "{{((as_timestamp(states.calendar.poubelles_jaunes.attributes.start_time)- as_timestamp(now())) /86400+1) | int}}"
Je n’ai pas les mêmes retours que toi :
C’est pas les bon sensors, tu montre des calendriers. Les entités sont sensor.poubelle_xxxxx
.
ta pas oublier le - sensor:
?
dans le fichier template.yaml:
- sensor:
- name: "poubelle_verte_jour"
state: >-
{% set delta = state_attr('calendar.poubelle_verte_vegetaux', 'start_time') | as_datetime | as_local - today_at() %}
{{ {0: "Aujourd'hui", 1: "Demain"}.get(delta.days, 'Dans ' ~ delta.days ~ ' Jours') }}
attributes:
date: >-
{{ as_timestamp(states.calendar.poubelle_verte_vegetaux.attributes.start_time) | timestamp_custom("%d/%m/%y", True) }}
jours: "{{((as_timestamp(states.calendar.poubelle_verte_vegetaux.attributes.start_time)- as_timestamp(now())) /86400+1) | int}}"
Comment tu ajoute le sensor.poubelle_jaune_jour?
Ayant marre des tableaux de bord digne du Boeing 747, des cartes partout etc…, je n’ai pas réussi plus minimaliste que ces deux boutons au bout de ma carte calendrier :
Ils affichent le nombre de jours restants, l’icône indique le type de poubelle, et les boutons s’allument en vert ou jaune selon le type, le jour J.
Biensur en plus il y a le calendrier complet dans le dashboard calendar, la notif sur les smartphones, la veilleuse dans l’entrée qui s’allume de la couleur de la poubelle a partir de 16h pour penser a la sortir etc…
dans le template.yaml :
- sensor:
- name: "poubelle_verte_jour"
state: >-
{% set delta = state_attr('calendar.poubelle_verte_vegetaux', 'start_time') | as_datetime | as_local - today_at() %}
{{ {0: "Aujourd'hui", 1: "Demain"}.get(delta.days, 'Dans ' ~ delta.days ~ ' Jours') }}
attributes:
date: >-
{{ as_timestamp(states.calendar.poubelle_verte_vegetaux.attributes.start_time) | timestamp_custom("%d/%m/%y", True) }}
jours: "{{((as_timestamp(states.calendar.poubelle_verte_vegetaux.attributes.start_time)- as_timestamp(now())) /86400+1) | int}}"
- name: "poubelle_jaune_jour"
state: >-
{% set delta = state_attr('calendar.poubelle_jaune_monstres', 'start_time') | as_datetime | as_local - today_at() %}
{{ {0: "Aujourd'hui", 1: "Demain"}.get(delta.days, 'Dans ' ~ delta.days ~ ' Jours') }}
attributes:
date: >-
{{ as_timestamp(states.calendar.poubelle_jaune_monstres.attributes.start_time) | timestamp_custom("%d/%m/%y", True) }}
jours: "{{((as_timestamp(states.calendar.poubelle_jaune_monstres.attributes.start_time)- as_timestamp(now())) /86400+1) | int}}"
C’est propre et minimaliste effectivement.
Tu aurais le code de la card?
Non pas que je ne veuille pas, partageant tout, mais il me faudrait te transmettre tous les templates button card associés.
Je te suggère de surveiller mon github, je le mettrais à jour des que je peux avec ces petites nouveautés.
Néanmoins j’essais de te donner ce qui concerne les boutons.
La carte :
type: grid
square: false
columns: 2
cards:
- type: custom:button-card
template:
- mini_card
show_name: false
show_label: false
entity: sensor.calendrier_dechets_menagers
custom_fields:
notification: >
[[[ return
Math.floor(states['sensor.calendrier_dechets_menagers'].state
) ]]]
state:
- value: 0
styles:
icon:
- color: var(--icon-green)
img_cell:
- background-color: var(--img-cell-green)
- type: custom:button-card
template:
- mini_card
show_name: false
show_label: false
entity: sensor.calendrier_tri_selectif
custom_fields:
notification: >
[[[ return
Math.floor(states['sensor.calendrier_tri_selectif'].state )
]]]
styles:
- value: 0
styles:
icon:
- color: var(--icon-yellow)
img_cell:
- background-color: var(--img-cell-yellow)
Le template button card associé (tout ne sert pas dedans, mais ce template sert a beaucoup d’autres cartes) :
mini_card:
entity: '[[[ return variables.entity ]]]'
icon: '[[[ return variables.icon ]]]'
variables:
entity: '[[[ return variables.entity ]]]'
icon: '[[[ return variables.icon ]]]'
show_icon: true
show_name: true
show_state: false
show_label: true
styles:
img_cell:
- border-radius: 50%
- width: 35px
- height: 35px
- background-color: var(--img-cell-off)
icon:
- width: 50%
- color: var(--icon-off)
label:
- font-weight: 500
- font-size: 12px
- opacity: 0.8
- color: var(--text-on)
- filter: drop-shadow(0px 2px 2px rgba(0,0,0,0.3))
- white-space: normal
- margin-top: '-3px'
state:
- font-weight: 500
- font-size: 12px
- opacity: 0.8
- color: var(--text-on)
- filter: drop-shadow(0px 2px 2px rgba(0,0,0,0.3))
- margin-top: 1px
name:
- font-weight: 500
- font-size: 11px
- margin-top: 3px
- opacity: 1
- color: var(--text-on)
- filter: drop-shadow(0px 2px 2px rgba(0,0,0,0.3))
entity_picture:
- width: 100%
- border-radius: 100px
card:
- border-radius: 14px
- height: auto
- padding: 3px 0
custom_fields:
notification:
- border-radius: 50%
- position: absolute
- left: 60%
- top: 4%
- height: 17px
- width: 17px
- font-size: 10px
- line-height: 16px
- font-weight: null
- background-color: |
[[[
if (entity.state == "off" || entity.state == "locked" || entity.state == 0 )
return 'rgba(0,0,0,0)';
return 'var(--notification) ';
]]]
- color: |
[[[
if (entity.state == "off" || entity.state == "locked" || entity.state == 0)
return 'rgba(0,0,0,0)';
return 'var(--text-on)';
]]]
double_tap_action:
action: toggle
tap_action:
action: more-info
J’utilise Waste Collection schedule pour récupérer les dates de relevé des poubelles sur le site de ma mairie.
Et la carte Trashcard dispo dans HACS pour afficher. L’avantage pour moi est que la config par l’interface graphique est très complète, pas besoin de faire du code Et il y a beaucoup de possibilités
Merci pour cette proposition de carte que j’utilise désormais