Bonjour,
Navré pour ma question basique, je débute: j’essaye d’intégrer le mode package en créant un fichier reveil.yaml que je déclare dans configuration .yaml (reveil: !include reveil.yaml) mais HA n’est pas content (Component error: reveil - Integration ‹ reveil › not found.). Cela avant d’aller intégrer la carte dans Lovelace.
Ce n’est pas la bonne procédure ?
Merci
Non, pas du tout
Regarde par ici :
Re, merci pour les infos. Après avoir bien compris le fonctionnement de HA avec les fichiers yaml j’ai séparé ma config en créant les fichiers input_boolean.yaml, input_datetime.yaml, et input_select.yaml. Mon fichier de config s’est ainsi bien aéré.
En ce qui concerne les scripts de la xiaomi gateway j’ai bien compris qu’ils servent juste émettre un son répété d’alarme à l’heure du réveil.
A la place de ces scripts, j’ai simplement mis un script qui joue une musique sur mon enceinte. Le script est fonctionnelle quand je le joue manuellement mais il ne fonctionne pas avec les automatisations qui découle de la carte réveil. Pourtant j’ai bien veillé à remplacer dans l’automation « Wake 1 Activated » le script qui est lancé par le mien…
J’ai une piste : j’ai l’impression que l’automatisation qui met à jour l’heure du réveil ne fonctionne pas
Tu as des idées @Clemalex ?
Tu peux me fournir le code que TU utilises (je précise le tiens car j’avais fait des remarques sur le fonctionnement de l’automatisation de base).
Réponds à la suite de ce fil ci :
J’avais fais ces remarques :
On passe sur le topic de l’automatisation plutôt que la carte
Du coup, j’ai eu besoin d’ajouter une heure d’extinction à la carte de base, ce qui me donne :
Le titre de la carte n’est plus cliquable et clignote si la prise associée est allumée.
L’activation/désactivation se fait depuis les boutons ON/OFF
Le réglage de l’heure d’allumage/extinction se fait à l’aide des boutons avec l’icone d’une prise.
Aucun changement pour les boutons des jours.
Code de la carte
style: >
@keyframes blink {
50% {
color: var(--paper-item-icon-active-color);
}
100% {
color: var(--primary-color);
}
}
#root > hui-state-label-element:nth-child(2),#root >
hui-state-label-element:nth-child(3) {
animation: {% if is_state('switch.prise_bureau', 'on') %} blink 1.5s ease-in-out infinite{% endif %};
}
elements:
- entity: sensor.vide
prefix: Bureau
style:
color: var(--primary-color)
font-size: 20px
font-variant: small-caps
left: 15%
pointer-events: none
top: 23%
tap_action:
action: none
type: state-label
- entity: sensor.vide
prefix: Clemalex
style:
color: var(--primary-color)
font-size: 20px
font-variant: small-caps
left: 15%
pointer-events: none
top: 34%
tap_action:
action: none
type: state-label
- type: 'custom:stack-in-card'
style:
bottom: 30%
left: 15%
mode: horizontal
keep:
background: true
cards:
- type: 'custom:button-card'
entity: input_boolean.wakestatus_1
show_icon: false
show_state: false
name: 'On'
styles:
card:
- width: 50px
- height: 24px
- padding: 10%
- font-size: 16px
- font-variant: small-caps
- border: 2px solid var(--primary-color)
- background: |
[[[
if (entity.state == 'on')
return 'var(--primary-color)';
else
return 'white';
]]]
name:
- color: |
[[[
if (entity.state == 'on')
return 'white';
else
return 'var(--primary-color)';
]]]
- type: 'custom:button-card'
entity: input_boolean.wakestatus_1
show_icon: false
show_state: false
name: 'Off'
styles:
card:
- width: 50px
- height: 24px
- padding: 10%
- font-size: 16px
- font-variant: small-caps
- border: 2px solid var(--primary-color)
- background: |
[[[
if (entity.state == 'off')
return 'var(--primary-color)';
else
return 'white';
]]]
name:
- color: |
[[[
if (entity.state == 'off')
return 'white';
else
return 'var(--primary-color)';
]]]
- type: 'custom:state-switch'
style:
left: 47%
top: 36%
entity: input_boolean.wakesettime_1
default: 'on'
transition: flip
transition_time: 300
states:
'on':
entity: input_datetime.wake_time_1_on
hide:
name: true
hour_step: 1
layout:
embedded: false
name: inside
align_controls: center
link_values: true
minute_step: 1
name: ''
style:
.: |
ha-card {
box-shadow: none;
background-color: rgba(0,0,0,0);
opacity: {% if is_state('input_boolean.wakestatus_1', 'off') %} 0.3 {% endif %};
pointer-events: {% if is_state('input_boolean.wakestatus_1', 'off') %} none {% endif %};
}
.time-picker-row{
margin-left: 5px !important;
}
.time-picker-row:
.time-picker-content:
.: |
.time-separator {
display: none;
}
time-unit:
$: |
.time-unit {
padding: 2px !important;
}
.time-input {
border: 2px solid var(--primary-color) !important;
background-color: rgba(0,0,0,0) !important;
color: black !important;
border-radius: 5px;
}
.time-picker-icon {
color: var(--primary-color) !important;
z-index: 100;
}
type: 'custom:time-picker-card'
'off':
entity: input_datetime.wake_time_1_off
hide:
name: true
hour_step: 1
layout:
embedded: false
name: inside
align_controls: center
link_values: true
minute_step: 1
name: ''
style:
.: |
ha-card {
box-shadow: none;
background-color: rgba(0,0,0,0);
opacity: {% if is_state('input_boolean.wakestatus_1', 'off') %} 0.3 {% endif %};
pointer-events: {% if is_state('input_boolean.wakestatus_1', 'off') %} none {% endif %};
}
.time-picker-row{
margin-left: 5px !important;
}
.time-picker-row:
.time-picker-content:
.: |
.time-separator {
display: none;
}
time-unit:
$: |
.time-unit {
padding: 2px !important;
}
.time-input {
border: 2px solid var(--primary-color) !important;
background-color: rgba(0,0,0,0) !important;
color: black !important;
border-radius: 5px;
}
.time-picker-icon {
color: var(--primary-color) !important;
z-index: 100;
}
type: 'custom:time-picker-card'
- entity: input_boolean.wakeweekday_mon_1
show_label: false
show_icon: false
show_name: true
show_state: false
name: Lu
style:
'--paper-item-icon-color': var(--primary-color)
right: 15%
top: 20%
styles:
card:
- width: 30px
- height: 30px
- border-radius: 999px
- background-color: |
[[[
if ( (states['input_boolean.wakeweekday_mon_1'].state == 'off') ) return 'var(--primary-color)';
else return 'var(--paper-item-icon-active-color)';
]]]
- box-shadow: none
- border-radius: 999px
- opacity: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return '0.3';
else return '1';
]]]
- pointer-events: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return 'none';
else return 'auto';
]]]
name:
- color: white
type: 'custom:button-card'
- entity: input_boolean.wakeweekday_tue_1
show_label: false
show_icon: false
show_name: true
show_state: false
name: Ma
style:
'--paper-item-icon-color': var(--primary-color)
right: 5%
top: 20%
styles:
card:
- width: 30px
- height: 30px
- border-radius: 999px
- background-color: |
[[[
if ( (states['input_boolean.wakeweekday_tue_1'].state == 'off') ) return 'var(--primary-color)';
else return 'var(--paper-item-icon-active-color)';
]]]
- box-shadow: none
- border-radius: 999px
- opacity: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return '0.3';
else return '1';
]]]
- pointer-events: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return 'none';
else return 'auto';
]]]
name:
- color: white
type: 'custom:button-card'
- entity: input_boolean.wakeweekday_wed_1
show_label: false
show_icon: false
show_name: true
show_state: false
name: Me
style:
'--paper-item-icon-color': var(--primary-color)
right: 20%
top: 50%
styles:
card:
- width: 30px
- height: 30px
- border-radius: 999px
- background-color: |
[[[
if ( (states['input_boolean.wakeweekday_wed_1'].state == 'off') ) return 'var(--primary-color)';
else return 'var(--paper-item-icon-active-color)';
]]]
- box-shadow: none
- border-radius: 999px
- opacity: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return '0.3';
else return '1';
]]]
- pointer-events: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return 'none';
else return 'auto';
]]]
name:
- color: white
type: 'custom:button-card'
- entity: input_boolean.wakeweekday_thu_1
show_label: false
show_icon: false
show_name: true
show_state: false
name: Je
style:
'--paper-item-icon-color': var(--primary-color)
right: 10%
top: 50%
styles:
card:
- width: 30px
- height: 30px
- border-radius: 999px
- background-color: |
[[[
if ( (states['input_boolean.wakeweekday_thu_1'].state == 'off') ) return 'var(--primary-color)';
else return 'var(--paper-item-icon-active-color)';
]]]
- box-shadow: none
- border-radius: 999px
- opacity: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return '0.3';
else return '1';
]]]
- pointer-events: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return 'none';
else return 'auto';
]]]
name:
- color: white
type: 'custom:button-card'
- entity: input_boolean.wakeweekday_fri_1
show_label: false
show_icon: false
show_name: true
show_state: false
name: Ve
style:
'--paper-item-icon-color': var(--primary-color)
right: 0%
top: 50%
styles:
card:
- width: 30px
- height: 30px
- border-radius: 999px
- background-color: |
[[[
if ( (states['input_boolean.wakeweekday_fri_1'].state == 'off') ) return 'var(--primary-color)';
else return 'var(--paper-item-icon-active-color)';
]]]
- box-shadow: none
- border-radius: 999px
- opacity: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return '0.3';
else return '1';
]]]
- pointer-events: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return 'none';
else return 'auto';
]]]
name:
- color: white
type: 'custom:button-card'
- entity: input_boolean.wakeweekday_sat_1
show_label: false
show_icon: false
show_name: true
show_state: false
name: Sa
style:
'--paper-item-icon-color': var(--primary-color)
right: 15%
top: 80%
styles:
card:
- width: 30px
- height: 30px
- border-radius: 999px
- background-color: |
[[[
if ( (states['input_boolean.wakeweekday_sat_1'].state == 'off') ) return 'var(--primary-color)';
else return 'var(--paper-item-icon-active-color)';
]]]
- box-shadow: none
- border-radius: 999px
- opacity: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return '0.3';
else return '1';
]]]
- pointer-events: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return 'none';
else return 'auto';
]]]
name:
- color: white
type: 'custom:button-card'
- entity: input_boolean.wakeweekday_sun_1
show_label: false
show_icon: false
show_name: true
show_state: false
name: Di
style:
'--paper-item-icon-color': var(--primary-color)
right: 5%
top: 80%
styles:
card:
- width: 30px
- height: 30px
- border-radius: 999px
- background-color: |
[[[
if ( (states['input_boolean.wakeweekday_sun_1'].state == 'off') ) return 'var(--primary-color)';
else return 'var(--paper-item-icon-active-color)';
]]]
- box-shadow: none
- border-radius: 999px
- opacity: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return '0.3';
else return '1';
]]]
- pointer-events: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return 'none';
else return 'auto';
]]]
name:
- color: white
type: 'custom:button-card'
- type: 'custom:stack-in-card'
style:
top: 80%
left: 48%
mode: horizontal
keep:
background: true
cards:
- type: 'custom:button-card'
entity: input_boolean.wakesettime_1
icon: 'mdi:power-plug'
show_label: false
show_name: false
show_state: false
styles:
card:
- line-height: 0
- width: 50px
- height: 24px
- border: 2px solid var(--primary-color)
- background: |
[[[
if (entity.state == 'on')
return 'var(--primary-color)';
else
return 'white';
]]]
- opacity: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return '0.3';
else return '1';
]]]
- pointer-events: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return 'none';
else return 'auto';
]]]
icon:
- transform: scale(1.2)
- color: |
[[[
if (entity.state == 'on')
return 'white';
else
return 'var(--primary-color)';
]]]
- type: 'custom:button-card'
entity: input_boolean.wakesettime_1
icon: 'mdi:power-plug-off'
show_label: false
show_name: false
show_state: false
styles:
card:
- line-height: 0
- width: 50px
- height: 24px
- border: 2px solid var(--primary-color)
- background: |
[[[
if (entity.state == 'off')
return 'var(--primary-color)';
else
return 'white';
]]]
- opacity: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return '0.3';
else return '1';
]]]
- pointer-events: |
[[[
if ( (states['input_boolean.wakestatus_1'].state == 'off') ) return 'none';
else return 'auto';
]]]
icon:
- transform: scale(1.2)
- color: |
[[[
if (entity.state == 'off')
return 'white';
else
return 'var(--primary-color)';
]]]
image: /local/images/transparent/transparent_clock.png
type: picture-elements
Image transparent agrandie : [ ] ← Elle est entre les crochets
Et l’automatisation qui va avec :
Code de l'automatisation
- id: 'bureau_clemalex'
alias: bureau_clemalex
description: ''
trigger:
- platform: state
entity_id: sensor.time
condition:
- condition: template
value_template: '{% set today = ''input_boolean.wakeweekday_'' ~ now().strftime("%a")
| lower ~ ''_1'' %} {{ is_state(''input_boolean.wakestatus_1'', ''on'') and
is_state(today, ''on'') }}
'
action:
- choose:
- conditions:
- condition: template
value_template: "{% set time_off = strptime(states('input_datetime.wake_time_1_off'),\
\ '%H:%M:%S').strftime('%H:%M:%S') %} {% set time = strptime(states('sensor.time'),\
\ '%H:%M').strftime('%H:%M:%S')%} {% if time >= time_off %}\n true\n{%\
\ else %}\n false\n{% endif %}\n"
sequence:
- service: switch.turn_off
entity_id: switch.prise_bureau
- conditions:
- condition: template
value_template: "{% set time_on = strptime(states('input_datetime.wake_time_1_on'),\
\ '%H:%M:%S').strftime('%H:%M:%S') %} {% set time = strptime(states('sensor.time'),\
\ '%H:%M').strftime('%H:%M:%S')%} {% if time >= time_on %}\n true\n{% else\
\ %}\n false\n{% endif %}\n"
sequence:
- service: switch.turn_on
entity_id: switch.prise_bureau
mode: single
Pour rappel les entités :
Les entités
sensor:
- platform: template
sensors:
vide:
value_template: ""
input_boolean:
wakesettime_1:
name: set time
icon: mdi:clock
wakestatus_1:
name: Alarme 1
icon: mdi:alarm
wakeweekday_sun_1:
name: Sunday
icon: mdi:calendar
wakeweekday_mon_1:
name: Monday
icon: mdi:calendar
wakeweekday_tue_1:
name: Tuesday
icon: mdi:calendar
wakeweekday_wed_1:
name: Wednesday
icon: mdi:calendar
wakeweekday_thu_1:
name: Thursday
icon: mdi:calendar
wakeweekday_fri_1:
name: Friday
icon: mdi:calendar
wakeweekday_sat_1:
name: Saturday
icon: mdi:calendar
input_datetime:
wake_time_1_on:
name: Horaire 1 on
has_time: true
wake_time_1_off:
name: Horaire 1 off
has_time: true
Mise à jour de la carte avec un bouton d’activation de l’automatisation plus compréhensible :
https://forum.hacf.fr/t/mon-dashboard-clemalex/737/51?u=clemalex
Salut @Clemalex ,
J’ai un p’tit soucis avec ta carte et j’arrive pas voir d’où ça vient.
J’ai un point d’exclamation à la place de l’activation, un truc Zarbi derrière les minutes…
Et la couleur ne change pas quand j’active ou desactive les jours…
Saurais tu m’aiguiller ?
Le « truc zarbi » je pense que c’est l’image non présente.
Le point d’exclamation, une entité manquante.
Le non changement de couleur doit être un autre manque d’entité je pense…
Sur la carte d’origine, le bouton activation fonctionne bien. C’est une autre entité ?
Les couleurs, je vois pas.
Je vais revérifier toutes les déclarations…
Et l’image encore moins
Mais j’ai pas d’erreurs dans le code, du moins il m’en dit pas…
De quoi ? Le texte ? Oui le texte est une entité vide.
Le texte c’est bon. Me manquait l’entité vide.
Les autres erreurs je sais pas encore…
→ input_boolean.wakestatus_1
Alors c’est pas le wakestatus, c’est plus bête que ça.
J’ai un thème dark_orange, et il ne me change pas la couleur. Il fait orange-orange…
Si j’enlève le thème, il me permute bien les couleurs.
Faut que je change les couleurs dans la carte ?
Me reste donc cet ersatz d’image derrière …
@Clemalex Hello,
j’ai pas compris dans le fonctionnement du réveil à un seul réglage comment le wakestatus_1 se remet à 0 ?
Et tu pourrais me dire comment changer la taille de la sélection d’heures/minutes, et la couleur ?
Merci
Pour le fonctionnement du réveil, ce n’est pas ici mais là → Un réveil sur Home assistant
Et je sais que j’avais alerté sur le code car beaucoup de chose me choquait dont ce que tu cherches :
Je te conseille de continuer (pour le fonctionnement de l’automatisation derrière la carte) dans le sujet d’origine, car ici ce n’est que les cartes.
SI tu veux une automatisation, j’en ai mis une dans le message 14 → [CARTE] Réveil (ou activation d'automatisation) - #14 par Clemalex
Ok j’ai posté un message là bas.
Bin en fait je veux qu’il passe à 1 puis forcément à 0.
Effectivement avec ton automation je pourrais y arriver, mais c’est gruger…
C’est pas gruger mais une autre pour avoir un exemple…
Le mieux quand on apprend est de croiser les informations
C’est vrai.
Bon j’ai ajouté une remise à 0.
Un truc juste, je trouve pas comment augmenter la taille de l’affichage de l’heure ? La sélection ?
Et remplacer la couleur du rond jaune autour des jours. Je vois pas…