Re,
Nouveau challenge ? en tout local sur un pi4 de test avec un vieux fichier qui trainait, (je n’ai pas retrouvé le bon pour le moment …


je doute de le faire, mais j’aime bien l’idée ![]()
cdt
Re,
Nouveau challenge ? en tout local sur un pi4 de test avec un vieux fichier qui trainait, (je n’ai pas retrouvé le bon pour le moment …


je doute de le faire, mais j’aime bien l’idée ![]()
cdt
Salut
J’avais réfléchi à ça à un moment aussi, mais niveau manipulation c’est pas aussi souple (ou trop) et sur un petit écran il faut pas de gros doigts
Hello,
Pour le moment je me heurte surtout à la transparence du rendu 3D et je m’y casse les dents j’ai pourtant simplifié au max …
si je ne trouve pas je mettrais mon code ![]()
cdt
Re,
Bon ben j’ai trouvé, je pensais que le soucis c’était le code, mais le soucis c’est le navigateur ( firefox )…
firefox
edge
Bref je trouve pas (et vu que je veux conserver firefox, on va en rester là).
Si quelqu’un à une idée lumineuse je prend, sinon je stoppe la recherche. J’ai tenté un tas d’approches…
- type: custom:mod-card
style:
left: 50%
top: 50%
transform: translate(-50%, -50%)
width: 1000px
height: 80%
card_mod:
style: |
ha-card {
background: transparent !important;
border: none !important;
box-shadow: none !important;
}
card:
type: vertical-stack
cards:
- type: iframe
aspect_ratio: 100%
url: /local/3d_view/index.html
style:
top: 55.3%
left: 53.2%
width: 80.5%
height: 80%
z-index: 10
filter: opacity(0.999);
card_mod:
style: |
ha-card {
background: none transparent !important;
border: none !important;
box-shadow: none !important;
}
iframe {
background: transparent !important;
}
:host {
--ha-card-background: transparent !important;
}
pas très propre et blindé en transparence
<!DOCTYPE html>
<html lang="fr" style="background: transparent;">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test 3D</title>
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body, html {
width: 100%;
height: 100%;
background: transparent !important;
overflow: hidden;
}
model-viewer {
width: 100%;
height: 100%;
display: block;
--poster-color: transparent;
--progress-bar-color: transparent;
}
/* Forcer la transparence du canvas WebGL */
model-viewer > canvas {
background: transparent !important;
}
</style>
</head>
<body>
<model-viewer
src="plan.glb"
camera-controls
auto-rotate
exposure="1"
shadow-intensity="1"
tone-mapping="neutral"
alt="Plan 3D">
</model-viewer>
<script>
// Forcer la transparence du canvas après le chargement
document.addEventListener('DOMContentLoaded', function() {
const viewer = document.querySelector('model-viewer');
viewer.addEventListener('load', function() {
// Tenter de forcer l'alpha sur le contexte WebGL
const canvas = viewer.shadowRoot.querySelector('canvas');
if (canvas) {
canvas.style.background = 'transparent';
}
});
});
</script>
</body>
</html>
cdt
Re,
J’ai revu la partie météo, je ne savais pas trop quoi mettre en bas à droite hors la carte lune que je vois en live sur le plan, du coup j’ai mis l’ISS ![]()
cdt
Re,
Du coup après l’ISS je viens d’enchainer
on installe l’intégration
on mélange bien les entités et les attributs et on met tout dans une button card
et 15 min (réglable) avant un launch

et mise en test de meteocss II le retour ![]()
cdt
Hello,
Frigate tourne enfin et sur le coral
en à peine 6 mois
sur une machine debian dediée ( pour le moment ) du coup je peux afficher mes 12 flux 2560x1440 sur le pi5 ( ce qu’il est impossible de faire directement ( encore que je n’ai pas testé récemment )). Bon on va remettre du conditionnel dans tout ça mais ça tourne.
CPU du pi5
cdt
Re,
Petit sondage pour savoir si ça intéresse, sinon je n’y passe pas mon temps et j’en reste là dans l’explication ![]()

type: custom:layout-card
style:
left: 50%
top: 50%
width: 100%
height: 100%
layout_type: custom:grid-layout
layout:
grid-template-columns: 10% 80% 10%
grid-template-rows: 67px 1fr 67px
grid-template-areas: |
"topbar topbar topbar"
"menu plan menu1"
"ticker ticker ticker"
gap: 0
cards:
- type: horizontal-stack
view_layout:
grid-area: topbar
cards:
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 56px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 56px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 56px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 56px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 56px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: vertical-stack
view_layout:
grid-area: menu
cards:
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: clock
clock_style: analog
clock_size: small
show_seconds: false
no_background: false
border: false
ticks: minute
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
padding: 0 !important;
}
- type: picture-elements
view_layout:
grid-area: plan
image: /local/plan3D/Transparent 1920x1080.png
card_mod:
style: |
ha-card {
height: 100% !important;
width: 100% !important;
border-radius: 8px !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
display: flex !important;
}
elements:
- type: custom:button-card
name: Picture element
style:
top: 50%
left: 50%
- type: vertical-stack
view_layout:
grid-area: menu1
cards:
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Freetronic
show_icon: false
show_name: false
entity: person.ha_principal_maison
card_mod:
style: |
ha-card {
margin-bottom: 0px;
background: rgba(255,255,255,0.1) !important;
border-radius: 8px !important;
padding: 0 !important;
outline: 2px solid rgba(255, 255, 255, 0.3) !important;
outline-offset: -2px;
border: none !important;
}
custom_fields:
menu: |
[[[
return `<div class="subbtn"><span class="button-emoji">🧑💼</span> Freetronic</div>`;
]]]
styles:
grid:
- grid-template-areas: "\"menu\""
- grid-template-columns: 1fr
- grid-template-rows: 1fr
custom_fields:
menu:
- justify-self: stretch
- align-self: stretch
- padding: 0
- margin: 0
extra_styles: |
.subbtn {
display: flex !important;
align-items: center !important;
justify-content: flex-start !important;
width: 100% !important;
height: 38px !important;
box-sizing: border-box !important;
padding: 0 4px !important; /* Ajusté de 12px à 4px */
gap: 4px !important; /* Ajusté de 8px à 4px */
border-radius: 6px !important;
background: transparent !important;
color: white !important;
cursor: pointer !important;
transition: all 0.2s ease !important;
text-align: left !important;
}
.button-emoji {
text-shadow: 0 0 2px #222, 1px 1px 2px #222;
}
ha-card:hover {
background: rgba(0,123,255,0.4) !important;
outline-color: rgba(255, 255, 255, 0.8) !important; /* Focus lumineux */
transform: translateX(2px) !important;
}
ha-card:hover .subbtn {
color: white !important;
}
- type: custom:button-card
name: Ticker
view_layout:
grid-area: ticker
entity: input_text.derniere_notif
show_icon: false
show_name: false
show_state: false
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
styles:
card:
- height: 67px
- background: rgba(255,255,255,0.1)
- border-radius: 8px
- overflow: hidden
- pointer-events: auto
- padding: 0
- outline: 2px solid rgba(255, 255, 255, 0.3) !important;
- outline-offset: "-2px; /* Force l'outline à l'intérieur pour ne pas déborder */"
- border: none !important;
custom_fields:
ticker:
- pointer-events: auto
custom_fields:
ticker: |
[[[
function pathFromNotif(notif) {
if (!notif) return '/lovelace/plan3d';
const n = notif.toLowerCase();
if (n.includes('entree')) return '/lovelace/entree';
if (n.includes('cuisine')) return '/lovelace/cuisine';
if (n.includes('salon')) return '/lovelace/salon';
if (n.includes('veranda')) return '/lovelace/veranda';
if (n.includes('garagext')) return '/lovelace/garage-ext';
if (n.includes('garage int')) return '/lovelace/garage-int';
if (n.includes('labo')) return '/lovelace/labo';
if (n.includes('chaufferie')) return '/lovelace/chaufferie';
if (n.includes('laurent')) return '/lovelace/chambre-laurent';
if (n.includes('papa')) return '/lovelace/chambre-papa';
if (n.includes('amis')) return '/lovelace/chambre-amis';
if (n.includes('sdb') || n.includes('salle de bain')) return '/lovelace/salle-de-bain';
if (n.includes('cour')) return '/lovelace/cour';
if (n.includes('cave')) return '/lovelace/cave';
if (n.includes('cagibi')) return '/lovelace/cagibi';
if (n.includes('jardin')) return '/lovelace/jardin';
if (n.includes('couloir')) return '/lovelace/couloir-haut';
if (n.includes('grenier')) return '/lovelace/grenier';
if (n.includes('wc')) return '/lovelace/toilettes';
return '/lovelace/plan3d';
}
function makeNotif(notif) {
if (!notif || notif === 'unknown' || notif === 'unavailable' || notif === '') return '';
const path = pathFromNotif(notif);
return `<span style="cursor:pointer;margin-right:80px;" onclick="window.location.href='${path}'">📢 ${notif}</span>`;
}
const notif1 = states['input_text.derniere_notif'].state;
const notif2 = states['input_text.notif2'].state;
const notif3 = states['input_text.notif3'].state;
const messages = [makeNotif(notif1), makeNotif(notif2), makeNotif(notif3)].filter(Boolean);
const content = messages.length > 0
? messages.join(' ')
: '<span style="color:white;">📢 Aucune notification</span>';
return `<div style="display: flex; align-items: center; height: 67px; width: 100%; overflow: hidden; color: white; font-size: 40px; font-weight: 600; text-shadow: 2px 2px 4px rgba(0,0,0,0.5);"><div style="flex: 0 0 180px; height: 100%; display: flex; justify-content: center; align-items: center; background: rgba(0,0,0,0.3); border-right: 2px solid rgba(255,255,255,0.2);"><img src="/local/freetronic-news.png" style="width:100%;height:100%;object-fit:cover;filter:drop-shadow(0 0 3px black);" alt="Freetronic News"></div><div style="flex: 1; overflow: hidden; white-space: nowrap;"><div style="display: inline-block; padding-left: 100%; animation: scroll-left 50s linear infinite;">${content} ${content} ${content}</div></div><style>@keyframes scroll-left { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } } span:hover { text-decoration: underline; opacity: 0.8; }</style></div>`;
]]]
entities:
- input_text.derniere_notif
- input_text.notif2
- input_text.notif3

cdt
Tu es un grand malade ![]()