Нужна помощь в корректировке кода

Тема в разделе "ESP8266, ESP32", создана пользователем OLEGPOL, 15 фев 2026.

  1. OLEGPOL

    OLEGPOL Нуб

    Приветствую всех участников форума.
    Имеется модуль ESP8266, с прошивкой ESPHome. Рабочий код прошивки принимает код от удалённого радиотермометра в формате BIN и DEC. Код формата DEC выводится на WEB панель homeassistant. Мне необхоим пересчет кода DEC чтоб была читаема температура . Формула пересчета: (код - 300000-500) \ 10. Ребят поскажите как внести либо поправить код. Я знаю что нужно вносить изменения в раздел <remote_receiver> и далее в функцию <Lambda> , но как это сделать я не понимаю.

    Код (C++):
    esphome:
      name: esphome-web-58e44f
      friendly_name: ESPHome Web 58e44f
      min_version: 2025.11.0
      name_add_mac_suffix: false

    esp8266:
      board: nodemcuv2
      restore_from_flash: True
     
    preferences:
      flash_write_interval: 300s

    # Enable logging
    logger:

    # Enable Home Assistant API
    api:

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

    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password

    captive_portal:

    one_wire:
      - platform: gpio
        pin: GPIO2

    sensor:
      - platform: dallas_temp
        name: "Температура дома"
        update_interval: 10s
        address: 0x5d181e3e31672128
       #- platform: dallas_temp
       # name: "Temperature #2"
       # address: 0xDD0000031EFB0428
       
      - platform: adc
        pin: GPIO17
        name: "Напряжение питания"
        update_interval: 2s
        unit_of_measurement: "V"
        accuracy_decimals: 2
        filters:
        - multiply: 3.27
       
    switch:
      - platform: gpio
        name: "Relay 1"
        pin: GPIO12
        id: 'living1'
        restore_mode: RESTORE_DEFAULT_OFF

      - platform: gpio
        name: "Relay 2"
        pin: GPIO14
        id: 'living2'
        restore_mode: RESTORE_DEFAULT_OFF
       
    remote_receiver:
    - pin:
        number: D3
        mode: INPUT_PULLUP
        inverted: True
      dump: rc_switch
      tolerance: 60%
      filter: 4us
      idle: 4ms
      buffer_size: 2kb
      on_rc_switch:
        #- logger.log:
            #format: "on_rc_switch: %i %llu"
            #args: [x.protocol, x.code]
          then:
          - lambda: |-
              char str[20];
              sprintf(str, "%llu", x.code);
              id(rf_code).publish_state(str);
          #- lambda: |-
             # ESP_LOGI("rc_switch", "Received: %ld, Protocol: %d, Bits: %d", x.code, x.protocol, x.bits);
             #// Здесь можно конвертировать, например, x.code
             
    text_sensor:
      - platform: template
        name: "Температура улица"
        id: rf_code
        icon: "mdi:thermometer"
             
    binary_sensor:
      - platform: template
        name: "Test Door"
        device_class: door
        id: testdoor

      - platform: remote_receiver
        name: "Test Door Open"
        internal: true
        on_press:
          then:
            - binary_sensor.template.publish:
                id: testdoor
                state: ON
            - switch.toggle: living1    # реле <Relay 1> вкл/выкл одной кнопкой
            #- switch.turn_on: living1  # реле <Relay 1> вкл разными кнопками
        rc_switch_raw:
          code: '100001111001000000110001'
          protocol: 6
        filters:
          - delayed_off: 100ms
       
      - platform: remote_receiver
        name: "Test Door Close"
        internal: true
        on_press:
          then:
            - binary_sensor.template.publish:
                id: testdoor
                state: OFF
            - switch.toggle: living2     # реле <Relay 2> вкл/выкл одной кнопкой
            #- switch.turn_off: living2  # реле <Relay 2> выкл разными кнопками
        rc_switch_raw:
          code: '100001111001000000110010'
          protocol: 6
        filters:
          - delayed_off: 100ms
         
         

         

     
       
       
         
           








               
       








     
     
    Последнее редактирование: 15 фев 2026