Hello,
JâĂ©tait pas loin de la vĂ©ritĂ© alors ![]()
Jâai fais une petite modif de mon cotĂ©:
![]()
Ajout icone interieure et temp de la piscine.
Hello,
JâĂ©tait pas loin de la vĂ©ritĂ© alors ![]()
Jâai fais une petite modif de mon cotĂ©:
![]()
Ajout icone interieure et temp de la piscine.
Pas de souci ^^
@barto_95 , le voici:
pilule_temperature:
variables:
weather: weather.ville
outside: sensor.ext
inside: sensor.int
pool: sensor.piscine
template: pilule
tap_action:
action: navigate
navigation_path: /lovelace/temperature
label: |
[[[
var inter = Math.round(states[variables.inside].state* 10) / 10;
var exter = Math.round(states[variables.outside].state* 10) / 10;
var pool = Math.round(states[variables.pool].state* 10) / 10;
if (states[variables.weather].state == 'clear-night'){
var icon = 'đ';
} else if(states[variables.weather].state == 'rainy'){
var icon = 'đ§ïž';
} else if(states[variables.weather].state == 'snowy'){
var icon = 'đšïžïž';
} else if(states[variables.weather].state == 'snowy-rainy'){
var icon = 'đšïžïž';
} else if(states[variables.weather].state == 'windy'){
var icon = 'đš';
} else if(states[variables.weather].state == 'windy-variant'){
var icon = 'đš';
} else if(states[variables.weather].state == 'fog'){
var icon = 'đ«ïž';
} else if(states[variables.weather].state == 'cloudy'){
var icon = 'âïž';
} else if(states[variables.weather].state == 'partlycloudy'){
var icon = 'â
ïž';
} else if(states[variables.weather].state == 'hail'){
var icon = 'đšïžïž';
} else if(states[variables.weather].state == 'lightning'){
var icon = 'đ©ïž';
} else if(states[variables.weather].state == 'lightning-rainy'){
var icon = 'âïž';
} else if(states[variables.weather].state == 'pouring'){
var icon = 'đšïžïž';
} else if(states[variables.weather].state == 'snowy-rainy'){
var icon = 'đšïžïž';
} else if(states[variables.weather].state == 'sunny'){
var icon = 'âïž';
} else {
var icon = 'âïž';
}
return icon + ' ' + exter + '° / đ ' + inter + '° / đ ' + pool + '°' ;
]]]
@Clemalex , je nâarrive pas a faire un truc, je voudrais ajouter une seconde entity sur le template graph, jâai créé un autre template en suivant le premier, ce qui donne ça:
graph2:
variables:
entity: sensor.xiaomi_multisensor_salon_humidite
entity2: sensor.cost
color: var(--google-blue-500)
name: Default name
name2: name sensor.cost
styles:
card:
- border-radius: 20px
- box-shadow: var(--box-shadow)
- padding: 0px
grid:
- grid-template-areas: '"item1 item2 item3"'
- grid-template-columns: 1fr 1fr
- grid-template-rows: min-content min-content
custom_fields:
item1:
card:
entity: '[[[ return variables.entity ]]]'
name: '[[[ return variables.name ]]]'
template:
- icon_info
- generique
styles:
card:
- padding: 12px
type: custom:button-card
item2:
card:
entity: '[[[ return variables.entity2 ]]]'
name: '[[[ return variables.name2 ]]]'
template:
- icon_info
- generique
styles:
card:
- padding: 12px
type: custom:button-card
item3:
card:
type: custom:mini-graph-card
entities:
- entity: '[[[ return variables.entity ]]]'
line_color: '[[[ return variables.color ]]]'
show:
name: false
icon: false
legend: false
state: false
style: |
ha-card {
box-shadow: none;
border-radius: var(--border-radius);
}
Mais du coup, graphiquement ça donne ça:

Jâaimerai en haut, une entity a gauche et lâautre a droite et le graph dans la partie de dessous.
Regarde par lĂ : GitHub - custom-cards/button-card: âïž Lovelace button-card for home assistant
Si tu mets :
- grid-template-areas: '"item1 item2" "item3"'
Ca donne quoi ?
Faudra revoir ça je pense aussi
Jâavais essayĂ© un truc du genre:

Lis le tutoriel indiqué ici :
https://forum.hacf.fr/t/dashboard-minimalist/5507/16?u=clemalex
Je repasse ce soirâŠ
Voir pour styliser seulement item3 avec :
grid-column: 1 / 3;
Peut ĂȘtre⊠![]()
Jâai pas encore eu le temps de jouer avec⊠![]()
Merci pour le code ça fonctionne nickel !
Avec lâaide de @BarTouZ , jâai procĂ©dĂ© autrement, jâai jouĂ© avec la card « grid »:

Bonjour Ă tous,
@galadan pourrais tu partager ta carte ? merci
Tu devrais au moins englober le tout dans une stack-in-card, tu verras, ça feras au plus une vrai carteâŠ(que tu peux ensuite remettre dans une grilleâŠ
)
Pour lâinstant, jâai pas eu trop de le temps de mâamuser avec mais voici oĂč jâen suis :
Sur PC :
Sur Mobile:
Il reste des fioritures Ă corriger.
Je suis vraiment pas fan du rendu sur tĂ©lĂ©phone ou pc (sauf le bleu ou le rouge peut ĂȘtre).
Je poserais le modĂšle (template) dans la semaineâŠ
Ps: les graph jaune (ou orange ?) sont les graphes de base.
Celle en rouge ou en violet était mon idée de base.
cela fait chargé avec les deux icones.
Hello.
La personne en charge du repo a fait des modifications dans les ressources des cartes en passant les mots en Anglais. Il faut donc faire la modification Ă la mano pour les configurations de chaque vue.
Oui et des cartes ont Ă©tĂ© ajoutĂ©es et des variables renommĂ©es. Ainsi quâun thĂšme dark
ce sujet ne se veut pas exhaustif. Pensez Ă aller voir le github ![]()
Jâen suis lĂ , et jâarrĂȘte⊠![]()
Je postes le code ce soir ![]()
Edit:
Le modĂšle :
Il est pas super propre car jâai fais pas mal de tests mais je laisse pour montrer (un peu) les possibilitĂ©s de codageâŠ
button_card_templates:
graph_with_card:
variables:
entity_carte_gauche: sensor.default
entity_carte_droite: sensor.default
entity_graph: sensor.default
color: var(--info-color)
name_carte_gauche: Default name
name_carte_droite: Default name
show_icon_carte_gauche: 'false'
show_icon_carte_droite: 'false'
show_name_carte_gauche: 'false'
show_name_carte_droite: 'false'
icon_carte_gauche: null
icon_carte_droite: null
styles:
card:
- border-radius: var(--border-radius)
- box-shadow: var(--box-shadow)
- padding: 0px
grid:
- grid-template-areas: '"item1" "item2"'
- grid-template-columns: 1fr
- grid-template-rows: min-content min-content
custom_fields:
item2:
- padding-top: >
[[[ if (!variables.show_name_carte_gauche &&
!variables.show_name_carte_droite) return '13px';]]]
custom_fields:
item1:
card:
type: custom:button-card
entity: '[[[ return variables.entity_carte_gauche ]]]'
name: '[[[ return variables.name_carte_gauche ]]]'
template:
- icon_info
- generique
show_icon: '[[[ return variables.show_icon_carte_gauche ]]]'
show_name: '[[[ return variables.show_name_carte_gauche ]]]'
label: |
[[[
if (variables.icon_carte_gauche ) return (variables.icon_carte_gauche + " " + states[variables.entity_carte_gauche].state+ " " + states[variables.entity_carte_gauche].attributes.unit_of_measurement);
return states[variables.entity_carte_gauche].state + " " + states[variables.entity_carte_gauche].attributes.unit_of_measurement;
]]]
styles:
card:
- '--padding-mobile': >
[[[ if (!variables.show_icon_carte_gauche &&
!variables.show_icon_carte_droite) return '5px 5px 14px 0px';
if (variables.show_icon_carte_gauche &&
variables.show_icon_carte_droite) return '3px 0 0px 10px';
return '10px 0 9px 10px'; ]]]
- '--padding-computer': >
[[[ if (!variables.show_icon_carte_gauche &&
!variables.show_icon_carte_droite) return '23px 0 12px 0';
return '12px'; ]]]
- padding: var(--padding-computer)
grid:
- grid-template-areas: '"i l item1_item1" "i n item1_item1"'
- grid-template-columns: >
[[[ if (!variables.show_icon_carte_gauche &&
!variables.show_icon_carte_droite) return 'auto'; return
'min-content auto'; ]]]
extra_styles: |
#label {
white-space: nowrap;
}
/* telephone */
@media screen and (max-width: 800px) {
#label {
white-space: pre-line;
}
#card {
padding: var(--padding-mobile) !important;
}
}
custom_fields:
item1_item1:
card:
entity: '[[[ return variables.entity_carte_droite ]]]'
name: '[[[ return variables.name_carte_droite ]]]'
template:
- icon_info
- generique
label: |
[[[
if (variables.icon_carte_droite ) return (variables.icon_carte_droite + " " + states[variables.entity_carte_droite].state) + " " + states[variables.entity_carte_droite].attributes.unit_of_measurement;
return states[variables.entity_carte_droite].state + " " + states[variables.entity_carte_droite].attributes.unit_of_measurement;
]]]
show_icon: '[[[ return variables.show_icon_carte_droite ]]]'
show_name: '[[[ return variables.show_name_carte_droite ]]]'
extra_styles: |
#label {
white-space: nowrap;
}
/* telephone */
@media screen and (max-width: 800px) {
#label {
white-space: pre-line;
}
}
type: custom:button-card
item2:
card:
type: custom:mini-graph-card
entities:
- entity: '[[[ return variables.entity_graph ]]]'
line_color: '[[[ return variables.color ]]]'
show:
name: false
icon: false
legend: false
state: false
style: |
ha-card {
box-shadow: none;
border-radius: var(--border-radius);
}

#carte grise
type: custom:button-card
template: graph_with_card
variables:
entity_carte_gauche: sensor.temperature_enfant1
entity_carte_droite: sensor.humidity
entity_graph: sensor.temperature_salon
name_carte_gauche: Enfant 1
name_carte_droite: Enfant 2
color: gray
show_icon_carte_droite: false
show_icon_carte_gauche: false
show_name_carte_droite: false
show_name_carte_gauche: false
icon_carte_gauche: đĄïž
icon_carte_droite: đ§

#carte rouge
type: custom:button-card
template: graph_with_card
variables:
entity_carte_gauche: sensor.temperature_enfant1
entity_carte_droite: sensor.humidity
entity_graph: sensor.temperature_salon
name_carte_gauche: Enfant 1
name_carte_droite: Enfant 2
color: red
show_icon_carte_droite: false
show_icon_carte_gauche: false
show_name_carte_droite: false
show_name_carte_gauche: false

#carte jaune
type: custom:button-card
template: graph_with_card
variables:
entity_carte_gauche: sensor.temperature_enfant1
entity_carte_droite: sensor.humidity
entity_graph: sensor.temperature_salon
name_carte_gauche: Température
name_carte_droite: Humidité
color: gold
show_icon_carte_droite: false
show_icon_carte_gauche: false
show_name_carte_droite: true
show_name_carte_gauche: true
Hello, merci @Clemalex , câest top!!
Câest quoi cette partie:
extra_styles: |
#label {
white-space: nowrap;
}
/* telephone */
@media screen and (max-width: 800px) {
#label {
white-space: pre-line;
}
}
?
