Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Не корректно отражается давление в атрибутах #8

Closed
BertTomsk opened this issue Feb 3, 2022 · 13 comments
Milestone

Comments

@BertTomsk
Copy link

Добрый день!
Не корректно отражается давление в атрибутах, в сенсоре всё корректно и хотелось бы возможность его выводить в мм рт. ст.
S20203-21310646
S20203-21314050
И возможно добавить прогноз как в гисметео?
Сверху яндекс, снизу гисметео
S20203-21383794

@IATkachenko
Copy link
Owner

С отображением давления -- это в Home Assistant core идти надо.
Проблем есть целых три:

  1. мм рт. столба, по мнению Home Assistant не является единицей давления
  2. единицы при отображении приводятся к системным, а системная единица давления -- Паскаль. Даже не гекто-паскаль
  3. UI рисует что ему взбредет в голову и не ориентируется на то что HA отдал давление в системных единицах.

И в районе HomeAssistnat core про это есть очень интересные дискуссии :)

Так что сделать что-то нельзя. Но за ситуацией я слежу и как-только будет возможноть что-то сделать -- обязательно сделаю.

ps. Если вы откроете погодную карточку, как на первом скрине, для gismeteo, то увидите что на ней давление 1000 Pa, что немного маловато ;)

@IATkachenko
Copy link
Owner

Прогно -- будет в ближайшее время. Не все сразу :) Но Яндекс отдает прогно на 2 интервала (условно день и вечер), так что почасового или на неделю из него добыть нельзя. По крайней мере на бесплатном тарифе.

@IATkachenko
Copy link
Owner

И да, обратите внимание еще на скорость ветра, когда она больше нуля будет. Там тоже такой же бардак.

@alexls74
Copy link

alexls74 commented Feb 5, 2022

Не корректно отражается давление в атрибутах, в сенсоре всё корректно и хотелось бы возможность его выводить в мм рт. ст.

С давлением в мм рт. ст. Очень давняя тема. Лучше не ждать, а добавить сенсор/конвертер.

 pressure_mmhg_weather:
      friendly_name: "Давление"
      unit_of_measurement: 'mmHg'
      value_template: "{{ (states('sensor.yandex_weather_pressure')|float(default=0) * 0.7500637)|round(0) }}"
      icon_template: mdi:gauge

@fufar
Copy link

fufar commented Feb 15, 2022

может можно отдавать как-то по другому в ha данные, напремер поделив на 1000 чтобы получить аналогично с другими погоднями сервисами данные? на картинке g- gismeteo, a-accuweather, y-yandex
image

@IATkachenko
Copy link
Owner

Починив так мы ломаем в другом месте: если нажать на карточку погоды, то HA показывает погодные данные.
Там будет:
1003,9 Pa
1004 Pa
99900 Pa
Плюс везде внутри используется именно приведенное давление, в системных единицах.

Чинить проблему отображения данных в карточке (которая не учитывает единицы, в которых ей отдается давление) изменением исходных данных -- очень плохая идея.

Как минимум по тому, что данные в систему визуализации отдаются корректные.

Ну и для полноты картины: HA сейчас идет по нашему пути (home-assistant/core#61471 home-assistant/core#61469) чтобы везде были системные единицы. После того как все core интеграции будут вести себя корректно, думаю, накатят фикс и для карточки.

@IATkachenko IATkachenko added the wontfix This will not be worked on label Feb 16, 2022
@bastshoes
Copy link

bastshoes commented Mar 8, 2022

Компонент weather отображает давление в hPa. Соответственно давление нужно приводить к этой величиен.

https://developers.home-assistant.io/docs/core/entity/weather

@IATkachenko
Copy link
Owner

@bastshoes, именно это интеграция и делает:

@bastshoes
Copy link

Да, это я посмотрел. По идеи все должно работать. Но компонент погоды "чудит".
Для чего давление в атрибутах делится на 100? https://github.com/IATkachenko/HA-YandexWeather/blob/26d9036b1117aea8b43dca38136f015e0c7fe68f/custom_components/yandex_weather/weather.py#L83

Мне кажется на уровне домена еще проходят какие-то преобразования величины.

@IATkachenko
Copy link
Owner

@bastshoes, этот блок отвечает за восстановление состояния при перезапуске HA. В машине состояний HA хранит давление в системных единицах и при восстановлении давление восстанавливается в Паскалях. Соответственно, его нужно сконвертировать в гПа, с которыми мы работаем.

Интеграция работает корректно, ровно по той логике, которую от нее ожидает backend HA.
На текущем этапе развития HA есть несогласованность того как работает frontend и backend HA: карточки погоды, которые визуализируют информацию, никак не учитывают то, в каких единицах backend отдает данные, а backend уже учитывает. Поэтому видны все эти расхождения и проблемы.

@bastshoes
Copy link

Спасибо за ответы!

@IATkachenko
Copy link
Owner

Полазал внимательно по коду HA -- они, в итоге, откатили все измеенния с конвертированием единиц, так что и мне надо пересмотреть происходящее.

@IATkachenko IATkachenko removed the wontfix This will not be worked on label Mar 9, 2022
@IATkachenko
Copy link
Owner

Посмотрел.
Изменения, действительно, откачены, продвижения в этом направлении пока нет и не предвидится.
Так что у нас развязаны руки.

Предлагаю такое решение:

  • в weather компоненте отдавать давление в hPa, но без указания единицы измерения;
  • в сенсоре -- с единицами. (сенсор с давлением в mmHg не трогаем).

В этом случае на карточках будет отображаться правильное давление, а в атрибутах weather.yanex_weather -- в 100 раз меньшее. Сенсор же будет отдавать правильное числовое давление с указанием правильных единиц (hPa).

Поставьте, пожалуйста, +1 emoji этому комментарию, если вам такое решение подходит.

ps. tagging for notification: @BertTomsk, @bastshoes, @fufar, @alexls74

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants