esphome: name: seed-modbus friendly_name: seed modbus on_boot: then: - output.turn_on: output1 esp32: board: esp32-s3-devkitc-1 framework: type: arduino # Enable logging logger: level: DEBUG # Enable Home Assistant API api: encryption: key: "6wSuBPbrOHBZNl2RG7Dha1yjHddwhVbNK82ET4Pcz3I=" ota: - platform: esphome password: "6ce9a2a585eb85f9a150d88e6c676483" wifi: ssid: !secret wifi_ssid password: !secret wifi_password uart: id: uart_bus_a # TX/RX carte : rx_pin: GPIO44 tx_pin: GPIO43 # RX=D4 -> GPIO5, TX=D5 -> GPIO6 # rx_pin: GPIO5 # tx_pin: GPIO6 # RX=D7, TX=D6 baud_rate: 4800 output: - platform: gpio id: output1 pin: number: GPIO3 mode: output: True modbus: id: modbus1 uart_id: uart_bus_a modbus_controller: - id: modbus_controller1 address: 1 modbus_id: modbus1 update_interval: 2s # select: # - platform: modbus_controller # name: "Modbus Select Register 0" # address: 1 # value_type: U_WORD # optionsmap: # "Zero": 0 # "One": 1 # "Two": 2 # "Three": 3 # select: # - platform: modbus_controller # name: "Modbus Select Register 1" # address: 1 # value_type: U_WORD # optionsmap: # "Zero": 0 # "One": 1 # "Two": 2 # "Three": 3 # lambda: |- # ESP_LOGD("Reg1000", "Received value %lld", x); mqtt: broker: "pc-raymond-wifi.home" id: mqtt1 log_topic: rbo sensor: - platform: modbus_controller id: sensor1 modbus_controller_id: modbus_controller1 name: "Wind speed" device_class: wind_speed register_type: holding address: 0 unit_of_measurement: "m/s" value_type: U_WORD accuracy_decimals: 1 filters: - multiply: 0.1 - max: window_size: 5 send_every: 5 - exponential_moving_average: alpha: 0.1 send_every: 12 - platform: template id: mqtt_wind_speed lambda: |- ESP_LOGD("Reg1000", "Received value %lld", id(sensor1).state); return id(sensor1).state; on_value: then: - mqtt.publish: topic: "home/wind_speed" payload: !lambda 'return to_string(id(mqtt_wind_speed).state);'