Closed andvikt closed 11 months ago
Исправил в v1.1.1b0
обновления в HACS пока еще не появились, жду
обновления в HACS пока еще не появились, жду
Ничего ждать не нужно. Нужно в списке интеграций меню hacs найти мою интеграцию, нажать кнопку с тремя точками, нажать обновить информацию, затем нажать переустановить и поставить галку показывать бета-версии.
обновил состояние unknown, интеграцию и мегу перезагружал. теперь и влажность не показывает, до обновления влажность отображалась
Ясно, значит не получилось. Сложно без устройства что-то добавлять новое, откатывайтесь. Но у вас точно в логе должны быть ошибки-напишите сюда
может Андрей как-то сможет помочь?
может Андрей как-то сможет помочь?
Не думаю. Вы лог-то пришлете?
Еще один момент-нажмите в настройках порта с вашим датчиком кнопку scan, это на меге и пришлите сюда исходный html-код страницы, так я смогу хотя бы симитировать ваше устройство в своих тестах
может Андрей как-то сможет помочь?
Не думаю. Вы лог-то пришлете?
Эта ошибка возникла в кастомной интеграции.
Logger: custom_components.mega.mega1 Source: custom_components/mega/hub.py:312 Integration: mega (documentation, issues) First occurred: 20:55:36 (1 occurrences) Last logged: 20:55:36
timeout while requesting http://192.168.1.210/sec/?pt=9&cmd=scan
у вас сохраняется эта проблема? просто по присланной ошибке - это никак не связано с SHT31 - тут у вас таймаут на сканирование порта 9 и таймауты по опыту предыдущих пользователей - это неполадки в сетевом оборудовании, те либо кабель, либо роутер/свич.
проблема осталась, данный датчик пока напрямую подключил через command_line. С сетью проблем не наблюдаю, остальные датчики работают нормально, есть датчик DHT22 работает через интеграцию. SHT31 нормально передает значения влажности, через модуль
проблема осталась, данный датчик пока напрямую подключил через command_line.
С сетью проблем не наблюдаю, остальные датчики работают нормально, есть датчик DHT22 работает через интеграцию.
SHT31 нормально передает значения влажности, через модуль
Мистика )
После установки беты2 и обновления портов показывает нормально температура и влажность, но на след получении значений через 30 сек температура становится 130... Влажность в порядке
На 1.1.1 все также иногда показывает нормальную температуру, а более 90% времени показывает 130 градусов. У меня таких датчиков 4 шт. Надо что то с ними сделать...
http://192.168.1.16/sec/?pt=39&scl=44&i2c_dev=sht31&i2c_par=1
Проблема не в интеграции, а в датчиках. Вы можете использовать filter_high, чтобы игнорировать эти "мусорные" значения
Но желательно добиться стабильности. И тут несколько вариантов причин неисправности ваших датчиков: слишком частое обновление, плохое соединение, плохое питание. Если это датчик в составе "универсального датчика", обратитесь к ермакову на форуме, он вам его по идее заменит ) мне менял, датчик действительно был неисправен то ли с завода, то ли в процессе монтажа на плату.
Через непосредственно адрес Меги значения есть. Все отлично работает temp:20.28/hum:57.74 Type I2C Mode SDA SCL 44 Cat Temp/Hum Dev SHT31 I2C Scan Даже после обновления портов первый раз показывают нормальные значение, но стоит только обновиться автоматом порты через 30сек и все.
сделал маленькую правку, версия 1.1.2b0 (нужно включить беты), возможно проблема в слишком быстром переходе от чтения температуры к чтению влажности (сейчас там стояло полсекунды, увеличил до полутора секунд). Попробуйте эту версию
После манипуляций вроде бы заработало. 'sht31': [ DeviceType(DEVICE_CLASS_HUMIDITY, PERCENTAGE, None, delay=0.5), DeviceType(DEVICE_CLASS_TEMPERATURE, TEMP_CELSIUS, None, delay=1), ],
https://ab-log.ru/smart-house/ethernet/megad-2561 на сайте меги Андрей писал
# Отображение влажности (SHT31/SHT85)
http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=sht31
# Отображение температуры (SHT31) (Между отдельными запросами температуры и влажности должно быть не менее 0,1 сек.)
http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=sht31&i2c_par=1
# Инициализация датчика (в том случае, если в Dev выбрано другое устройство)
http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=sht31&i2c_par=9
Теперь данные по датчикам не обновляються... mega1_38_sht31_temperature 7 минут назад 22,39 °C
я понял.
# Инициализация датчика (в том случае, если в Dev выбрано другое устройство)
http://192.168.0.14/sec/?pt=35&scl=34&i2c_dev=sht31&i2c_par=9
Эту часть я не делаю вообще.
почему-то перестали обновляться даные из sht31 после добавления delay=0.5 в оба параметра....
Так же само обновился до последней беты, ничего не изменилось. Стоит 3 одинаковых датчика SHT31 но только на одном до ХА не доходит влажность. Если нужно какие-то логи скинуть, все предоставлю. настройки на меге стандартные
Так же по поводу отсечения ложных значений. Почему-то это работает только на 2 датчиках, на третьем график выглядит вот так
Скрины из 38 датчика Настройки в ХА: 38: filter_low: 10 filter_high: 80
40: filter_low: 10 filter_high: 70
42: filter_low: 10 filter_high: 70
Временно поборол тем что удалил опрос температуры и задержку с вашей интеграции по датчикам sht31(4 шт) И отдельно добавил сенсоры температуры по типу такого: ` - platform: rest
name: Гостиная температура
unit_of_measurement: '°C'
device_class: temperature
resource: http://192.168.1.16/sec/?pt=38&scl=44&i2c_dev=sht31&i2c_par=1
` думаю если разнести опрос датчиков sht31 на 2 части тоесть сначала опрос всех на влажность, потом опрос на температуру, то проблемма исчезнет.
должно работать в v1.1.8b8, просьба проверить
Отвалились все датчики...
извиняюсь, просьба откатиться на предыдущую версию, завтра поправлю
так и делаю.
так и делаю.
вроде поправил в v1.1.8b9
Logger: custom_components.mega.mega1 Source: helpers/update_coordinator.py:290 Integration: mega (documentation, issues) First occurred: 22:25:41 (4 occurrences) Last logged: 22:26:44
Unexpected error fetching megad data: unsupported operand type(s) for |=: 'set' and 'str' Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 290, in _async_refresh self.data = await self._async_update_data() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 246, in _async_update_data return await self.update_method() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/mega/hub.py", line 265, in poll ret = await self._update_i2c(x) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/mega/hub.py", line 507, in _update_i2c self.sht31inited |= pt TypeError: unsupported operand type(s) for |=: 'set' and 'str'
Logger: custom_components.mega.mega1 Source: helpers/update_coordinator.py:290 Integration: mega (documentation, issues) First occurred: 22:25:41 (4 occurrences) Last logged: 22:26:44
Unexpected error fetching megad data: unsupported operand type(s) for |=: 'set' and 'str' Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 290, in _async_refresh self.data = await self._async_update_data() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 246, in _async_update_data return await self.update_method() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/mega/hub.py", line 265, in poll ret = await self._update_i2c(x) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/mega/hub.py", line 507, in _update_i2c self.sht31inited |= pt TypeError: unsupported operand type(s) for |=: 'set' and 'str'
спасибо за терпение ) v1.1.8b10
Эта ошибка возникла в пользовательской интеграции. Logger: custom_components.mega.mega1 Source: helpers/update_coordinator.py:290 Integration: mega (documentation, issues) First occurred: 23:11:50 (1 occurrences) Last logged: 23:11:50
Unexpected error fetching megad data: unsupported operand type(s) for |=: 'set' and 'str' Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 290, in _async_refresh self.data = await self._async_update_data() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 246, in _async_update_data return await self.update_method() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/mega/hub.py", line 265, in poll ret = await self._update_i2c(x) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/mega/hub.py", line 507, in _update_i2c self.sht31inited |= pt TypeError: unsupported operand type(s) for |=: 'set' and 'str'
Эта ошибка возникла в пользовательской интеграции. Logger: custom_components.mega.mega1 Source: helpers/update_coordinator.py:290 Integration: mega (documentation, issues) First occurred: 23:11:50 (1 occurrences) Last logged: 23:11:50
Unexpected error fetching megad data: unsupported operand type(s) for |=: 'set' and 'str' Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 290, in _async_refresh self.data = await self._async_update_data() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 246, in _async_update_data return await self.update_method() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/mega/hub.py", line 265, in poll ret = await self._update_i2c(x) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/mega/hub.py", line 507, in _update_i2c self.sht31inited |= pt TypeError: unsupported operand type(s) for |=: 'set' and 'str'
Кажется вы не обновились на v1.1.8b10, в этой версии нет этой строчки кода
там кроме ht31 еше и b280 отваливаеться....замена " на ' может виной?
там кроме ht31 еше и b280 отваливаеться....замена " на ' может виной?
Не понял о чем вы. Лог пожалуйста ) а виной тому кодинг вслепую без возможности потестить что получилось )
Обновил, вот журнал там датчики sht31 так же как и ранее отображают 130 градусов. пользовался все время тем что ужалял температуру из меги и вручную эти датчики опрашивал через скрипт типа
- platform: rest
name: Гостиная температура
unit_of_measurement: '°C'
device_class: temperature
resource: http://192.168.1.16/sec/?pt=38&scl=44&i2c_dev=sht31&i2c_par=1
"sht31": [
DeviceType(SensorDeviceClass.HUMIDITY, PERCENTAGE, None),
],
и тогда проблем небыло с этими датчиками(они висят 5 шт на 1 mega) + bmx280 home-assistant_2023-10-15T20-53-43.627Z.log
Обновил, вот журнал там датчики sht31 так же как и ранее отображают 130 градусов. пользовался все время тем что ужалял температуру из меги и вручную эти датчики опрашивал через скрипт типа
- platform: rest name: Гостиная температура unit_of_measurement: '°C' device_class: temperature resource: http://192.168.1.16/sec/?pt=38&scl=44&i2c_dev=sht31&i2c_par=1
"sht31": [ DeviceType(SensorDeviceClass.HUMIDITY, PERCENTAGE, None), ],
и тогда проблем небыло с этими датчиками(они висят 5 шт на 1 mega) + bmx280 home-assistant_2023-10-15T20-53-43.627Z.log
нашел проблему, одна строчка кода все портила, параметр задержки между запросами по факту не учитывался.
пробуйте v1.1.8b12
только по вашему логу я не вижу что b280 отваливается:
2023-10-15 23:49:30.454 DEBUG (MainThread) [custom_components.mega.mega1] i2c response: {(('pt', '43'), ('scl', '44'), ('i2c_dev', 'bmx280')): '742.65'}
2023-10-15 23:49:30.454 DEBUG (MainThread) [custom_components.mega.mega1] request: http://192.168.1.16/sec/?pt=43&scl=44&i2c_dev=bmx280&i2c_par=1
2023-10-15 23:49:30.476 DEBUG (MainThread) [custom_components.mega.mega1] response 26.18
2023-10-15 23:49:30.477 DEBUG (MainThread) [custom_components.mega.mega1] i2c response: {(('pt', '43'), ('scl', '44'), ('i2c_dev', 'bmx280'), ('i2c_par', 1)): '26.18'}
2023-10-15 23:49:30.477 DEBUG (MainThread) [custom_components.mega.mega1] request: http://192.168.1.16/sec/?pt=43&scl=44&i2c_dev=bmx280&i2c_par=2
2023-10-15 23:49:30.499 DEBUG (MainThread) [custom_components.mega.mega1] response 41.37
2023-10-15 23:49:30.499 DEBUG (MainThread) [custom_components.mega.mega1] i2c response: {(('pt', '43'), ('scl', '44'), ('i2c_dev', 'bmx280'), ('i2c_par', 2)): '41.37'}
b280 все ок, по ht31 вроде тоже ок темпа и влажность есть, посмотрим будут ли скачки до 130градусов..., понаблюдаю отпишусь
за сутки по влажности по 2-3 раза вылазила 100% Влажность на всех 5 датчиках, с температурами только у 2х датчиковы по 2-3 раза 130 градусов, как можно отключить эти 100% и 130 градусов?
за сутки по влажности по 2-3 раза вылазила 100% Влажность на всех 5 датчиках, с температурами только у 2х датчиковы по 2-3 раза 130 градусов, как можно отключить эти 100% и 130 градусов?
Для этого есть фильтры:
mega: # название интеграции
entities:
sensor.some_sensor: #entity_id как в интерфейсе HA
filter_low: 20
filter_high: 40
Можно ли попробовать добавить поддержку устройств по шине rs485 например таких как dds238-1 ? Готов поучаствовать в испытаниях. Так как такое устройство есть в системе и работает на костылях
Можно ли попробовать добавить поддержку устройств по шине rs485 например таких как dds238-1 ? Готов поучаствовать в испытаниях. Так как такое устройство есть в системе и работает на костылях
В теории можно, но не первый приоритет )
Вот так сейчас идет опрос dds238-1 который подключен к rs 485 на меге но часто ошибки и прочее прилетает
- platform: command_line
name: uart_electric_params
command:
"/usr/bin/curl -X GET 'http://192.168.1.15/sec/?uart_tx=0103000C0001&mode=rs485' && sleep 0.1 && \
/usr/bin/curl -X GET 'http://192.168.1.15/sec/?uart_rx=1&mode=rs485' && sleep 0.1 && \
/usr/bin/curl -X GET 'http://192.168.1.15/sec/?uart_tx=0103000E0001&mode=rs485' && sleep 0.1 && \
/usr/bin/curl -X GET 'http://192.168.1.15/sec/?uart_rx=1&mode=rs485' && sleep 0.1 && \
/usr/bin/curl -X GET 'http://192.168.1.15/sec/?uart_tx=010300000001&mode=rs485' && sleep 0.1 && \
/usr/bin/curl -X GET 'http://192.168.1.15/sec/?uart_rx=1&mode=rs485' && sleep 0.1 && \
/usr/bin/curl -X GET 'http://192.168.1.15/sec/?uart_tx=010300010001&mode=rs485' && sleep 0.1 && \
/usr/bin/curl -X GET 'http://192.168.1.15/sec/?uart_rx=1&mode=rs485'"
- platform: template
sensors:
electric_input_voltage:
friendly_name: "Напряжение в сети"
device_class: voltage
unit_of_measurement: V
value_template: >
{% set value = states('sensor.uart_electric_params') %}
{% if value == 'CRC Error' %}
{{ states('sensor.electric_input_voltage') | float | round(1) }}
{% else %}
{% set value = value.split('Done')[1][-5:].replace('|','') | int(value,16) %}
{{ (value / 10) | round(1) }}
{% endif %}
availability_template: >
{{ states("sensor.uart_electric_params") not in ["unknown", "unavailable", "none"] }}
electric_use_active_power:
friendly_name: "Текущая активная мощность, Вт"
unit_of_measurement: W
device_class: power
value_template: >
{% set value = states('sensor.uart_electric_params') %}
{% if value == 'CRC Error' %}
{{ states('sensor.electric_use_active_power') | float | round(0) }}
{% else %}
{% set value = value.split('Done')[2][-5:].replace('|','') %}
{{ value | int(value,16) }}
{% endif %}
availability_template: >
{{ states("sensor.uart_electric_params") not in ["unknown", "unavailable", "none"] }}
electric_counter:
friendly_name: "Счетчик потребления, кВт"
unit_of_measurement: kWh
device_class: energy
value_template: >
{% set value = states('sensor.uart_electric_params') %}
{% if value == 'CRC Error' %}
{{ states('sensor.electric_counter') | float | round(2) }}
{% else %}
{% set value = states('sensor.uart_electric_params').split('Done')[3][-5:].replace('|','') + states('sensor.uart_electric_params').split('Done')[4][-5:].replace('|','') %}
{{ ((value | int(value, 16) / 100) + 3063) | round(2) }}
{% endif %}
availability_template: >
{{ states("sensor.uart_electric_params") not in ["unknown", "unavailable", "none"] }}
Настроил интеграцию, не работает датчик температуры SHT31. В меге данные есть, в интеграции по одному датчику показывает все время температуру 130. По второму по нулям.
__Originally posted by @ruslantag in https://github.com/andvikt/mega_hacs/issues/67#issuecomment-955596887__