Coder Social home page Coder Social logo

Comments (32)

volshebniks avatar volshebniks commented on July 26, 2024 1

да атрибут добавить не сложно. думаю сделаю и переводить в предполагаемое сосотояние тоже.
вот думаю зарелиить master ветку....

from sauresha.

Gimlir avatar Gimlir commented on July 26, 2024

UPD на https://api.saures.ru/doc/1.0/meter/control опубликовано, что нужно отправлять command = activate|deactivate, но в ЛК шлется именно open|close|clear

from sauresha.

Gimlir avatar Gimlir commented on July 26, 2024

@volshebniks Удалось ли взглянуть? Можем надеяться на реализацию?

from sauresha.

alleonname avatar alleonname commented on July 26, 2024

О! Если получится, то было бы суперски-афигенно!!! ;)

from sauresha.

volshebniks avatar volshebniks commented on July 26, 2024

Gimlir
alleonname

На данный момент реализация добавлена в master версию. К сожалению я не могу полноценной протестировать, так как у меня нет таких кранов, а demo кабинет возвращает ошибку "Недостаточно прав" при попытке управлять краном.

Если можете поставьте master версию. Обратите внимание что настройка компонента стала вообще другой.
минимально достаточно так в configuration.yaml. Из всех других мест настройки удалить.

sauresha:
     email: !secret saures_login
     password: !secret saures_pass

from sauresha.

alleonname avatar alleonname commented on July 26, 2024

sauresha:
email: !secret saures_login
password: !secret saures_pass

при такой настройке
binary_sensor_xxx - False
sensor.sauresha_ххх - unknown

from sauresha.

volshebniks avatar volshebniks commented on July 26, 2024

sauresha:
email: !secret saures_login
password: !secret saures_pass

при такой настройке binary_sensor_xxx - False sensor.sauresha_ххх - unknown

А что в логах? Логин и пароль свой точно правильно указали?
Заранее большое спасибо за ответ.

from sauresha.

alleonname avatar alleonname commented on July 26, 2024

Где смотреть логи?
Логин/пароль правильные
Состояние: False
В Атрибутах:
friendly_name: Датчик протечки Кухня
condition: Ошибок нет
sn:
type: Датчик
meter_id: 59325
input: 5
last_update_time: 2022-05-15T20:31:32.497573
next_update_time: 2022-05-15T20:32:32.497585
icon: mdi:alarm-check

from sauresha.

volshebniks avatar volshebniks commented on July 26, 2024

логи ваш сервер/config/logs
Датчик протечки Кухня - имя датчика соответсвует вашему?

from sauresha.

alleonname avatar alleonname commented on July 26, 2024

2022-05-15 20:30:30 WARNING (SyncWorker_10) [custom_components.sauresha.api] ID flat: далее адрес и ID flat
Да, имя датчика соответствует, другие датчики тоже с именем в Атрибутах.

from sauresha.

volshebniks avatar volshebniks commented on July 26, 2024

а ошибки связаннные с компонентом есть в логе?

from sauresha.

alleonname avatar alleonname commented on July 26, 2024

нет, больше нет ошибок.
у сенсоров (счетчиков) состояние (расход воды) появилось

from sauresha.

volshebniks avatar volshebniks commented on July 26, 2024

а switch созданных не появилось? - для кранов

from sauresha.

alleonname avatar alleonname commented on July 26, 2024

switch появился

from sauresha.

volshebniks avatar volshebniks commented on July 26, 2024

switch появился

а пробовали его включить/выключить - на кран это как то влияет? ошибки поле этого в логе есть?

from sauresha.

alleonname avatar alleonname commented on July 26, 2024

никак не влияет, ошибок нет, состояние всё время "off"

from sauresha.

Gimlir avatar Gimlir commented on July 26, 2024

Обновился и снес весь конфиг сенсоров и бинарных сенсоров, которые использовал раньше.
Сейчас только две строки с логином и паролем во всей конфигурации, как написали выше.
Итого имею:

  1. в логах при старте ha имею только 4 WARN сообщения с ID flat, ошибок нет
  2. в HA появились все мои
    • датчики протечки - как бинарный сенсор,
    • краны (каналы состояния) - как сенсор, показывает 1 или 0 (1=закрыт, 0=открыт)
    • счетчики - как сенсор
    • кран (канал управления) - как выключатель,

поведение этого выключателя, отвечающего за канал управления кранами, нужно осмыслить, т.к. его поведение не привычно для тех, кто привык пользоваться быстро реагирующими устройствами:

  • нажатие на выключатель (включение) в HA - ставит в очередь задачу на закрытие кранов в ЛК Саурес, при этом выключатель визуально переводится из состояние выкл в состояние вкл на время выполнение запроса по АПИ и возвращается через секунду в исходное состояние.
  • в лк сайурес после этого действия появляется информация о запланированном закрытии кранов и указывается время расчетного выхода на связь контроллера
  • когда из ЛК Саурес команда в очередной сеанс связи долетает до кранов, те закрываются
  • контроллер детектит изменение состояния кранов и выгружает свое новое состояние в ЛК Саурес,
  • в ЛК Суарес пропадает информация о запланированном закрытии на канале управления кранами и сам канал переходит в состояние закрыт, каналы состояния кранов показывают состояние закрыт.
  • только на следующий после этого момента апдейт HA переводит состояние выключателя во включено.
    Screenshot 2022-05-16 165736

from sauresha.

volshebniks avatar volshebniks commented on July 26, 2024

@Gimlir - замечательно. спасибо большое. значит все же работает.
релиз новой версии компонента скорее всего - будет с настройкой через GUI Home Assistant.
подумаю - что еще можно изменить.
К сожалению Saures банит - если опрашивать их сервер часто и это вносит существенные корективы :(

from sauresha.

alleonname avatar alleonname commented on July 26, 2024

в HA появились все мои
датчики протечки - как бинарный сенсор

а состояние какое? у меня по-прежнему - "False"

from sauresha.

Gimlir avatar Gimlir commented on July 26, 2024

@volshebniks поймал баг с невозможностью отмены поставленной в очередь задачи по закрытию (открытию).
Из за того, как реагирует switch на клик (см. я описал пошагово выше) в интерфейсе HA не возможно отменить закрытие (открытие) до того, как оно фактически случилось.

Если попытаться вызвать принудительно сервис - тоже не получится. Вот пример сценария:

  • исходное состояние, выключатель HA из интеграции в состоянии on, краны фактически закрыты, в ЛК Саурес канал управления в состоянии Закрытие.
  • нажимаем на выключатель HA чтобы выключить его (открыть краны)
  • на секунду выключатель переключается в off и тут же возвращается в on, в ЛК Саурес канал управления все так же в состоянии Закрытие, но есть запланированное открытие, краны фактически закрыты
  • теперь мы хотим отменить запланированное открытие. вызываем в явном виде сервис HA switch.turn_on для выключетеля интеграции - в логах получаем
    2022-05-16 17:45:19 ERROR (SyncWorker_5) [custom_components.sauresha.api] Ошибка выполнения комманды - command: activate ,meter_id: *****, ошибка: Неверная команда.
  • вызываем в явном виде сервис HA switch.turn_off - никакой активности в логах и ЛК Саурес

from sauresha.

Gimlir avatar Gimlir commented on July 26, 2024

релиз новой версии компонента скорее всего - будет с настройкой через GUI Home Assistant.

Как сейчас можно снизить частоту обращений к серверу саурес? вижу, что по умолчанию идет интервал 10 мин, я ранее использовал 1 час.

Такой синтаксис проканает?

sauresha:
  email: ***
  password: ***
  scan_interval:
     minutes: 60

from sauresha.

Gimlir avatar Gimlir commented on July 26, 2024

в HA появились все мои
датчики протечки - как бинарный сенсор

а состояние какое? у меня по-прежнему - "False"

Все верно, у меня так же. False в бинарном сенсоре HA эквивалентно состоянию Неактивен в ЛК Саурес эквивалентно отсутствию протечки.

from sauresha.

Gimlir avatar Gimlir commented on July 26, 2024

@volshebniks, я еще один баг поймал. Оказывается, я поторопился сказать, что после фактического изменения положения кранов следующий апдейт данных по апи принесет смену статуса выключателю.
Этого не происходит, хотя дата прошлого и следующего обновления данных в атрибутах показывают, что апдейт состоялся, сотояние свича не меняется. То же самое и с бинарными сенсорами, которые показывают состояние кранов по каналу состояния.
При этом перезапуск HA приводит к корректному считыванию статусов, выключатель приходит в синхронизированное с ЛК Саурес состояние, бинарные сенсоры тоже

from sauresha.

volshebniks avatar volshebniks commented on July 26, 2024

да проблему обновления - я уже тоже словил. буду разбираться

from sauresha.

volshebniks avatar volshebniks commented on July 26, 2024

выложил в master новую версию. полностью всё переделал. это еще скорее всего не конечная версия.
настройка только через GUI. старые настройки нужно удалить. из релизной версии настройки из yaml конвертятся в GUI.

from sauresha.

Gimlir avatar Gimlir commented on July 26, 2024

поставил версию из hacs из master, пока застрял на сохранении логина через GUI, см issue #27

from sauresha.

Gimlir avatar Gimlir commented on July 26, 2024

@volshebniks
Новая версия из master по состоянию на #32 создает объект switch, но при попытке вызова сервисов включения и выключения для этого выключателя

2022-06-07 17:21:28 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140672299931632] 'SauresHA' object has no attribute 'get_switches'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 192, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1636, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1673, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in handle_service
await self.hass.helpers.service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 668, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 949, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 705, in _handle_entity_call
await result
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1011, in async_turn_off
await self.hass.async_add_executor_job(ft.partial(self.turn_off, **kwargs))
File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/sauresha/entity.py", line 504, in turn_off
self.controller.get_switches(self.flat_id, True)
AttributeError: 'SauresHA' object has no attribute 'get_switches'
2022-06-07 17:21:31 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140672299931632] 'SauresHA' object has no attribute 'get_switches'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 192, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1636, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1673, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in handle_service
await self.hass.helpers.service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 668, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 949, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 705, in _handle_entity_call
await result
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1003, in async_turn_on
await self.hass.async_add_executor_job(ft.partial(self.turn_on, **kwargs))
File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/sauresha/entity.py", line 499, in turn_on
self.controller.get_switches(self.flat_id, True)
AttributeError: 'SauresHA' object has no attribute 'get_switches'

from sauresha.

volshebniks avatar volshebniks commented on July 26, 2024

@Gimlir

Новая версия из master по состоянию на #32 создает объект switch, но при попытке вызова сервисов включения и выключения для этого выключателя

Спасибо вам огромное - за тестирование!!!
Поправил. Должно работать.

from sauresha.

Gimlir avatar Gimlir commented on July 26, 2024

Обновился, выключатель крана создался в выключенном состоянии, как и положено, нажал включить (выключатель в UI как и раньше дернулся во включенное состояние и вернулся назад в выключенное). Команда на сервер саурес ушла, краны закрылись. Буду ждать как отобразится состояние выключателя после следующего обновления данных интеграцией.

ЗЫ @volshebniks не могли бы вы сопровождать исправления при выгрузке в репозиторий как раньше тегами с номером релиза, а то без них HACS не дает обновляться с версии master на нее же (не понимает, что комиты добавились) и уж очень много действий для применения каждого исправления приходится проделывать (удалять все интеграции, репозиторий и запись о кастомном репозитории и возвращать все в обратном порядке)

from sauresha.

Gimlir avatar Gimlir commented on July 26, 2024

Результаты тестов:

  1. Проблема с обновлением статуса свича управления кранами и бинарных сенсоров статуса крана сохранилась. При очередном обновлении данных по АПИ состояние объектов в HA не меняется, не смотря на то, что все другие сенсоры обновляются и показывают новые значения (счетчики воды например). При перезапуске НА, как и прежде, верный статус бинарных сенсоров и свича восстанавливается.
  2. Когда канал управления кранами находится в состоянии Закрытие и свич в НА включен - нажатие на свич для выключения приводит к выводу ошибки в GUI HA
    image
    при этом команда на открытие по АПИ уходит и в ЛК Саурес регистрируется задание на открытие.
    в логе НА
2022-06-09 11:53:56 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140702374451520] 'SauresHA' object has no attribute 'async_get_switchess'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 192, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1636, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1673, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in handle_service
await self.hass.helpers.service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 668, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 949, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 705, in _handle_entity_call
await result
File "/config/custom_components/sauresha/entity.py", line 545, in async_turn_off
await self.controller.async_get_switchess(self.flat_id, True)
AttributeError: 'SauresHA' object has no attribute 'async_get_switchess'

from sauresha.

volshebniks avatar volshebniks commented on July 26, 2024

поправил + сделал проверку на то что статус крана = открыто или закрыто. если что то другое - по крайней мере падать не должно

from sauresha.

Gimlir avatar Gimlir commented on July 26, 2024

Спасибо за оперативное реагирование :)
Есть мысли, как реализовать корректное отображение статуса свича в промежутке времени, когда в системе зарегистрирована ожидающая своего исполнения команда для канала управления краном?

Я подумал, может быть при создании объектов, если создаем объект свича для крана - то создавать в пару к нему сенсор "Ожидающая команда управления" со статусом "Нет ожидающих команд", "Ожидается открытие", "Ожидается закрытие" и атрибутом "Время ожидаемого исполнения" (или эти статусы и время можно в атрибуты самого свича поместить, чтобы на плодить сущности).

При наличии такого доп объекта или атрибутов можно было бы после клика на свиче менять состояние сенсора\атрибута, а состояние свича заранее переводить в ожидаемое состояние - тогда пользователь будет видеть интуитивное понятную реакцию на свое действие: кликнул на свич закрыть - свич переключился и остался в своем новом положении - сенсор\атрибут показал что зарегистрирована команда и мы ждем ее исполнения.
Когда по апи придет новое состояние кранов и пропадет информация о ждущей задаче открытия - сенсор\атрибут вернуть в состояние по умолчанию а свич останется включенным.
Что думаете о такой логике?

from sauresha.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.