Notification personnalisée IOS Compagnon

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) }}"

Hello,

Donc ça fonctionne dans les notifications persistentes :

Et je n’ai plus aucune erreur dans les logs de HA
Mais je ne vois pas l’affichage du chiffre en mode random…

C’est quoi la prochaine étape ?

@Clemalex

Alors j’ai modifié l’automation comme ça et ça m’affiche bien une notification sur mon iphone avec le titre et le message. Mais pas de bouton actionnable pour l’instant

- id: '1608586806497'
  alias: Notification de définition de l'heure de chauffe de la sdb le matin
  trigger:
  - platform: time
    at: input_datetime.wake_time_2
  action:
  - service: notify.mobile_app_nikos_iphone
    data:
      title: Chauffage Salle de bain
      message: On chauffe à quelle heure demain ?
      data:
        push:
        category: Chauffage_Salle_de_bain_Matin
  mode: single


Tu as bien synchroniser dans la configuration de l’application ?
https://forum.hacf.fr/t/notification-personnalisee-ios-compagnon/2175/9?u=clemalex