La méthode, je les trouver sur le forum https://community.home-assistant.io/. Si ca peu aider, toute l’explication est ici.
Bonjour,
Oui WarC0zes, ton tuto fonctionne très bien.
Alors après les cours de Herbs, j’ai enfin ce que je voulais (Merci encore pour ton aide)
Pour ceux que ça intéresse, bon sûrement des erreurs et peut-être pas optimisé mais bon…
Donc la carte Mushroom Light pour gérer la vitesse du ventilo du Raspberry (Icône agrandi, pas de shape, vitesse de rotation qui change avec la vitesse ainsi que la couleur…
type: custom:mushroom-light-card
entity: light.rpi_cooling_fan
icon: mdi:fan
fill_container: true
show_brightness_control: true
name: Ventilateur
secondary_info: state
icon_type: icon
use_light_color: true
show_color_temp_control: false
layout: horizontal
primary_info: name
collapsible_controls: true
show_color_control: true
card_mod:
style:
mushroom-shape-icon$: |
ha-icon {
{% if is_state('light.rpi_cooling_fan', 'on') %}
{% if state_attr('light.rpi_cooling_fan', 'brightness') | int >= 200 %}
--icon-color: rgba(158, 9, 24, 1);
--icon-animation: spin 0.5s linear infinite;
{% elif state_attr('light.rpi_cooling_fan', 'brightness') | int >= 128 %}
--icon-color: rgba(0, 158, 11, 1);
--icon-animation: spin 1s linear infinite;
{% elif state_attr('light.rpi_cooling_fan', 'brightness') | int > 0 %}
--icon-color: rgba(52, 146, 235, 1);
--icon-animation: spin 2s linear infinite;
{% endif %}
{% endif %}
}
.shape {
--shape-color: none;
--shape-color-disabled: transparent !important;
--icon-symbol-size: 1.5em;
}
.: |
:host {
ha-card {
height: 65px !important;
font-family: Days One;
--card-primary-font-size: 0.9rem;
}
mushroom-card .actions mushroom-light-brightness-control$: |
mushroom-slider {
{% if state_attr('light.rpi_cooling_fan', 'brightness') | int >= 200 %}
--main-color: rgba(158, 9, 24, 1) !important;
--bg-color: rgba(158, 9, 24, 0.59) !important;
{% elif state_attr('light.rpi_cooling_fan', 'brightness') | int >= 128 %}
--main-color: rgba(0, 158, 11, 1) !important;
--bg-color: rgba(0, 158, 11, 0.59) !important;
{% elif state_attr('light.rpi_cooling_fan', 'brightness') | int > 0 %}
--main-color: rgba(52, 146, 235, 1) !important;
--bg-color: rgba(52, 146, 235, 0.59) !important;
{% else %}
--main-color: white !important;
--bg-color: rgba(255,255,255,0.2) !important;
{% endif %}
}
}
J’ai même réussi à faire un gif, pour moi, un exploit
Top, la vitesse de rotation de l’icone qui change suivant le pourcentage.
J’ai fais plus simple
Fonctionnellement j’ai pas trop de doute que ça fasse le job. Par contre c’est potentiellement un souci d’avoir une light au lieu d’un fan… Quand tu va commencer à compter les entités par type etc, il va falloir gérer ce cas particulier à chaque fois. Et si un jour HA/ la carte light ajoutent une option quelconque en lien avec attribut brightness, ça pourrait produire des erreurs
Avant d’oublier le truc et de devoir le traiter dans l’urgence, je serai à ta place, je testerai ça (+ le changement dans le script de l’étape 6)
J’ai une VM donc je ne peux pas tester la partie gpio, mais ça semble assez simple à faire
Pas bête l’idée, mais a savoir si fan: fonctionne avec la plateforme rpi_gpio_pwm.
# Example configuration.yaml entry
light:
- platform: rpi_gpio_pwm
leds:
- name: Lightstrip Cupboard
pin: 17
CONFIGURATION VARIABLES
leds list (REQUIRED): Can contain multiple LEDs.
name string (REQUIRED): The name of the LED.
pin integer (REQUIRED): The pin connected to the LED as a list.
frequency integer (optional, default: 100): The PWM frequency.
host string (optional, default: localhost): The remote host address for the GPIO driver.
port integer (optional, default: 8888): The port on which the GPIO driver is listening.
Je regarderais, si j’ai rien a faire.
En fait, je pense qu’il faut juste changer le type d’entité HA, et garder led coté gpio
Fan ne passe pas à la place de Light.
Erreur dans la configuration
en respectant les minuscules ? et en laissant leds ?
oui ça passe pas
fan:
- platform: rpi_gpio_pwm
leds:
- name: RPI Cooling Fan
pin: 14
OK merci pour le test
par contre ma Font n’est plus pris en charge dans
.: |
:host {
ha-card {
height: 65px !important;
font-family: Days One;
--card-primary-font-size: 0.9rem;
}
Logiquement cela modifie la police du texte ventilateur et le %
J’ai fait une coui… mais où?
tu as des espace manquant a --card-primary-font-size: 0.9rem;
Edit:
.: |
:host {
ha-card {
pas sur que ca soit bon. Faut attendre @Herbs
je me réponds tout seul
mushroom-state-item: |
ha-card {
font-family: Days One;
--card-primary-font-size: 0.9rem;
}
Donc le code complet corrigé
type: custom:mushroom-light-card
entity: light.rpi_cooling_fan
icon: mdi:fan
fill_container: true
show_brightness_control: true
name: Ventilateur
secondary_info: state
icon_type: icon
use_light_color: true
show_color_temp_control: false
layout: horizontal
primary_info: name
collapsible_controls: true
show_color_control: true
card_mod:
style:
mushroom-shape-icon$: |
ha-icon {
{% if is_state('light.rpi_cooling_fan', 'on') %}
{% if state_attr('light.rpi_cooling_fan', 'brightness') | int >= 200 %}
--icon-color: rgba(158, 9, 24, 1);
--icon-animation: spin 0.5s linear infinite;
{% elif state_attr('light.rpi_cooling_fan', 'brightness') | int >= 128 %}
--icon-color: rgba(0, 158, 11, 1);
--icon-animation: spin 1s linear infinite;
{% elif state_attr('light.rpi_cooling_fan', 'brightness') | int > 0 %}
--icon-color: rgba(52, 146, 235, 1);
--icon-animation: spin 2s linear infinite;
{% endif %}
{% endif %}
}
.shape {
--shape-color: none;
--shape-color-disabled: transparent !important;
--icon-symbol-size: 1.5em;
}
mushroom-state-item: |
ha-card {
font-family: Days One;
--card-primary-font-size: 0.9rem;
}
mushroom-card .actions mushroom-light-brightness-control$: |
mushroom-slider {
{% if state_attr('light.rpi_cooling_fan', 'brightness') | int >= 200 %}
--main-color: rgba(158, 9, 24, 1) !important;
--bg-color: rgba(158, 9, 24, 0.59) !important;
{% elif state_attr('light.rpi_cooling_fan', 'brightness') | int >= 128 %}
--main-color: rgba(0, 158, 11, 1) !important;
--bg-color: rgba(0, 158, 11, 0.59) !important;
{% elif state_attr('light.rpi_cooling_fan', 'brightness') | int > 0 %}
--main-color: rgba(52, 146, 235, 1) !important;
--bg-color: rgba(52, 146, 235, 0.59) !important;
{% else %}
--main-color: white !important;
--bg-color: rgba(255,255,255,0.2) !important;
{% endif %}
}
}
}
ah ben j’ai ajouté
mushroom-state-item:
c’est une erreur?
J’ai regardé comme expliqué par @Herbs et j’ai vu cette « variable »
Je m’amuse
J’ai repris ton code avec quelques modifs :
Pas faire attention à l’animation, le gif « déforme » le rendu mais en vrai ça fonctionne
type: custom:mushroom-light-card
entity: light.yeelight_bureau
show_brightness_control: true
layout: horizontal
icon: mdi:fan
card_mod:
style:
mushroom-card .actions mushroom-light-brightness-control$: |
mushroom-slider {
{% if state_attr('light.yeelight_bureau', 'brightness') | float >= 200 %}
--main-color: rgb(220,20,60) !important;
--bg-color: rgba(220,20,60,0.2) !important;
{% elif state_attr('light.yeelight_bureau', 'brightness') | float >= 128 %}
--main-color: coral !important;
--bg-color: rgba(255,127,80,0.2) !important;
{% elif state_attr('light.yeelight_bureau', 'brightness') | float > 0 %}
--main-color: aqua !important;
--bg-color: rgba(0,255,255,0.2) !important;
{% else %}
--main-color: white !important;
--bg-color: rgba(255,255,255,0.2) !important;
{% endif %}
}
.: |
mushroom-shape-icon {
--shape-color: none !important;
--shape-color-disabled: transparent !important;
--icon-symbol-size: 1.5em;
{% if is_state('light.yeelight_bureau', 'on') %}
{% if state_attr('light.yeelight_bureau', 'brightness') | int >= 200 %}
--icon-color: rgb(220,20,60) !important;
--icon-animation: spin 0.5s linear infinite;
{% elif state_attr('light.yeelight_bureau', 'brightness') | int >= 128 %}
--icon-color: coral !important;
--icon-animation: spin 1s linear infinite;
{% elif state_attr('light.yeelight_bureau', 'brightness') | int > 0 %}
--icon-color: aqua !important;
--icon-animation: spin 2s linear infinite;
{% endif %}
{% endif %}
}
ha-card {
height: 65px !important;
font-family: Days One;
--card-primary-font-size: 0.9rem;
}
C’est jolie tout ca, mais tu verra que tu tant servira jamais
Disons que je débute et que j’apprends par l’exemple.
Niveau goût, j’aime bien les artifices dirons-nous
Ton code « optimisé » nickel… merci
Ah si, j’avais gagné 100 balles pour chaque heure passée à faire des trucs dont je ne me sers pas
De rien