Garder en mémoire l'état d'un switch command_line

Mon problème

Bonjour,
J’ai créé des switchs pour piloter des prises DIO comme ceci :

  switches:
    prise_chacon_1:
      command_on: "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /config/ssh/id_rsa pi@192.168.0.xx 'sudo chacon_send 0 xxxxxx 0 on'"
      command_off: "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /config/ssh/id_rsa pi@192.168.0.xx 'sudo chacon_send 0 xxxxxx 0 off'"
      friendly_name: Prise lightbox salon

Je souhaiterais savoir quelle est la meilleure méthode pour garder en mémoire l’état, allumé, éteins.
A priori l’état qui est disponible par défaut ne reste pas en mémoire (si on redémarre HA ?).
Je pensais utiliser des input_boolean mais je ne sais pas qu’elle est la meilleure manière ?
Ou bien s’il y a mieux.

Merci d’avance.

Ma configuration

System Health

version core-2022.2.9
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.7
os_name Linux
os_version 5.4.83-v7l+
arch armv7l
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 4998
Installed Version 1.19.3
Stage running
Available Repositories 1066
Downloaded Repositories 2
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Raspbian GNU/Linux 10 (buster)
update_channel stable
supervisor_version supervisor-2022.01.1
docker_version 20.10.2
disk_total 109.8 GB
disk_used 11.3 GB
healthy true
supported failed to load: Unsupported
supervisor_api ok
version_api ok
installed_addons File editor (5.3.3), Samba share (9.5.1), Let’s Encrypt (4.12.0), Terminal & SSH (9.3.0), Mosquitto broker (6.0.1)
Lovelace
dashboards 1
resources 1
views 1
mode storage

Salut,

j’avais fait ça comme ça avec un input boolean.
Mais je ne les contrôlais pas en ligne de commande, je ne sais pas comment tu peux intégrer le contrôle des boolean dans les changements d’état…

input_boolean:
  dio1:
    icon: mdi:car

switch:
  - platform: template
    switches:
      dio1:
        value_template: "{{ is_state('input_boolean.dio1', 'on') }}"
        friendly_name: "Prise M1"
        turn_on:
          - service: input_boolean.turn_on
            entity_id: input_boolean.dio1
          - service: rfxtrx.send
            data:
              event: 071001084D010100
        turn_off:
          - service: input_boolean.turn_off
            entity_id: input_boolean.dio1
          - service: rfxtrx.send
            data:
              event: 071001094D010000

Comme le suggère @AlexHass, si tu veux une mémorisation après redémarrage, passe par un input_boolean.

Tu déclares un input_boolean puis tu lui associe une ou plusieurs automatisation :

Sur mise à 1 : envoi de la commande on via le service switch.turn_on sur l’entité switch.prise_chacon_1
Sur mise à 0 : envoi de la commande off via le service switch.turn_off sur l’entité switch.prise_chacon_1

C’est ce que je ferais.

@Clemalex ah oui c’est évident j’avais même pas pensé à le faire dans ce sens là :slight_smile:

1 « J'aime »

Merci,
Comment on associe concrètement l’input à une ou plusieurs automatisations ?

Bonjour @cbroissa-github
Tu as plusieurs manières (moi j’utilise node-red pour mes automatisations, mais je suppose que le principe est le même pour les automatisations via HA).

En début d’automatisation, tu dois définir un trigger (déclencheur, qui lancera l’automatisation) et ensuite des conditions, qui devront être replies pour que l’automatisation soit effectivement accomplie.
En gros, si « trigger = vrai », alors vérifies que les « conditions = vrai », et si oui, alors fais « actions ».

Donc, là, tu pourras juste mettre en trigger « input_boolean = on » et action switch.turn_on ton switch chacon. et l’inverse si tu passes en off.
Pour rester homogène, il faut ensuite que tu ne commandes cette prise qu’en utilisant l’input_boolean, et plus le service switch.turn_on, sinon tu risques d’avoir des incohérences entre l’état réel de la prise et celui de l’input_boolean. Attention donc si tu utilises une télécommande dio en direct.

Ou bien, si tu as une remontée d’état réel des prises chacon (via Wifi peut-être, via RF non), tu peux toujours remettre un autre automatisme qui mettra l’input boolean dans l’état observé de la prise.

1 « J'aime »

Par contre je commande par la voix ces prises donc là je suis coincé avec ta solution ?
Mais si je fais le contraire, une automation qui passe l’input boolean à on quand la prise passe de off à on et inversement, ça sera toujours bon non ?

Oui, dans ce cas là, l’inverse est peut-être plus adapté et devrait bien marcher aussi ; car je ne sais pas comment les input_boolean s’intègre bien à la voix (google ou amazon).