Integration Garbage qui a disparu de HA?

Bonjour,
j’ai refais ma carte poubelle identique a Garbage card mais avec Button-card.
poubelle button card
1er ligne avec Garbage card
2eme ligne avec Button-card

autre exemple:
poubelle button card2

Les sensors template ( j’ai ajouter des attributs date et jours ):

template:
  - sensor:
      - name: "poubelle_verte_jour"
        state: >-
          {% set delta = state_attr('calendar.poubelle_verte', '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.attributes.start_time) | timestamp_custom("%d/%m/%y", True) }}
          jours: "{{((as_timestamp(states.calendar.poubelle_verte.attributes.start_time)- as_timestamp(now())) /86400+1) | int}}"
      - name: "poubelle_jaune_jour"
        state: >-
          {% set delta = state_attr('calendar.poubelle_jaune', '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.attributes.start_time) | timestamp_custom("%d/%m/%y", True) }}
          jours: "{{((as_timestamp(states.calendar.poubelle_jaune.attributes.start_time)- as_timestamp(now())) /86400+1) | int}}"

Le code Button-card:

  - type: horizontal-stack
    cards:
      - type: custom:button-card
        entity: sensor.poubelle_verte_jour
        name: Poubelle Verte
        icon: fas:dumpster
        layout: icon_name_state2nd
        show_state: true
        size: 60%
        custom_fields:
          date: |
            [[[ 
              return 'Le ' + states['sensor.poubelle_verte_jour'].attributes.date;
            ]]]
        state:
          - value: Dans 7 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Dans 6 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Dans 5 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Dans 4 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Dans 3 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Dans 2 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Demain
            operator: '=='
            color: orange
            icon: mdi:delete-restore
            styles:
              state:
                - color: orange
          - value: Aujourd'hui
            operator: '=='
            color: red
            icon: mdi:delete-restore
            styles:
              state:
                - color: red
        styles:
          icon:
            - margin-left: 32px
          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: white
              - font-size: 12px
      - type: custom:button-card
        entity: sensor.poubelle_jaune_jour
        name: Poubelle Jaune
        icon: fas:dumpster
        layout: icon_name_state2nd
        show_state: true
        size: 60%
        custom_fields:
          date: |
            [[[ 
              return 'Le ' + states['sensor.poubelle_jaune_jour'].attributes.date;
            ]]]        
        state:
          - value: Dans 7 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Dans 6 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Dans 5 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Dans 4 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Dans 3 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Dans 2 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Demain
            operator: '=='
            color: orange
            icon: mdi:delete-restore
            styles:
              state:
                - color: orange
          - value: Aujourd'hui
            operator: '=='
            color: red
            icon: mdi:delete-restore
            styles:
              state:
                - color: red
        styles:
          icon:
            - margin-left: 32px
          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: white
              - font-size: 12px

Pour l’icone fas:dumpster, j’utilise l’intégration hass-fontawesome a installer dans HACS.

A mon grand regret, désinstallation de Garbage Collection et Garbage Card :smiling_face_with_tear:

2 « J'aime »

Un p’tit code supplémentaire pour l’acquittement de la poubelle (en gros pour dire que c’est fait)?

C’est peu être pas la meilleur façon, mais c’est fonctionnelle.

poubelle button card3

Code carte:

  - type: horizontal-stack
    cards:
      - type: custom:button-card
        entity: sensor.poubelle_verte_jour
        name: Poubelle Verte
        icon: fas:dumpster
        layout: icon_name_state2nd
        show_state: true
        size: 60%
        custom_fields:
          date: |
            [[[ 
              return 'Le ' + states['sensor.poubelle_verte_jour'].attributes.date;
            ]]]
          statut: |
            [[[ 
              return '- ' + states['input_text.poubelle_verte_statut'].state;
            ]]]             
        state:
          - value: Dans 7 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Dans 6 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Dans 5 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Dans 4 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Dans 3 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Dans 2 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Demain
            operator: '=='
            color: orange
            icon: mdi:delete-restore
            styles:
              state:
                - color: orange
          - value: Aujourd'hui
            operator: '=='
            color: red
            icon: mdi:delete-restore
            styles:
              state:
                - color: red
        styles:
          icon:
            - margin-left: 32px
          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: white
              - font-size: 12px
            statut:
              - top: 73%
              - left: 72%
              - position: absolute
              - color: white
              - font-size: 12px
        hold_action:
          action: call-service
          service: input_text.set_value
          service_data:
            entity_id: input_text.poubelle_verte_statut
            value: Vider
        card_mod:
          style: |
            ha-card {
              margin-top: -8px;
            }             
      - type: custom:button-card
        entity: sensor.poubelle_jaune_jour
        name: Poubelle Jaune
        icon: fas:dumpster
        layout: icon_name_state2nd
        show_state: true
        size: 60%
        custom_fields:
          date: |
            [[[ 
              return 'Le ' + states['sensor.poubelle_jaune_jour'].attributes.date;
            ]]]
          statut: |
            [[[ 
              return '- ' + states['input_text.poubelle_jaune_statut'].state;
            ]]]            
        state:
          - value: Dans 7 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Dans 6 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Dans 5 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Dans 4 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Dans 3 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Dans 2 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Demain
            operator: '=='
            color: orange
            icon: mdi:delete-restore
            styles:
              state:
                - color: orange
          - value: Aujourd'hui
            operator: '=='
            color: red
            icon: mdi:delete-restore
            styles:
              state:
                - color: red
        styles:
          icon:
            - margin-left: 32px
          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: white
              - font-size: 12px
            statut:
              - top: 73%
              - left: 72%
              - position: absolute
              - color: white
              - font-size: 12px
        hold_action:
          action: call-service
          service: input_text.set_value
          service_data:
            entity_id: input_text.poubelle_jaune_statut
            value: Vider
        card_mod:
          style: |
            ha-card {
              margin-top: -8px;
            }              

Créer deux input text.

Une automatisation, qui reset le statut au jours 7:

alias: Poubelle Statut
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.poubelle_verte_jour
    to: Dans 7 Jours
    id: verte
  - platform: state
    entity_id:
      - sensor.poubelle_jaune_jour
    to: Dans 7 Jours
    id: jaune
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: verte
        sequence:
          - service: input_text.set_value
            data:
              value: A vider
            target:
              entity_id: input_text.poubelle_verte_statut
      - conditions:
          - condition: trigger
            id: jaune
        sequence:
          - service: input_text.set_value
            data:
              value: A vider
            target:
              entity_id: input_text.poubelle_jaune_statut
mode: single

Pour le fonctionnement, quand ta vider la poubelle, tu fais un appuie long sur le button et ca passe en Vider. Quand le statut repasse a Dans 7 jours, ca change le statut en A vider.

Je verrais pour améliorer , peu être avec des icones pour le statut au lieu du texte. a réfléchir.

Edit:
Version avec icone en statut.
poubelle button card4

code:

  - type: horizontal-stack
    cards:
      - type: custom:button-card
        entity: sensor.poubelle_verte_jour
        name: Poubelle Verte
        icon: fas:dumpster
        layout: icon_name_state2nd
        show_state: true
        size: 60%
        custom_fields:
          date: |
            [[[ 
              return 'Le ' + states['sensor.poubelle_verte_jour'].attributes.date;
            ]]]
          statut: >
            [[[ if (states['input_text.poubelle_verte_statut'].state == "Vider")
            return '<ha-icon icon="mdi:delete" style="width: 30px; height: 30px;
            color: green;"></ha-icon>';
            else return '<ha-icon icon="mdi:delete-alert" style="width: 30px;
            height: 30px; color: red"></ha-icon>' ]]]             
        state:
          - value: Dans 7 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Dans 6 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Dans 5 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Dans 4 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Dans 3 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Dans 2 Jours
            operator: '=='
            color: green
            styles:
              state:
                - color: green
          - value: Demain
            operator: '=='
            color: orange
            icon: mdi:delete-restore
            styles:
              state:
                - color: orange
          - value: Aujourd'hui
            operator: '=='
            color: red
            icon: mdi:delete-restore
            styles:
              state:
                - color: red
        styles:
          icon:
            - margin-left: 32px
          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: white
              - font-size: 12px
            statut:
              - top: 50%
              - left: 78%
              - position: absolute
              - color: white
              - font-size: 12px
        hold_action:
          action: call-service
          service: input_text.set_value
          service_data:
            entity_id: input_text.poubelle_verte_statut
            value: Vider
        card_mod:
          style: |
            ha-card {
              margin-top: -8px;
            }             
      - type: custom:button-card
        entity: sensor.poubelle_jaune_jour
        name: Poubelle Jaune
        icon: fas:dumpster
        layout: icon_name_state2nd
        show_state: true
        size: 60%
        custom_fields:
          date: |
            [[[ 
              return 'Le ' + states['sensor.poubelle_jaune_jour'].attributes.date;
            ]]]
          statut: >
            [[[ if (states['input_text.poubelle_jaune_statut'].state == "Vider")
            return '<ha-icon icon="mdi:delete" style="width: 30px; height: 30px;
            color: green;"></ha-icon>';
            else return '<ha-icon icon="mdi:delete-alert" style="width: 30px;
            height: 30px; color: red"></ha-icon>' ]]]                       
        state:
          - value: Dans 7 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Dans 6 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Dans 5 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Dans 4 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Dans 3 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Dans 2 Jours
            operator: '=='
            color: yellow
            styles:
              state:
                - color: yellow
          - value: Demain
            operator: '=='
            color: orange
            icon: mdi:delete-restore
            styles:
              state:
                - color: orange
          - value: Aujourd'hui
            operator: '=='
            color: red
            icon: mdi:delete-restore
            styles:
              state:
                - color: red
        styles:
          icon:
            - margin-left: 32px
          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: white
              - font-size: 12px
            statut:
              - top: 50%
              - left: 78%
              - position: absolute
              - color: white
              - font-size: 12px
        hold_action:
          action: call-service
          service: input_text.set_value
          service_data:
            entity_id: input_text.poubelle_jaune_statut
            value: Vider
        card_mod:
          style: |
            ha-card {
              margin-top: -8px;
            }

je n’ai rien fait de tous cela chez moi, sa fonctionne j’ai seulement ce mesage dans HACS

Y a t’il un moyen de ne plus avoir ce message, sans désinstaller.
Car la case ignorer ne fait rien !

Après il y a la solution de tous refaire, mais déjà un problème :

  • Il faut créer un calendrier pour chaque poubelle (Tri,Végétaux,Ménagé,monstres) ?
  • ou Il faut créer un seul calendrier dans lequel on met tous les éventements ?
  • Faut il chaque année recréer les événements ?

Je crois pas, tu dois faire avec :sweat_smile:

Ca fonctionne toujours, mais comme c’est plus maintenu, il risque d’avoir des bug dans le futur.
J’ai préférer prendre les devant et tout refaire.

Moi, j’ai créer un calendrier sous google calendar pour chaque poubelle (j’ai pas de poubelle, ce sont les grosse poubelles dans ma rue verte et jaune ).
quand tu créer le calendrier, tu peu choisir répéter l’évènement et ca créera automatiquement un événement le jours ou les jours choisie.
Tu fais un calendrier par poubelle, puis tu créer des sensors template pour chaque poubelle.

Je pense pas qu’il faut recréer chaque année un évènement. J’ai pas passer une année encore pour te certifier :wink:

Bon jusqu’à présent j’ai tous bon, c’est ce que je viens de faire :sweat_smile:

si je désinstalle garbage, tous les sensor vont disparaitre ou ils vont rester ?
(Je me doute de la réponse, il va falloir les recréer)

C’est chaud à refaire…je sens que je vais encore y passer des jours…

Ton doute est bon, ils seront supprimer.

pour les sensors , tu as des exemples la Integration Garbage qui a disparu de HA? - #21 par WarC0zes et la Integration Garbage qui a disparu de HA? - #17 par telenaze

Bon je savais que ce serait compliqué
J’ai essayé de créer les sensors
Voici le code que j’ai utilisé :

sensor
#*****************Collecte de dechets***************************************************

- sensor:
    - name: "ordures_menageres_date"
      state: "{{((as_timestamp(states.calendar.poubelle_marron_menager.attributes.start_time)- as_timestamp(now())) /86400+1) | int}}"

    - name: "cartons_et_papiers_date"
      state: "{{((as_timestamp(states.calendar.poubelle_bleu_tri.attributes.start_time)- as_timestamp(now())) /86400+1) | int}}"

    - name: "dechets_vegetaux_date"
      state: "{{((as_timestamp(states.calendar.poubelle_verte_vegetaux.attributes.start_time)- as_timestamp(now())) /86400+1) | int}}"


    - name: "ordures_menageres_jour"
      state: >
        {% if states('sensor.ordures_menageres_date') | int > 1 %}
          {{ states('sensor.ordures_menageres_date') }} jours
        {% elif states('sensor.ordures_menageres_date') | int == 1 %}
          Demain
        {% else %}
          Aujourd'hui
        {% endif %}
        
        
    - name: "cartons_et_papiers_jour"
      state: >
        {% if states('sensor.cartons_et_papiers_date') | int > 1 %}
          {{ states('sensor.cartons_et_papiers_date') }} jours
        {% elif states('sensor.cartons_et_papiers_date') | int == 1 %}
          Demain
        {% else %}
          Aujourd'hui
        {% endif %}       
      

        
        
    - name: "dechets_vegetaux_jour"
      state: >
        {% if states('sensor.dechets_vegetaux_date') | int > 1 %}
          {{ states('sensor.dechets_vegetaux_date') }} jours
        {% elif states('sensor.dechets_vegetaux_date') | int == 1 %}
          Demain
        {% else %}
          Aujourd'hui
        {% endif %}

J’ai aussi utilisé ce code, mais pas mieux:

sensor2
#sensor:
# poubelle tri

- plateform: template
  sensors:
    name: "poubelle_verte_vegetaux_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_bleu_tri_jour5"
    state: >-
      {% set delta = state_attr('calendar.poubelle_bleu_tri', '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_bleu_tri.attributes.start_time) | timestamp_custom("%d/%m/%y", True) }}
      jours: "{{((as_timestamp(states.calendar.poubelle_bleu_tri.attributes.start_time)- as_timestamp(now())) /86400+1) | int}}"

J’ai placé ce code dans mon dossier sensors sour le nom de garbage_sensor.yaml
garbage_5

Mais sa ne fonctionne pas, j’ai le message d’erreur suivant:

Invalid config for [sensor]: required key not provided @ data['platform']. Got None. (See ?, line ?). 

Merci pour votre aide, car je m’en sort pas… :woozy_face:

@pascal_ha comme je le precise, j’utilise le nouveau format pour les sensors.
Il faut que tu fasses de même (regarde l’image que j’ai jointe pour la reconfiguration )ou que tu adapte le code si tu utilises un fichier yaml situé dans le répertoire sensors.

J’ai la même erreur avec le code de warc0zes, c’est aussi le nouveau format ?
Je suis vraiment nul en yaml (ou autres codes d’ailleurs) alors adapté c’est compliqué car je sais pas vraiment quoi adapté… :woozy_face:

bon je viens de faire la modification suivante :
J’ai crée un dossier template dans entities, dedans j’ai mis garbage_sensor.yaml (avec ton code)
dans le dossier intégration, j’ai mis un fichier template.yaml avec le code suivant

sensor: !include_dir_merge_list ../entities/template/

j’ai toujours la même erreur.

Créer un nouveau répertoire dans config et nomme le template.
Dans ce répertoire ajoute ton fichier yaml contenant mon code redemarre hassio.
C’est tout. :wink:

Je viens de créer Template et deplacer le fichier.yaml.
Je n’ai plus l’erreur, je vais relancer HA

Je ne t’ai jamais dis de faire tout cela :roll_eyes:

C’est vrai, mais je me suis dit je vais essayer :sweat_smile:.
Je trouvais pratique d’avoir un dossier Sensors pour m’y retouver

Avec template tu retrouves tes petits de la même manière en nommant tes fichiers de la bonne façon.
Tu peux même mélanger des sensors avec des binary sensors dans le même fichier . :grinning:

résumé:
J’ai créer un dossier template dans config avec dedans mon fichier garbage_sensor.yaml qui contient ton code.

J’ai vérifié la configuration dans outils développement pas d’erreur.
J’ai redémarré HAOS, c’est reparti :grin:

Mais je ne retrouve toujours pas les sensors ??
dans Parametres/appareils et services/entités je fais recherche « ordures » ou « dechets » il trouve rien…

Autant pour moi,
J’ai oublié de te dire d’ajouter cette ligne dans le fichier config

template: !include_dir_merge_list template/

Je suis avec ma tablette et c’est moins pratique que sur mon pc.

Pas de souci, je fais un test et je te dit cela demain.
Merci pour ton aide
bonne soirée

Oui, c’est le nouveau format :slight_smile:

template:
  - sensor:

ancien format (dans sensor.yaml):

- platform: template
  sensors:

Bon j’ai fait le test, les sensors sont crée. que ce soit le code de telenaze ou warc0zes.
J’ai mis les 2 codes, je verrais apres ce qui me convient le mieux

Je continu, la suite…

1 « J'aime »