Moi je suis reparti de ces scripts : Awtrix Ulanzi + Domotique = ❤️
Après je me suis tapé la documentation et j’ai retravaillé :
Pour les notifications :
alias: Notification Awtrix
sequence:
- metadata: {}
data:
qos: 0
retain: false
topic: awtrix_salon/notify
payload: |-
{
{% if icon %}
icon: "{{ icon }}",
{% if push_icon %}
pushIcon: "{{ push_icon }}",
{% else %}
pushIcon: "2",
{% endif %}
{% endif %}
{% if repeat %}
repeat: "{{ repeat }}",
{% endif %}
{% if color %}
color: "{{ color }}",
{% endif %}
{% if hold %}
hold: "{{ hold }}",
{% endif %}
{% if rainbow %}
rainbow: "{{ rainbow }}",
{% endif %}
{% if duration %}
duration: "{{ duration }}",
{% endif %}
textCase: 2,
text: "{{ message }}"
}
action: mqtt.publish
icon: mdi:cloud
mode: single
fields:
icon:
selector:
text: {}
name: icon
description: Icône utilisée pour la notification
push_icon:
selector:
number:
min: 0
max: 2
step: 1
name: push_icon
default: 2
description: >-
0 = L'icône ne bouge pas. 1 = L'icône bouge avec le texte et n'apparaît
plus. 2 = L'icône bouge avec le texte mais réapparaît lorsque le texte
commence à défiler à nouveau.
message:
selector:
text: null
name: message
required: true
default: message
description: Message à afficher
repeat:
selector:
number:
min: 1
max: 10
name: repeat
default: 1
description: Nombre de fois à répéter la notification
color:
selector:
text: null
name: color
default: FFFFFF
rainbow:
selector:
boolean: {}
name: rainbow
default: false
description: Estompe chaque lettre du texte différemment sur l'ensemble du spectre RVB.
duration:
selector:
number:
min: 5
max: 60
name: duration
default: 5
description: >-
Définit la durée pendant laquelle l'application ou la notification doit
être affichée.
hold:
selector:
boolean: {}
name: hold
default: false
description: >-
Maintenir la notification jusqu'à ce que l'utilisateur appuie sur le
bouton
description: Afficher des notifications sur l'Awtrix.
Pour les apps :
alias: App custom Awtrix
sequence:
- metadata: {}
data:
qos: 0
retain: false
topic: awtrix_salon/custom/{{ application }}
payload: |-
{% if delete %} {} {% else %} {
{% if icon %}
icon: "{{ icon }}",
{% if push_icon %}
pushIcon: "{{ push_icon }}",
{% else %}
pushIcon: "2",
{% endif %}
{% endif %}
{% if repeat %}
repeat: "{{ repeat }}",
{% endif %}
{% if color %}
color: "{{ color }}",
{% endif %}
{% if hold %}
hold: "{{ hold }}",
{% endif %}
{% if rainbow %}
rainbow: "{{ rainbow }}",
{% endif %}
{% if duration %}
duration: "{{ duration }}",
{% endif %}
{% if progress %}
progress: "{{ progress }}",
{% endif %}
textCase: 2,
text: "{{ message }}"
} {% endif %}
action: mqtt.publish
icon: mdi:cloud
mode: single
fields:
application:
selector:
text: {}
required: true
name: application
description: Nom de l'applicvation.
icon:
selector:
text: {}
name: icon
description: Icône utilisée pour la notification.
push_icon:
selector:
number:
min: 0
max: 2
step: 1
name: push_icon
default: 2
description: >-
0 = L'icône ne bouge pas. 1 = L'icône bouge avec le texte et n'apparaît
plus. 2 = L'icône bouge avec le texte mais réapparaît lorsque le texte
commence à défiler à nouveau.
message:
selector:
text: null
name: message
default: message
description: Message à afficher
repeat:
selector:
number:
min: 1
max: 10
name: repeat
default: 1
description: Nombre de fois à répéter la notification
color:
selector:
text: null
name: color
default: FFFFFF
rainbow:
selector:
boolean: {}
name: rainbow
default: false
description: Estompe chaque lettre du texte différemment sur l'ensemble du spectre RVB.
duration:
selector:
number:
min: 5
max: 60
name: duration
default: 5
description: >-
Définit la durée pendant laquelle l'application ou la notification doit
être affichée.
progress:
selector:
number:
min: 0
max: 100
name: progress
default: 100
description: >-
Affiche une barre de progression. La valeur peut être comprise entre 0 et
100.
delete:
selector:
boolean: {}
name: delete
default: false
description: Ssupprime l'application.
description: Afficher sur l'app custom de l'Awtrix.
Pour bloquer le défilement automatique (pendant que je regarde la TV) :
alias: Défilement Awtrix
sequence:
- if:
- condition: template
value_template: "{{ lock == true }}"
then:
- metadata: {}
data:
qos: 0
retain: false
topic: awtrix_salon/settings
payload: |-
{
ATRANS: false
}
action: mqtt.publish
- metadata: {}
data:
qos: 0
retain: false
topic: awtrix_salon/switch
payload: |-
{
name: "Time"
}
action: mqtt.publish
else:
- metadata: {}
data:
qos: 0
retain: false
topic: awtrix_salon/settings
payload: |-
{
ATRANS: true
}
action: mqtt.publish
icon: mdi:cloud
mode: single
fields:
lock:
selector:
boolean: {}
name: lock
default: true
description: Affiche l'horloge et arrète le défilement.
description: Gestion du défilement sur l'Awtrix.
Et pour ton automatisation, ça ressemble un peu à ça :
alias: Awtrix fenêtres
description: Application custom pour la gestion des fenêtres.
triggers:
- trigger: state
entity_id:
- binary_sensor.open_sensor_group_fenetre
conditions:
- condition: or
conditions:
- condition: state
entity_id: input_select.mode_volet_chambre_parentale
state: Automne
- condition: state
entity_id: input_select.mode_volet_chambre_parentale
state: Hiver
- condition: template
value_template: "{{trigger.to_state.state != 'unavailable'}}"
actions:
- if:
- condition: template
value_template: "{{ trigger.to_state.state == \"on\" }}"
then:
- action: script.app_custom_awtrix
data:
application: Windows
icon: "19064"
message: Ouvert
else:
- action: script.app_custom_awtrix
data:
application: Windows
delete: true
mode: single