Search
Write a publication
Pull to refresh
1
0
Евгений @pruwait

User

Send message

Первое, что пришло в голову при прочтения статьи. Лет 5 назад к своему меркурию прикрутил esp8266 с can-трансивером, залил еsphome и вижу в ha ровно то, что считает счетчик. Все платы куплены на али и стоили рублей 300 в сумме.

Отдельная сложность с подключением к опломбированному счётчику.

Вызываем электриков для переопломбирования с формулировкой "нужно подтянуть контакты"

Приезжают электрики, заполняют акт снятия пломб, подключаем за пару минут 4 проводка к клеммам данных от счетчика, электрики опломбируют снова.

Traccar отправляет координаты по mqtt на сервер умного дома... У меня тоже сейчас именно так работает. Но в последнее время думаю об избыточности этого решения. Ведь трекеры телтоника с последней прошивкой умеют отправлять свои координаты по mqtt без traccar.

После реализации подобного импульсного счётчика, стал замечать о серьёзную погрешность, набегающую в ошибку.

Проблема в дребезге контактов геркона.

Подбирал несколько месяцев фильтр в строке 72

#снятие показаний со счетчика через датчик импульсов IN-Z61
#коричневый ------------ GND
#зеленый    --+-- 10k -- VCC 3v3
#.            |
#.            +--------- GPIO14 (D5) ESP8266
# WeMos D1 ESP-Wroom-02 ESP8266 Nodemcu WiFi Module With 18650 Battery Charging

substitutions:
  pulse_pin: D2

esphome:
  name: gas-bk-g4t

esp8266:
  board: d1_mini
  restore_from_flash: true

preferences:
  flash_write_interval: 60min

# включаем отладку для поиска причины перезагрузки через лог
debug:

logger:

# Enable Home Assistant API
api:
  services:
# для устаноки начального значения счетчика

    - service: update_counter_pulses
      variables:
        counter_pulses: float
      then:
        - globals.set:
            id: pulses_sum
            value: !lambda 'return counter_pulses;'
  
  reboot_timeout: 0s # иначе перезагружается при отключении от hassio        

ota:
  - platform: esphome

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "GAS-BK-G4T Fallback Hotspot"
    password: !secret ota_pass
  reboot_timeout: 0s # иначе перезагружается при потере wifi
captive_portal:


globals:
  - id: pulses_sum
    type: int
    restore_value: yes
    initial_value: '1000000' 



binary_sensor:
  - platform: gpio
    id: internal_pulse_counter
    pin:
      number: ${pulse_pin}
      mode: INPUT
    name: "Live-Impuls"
    filters:
      - delayed_on_off: 200ms
    on_press:
      then:
        - lambda: id(pulses_sum) += 1;
        - lambda: id(gas_cons).publish_state(id(pulses_sum));

sensor:

  - platform: template
    name: "Gas consumption"
    id: gas_cons
    device_class: gas
    unit_of_measurement: "m³"
    state_class: "total_increasing"
    icon: "mdi:fire"
    accuracy_decimals: 2
    filters:
      lambda: |-
        return x * 0.01;



# для отслеживания времени работы esp
  - platform: uptime
    name: Uptime Sensor
    id: uptime_sensor
    update_interval: 60s
    internal: true
    on_raw_value:
      then:
        - text_sensor.template.publish:
            id: uptime_human
            state: !lambda |-
              int seconds = round(id(uptime_sensor).raw_state);
              int days = seconds / (24 * 3600);
              seconds = seconds % (24 * 3600);
              int hours = seconds / 3600;
              seconds = seconds % 3600;
              int minutes = seconds /  60;
              seconds = seconds % 60;
              return (
                (days ? to_string(days) + "d " : "") +
                (hours ? to_string(hours) + "h " : "") +
                (minutes ? to_string(minutes) + "m " : "") +
                (to_string(seconds) + "s")
              ).c_str();        

 

text_sensor:
  - platform: template
    name: Uptime Human Readable
    id: uptime_human
    icon: mdi:clock-start

Information

Rating
Does not participate
Registered
Activity

Specialization

System Software Engineer