Automatisation mensuelle

Bonjour à tous,

Je cherche à réaliser une automatisation mensuelle, plus précisément le premier dimanche de chaque mois.

Je sais faire chaque dimanche mais je ne sais pas comment limiter au premier.

J’ai fait des recherches sans succès dans le forum.
Quelqu’un a-t-il une solution ?

Merci,

Par example comme ça pour que décembre…pour toi, changer pour %d ==1

condition:
  condition: template
  value_template: '{{ now().strftime("%m") == "12" }}'

Le premier dimanche du mois va tomber forcément entre le 1er et le 7
Donc, je ferais un truc comme ca :

condition:
  condition: template
  value_template: '{{ now().strftime("%d")|int <= 7 and now().strftime("%w") |int == 0 }}'

le strftime("%w") renvoyant un nombre entre 0 et 6 correspondant au jour de la semaine (0=Dimanche)

Ok merci je vais essayer ça :slight_smile:

A la réflexion, on peut même virer la premiere condition, celle qui vérifie que le jour du mois est >= 1… C’est toujours vrai ! :smiley:
J’ai édité mon message du dessus

Un automatisme commence par un déclencheur, dans votre cas par quoi est-il lancé?

p.e. time (midnight)

Oui une bonne idée, merci.

Encore un interrogation,

est-ce que ceci si j’ai :

alias: Reset 1 jour du mois
description: ""
trigger:
  - platform: time
    at: "00:05:00"
condition:
  - condition: template
    value_template: "{{ now().strftime(\"%d\")|int == 1 }}"
action:
  - service: knx.send
    data:
      address: 1/1/170
      type: "true"
mode: single

va envoyer une commande knx le premier jour du mois ou de la semaine à +/- minuit ?
C’est pour mon relevé mensuel.

{{ now().strftime("%d") }}

sans (!!) les \ …te donne le jour d’aujourd’hui, donc 10
Si tu va comparer avec 1…c’est que la première jour du mois qui te donne ‹ true ›

Salut,

sinon il y a une alternative au format de date un peu plus graphique, c’est les évènements répétitifs dans le calendrier local, il est possible de de mettre une répétition mensuelle, en sélectionnant le premier dimanche du mois en cours pour en mettant répétition mensuelle on peut sélectionner la fréquente du 1er dimanche de chaque mois (la traduction est limite).
Et ensuite dans l’automatisation un trigger sur le calendrier.

Merci à vous deux.
Je programme et on verra le 1/03.

Mais question subsidiaire:
la programmation

'{{ now().strftime("%m") == "12" }}'c’est en quel langage et ou puis-je en apprendre un peu plus.

Question langage c’est OK, du python… et j’ai trouvé de quoi apprendre.

Mais voilà je poursuis mon automatisme pour sauver une valeur dans un input_number créé:

alias: "Save KWh 1er jour du mois "
description: KWh T1+T2 in mois
trigger:
  - platform: state
    entity_id:
      - binary_sensor.minuit
condition:
  - condition: template
    value_template: "{{ now().strftime(\"%d\")|int == 1 }}"
action:
  - service: input_number.set_value
    data:
      value: sensor.pac_kwh_t1_t2
    target:
      entity_id: input_number.pac_kwh_mois
mode: single

mais en forçant l’exécution:

expected float for dictionary value @ data[‹ value ›]. Got None

Pour info:
La valeur à sauvegarder:

  # PAC KWh T1+T2 Wh-> KWh
knx:
sensor:
    - name: "PAC KWh T1+T2"
      state_address: "6/3/39"
      type: active_energy_kwh
      sync_state: every 60

Et à stocker dans:

# Store Mois
input_number:
  pac_kwh_mois:
  name: mois
  initial: 1
  min: 1
  max: 50000
  step: 1 

Merci pour l’aide…

Salut @NicNac

Dans la partie action, la clé « value » est à modifier :

Merci Herbs,

mais encore un bug:
Message malformed: extra keys not allowed @ data[‹ action ›][0][‹ target ›][‹ value ›]

Si tu mets ça :

{{ states('sensor.pac_kwh_t1_t2') }}

Dans les outils de dev, ça donne quoi ?

expected float for dictionary value @ data[‹ value ›]. Got None

et avec ça :

{{ states('sensor.pac_kwh_t1_t2') | float }}

Si ça fonctionne mieux comme ça dans les outils de dev, tu pourras reporter dans l’automation.

Je te remercie de m’aider.
Depuis que j’ai sauver en utilisant l’interface YAML plutôt que l’interface utilisateur dans la vue des automatismes l’automatisme que je configure a disparu. Via File Editor il est bien là Et j’ai donc manuellement modifié comme proposé.:

- id: '1676023307810'
 alias: 'Save KWh 1er jour du mois '
 description: KWh T1+T2 in mois
 trigger:
 - platform: state
   entity_id:
   - binary_sensor.minuit
 condition:
 - condition: template
   value_template: '{{ now().strftime("%d")|int == 22   }}'
 action:
 - service: input_number.set_value
   data:
     value: sensor.pac_kwh_t1_t2
   target:
     #value: 123
     value_template: {{ states('sensor.pac_kwh_t1_t2') | float }}
   mode: single

Mais à la vérification de la config j’ai maintenant:

Error loading /config/configuration.yaml: invalid key: « OrderedDict([(« states(‹ sensor.pac_kwh_t1_t2 ›) | float », None)]) »
in « /config/automations.yaml », line 67, column 0
Je suis un nouvel utilisateur de HA donc pour comprendre, …

C’est copié/collé « brut », tu n’as rien modifié ?

Car là, l’indentation est mauvaise à plusieurs reprise.

Ça devrait ressembler à ça normalement :

- id: '1676023307810'
  alias: 'Save KWh 1er jour du mois '
  description: KWh T1+T2 in mois
  trigger:
    - platform: state
      entity_id:
        - binary_sensor.minuit
  condition:
    - condition: template
      value_template: '{{ now().strftime("%d")|int == 22   }}'
  action:
    - service: input_number.set_value
      data:
        value: sensor.pac_kwh_t1_t2
      target:
        #value: 123
        value_template: {{ states('sensor.pac_kwh_t1_t2') | float }}
  mode: single