Présentation + [Mon Dashboard] BBE

Salut @BBE !

Je viens seulement de parcourir ta presentation et je tiens déjà à te pour remercier pour la description très complète de ta solution domotique.

C’est très lisible, on sent la rigueur qui a du te prendre du temps dans ta rédaction.

Bravo :+1:

Ps: je pense que je vais te piquer quelques idées.

Merci !!!

Et c’est absolument fait pour !

Salut,

j’ai bien avancé sur les room cards et j’en suis pas peu fier. Merci encore pour les éléments que tu partages. Je partagerai mon code un peu plus tard, je ferai une présentation quand tout sera bien ficelé.

Sur la gestion de la PAC, tu n’as pas fait rien sur ton dashboard ? elle se gère en auto avec les automatisation ? je suppose que tu dois avoir un thermostat quelque part ou je me trompe ?

edit : je viens de voir le pop up… du coup c’est plus clair !

1 « J'aime »

Comme tu as vu, il y a le pop up, et une sous vue dédiée…

Mais en fait le pop up ne sert quasi qu’à passer en manuel/auto car j’ai les scripts qui permettent de palier aux défauts du scheduler et qui marchent:

  • dans le dashboard (via des chips)
  • en commande vocale

Bref quand je suis en télétravail en semaine et qu’il fait froid, je dis juste « Alexa, allume le chauffage » et je passe en mode confort jusqu’au prochain basculement du scheduler sans même passer par le dashboard…

Alors… bilan?

Mon fiston ne s’en remet pas… le ruban led rouge à 20h s’il n’y a pas eu 2 brossages est allumé souvent…

Il y a aussi une automatisation qui lance la musique préférée de la pitchounette sur l’echo dot de la salle de bain quand sa brosse se met en route…

Ça marche du tonnerre ! Merci beaucoup
Ah oui sympa l’automatisation :smiley:
En tous cas je me suis beaucoup inspiré de ton Dashboard, il me reste encore deux trois trucs et ça sera top

Bonsoir @BBE !

J’avance bien sur la programmation du chauffage, j’ai repris et adapté ton code. N’ayant pas de remonter du linky en mqqt, le plus dur a été de créer le booléen qui s’active ou non en fonction des HP Rouge. Mais c’est fait, ça marche !
Maintenant je vais rajouter des conditions de température dans la pièce et à l’extérieur (au cas où il vaille mieux ouvrir la fenêtre que chauffer ou climatiser).

Par contre je me pose une question sur tes conditions de déclenchement des modes auto. J’ai l’impression que ça ne lance pas automatiquement le programme justement. il a fallu que j’exécute l’automatisation pour que ça fonctionne. Même quand je mets manuellement le mode auto en off puis en on, l’automatisation ne se lance pas, je dois l’exécuter. Je vais regarder ça demain, là j’attends juste 23H30 pour voir si ça coupe en auto.

Edit : je n’avais pas activé le booléen saison de chauffe… Il ne faut pas faire ça le soir, je pensais me coucher tôt :sweat_smile:

Ensuite, concernant la gestion « visuelle », tu pourrais me partager le code de ton pop up « PAC » ? J’en demande beaucoup je sais… En tout je suis vraiment hyper content de tout ce que j’ai pu mettre en place ces derniers temps grâce à ton travail !

concernant le popup-pac:

le code du pop-up

Il y a tout d’abord la syntaxe du pop-up sur une tap action puis le code de la carte (a partir de la ligne type : vertical-stack):
Note qu’il faut browser_mod pour générer ces pop-ups.

Tu peux aussi copier juste la carte en ne prenant pas les 7 premières lignes…

    tap_action:
      action: fire-dom-event
      browser_mod:
        service: browser_mod.popup
        data:
          title: PAC etage
          content:
            type: vertical-stack
            cards:
              - type: custom:mushroom-chips-card
                chips:
                  - type: template
                    entity: input_boolean.chauffage_mode_auto
                    icon: >-
                      {% if is_state('input_boolean.chauffage_mode_auto', 'on')
                      %} 
                       mdi:cog-refresh
                      {% elif is_state('input_boolean.chauffage_mode_auto',
                      'off') %} 
                        mdi:cog-off
                      {% else %}
                        mdi:comment-question
                      {% endif %}
                    icon_color: >-
                      {% if is_state('input_boolean.chauffage_mode_auto', 'on')
                      %} 

                      green

                      {% elif is_state('input_boolean.chauffage_mode_auto',
                      'off') %} 

                      red

                      {% else %}

                      orange

                      {% endif %}
                    content: >-
                      {% if is_state('input_boolean.chauffage_mode_auto', 'on')
                      %} 

                      Mode général: Auto

                      {% elif is_state('input_boolean.chauffage_mode_auto',
                      'off') %} 

                      Mode général: Manuel

                      {% else %}

                      Inconnu

                      {% endif %}
                    tap_action:
                      action: toggle
                    hold_action:
                      action: more-info
                    double_tap_action:
                      action: more-info
                  - type: template
                    entity: input_boolean.pac_override_temporaire
                    icon: >-
                      {% if is_state('input_boolean.pac_override_temporaire',
                      'on') %} 
                       mdi:cog-pause
                      {% elif is_state('input_boolean.pac_override_temporaire',
                      'off') %} 
                        mdi:cog-refresh
                      {% else %}
                        mdi:comment-question
                      {% endif %}
                    icon_color: >-
                      {% if is_state('input_boolean.pac_override_temporaire',
                      'on') %} 
                       orange
                      {% elif is_state('input_boolean.pac_override_temporaire',
                      'off') %} 
                        green
                      {% else %}
                        orange
                      {% endif %}
                    content: >-
                      {% if is_state('input_boolean.pac_override_temporaire',
                      'on') %} 
                       Mode temporaire: Manuel
                      {% elif is_state('input_boolean.pac_override_temporaire',
                      'off') %} 
                       Mode temporaire: Auto
                      {% else %}
                        Inconnu
                      {% endif %}
                    tap_action:
                      action: toggle
                    hold_action:
                      action: more-info
                    double_tap_action:
                      action: more-info
                  - type: conditional
                    conditions:
                      - entity: input_boolean.saison_chauffage
                        state: 'on'
                    chip:
                      type: template
                      double_tap_action:
                        action: more-info
                      entity: schedule.planning_chauffage
                      icon: >-
                        {% if is_state('schedule.planning_chauffage', 'on') %} 
                         mdi:fire
                        {% elif is_state('schedule.planning_chauffage', 'off')
                        %} 
                          mdi:fire-off
                        {% else %}
                          mdi:comment-question
                        {% endif %}
                      icon_color: >-
                        {% if is_state('schedule.planning_chauffage', 'on') %} 
                         orange
                        {% elif is_state('schedule.planning_chauffage', 'off')
                        %} 
                          grey
                        {% else %}
                          orange
                        {% endif %}
                      content: >-
                        {% if is_state('schedule.planning_chauffage', 'on') %} 

                        Auto: chaud
                        {{states('input_number.temperature_confort_hiver')}}°C

                        {% elif is_state('schedule.planning_chauffage', 'off')
                        %} 

                        Auto: off

                        {% else %}
                          Inconnu
                        {% endif %}
                      tap_action:
                        action: more-info
                      hold_action:
                        action: more-info
                  - type: conditional
                    conditions:
                      - entity: input_boolean.saison_climatistion
                        state: 'on'
                    chip:
                      type: template
                      entity: schedule.planning_climatisation
                      icon: >-
                        {% if is_state('schedule.planning_climatisation', 'on')
                        %} 
                         mdi:snowflake
                        {% elif is_state('schedule.planning_climatisation',
                        'off') %} 
                          mdi:snowflake-off
                        {% else %}
                          mdi:comment-question
                        {% endif %}
                      icon_color: >-
                        {% if is_state('schedule.planning_climatisation', 'on')
                        %} 
                         light-blue
                        {% elif is_state('schedule.planning_climatisation',
                        'off') %} 
                          grey
                        {% else %}
                          orange
                        {% endif %}
                      content: >-
                        {% if is_state('schedule.planning_climatisation', 'on')
                        %} 

                        Auto: froid
                        {{states('input_number.temperature_cible_climatisation')}}°C

                        {% elif is_state('schedule.planning_climatisation',
                        'off') %} 

                        Auto: off

                        {% else %}

                        Inconnu

                        {% endif %}
                      tap_action:
                        action: more-info
                      hold_action:
                        action: more-info
                      double_tap_action:
                        action: more-info
                  - type: conditional
                    conditions:
                      - condition: state
                        entity: input_boolean.tarif_rouge
                        state: 'on'
                    chip:
                      type: entity
                      entity: input_boolean.tarif_rouge
                      tap_action:
                        action: none
                      hold_action:
                        action: none
                      double_tap_action:
                        action: none
                      content_info: name
                      icon_color: red
                  - type: action
                    icon_color: orange
                    tap_action:
                      action: none
                    hold_action:
                      action: call-service
                      service: script.allumer_chauffage
                      target: {}
                    double_tap_action:
                      action: none
                    icon: mdi:fire
                  - type: action
                    tap_action:
                      action: none
                    hold_action:
                      action: call-service
                      service: script.allumer_climatisation
                      target: {}
                    double_tap_action:
                      action: none
                    icon: mdi:snowflake
                    icon_color: light-blue
                  - type: action
                    tap_action:
                      action: none
                    hold_action:
                      action: call-service
                      service: script.eteindre_pac
                      target: {}
                    double_tap_action:
                      action: none
                    icon: mdi:stop
                    icon_color: red
                alignment: start
              - type: thermostat
                entity: climate.pac

Le code de la carte complete

Le pop up est généré sur l’appui sur le premier bouton (en forme de flame car saison de chauffe). Ci joint le code de la carte complete…

type: custom:vertical-stack-in-card
cards:
  - type: custom:mushroom-template-card
    entity: group.lumieres_escalier
    icon: mdi:stairs
    icon_color: |
      {% if is_state(entity, 'on') %}
        #03A9F4
      {% else %}  
        grey
      {% endif %}
    primary: Escalier
    secondary: '{{ states(''sensor.pac_room_temperature'') }}°C'
    layout: horizontal
    tap_action:
      action: navigate
      navigation_path: /lovelace-smartphone/escalier
    double_tap_action:
      action: navigate
      navigation_path: /lovelace-smartphone/escalier
    hold_action:
      action: toggle
    badge_icon: |
      {% if is_state('binary_sensor.0x00124b00246e9df7_occupancy', 'on') %}
        mdi:motion-sensor
      {% else %}  
        mdi:motion-sensor-off
      {% endif %}
    badge_color: |
      {% if is_state('binary_sensor.0x00124b00246e9df7_occupancy', 'on') %}
        orange
      {% else %}  
        grey
      {% endif %}
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        entity: climate.pac
        icon: |-
          {% if is_state(entity, 'heat') %} 
          mdi:fire
          {% elif is_state(entity, 'cool') %} 
          mdi:snowflake
          {% elif is_state('input_boolean.saison_chauffage', 'on') %} 
          mdi:fire
          {% elif is_state('input_boolean.saison_climatistion', 'on') %} 
          mdi:snowflake
          {% else %}
          mdi:fan
          {% endif %}
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: PAC etage
              content:
                type: vertical-stack
                cards:
                  - type: custom:mushroom-chips-card
                    chips:
                      - type: template
                        entity: input_boolean.chauffage_mode_auto
                        icon: >-
                          {% if is_state('input_boolean.chauffage_mode_auto',
                          'on') %} 
                           mdi:cog-refresh
                          {% elif is_state('input_boolean.chauffage_mode_auto',
                          'off') %} 
                            mdi:cog-off
                          {% else %}
                            mdi:comment-question
                          {% endif %}
                        icon_color: >-
                          {% if is_state('input_boolean.chauffage_mode_auto',
                          'on') %} 

                          green

                          {% elif is_state('input_boolean.chauffage_mode_auto',
                          'off') %} 

                          red

                          {% else %}

                          orange

                          {% endif %}
                        content: >-
                          {% if is_state('input_boolean.chauffage_mode_auto',
                          'on') %} 

                          Mode général: Auto

                          {% elif is_state('input_boolean.chauffage_mode_auto',
                          'off') %} 

                          Mode général: Manuel

                          {% else %}

                          Inconnu

                          {% endif %}
                        tap_action:
                          action: toggle
                        hold_action:
                          action: more-info
                        double_tap_action:
                          action: more-info
                      - type: template
                        entity: input_boolean.pac_override_temporaire
                        icon: >-
                          {% if
                          is_state('input_boolean.pac_override_temporaire',
                          'on') %} 
                           mdi:cog-pause
                          {% elif
                          is_state('input_boolean.pac_override_temporaire',
                          'off') %} 
                            mdi:cog-refresh
                          {% else %}
                            mdi:comment-question
                          {% endif %}
                        icon_color: >-
                          {% if
                          is_state('input_boolean.pac_override_temporaire',
                          'on') %} 
                           orange
                          {% elif
                          is_state('input_boolean.pac_override_temporaire',
                          'off') %} 
                            green
                          {% else %}
                            orange
                          {% endif %}
                        content: >-
                          {% if
                          is_state('input_boolean.pac_override_temporaire',
                          'on') %} 
                           Mode temporaire: Manuel
                          {% elif
                          is_state('input_boolean.pac_override_temporaire',
                          'off') %} 
                           Mode temporaire: Auto
                          {% else %}
                            Inconnu
                          {% endif %}
                        tap_action:
                          action: toggle
                        hold_action:
                          action: more-info
                        double_tap_action:
                          action: more-info
                      - type: conditional
                        conditions:
                          - entity: input_boolean.saison_chauffage
                            state: 'on'
                        chip:
                          type: template
                          double_tap_action:
                            action: more-info
                          entity: schedule.planning_chauffage
                          icon: >-
                            {% if is_state('schedule.planning_chauffage', 'on')
                            %} 
                             mdi:fire
                            {% elif is_state('schedule.planning_chauffage',
                            'off') %} 
                              mdi:fire-off
                            {% else %}
                              mdi:comment-question
                            {% endif %}
                          icon_color: >-
                            {% if is_state('schedule.planning_chauffage', 'on')
                            %} 
                             orange
                            {% elif is_state('schedule.planning_chauffage',
                            'off') %} 
                              grey
                            {% else %}
                              orange
                            {% endif %}
                          content: >-
                            {% if is_state('schedule.planning_chauffage', 'on')
                            %} 

                            Auto: chaud
                            {{states('input_number.temperature_confort_hiver')}}°C

                            {% elif is_state('schedule.planning_chauffage',
                            'off') %} 

                            Auto: off

                            {% else %}
                              Inconnu
                            {% endif %}
                          tap_action:
                            action: more-info
                          hold_action:
                            action: more-info
                      - type: conditional
                        conditions:
                          - entity: input_boolean.saison_climatistion
                            state: 'on'
                        chip:
                          type: template
                          entity: schedule.planning_climatisation
                          icon: >-
                            {% if is_state('schedule.planning_climatisation',
                            'on') %} 
                             mdi:snowflake
                            {% elif is_state('schedule.planning_climatisation',
                            'off') %} 
                              mdi:snowflake-off
                            {% else %}
                              mdi:comment-question
                            {% endif %}
                          icon_color: >-
                            {% if is_state('schedule.planning_climatisation',
                            'on') %} 
                             light-blue
                            {% elif is_state('schedule.planning_climatisation',
                            'off') %} 
                              grey
                            {% else %}
                              orange
                            {% endif %}
                          content: >-
                            {% if is_state('schedule.planning_climatisation',
                            'on') %} 

                            Auto: froid
                            {{states('input_number.temperature_cible_climatisation')}}°C

                            {% elif is_state('schedule.planning_climatisation',
                            'off') %} 

                            Auto: off

                            {% else %}

                            Inconnu

                            {% endif %}
                          tap_action:
                            action: more-info
                          hold_action:
                            action: more-info
                          double_tap_action:
                            action: more-info
                      - type: conditional
                        conditions:
                          - condition: state
                            entity: input_boolean.tarif_rouge
                            state: 'on'
                        chip:
                          type: entity
                          entity: input_boolean.tarif_rouge
                          tap_action:
                            action: none
                          hold_action:
                            action: none
                          double_tap_action:
                            action: none
                          content_info: name
                          icon_color: red
                      - type: action
                        icon_color: orange
                        tap_action:
                          action: none
                        hold_action:
                          action: call-service
                          service: script.allumer_chauffage
                          target: {}
                        double_tap_action:
                          action: none
                        icon: mdi:fire
                      - type: action
                        tap_action:
                          action: none
                        hold_action:
                          action: call-service
                          service: script.allumer_climatisation
                          target: {}
                        double_tap_action:
                          action: none
                        icon: mdi:snowflake
                        icon_color: light-blue
                      - type: action
                        tap_action:
                          action: none
                        hold_action:
                          action: call-service
                          service: script.eteindre_pac
                          target: {}
                        double_tap_action:
                          action: none
                        icon: mdi:stop
                        icon_color: red
                    alignment: start
                  - type: thermostat
                    entity: climate.pac
        icon_color: |-
          {% if is_state(entity, 'heat') %} 
          orange
          {% elif is_state(entity, 'cool') %} 
          blue
          {% elif is_state(entity, 'off') %} 
          grey
          {% else %}
            grey
          {% endif %}
        hold_action:
          action: navigate
          navigation_path: /lovelace-smartphone/gestion-pac-gainable
        double_tap_action:
          action: navigate
          navigation_path: /lovelace-smartphone/gestion-pac-gainable
      - type: template
        entity: vacuum.roomba
        icon: |-
          {% if is_state(entity, 'cleaning') %} 
           mdi:robot-vacuum
          {% elif is_state(entity, 'docked') %} 
           mdi:robot-vacuum
          {% elif is_state(entity, 'paused') %} 
           mdi:robot-vacuum
          {% else %}
           mdi:robot-vacuum-alert
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'cleaning') %} 
           green
          {% elif is_state(entity, 'paused') %} 
           blue
          {% elif is_state(entity, 'docked') %} 
           grey
          {% else %}
           orange
          {% endif %}
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Roomba
              content:
                type: vertical-stack
                cards:
                  - type: custom:mushroom-vacuum-card
                    entity: vacuum.roomba
                    commands:
                      - start_pause
                      - stop
                      - locate
                      - return_home
                  - type: custom:mushroom-chips-card
                    chips:
                      - type: entity
                        entity: sensor.roomba_battery_level
                      - type: template
                        tap_action:
                          action: call-service
                          service: vacuum.send_command
                          data:
                            entity_id: vacuum.roomba
                            command: start
                            params:
                              pmap_id: an_v7LHgRNK61qoEMFOKfQ
                              regions:
                                - region_id: '17'
                                  type: rid
                              user_pmapv_id: 221229T095441
                        icon: mdi:countertop
                        content: Cuisine
                      - type: template
                        tap_action:
                          action: call-service
                          service: vacuum.send_command
                          data:
                            entity_id: vacuum.roomba
                            command: start
                            params:
                              pmap_id: an_v7LHgRNK61qoEMFOKfQ
                              regions:
                                - region_id: '16'
                                  type: rid
                              user_pmapv_id: 221229T095441
                        icon: mdi:television
                        content: TV
                      - type: template
                        tap_action:
                          action: call-service
                          service: vacuum.send_command
                          data:
                            entity_id: vacuum.roomba
                            command: start
                            params:
                              pmap_id: an_v7LHgRNK61qoEMFOKfQ
                              regions:
                                - region_id: '0'
                                  type: rid
                              user_pmapv_id: 221229T095441
                        icon: mdi:silverware
                        content: Table
                      - type: template
                        tap_action:
                          action: call-service
                          service: vacuum.send_command
                          data:
                            entity_id: vacuum.roomba
                            command: start
                            params:
                              pmap_id: an_v7LHgRNK61qoEMFOKfQ
                              regions:
                                - region_id: '18'
                                  type: rid
                              user_pmapv_id: 221229T095441
                        icon: mdi:beer
                        content: Apéro
                      - type: template
                        tap_action:
                          action: call-service
                          service: vacuum.send_command
                          data:
                            entity_id: vacuum.roomba
                            command: start
                            params:
                              pmap_id: an_v7LHgRNK61qoEMFOKfQ
                              regions:
                                - region_id: '15'
                                  type: rid
                              user_pmapv_id: 221229T095441
                        icon: mdi:desk
                        content: Bureau
                      - type: template
                        tap_action:
                          action: call-service
                          service: vacuum.send_command
                          data:
                            entity_id: vacuum.roomba
                            command: start
                            params:
                              pmap_id: an_v7LHgRNK61qoEMFOKfQ
                              regions:
                                - region_id: '11'
                                  type: rid
                              user_pmapv_id: 221229T095441
                        icon: mdi:bed
                        content: Chambre
                      - type: template
                        tap_action:
                          action: call-service
                          service: vacuum.send_command
                          data:
                            entity_id: vacuum.roomba
                            command: start
                            params:
                              pmap_id: an_v7LHgRNK61qoEMFOKfQ
                              regions:
                                - region_id: '11'
                                  type: rid
                              user_pmapv_id: 221229T095441
                        icon: mdi:bathtub
                        content: Bain
                      - type: template
                        tap_action:
                          action: call-service
                          service: vacuum.send_command
                          data:
                            entity_id: vacuum.roomba
                            command: start
                            params:
                              pmap_id: an_v7LHgRNK61qoEMFOKfQ
                              regions:
                                - region_id: '14'
                                  type: rid
                              user_pmapv_id: 221229T095441
                        icon: mdi:toilet
                        content: WC
                    alignment: justify
      - type: template
        entity: cover.volet_de_la_mezzanine
        hold_action:
          action: toggle
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Volets Escalier
              content:
                type: vertical-stack
                cards:
                  - type: custom:mushroom-cover-card
                    entity: cover.volet_de_la_mezzanine
                    name: Volet Mezzanine
                    show_position_control: true
                    show_tilt_position_control: false
                    show_buttons_control: true
        icon: |-
          {% if is_state(entity, 'open') %} 
           mdi:window-shutter-open
          {% elif is_state(entity, 'closed') %} 
           mdi:window-shutter
          {% else %}
           mdi:window-shutter-alert
          {% endif %}
        icon_color: |-
          {% if is_state(entity, 'open') %} 
           grey
          {% elif is_state(entity, 'closed') %} 
           grey
          {% else %}
           orange
          {% endif %}
      - type: template
        entity: group.lumieres_escalier
        tap_action:
          action: fire-dom-event
          browser_mod:
            service: browser_mod.popup
            data:
              title: Lumières Escalier
              content:
                type: vertical-stack
                cards:
                  - type: custom:mushroom-light-card
                    entity: light.0x385b44fffe20eb24
                    name: Sous escalier
                    use_light_color: true
                    show_brightness_control: true
                    show_color_temp_control: true
                    show_color_control: false
                    collapsible_controls: false
                  - type: custom:mushroom-light-card
                    entity: light.0x84b4dbfffec93621
                    name: Mezzanine
                    use_light_color: true
                    show_brightness_control: true
                    show_color_temp_control: true
                    show_color_control: false
                    collapsible_controls: false
        icon: mdi:lightbulb
        hold_action:
          action: toggle
        icon_color: |-
          {% if is_state(entity, 'on') %} 
           orange
          {% elif is_state(entity, 'off') %} 
           grey
          {% else %}
           grey
          {% endif %}
    alignment: end
    card_mod:
      style:
        style: |
          ha-card {
            padding-top: 0px;
            margin-top: -8px;
            padding-bottom: 8px;
            padding-left: 8px;
            padding-right: 8px;
          }

Note j’ai aussi une sous vue dédiée avec tous les réglages:

le code
type: vertical-stack
cards:
  - type: custom:mushroom-chips-card
    chips:
      - type: template
        entity: input_boolean.chauffage_mode_auto
        icon: |-
          {% if is_state('input_boolean.chauffage_mode_auto', 'on') %} 
           mdi:cog-refresh
          {% elif is_state('input_boolean.chauffage_mode_auto', 'off') %} 
            mdi:cog-off
          {% else %}
            mdi:comment-question
          {% endif %}
        icon_color: |-
          {% if is_state('input_boolean.chauffage_mode_auto', 'on') %} 
          green
          {% elif is_state('input_boolean.chauffage_mode_auto', 'off') %} 
          red
          {% else %}
          orange
          {% endif %}
        content: |-
          {% if is_state('input_boolean.chauffage_mode_auto', 'on') %} 
          Mode général: Auto
          {% elif is_state('input_boolean.chauffage_mode_auto', 'off') %} 
          Mode général: Manuel
          {% else %}
          Inconnu
          {% endif %}
        tap_action:
          action: toggle
        hold_action:
          action: more-info
        double_tap_action:
          action: more-info
      - type: template
        entity: input_boolean.pac_override_temporaire
        icon: |-
          {% if is_state('input_boolean.pac_override_temporaire', 'on') %} 
           mdi:cog-pause
          {% elif is_state('input_boolean.pac_override_temporaire', 'off') %} 
            mdi:cog-refresh
          {% else %}
            mdi:comment-question
          {% endif %}
        icon_color: |-
          {% if is_state('input_boolean.pac_override_temporaire', 'on') %} 
           orange
          {% elif is_state('input_boolean.pac_override_temporaire', 'off') %} 
            green
          {% else %}
            orange
          {% endif %}
        content: |-
          {% if is_state('input_boolean.pac_override_temporaire', 'on') %} 
           Mode temporaire: Manuel
          {% elif is_state('input_boolean.pac_override_temporaire', 'off') %} 
           Mode temporaire: Auto
          {% else %}
            Inconnu
          {% endif %}
        tap_action:
          action: toggle
        hold_action:
          action: more-info
        double_tap_action:
          action: more-info
      - type: conditional
        conditions:
          - entity: input_boolean.saison_chauffage
            state: 'on'
        chip:
          type: template
          double_tap_action:
            action: more-info
          entity: schedule.planning_chauffage
          icon: |-
            {% if is_state('schedule.planning_chauffage', 'on') %} 
             mdi:fire
            {% elif is_state('schedule.planning_chauffage', 'off') %} 
              mdi:fire-off
            {% else %}
              mdi:comment-question
            {% endif %}
          icon_color: |-
            {% if is_state('schedule.planning_chauffage', 'on') %} 
             orange
            {% elif is_state('schedule.planning_chauffage', 'off') %} 
              grey
            {% else %}
              orange
            {% endif %}
          content: |-
            {% if is_state('schedule.planning_chauffage', 'on') %} 
            Auto: chaud {{states('input_number.temperature_confort_hiver')}}°C
            {% elif is_state('schedule.planning_chauffage', 'off') %} 
            Auto: off
            {% else %}
              Inconnu
            {% endif %}
          tap_action:
            action: more-info
          hold_action:
            action: more-info
      - type: conditional
        conditions:
          - entity: input_boolean.saison_climatistion
            state: 'on'
        chip:
          type: template
          entity: schedule.planning_climatisation
          icon: |-
            {% if is_state('schedule.planning_climatisation', 'on') %} 
             mdi:snowflake
            {% elif is_state('schedule.planning_climatisation', 'off') %} 
              mdi:snowflake-off
            {% else %}
              mdi:comment-question
            {% endif %}
          icon_color: |-
            {% if is_state('schedule.planning_climatisation', 'on') %} 
             light-blue
            {% elif is_state('schedule.planning_climatisation', 'off') %} 
              grey
            {% else %}
              orange
            {% endif %}
          content: >-
            {% if is_state('schedule.planning_climatisation', 'on') %} 

            Auto: froid
            {{states('input_number.temperature_cible_climatisation')}}°C

            {% elif is_state('schedule.planning_climatisation', 'off') %} 

            Auto: off

            {% else %}

            Inconnu

            {% endif %}
          tap_action:
            action: more-info
          hold_action:
            action: more-info
          double_tap_action:
            action: more-info
      - type: conditional
        conditions:
          - condition: state
            entity: input_boolean.tarif_rouge
            state: 'on'
        chip:
          type: entity
          entity: input_boolean.tarif_rouge
          tap_action:
            action: none
          hold_action:
            action: none
          double_tap_action:
            action: none
          content_info: name
          icon_color: red
      - type: action
        icon_color: orange
        tap_action:
          action: none
        hold_action:
          action: call-service
          service: script.allumer_chauffage
          target: {}
        double_tap_action:
          action: none
        icon: mdi:fire
      - type: action
        tap_action:
          action: none
        hold_action:
          action: call-service
          service: script.allumer_climatisation
          target: {}
        double_tap_action:
          action: none
        icon: mdi:snowflake
        icon_color: light-blue
      - type: action
        tap_action:
          action: none
        hold_action:
          action: call-service
          service: script.eteindre_pac
          target: {}
        double_tap_action:
          action: none
        icon: mdi:stop
        icon_color: red
    alignment: start
  - type: thermostat
    entity: climate.pac
  - type: custom:mod-card
    card:
      type: custom:text-divider-row
      text: Gestion PAC gainable
      align: left
  - square: false
    type: grid
    cards:
      - type: custom:mushroom-entity-card
        entity: input_boolean.chauffage_mode_auto
        layout: vertical
        tap_action:
          action: more-info
        hold_action:
          action: toggle
        double_tap_action:
          action: more-info
        name: Mode AUTO
        icon_color: green
      - type: custom:mushroom-entity-card
        entity: input_boolean.pac_override_temporaire
        layout: vertical
        tap_action:
          action: more-info
        hold_action:
          action: toggle
        double_tap_action:
          action: more-info
        name: Manuel Temporaire
        icon_color: orange
      - type: custom:mushroom-entity-card
        entity: input_boolean.tarif_rouge
        layout: vertical
        tap_action:
          action: more-info
        hold_action:
          action: toggle
        double_tap_action:
          action: more-info
        icon_color: red
    columns: 3
  - type: custom:mod-card
    card:
      type: custom:text-divider-row
      text: Chauffage
      align: left
  - square: false
    type: grid
    cards:
      - type: custom:mushroom-entity-card
        entity: input_boolean.saison_chauffage
        layout: vertical
        tap_action:
          action: more-info
        hold_action:
          action: toggle
        double_tap_action:
          action: more-info
        name: Saison Chauffe
        icon_color: amber
      - type: custom:mushroom-entity-card
        entity: schedule.planning_chauffage
        layout: vertical
        name: Planning chauffe
        icon_color: amber
      - type: custom:mushroom-number-card
        entity: input_number.temperature_confort_hiver
        layout: vertical
        display_mode: buttons
        name: Temperature chauffe
        secondary_info: none
        icon_color: amber
    columns: 3
  - type: custom:mod-card
    card:
      type: custom:text-divider-row
      text: Climatisation
      align: left
  - square: false
    type: grid
    cards:
      - type: custom:mushroom-entity-card
        entity: input_boolean.saison_climatistion
        layout: vertical
        tap_action:
          action: more-info
        hold_action:
          action: toggle
        double_tap_action:
          action: more-info
        name: Saison Clim
        icon_color: cyan
      - type: custom:mushroom-entity-card
        entity: schedule.planning_climatisation
        layout: vertical
        name: Planning Clim
        icon_color: cyan
      - type: custom:mushroom-number-card
        entity: input_number.temperature_cible_climatisation
        layout: vertical
        display_mode: buttons
        name: Temperature Clim
        secondary_info: none
        icon_color: cyan
    columns: 3

Merci beaucoup !

J’ai déjà implémenté des pop up avec browser mod, sur un peu tout et n’importe quoi. En fait ce qu’il me manquait c’était surtout la partie gestion de la température mais je vois que tu mets directement la carte thermostat et que tu affiches le « input number temperature cible ». Mais comment ça se passe si tu bouges le curseur du thermostat ? Il n’y a pas une incohérence entre la demande et la température affichée ?

Tu as deux temperatures sur la carte climate: la cible et la température réelle mesurée par la PAC. Si je bouge le curseur du thermostat, ça envoie en direct la nouvelle température cible à la PAC, qui se met à réguler la nouvelle cible. Et la température réelle va se mettre à bouger ensuite du fait de l’action de la PAC (ou pas si la T° est supérieure à la cible en chauffage).

Donc ça fonctionne « comme prévu ».

Sauf que…

J’ai une automatisation qui se lance toutes les 10min pour venir regler ma PAC sur le mode choisi et la température choisie dans l’input_number associée…

Donc si je viens changer la température directement via le climate:

  • si je suis en mode manuel, c’est pris en compte. Point barre.
  • si je suis en mode temporaire, c’est pris en compte, et au prochain basculement du scheduler on revient à la programmation
  • si je suis en mode auto, c’est pris en compte et au prochain lancement de l’automatisation (toutes les 10min) on revient à la programmation => donc c’est pris en compte moins de 10min…

On pourrait améliorer ça en faisant une automatisation qui détecte que la température cible de la PAC et l’input_number sont différent et bascule en mode temporaire. Perso je ne touches quasi jamais à la temperature cible une fois que j’ai trouvé le réglage qui va bien du fait de mon installation un peu particulière, donc je ne l’ai pas fait… Mais chez toi ça se justifie peut-être…

En fait j’ai lu le code trop vite. La température affichée dans le climate est bien celle du climate et pas celle du input_number . J’ai cru voir ça ce matin, avant le café surement… d’ou mon interrogation sur l’incohérence d’affichage, mais non, j’étais hors sujet.
Dans les faits tu as raison, en chaud une fois qu’on a trouvé la consigne on bouge plus. Je n’ai pas eu l’occasion de tester en froid. je vais quand même essayer de faire l’automatisation pour basculer en monde temporaire en cas de changement de consigne. ça mange pas de pain pendant que j’y suis.

1 « J'aime »

Ton post est juste une encyclopédie!! Tu ne fait pas des formation a domicile par hasard?? :rofl:

En tout cas il y as moyens que je t’écrive bientôt pour des infos si ça ne te dérange pas.

1 « J'aime »

J’ai trouvé tellement d’info et de bienveillance sur ce forum… c’est ma manière de rendre en retour…

Si quelque chose n’est pas clair, n’hésites pas à demander, ça me permettra de clarifier le truc… (je l’ai fait récemment pour la room-card…)

J’ai tenté des tests avec les sections pour essayer d’avoir un seul dashboard:

C’est déjà très prometteur !!

Du coup j’ai remis à jour certaines cartes (lumières, volets, home assistant) supprimé les cartes Elec et Sécurité (leurs fonctions sont intégrées à la carte Home Assistant via des pop ups et raccourcis…) pour essayer d’uniformiser les cartes pour que les changement de taille se passent bien.

J’en ai profité pour mettre à jour quelques détails dans les descriptions du dashboard des vues et des automatisations dans les 3 premiers posts…

2 « J'aime »

Bravo pour ce travail qui m’a poussé à délaisser le dashboard « auto » mushroom strategy pour un perso basé sur la version simplifiée de la room card.
Je cherche à agrémenter la chip dédié aux volets pour afficher une icône différenciée quand le volet n’est ni ouvert, ni fermé (arrêté en position intermédiaire, le volet est considéré ouvert en l’état).
Mes volets remontent un attribut "current_position: " entre 0 et 100.

 - type: custom:mushroom-chips-card
            chips:
              - type: template
                entity: cover.escalier
                hold_action:
                  action: more-info
                tap_action:
                  action: toggle
                icon: |-
                  {% if is_state(entity, 'open') %} 
                   mdi:window-shutter-open
                  {% elif is_state(entity, 'closed') %} 
                   mdi:window-shutter
                  {% else %}
                   mdi:window-shutter-alert
                  {% endif %}
                icon_color: |-
                  {% if is_state(entity, 'open') %} 
                   light-blue
                  {% elif is_state(entity, 'closed') %} 
                   grey
                  {% else %}
                   orange
                  {% endif %}

Je me dit qu’il existe un moyen de le faire en s’inspirant d’une carte trouvée sur un autre sujet pour récupérer l’info sur un seul volet au lieu d’un groupe.
la carte en question.

type: custom:mushroom-template-card
primary: Volets de la maison
multiline_secondary: true
secondary: >-
  {% set all = expand('cover.volets_tous'|lower) -%} {% set positions = all |
  map(attribute='attributes.current_position')|list-%} {% set moving = all |
  selectattr('state', 'in', ['open','closed'])|list|count -%} {% set open =  
  positions | reject("!=",100) |list |count -%} {% set closed = positions |  
  reject("!=",0) |list |count -%} {% set other = positions|list|count - open -  
  closed -%} Fermés = {{ closed }} / Partiels = {{ other }} / Ouverts = {{ open
  }} {% if moving >0 -%} {% endif %}
icon: mdi:window-shutter
icon_color: blue
badge_icon: ''
layout: horizontal
fill_container: true
tap_action:
  action: navigate
  navigation_path: /dashboard-test/volets
hold_action:
  action: none
double_tap_action:
  action: none

Mais comment travailler sur l’attribut plutôt que sur l’état et sur un seul volet, je sèche. Un peu d’aide ?

Il faut remplacer le test sur l’etat par un test sur l’attribut.

Essaie avec ce type de syntaxe:

Et fais des tests dans l’outil de développement.

J’ai l’impression d’avoir un début de piste ici ou avec
is_state_attr('device_tracker.paulus', 'battery', 40)
mais en cherchant à voir si l’attribut est compris entre 0 et 100

Pour avoir l’état d’un attribut

{{ state_attr('sensor.msunpv_infos', 'rssi_db') }}

Et ensuite

{% if 0 > state_attr('sensor.msunpv_infos', 'rssi_db') > -40 %}
 ok
{% endif %}

Tu peux également rajouter |int ou |float pour être sûr que ça remonte bien une valeur numérique si besoin

1 « J'aime »

Je pense que c’est bon grace à votre aide. J’ai l’icône shutter-alert. en orange quand le volet bouge et en bleu quand il est arrêté en position intermédiaire, les positions ouvertes et formées fonctionnent comme avant

 - type: template
            entity: cover.bureau
            hold_action:
              action: more-info
            tap_action:
              action: toggle
            icon: |-
              {% if 100 > state_attr(entity, 'current_position') > 0 %}
               mdi:window-shutter-alert
              {% elif is_state(entity, 'open') %} 
               mdi:window-shutter-open
              {% elif is_state(entity, 'closed') %} 
               mdi:window-shutter
              {% else %}
               mdi:window-shutter-alert
              {% endif %}
            icon_color: |-
              {% if is_state(entity, 'open') %} 
               light-blue
              {% elif is_state(entity, 'closed') %} 
               grey
              {% else %}
               orange
              {% endif %}
            double_tap_action:
              action: none```

Ca faisait un moment que ça me titillait…

J’ai pris un peu de temps pour faire une petite synthèse sur notre integration des echo et echo dot avec Home assistant dans le message n°4 avec toutes les subtilités que nous avons mises en place:

J’ai essayé d’être exhaustif. N’hésitez pas à me dire s’il manque un truc et/ou à y rediriger ceux qui se poseraient des questions sur comment faire…

1 « J'aime »