Redigering af YAML koden – så den virker med sensoren

Nu er du klar til at redigere din yaml kode, så den kan virke med din sensor.
yaml koden er der hvor du fortæller ESP Boardet hvad det skal gøre, så her kan man nemt komme til at lave en lille tastefejl, men der er lettere end det ser ud ved første øjekast.

For at rette i yaml koden skal du vælge dit ESP Board i ESPHome menuen og trykke på Edit:

Hvis du har fulgt min vejledning, ser din kode sådan ud, selvfølgelig er “name” forskelligt fra gang til gang:

substitutions:
name: esphome-web-fd2d78
friendly_name: Test

esphome:
name: ${name}
friendly_name: ${friendly_name}
min_version: 2024.6.0
name_add_mac_suffix: false
project:
name: esphome.web
version:
‘1.0’

esp32:
board: esp32-c3-devkitm-1
framework:
type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:
– platform: esphome

# Allow provisioning Wi-Fi via serial
improv_serial:

wifi:
# Set up a wifi access point
ap:
{}

# In combination with the `ap` this allows the user
# to provision wifi credentials to the device via WiFi AP.

captive_portal:

dashboard_import:
package_import_url: github://esphome/firmware/esphome-web/esp32c3.yaml@main
import_full_config:
true

# Sets up Bluetooth LE (Only on ESP32) to allow the user
# to provision wifi credentials to the device.

esp32_improv:
authorizer: none

# To have a “next url” for improv serial
web_server:

yaml kode kan man enten lave selv eller finde på Internettet. Jeg vil anbefale, at man starter med at finde koderne på Internettet, indtil man er blevet fortrolig med det man laver og så kan man begynde, at udvikle sin egen. Det er faktisk ret sjovt, når man først kommer i gang med sin egen kode.

Bemærk. Koden jeg viser dig herunder passer til et D1 mini ESP Board.

Her får du den yaml kode jeg har brugt til KY-037 lyd-sensoren:

Den skal indsættes, under den sidste linje vist i ovenstående – husk et linjeskift.

globals:

  - id: esphome_sensitivity
    type: float
    initial_value: '36.5'
    restore_value: yes

  - id: esphome_volume
    type: int

sensor:
  - platform: adc
    pin: A0
    id: esphome_db
    device_class: signal_strength
    name: "Db SoundEsp"
    icon: "mdi:volume-vibrate"
    unit_of_measurement: "db"
    update_interval: 2s
    raw: true
    filters:
      - lambda: |-
          unsigned int sample;
          unsigned long startMillis= millis(); 
          float peakToPeak = 0; 
          unsigned int signalMax = 0;
          unsigned int signalMin = 1024;
          while (millis() - startMillis < 500) {
            sample = analogRead(A0);
            if (sample < 1024){
                if (sample > signalMax){
                    signalMax = sample;
                }
                else if (sample < signalMin){
                    signalMin = sample;
                }
              }
          }
          peakToPeak = map((signalMax - signalMin),1,1024,1.5,1024);
          id(esphome_volume) = peakToPeak;
          float state = id(esphome_sensitivity)*log10(peakToPeak)+15;  
          return(state);

  - platform: template
    name: "Volume SoundEsp"
    icon: "mdi:volume-high"
    unit_of_measurement: "%"
    update_interval: 2s
    lambda: return(map((id(esphome_db).state),15,150,0,100));

  - platform: template
    name: "RAW SoundEsp"
    icon: "mdi:volume-source"
    unit_of_measurement: "%"
    update_interval: 2s
    lambda: return(map(id(esphome_volume),1,1024,0,100));

number:
  - platform: template
    id: sensitivity_slider
    name: "Sensitivity SoundEsp"
    icon: "mdi:knob"
    update_interval: 5s
    initial_value: "36.5"
    step: 0.1
    min_value: 20
    max_value: 40
    mode: slider
    set_action:
      then:
        - lambda:  id(esphome_sensitivity) = x;


Der hvor du samler koden, vil det altså se sådan ud:

esp32_improv:
  authorizer: none

# To have a "next url" for improv serial
web_server:

globals:

  - id: esphome_sensitivity
    type: float
    initial_value: '36.5'
    rest

Nu er du færdig med koden og kan trykke på:

  1. Save – eller
  2. Install

Ved Install kan du vælge Wirelessly

Når du får lilla tekst til sidst, er det lykkedes og du kan trykke STOP.

Din ESP er nu kodet med yaml kode der passer til sensoren. Den vil nu fremgå i din Home Assitant.

Tryk på Indstillinger og derefter på ESPHome:

Hvis du har flere enheder, så vælg din nye ESP enhed på listen.

Her er det færdige resultat, hvor du på slideren kan sætte følsomheden af mikrofonen.

Enheden er nu klar til at komme i Homey.

Skriv en kommentar

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *