Distributeur de nourriture pour chat ESPHOME

Bonjour à tous,

Pour les geek qui aime tout domotiser, j’ai trouvé un tuto pour domotiser le distributeur à chat Petoneer Nutri.

Il faut flasher la puce TYEW3S. J’ai réalisé la modification aujourd’hui, cela reste assez simple. Pour le flash j’ai utilisé le programme ESPHOME sous windows donc j’ai ajouté la configuration sous esphome pour générer le firmware et ensuite flasher le distributeur sous windows.

Le distributeur permet donc avec des automatisations de distribuer automatiquement les croquettes et également recevoir les notifications en fonction du status du distributeur quand il manque des croquettes, quand il y a une erreur du distributeur ou si l’appareil est vide.

Tuto russe

Achat en France livraison en 48h.

macway

esphome:
  name: petoneer_nutri
  platform: ESP8266
  board: esp01_1m
  on_boot:
    priority: -10
    then:
      - script.execute: detection 

wifi:
  ssid: !secret ssid
  password: !secret wpa2
  fast_connect: true

captive_portal:

logger:

api:

ota:

status_led:
  pin: 
    number: 4

Commutateur de broche de distribution d’ alimentation

switch:
  - platform: gpio
    pin: 
      number: 5
      inverted: true
    id: petoneer_nutri_feed_button

Lorsqu’il est déclenché, attendez 5 secondes, et si pendant 5 secondes, gpio14 est éteint. state, puis définissez le statut « Alimentation réussie »

on_turn_on:
  then:
  - delay: 5s
  - if:
      condition:
        for:
          time: 5s
          condition:
            binary_sensor.is_off: petoneer_nutri_feed_status
      then:
          - logger.log: "Alimentation réussie"
          - text_sensor.template.publish:
              id: petoneer_nutri_status
              state: "Alimentation réussie"

Nous attendons 10 secondes, et si l’état est « Niveau d’alimentation faible », mettez à jour le statut sur « Alimentation réussie »

  - delay: 10s
  - if:
      condition:
          - text_sensor.state:
              id: petoneer_nutri_status
              state: "Niveau d'alimentation faible"
      then:
        - logger.log: "Alimentation réussie avec un niveau d'alimentation faible"
        - text_sensor.template.publish:
            id: petoneer_nutri_status
            state: "Alimentation réussie"

Bouton de distribution d’alimentation de l’interface utilisateur, allume la broche gpio5 pendant 150 ms puis s’éteint

  - platform: template
    name: "petoneer_nutri_feed"
    icon: "mdi:cat"
    turn_on_action:
    - switch.turn_on: petoneer_nutri_feed_button
    - delay: 150ms
    - switch.turn_off: petoneer_nutri_feed_button

Buzzer relay

  - platform: gpio
    pin: 
      number: 16
      inverted: true
    id: petoneer_nutri_buzzer
    name: petoneer_nutri_buzzer
    icon: "mdi:volume-high"

Suivi de l’état

binary_sensor:
  - platform: gpio
    pin: 
      number: 14
      inverted: true
    id: petoneer_nutri_feed_status

Lorsqu’il est déclenché dans la plage de 990-1100ms, le statut « Niveau d’alimentation faible »

on_click:
- min_length: 990ms
  max_length: 1100ms
  then:
    - if:
        condition:
          not:
             - text_sensor.state:
                 id: petoneer_nutri_status
                 state: "Niveau d'alimentation faible"

        then:
          - logger.log: "Niveau d'alimentation faible"
          - text_sensor.template.publish:
              id: petoneer_nutri_status
              state: "Niveau d'alimentation faible"

Lorsqu’il est déclenché dans la plage 1400-3100ms, l’état" Erreur de livraison d’alimentation "

- min_length: 1400ms
  max_length: 3100ms
  then:
    - logger.log: "Erreur de livraison d'alimentation"
    - text_sensor.template.publish:
        id: petoneer_nutri_status
        state: "Erreur de livraison d'alimentation"

Exécuter un script de détection pour suivre l’état

on_state:
  then:
    - delay: 5s
    - script.execute: detection    

Text status sensor for UI HA

text_sensor:
  - platform: template
    name: "petoneer_nutri_status"
    icon: "mdi:information-outline"
    id: petoneer_nutri_status

Script de suivi de l’état basé sur le script gpio14

script:
  - id: detection
    then:
    - if:
        condition:
          for:
            time: 5s
            condition:
              binary_sensor.is_off: petoneer_nutri_feed_status
        then:
            - logger.log: "Status OK"
            - text_sensor.template.publish:
                id: petoneer_nutri_status
                state: "OK"
    - if:
        condition:
          for:
            time: 5s
            condition:
              binary_sensor.is_on: petoneer_nutri_feed_status
        then:
            - logger.log: "Alimentation, erreur"
            - text_sensor.template.publish:
                id: petoneer_nutri_status
                state: "Alimentation, erreur"
3 « J'aime »