Notification personnalisée IOS Compagnon

System Health

version 2021.1.1
installation_type Home Assistant Container
dev false
hassio false
docker true
virtualenv false
python_version 3.8.7
os_name Linux
os_version 5.4.83-v7l+
arch armv7l
timezone Europe/Paris
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Lovelace
dashboards 1
mode storage
views 8
resources 0

*** HA 2021.1.1 on RPI4 4 GB under docker***

Actionable notifications IOS companion

Bonjour,

Je cherche à créer des notifications actionnables sur mon iPhone.
Je m’explique :
Je voudrais que mon téléphone, où l’application HA est installée, m’envoie une notification chaque soir à 20h pour régler l’heure de programmation du chauffage de ma sdb car je ne me lève jamais à la même heure le matin…

Déjà je remercie @cob94440 et @Clemalex grâce à qui j’ai pu créer ceci :

Du coup j’aurai aimé pouvoir utiliser le réglage avec cette carte directement dans la notifications si c’est possible.

J’ai essayé de suivre ce que j’ai trouvé sur le site de HA mais je suis perdu…

Merci pour votre aide et vos retours !

Nicolas

Bonjour,

Et pourquoi pas une automatisation basée sur le sensor next alarm de ton telephone qui modifierait l’heure du chauffage de la salle de bains avec eventuellement un petit calcul.
du genre si ton reveil est à 6h, tu programmes le chauffage 30 mins avant.

De cette facon, la seule chose que tu as a faire : changer l’heure de ton réveil sur ton tel.
Evidemment, e n’est possible que si tu te réveilles avec l’alarme de ton téléphone :wink:

Une idée sans trop y réfléchir :wink:

1 « J'aime »

Hello,

Yes l’idée est intéressante mais comme tu l’as dit je n’utilise pas le réveil de mon téléphone…
J’y avais pensé…

Mais je garde l’idée dans un coin de me tête quand même ! :+1:

Merci encore !

Dans ce cas :wink:

Petite suggestion pour la carte « Activé à » et Heures / Minutes, pourquoi ne pas avoir utilisé un input_datetime ?

Pour la notification, tu souhaites juste une notification qui te permettrait de modifier l’heure c’est ca ? Je ne crois pas que tu puisses modifier directement mais tu pourras ouvrir ton dashboard ou ta vue correspondante
ou alors lancer un script/des scripts, tu peux aller jusqu’à 3 actions sur une notification actionnable :wink:

Je n’ai pas de pomme à la maison…mais tu peux regarder ceci pour t’aider déjà

1 « J'aime »

@pepite si si, on peux, d’après la documentation de l’application. Seul les iOs ont la possibilité de saisir du texte apparemment.

@Nikos3296 la documentation est bien faite, où bloques tu ?

Je n’ai pas d’iOS donc je ne peux pas tester mais seulement t’aiguiller.
De ce que je lis et comprends, pour ton cas je ferais :

  1. Edition du fichier configuration.yaml pour ajouter la catégorie qui correspond à ton besoin, ici chauffage_sdb
ios:
  push:
    categories:
      - name: Chauffauge_Salle_de_bain_Matin
        identifier: 'chauffage_salle_de_bain_matin'
        actions:
          - identifier: 'NE_PAS_CHAUFFER_DEMAIN'
            title: 'Pas demain !'
            activationMode: 'background'
            authenticationRequired: false
            destructive: true
            behavior: 'default'
          - identifier: 'DEFINITION_DE_L_HEURE'
            title: 'Définir l'heure'
            activationMode: 'background'
            authenticationRequired: false
            destructive: false
            behavior: 'textInput'
            textInputButtonTitle: 'Heure :'
            textInputPlaceholder: '06:15'
  1. Ajout d’une automatisation (bon je travaille en YAML, pas en Node-Red :wink:) qui affiche la notification le soir :
automation:
  - alias: Notification de définition de l'heure de chauffe de la sdb le matin
  - trigger:
      platform: time
      at: input_datetime.definition_chauffage_sdb
    action:
      service: notify.<ton_iOS>
      data:
        title: "Chauffage Salle de bain"
        message: "On chauffe à quelle heure demain ?"
        data:
          push:
            category: "chauffage_salle_de_bain_matin"
  1. Ajout de deux automatisations suivant la réponse :
automation:
  - alias: 'Réponse notification : définition de l'heure'
    trigger:
      platform: event
      event_type: ios.notification_action_fired
      event_data:
        actionName: DEFINITION_DE_L_HEURE
    action:
      - service: input_select.select_option
        data:
          entity_id: input_select.<heures_chauffage_sdb>
          option: "{{ trigger.event.data['textInput' ].split(':')[0] }}"
      - service: input_select.select_option
        data:
          entity_id: input_select.<minutes_chauffage_sdb>
          option: "{{ trigger.event.data['textInput' ].split(':')[1] }}"
  - alias: 'Réponse notification : Pas demain'
    trigger:
      platform: event
      event_type: ios.notification_action_fired
      event_data:
        actionName: NE_PAS_CHAUFFER_DEMAIN
    action:
        <logique pour désactiver le booléen>
  1. On vérifie la configuration du serveur HA et on redemarre
  2. On va dans l’application iOS dans les paramètres, partie Notification et on synchronise (vu ça sur le forum EN)
  3. On joue avec l’input_datetime.definition_chauffage_sdb pour faire péter la notification (ou on déclenche directement l’automatisation)
  4. On fait la mise au point.

Je pourrais pas plus t’aider, je n’ai pas d’iOS.

1 « J'aime »

Euh clairement j’ai lu tous ces sujets et regardé la vidéo postée par @pepite
D 'autant que je n’ai pas très bien compris le text_input…

Mais là, concrètement je ne sais même pas par où commencer…
Faut que je fasse ça d’abord ?

ios:
  push:
    categories:
      - name: Alarm
        identifier: 'alarm'
        actions:
          - identifier: 'SOUND_ALARM'
            title: 'Sound Alarm'
            activationMode: 'background'
            authenticationRequired: true
            destructive: true
            behavior: 'default'
          - identifier: 'SILENCE_ALARM'
            title: 'Silence Alarm'
            activationMode: 'background'
            authenticationRequired: true
            destructive: false
            behavior: 'textInput'
            textInputButtonTitle: 'Silencio!'
            textInputPlaceholder: 'Placeholder'

En adaptant avec mes mots bien sur !

@Clemalex alors j’ai mis ça dans mon configuration.yaml, reload ha, mis l’automation présente dans l’exemple…
J’ai bien la notif de l’automation mais je ne vois pas les choix sound_alarm ou silence_alarm…

Je viens de mettre à jour mon post plus haut.

Regarde et tiens nous au courant :+1:

pour les choix il me semble que c’est la partie que j’ai lu sur le forum…

il faut dire à l’application Compagnon de se synchroniser pour récupérer les catégories…
source

Je te remercie ! Je vais tenter ça ! Et si j’y arrive, je te ferai la conversion en nod-red :yum: !

Hello @Clemalex

Alors j’ai testé ce que tu m’as proposé mais j’ai une erreur quand je check la config (de syntaxe probablement) mais je ne vois pas où…

Error loading /config/configuration.yaml: mapping values are not allowed here
  in "/config/configuration.yaml", line 96, column 17

La ligne 96 est : :

          option: "{{ trigger.event.data["textInput"].split(':')[0] }}"

Concernant ceci :

    action:
        <logique pour désactiver le booléen>

Je dois mettre quoi ?

Merci d’avance pour ton aide !

Pour l’instant rien… :innocent:

Tu mets une notification persistente (fait une recherche ici sur le mot clé persistent_notification).

Si c’est moi qui suis allé trop vite. Le problème est dans la délimitation.

Remplace :

option: "{{ trigger.event.data["textInput"].split(':')[0] }}"

Par

option: "{{ trigger.event.data['textInput'].split(':')[0] }}"

Un message a été scindé en un nouveau sujet : Prochaine alarme depuis l’application

Hello,

Toutes tes automations sont dans le configuration.yaml ou tu les as mises dans automation.yaml ?

Ça dépend de ta configuration. Dans ton fichier configuration.yaml tu as quoi en face de la ligne automation: ?

Le !include automations.yaml

Donc tu les mets dans ce fichier :+1: automations.yaml

Mais dans un premier temps simplifie ou vérifie seulement le déclenchement des automatisations. Car ton code n’est peut être pas en face du code que j’ai mis (et que je n’ai pas testé !)

Le problème c’est que mon configuration.yaml est valide d’après HA mais je me prends une erreur

Je pense qu’il y a un problème à la base dans mes fichiers .yaml mais je ne sais pas lequel…
En plus je suis souvent parti dans l’optique de faire mes automatisations via node red…

Qu’est-ce que je peux t’envoyer pour partager mes config ?

Déjà, voilà mon configuration.yaml :



# Configure a default setup of Home Assistant (frontend, api, etc)
# Example configuration.yaml entry
default_config:

# Text to speech sensor:
tts:
  - platform: google_translate

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
sensor: !include sensor.yaml

discovery:

mqtt:
  discovery: true
  discovery_prefix: homeassistant
mqtt_statestream:
  base_topic: homeassistant
  publish_attributes: true
  publish_timestamps: true
mqtt_eventstream:
  publish_topic: localhost

ffmpeg:

# Example configuration.yaml entry
alarm_control_panel:
  - platform: manual
    name: Home Alarm
#    code: '3296'
    arming_time: 0
    delay_time: 0
    trigger_time: 0
    disarmed:
      trigger_time: 0
    armed_home:
      arming_time: 0
      delay_time: 0

owntracks:
  max_gps_accuracy: 200
  waypoints: true
  mqtt_topic: "owntracks/#"

ios:
  push:
    categories:
      - name: Chauffauge_Salle_de_bain_Matin
        identifier: 'chauffage_salle_de_bain_matin'
        actions:
          - identifier: 'NE_PAS_CHAUFFER_DEMAIN'
            title: 'Pas demain !'
            activationMode: 'background'
            authenticationRequired: false
            destructive: true
            behavior: 'default'
          - identifier: 'DEFINITION_DE_L_HEURE'
            title: 'Définir heure'
            activationMode: 'background'
            authenticationRequired: false
            destructive: false
            behavior: 'textInput'
            textInputButtonTitle: 'Heure :'
            textInputPlaceholder: '06:15'

Y’a-t-il qqch qui ne va pas ?

Merkiii

Non le problème indiquer est dans les actions définie.

C’est pour ça que pour commencer il faut mettre un truc basique car les actions c’est secondaire.

Par exemple, remplace les actions par :

   - service: persistent_notification.create
      data:
        message: "Toast"
        title: "Titre Toast"
        notification_id: "{{ (range(1, 9999)|random) }}"