andvikt / mega_hacs

MegaD HomeAssistant integration
131 stars 16 forks source link

SCD4x #146

Open xenus206 opened 1 year ago

xenus206 commented 1 year ago

Подробное описание есть на сайте контроллера. https://ab-log.ru/smart-house/ethernet/MegaD-2561-SCD4x

Спасибо.

iliorik commented 1 year ago

Добрый день. Нужно добавить сенсор sdc4x. Пока что временно я попробовал добавить

в файл: custom_components/mega/i2c.py .... i2cclasses = { 'scd4x': [ DeviceType(None, None, 'ch0'), ], 'htu21d': [ ..... в файл: configuration.yaml #sch40x mega sensor template: sensor: name: "Kithen_CO2" unit_of_measurement: "ppm" state: > {% set sdc40_json = { "carbon_dioxide": states('sensor.mega_10_scd4x_ch0').split("/")[0].split(":")[1] } %} {{ sdc40_json.carbon_dioxide }} availability: "{{ ai_number(states('sensor.mega_10_scd4x_humidity')) }}" name: "Kitchen_temp" unit_of_measurement: "°C" state: > {% set sdc40_json = { "carbon_dioxide": states('sensor.mega_10_scd4x_ch0').split("/")[1].split(":")[1] } %} {{ sdc40_json.carbon_dioxide }} availability: "{{ ai_number(states('sensor.mega_10_scd4x_humidity')) }}" name: "Kitchen_hum" unit_of_measurement: "%" state: > {% set sdc40_json = { "carbon_dioxide": states('sensor.mega_10_scd4x_ch0').split("/")[2].split(":")[1] } %} {{ sdc40_json.carbon_dioxide }} availability: "{{ ai_number(states('sensor.mega_10_scd4xhumidity')) }}"

pavelplus commented 1 year ago

Поддерживаю этот запрос! Датчик измеряет CO2, температуру и влажность и возвращает данные в формате: CO2:969/temp:25.88/hum:60.55.

При этом:

Сенсор обновляет данные каждые 5 секунд. Если все же произвести повторной запрос ранее, чем через 5 секунд после предыдущего, датчик вернет статус "busy".

Как еще один способ временного решения проблемы (без необходимости править файл интеграции) можно опрашивать датчик напрямую средствами HA (RESTful Sensor). Адрес resourse проще всего скопировать прямо из интерфейса контроллера. Проверки на "busy" тут нет.

# Wallmount sensor SCD4x - no support in megaD integration
rest:
  - resource: "http://MEGAD_IP/PASSWORD/?pt=PORT&scl=SCL_PORT&i2c_dev=scd4x"
    sensor:
      - name: "SCD4x_CO2"
        device_class: carbon_dioxide
        value_template: "{{ value.split('/')[0].split(':')[1] }}"
        unit_of_measurement: "ppm"
      - name: "SCD4x_temp"
        device_class: temperature
        value_template: "{{ value.split('/')[1].split(':')[1] }}"
        unit_of_measurement: "°C"
      - name: "SCD4x_hum"
        device_class: humidity
        value_template: "{{ value.split('/')[2].split(':')[1] }}"
        unit_of_measurement: "%"
3AXAPOB commented 1 year ago

Поддерживаю, ситуация аналогичная

andvikt commented 10 months ago

Приветствую! Если кто-то сможет прислать исходники страницы i2c scan с порта на котором установлен этот датчик - я смогу оперативно его добавить. Пока "на ощупь" добавил в 1.1.8b2 Может не совпасть значение типа и единиц измерения, тк на сайте нет подробного описания с точки зрения i2c api.

semkyskov commented 10 months ago

Приветствую! Если кто-то сможет прислать исходники страницы i2c scan с порта на котором установлен этот датчик - я смогу оперативно его добавить. Пока "на ощупь" добавил в 1.1.8b2 Может не совпасть значение типа и единиц измерения, тк на сайте нет подробного описания с точки зрения i2c api.

"на ощупь" не работает.

<html><head><meta name="color-scheme" content="light dark"></head><body><div class="line-gutter-backdrop"></div><form autocomplete="off"><label class="line-wrap-control">Переносить строки<input type="checkbox" aria-label="Переносить строки"></label></form><table><tbody><tr><td class="line-number" value="1"></td><td class="line-content">CO2:891/temp:24.05/hum:39.64<span class="html-end-of-file"></span></td></tr></tbody></table></body></html>

mrumskiy commented 8 months ago

Присоединяюсь к просьбе.

Исходники страницы i2c scan: Там у нас 2 страницы получается: 0.html image

1.html (сами значения) image

1.zip