Size: a a a

2019 October 03

DD

Dmitry Di in Home Assistant
Monch
Да, когда стейт меняется с офф на он. Я больше с циклом не могу понять как он будет выглядеть.
for self.lamp in self.lamps
Так нельзя, переменная self.lamp нужна тебе внутри цикла, делать её атрибутом класса смысла нет. Должно быть что-то вроде
for lamp in self.lamps
И тем более, если ты потом пытаешься эту self.lamp использовать в другом методе, она будет всегда содержать последний элемент списка (на котором закончился в итоге цикл).
ID лампы внутри callback нужно получать из параметров, которые AD передаст в функцию dimmer. Но даже так я не понимаю, что должна делать функция dimmer.
источник

DD

Dmitry Di in Home Assistant
алгоритм функции dimmer опиши своими словами
источник

DD

Dmitry Di in Home Assistant
а цикл в initialize тебе создаст по обработчику dimmer на каждую из ламп
источник

M

Monch in Home Assistant
в initialize щелкаем выключателем, включается свет с параметрами указанными в функции "димер".
функция димер проверяет включен ли инпут_булин(инпут берется из цикла (по словарю)), и если он включен, проверяется "промежуток времени" и если он совпадает, то лампа(берется из цикла (по словарю)) включается с параметрами: яркость:1 и температура:350
источник

M

Monch in Home Assistant
Dmitry Di
алгоритм функции dimmer опиши своими словами
выше
источник

M

Monch in Home Assistant
Dmitry Di
for self.lamp in self.lamps
Так нельзя, переменная self.lamp нужна тебе внутри цикла, делать её атрибутом класса смысла нет. Должно быть что-то вроде
for lamp in self.lamps
И тем более, если ты потом пытаешься эту self.lamp использовать в другом методе, она будет всегда содержать последний элемент списка (на котором закончился в итоге цикл).
ID лампы внутри callback нужно получать из параметров, которые AD передаст в функцию dimmer. Но даже так я не понимаю, что должна делать функция dimmer.
и я про это. я понимаю как все это описать для ОДНОЙ лампочки, но не понимаю как это написать для десятка лампочек и инпут булинов
источник

M

Monch in Home Assistant
мне нужен пример кода 😊
источник

M

Monch in Home Assistant
пусть и без инпут булинов
источник

DD

Dmitry Di in Home Assistant
Monch
и я про это. я понимаю как все это описать для ОДНОЙ лампочки, но не понимаю как это написать для десятка лампочек и инпут булинов
> мне нужен пример кода 😊
Нет, тебе нужно понимание, как оно работает 😊
Когда ты делаешь listen_state, он создаёт обработчики последовательно для каждой из ламп:
dimmer(lamp1), dimmer(lamp2), dimmer(lamp3) и т.п. (условно)
Функцию dimmer ты пишешь одну и тебе надо отличать, какая лампа вызвала её срабатывание. Функция dimmer имеет следующую сигнатуру:
```def dimmer(self, entity, attribute, old, new, kwargs):````
Когда dimmer сработает, в параметре entity ты и получишь ID той самой лампочки, которая вызывала срабатывание dimmer. И с помощью этого ID сможешь из глобального словаря self.lamps получить ID imput_boolean к этой лампочке относящегося.
источник

M

Monch in Home Assistant
> Когда ты делаешь listen_state, он создаёт обработчики последовательно для каждой из ламп:
dimmer(lamp1), dimmer(lamp2), dimmer(lamp3) и т.п. (условно)

вот как создать обработчик последовательно для каждой лампы? Для одной я понимаю как (и логику тоже):
self.listen_state(обработчик, лампа, attribute="all")
, а для нескольких ламп - не понимаю - в этом вся проблема
источник

DD

Dm Dm in Home Assistant
camera.play_stream можно как то на андройд приставку вывести ?
источник

VM

Viachaslau Makouski in Home Assistant
Rulon Oboev
У кого через микрот присутствие нормально работает? А то у меня постоянно то есть то нет, на предидщем асусврт работало вообще без нареканий. Метод стоит - wireless
у меня через wireless отлично
источник

НВ

Николай Васильчук... in Home Assistant
Dm Dm
camera.play_stream можно как то на андройд приставку вывести ?
Если она умеет в хромкаст, то можно
источник

DD

Dmitry Di in Home Assistant
Monch
> Когда ты делаешь listen_state, он создаёт обработчики последовательно для каждой из ламп:
dimmer(lamp1), dimmer(lamp2), dimmer(lamp3) и т.п. (условно)

вот как создать обработчик последовательно для каждой лампы? Для одной я понимаю как (и логику тоже):
self.listen_state(обработчик, лампа, attribute="all")
, а для нескольких ламп - не понимаю - в этом вся проблема
Так ты его уже создал, вызвав в цикле listen_state для каждой из ламп.
Тебе просто надо уложить в голове концепцию callback-ов. Метод dimmer у тебя один и это нормально, это просто код, не привязанный к конкретной лампе до тех пор, пока ты не вызовешь listen_state. listen_state, в свою очередь, говорит AD: вызови этот код когда лампа 1 поменяет состояние. А потом: вызови этот же код, когда лампа два поменяет состояние. Твоя задача - понять в коде, какая именно лампа спровоцировала его вызов (параметр entity) и обработать его соответствующим образом. Ты как бы хранишь состояние (данные) отдельно от обработчика (кода).
источник

M

Monch in Home Assistant
Dmitry Di
Так ты его уже создал, вызвав в цикле listen_state для каждой из ламп.
Тебе просто надо уложить в голове концепцию callback-ов. Метод dimmer у тебя один и это нормально, это просто код, не привязанный к конкретной лампе до тех пор, пока ты не вызовешь listen_state. listen_state, в свою очередь, говорит AD: вызови этот код когда лампа 1 поменяет состояние. А потом: вызови этот же код, когда лампа два поменяет состояние. Твоя задача - понять в коде, какая именно лампа спровоцировала его вызов (параметр entity) и обработать его соответствующим образом. Ты как бы хранишь состояние (данные) отдельно от обработчика (кода).
я уже сделал все. настраиваю температуру и яркость
источник

DD

Dmitry Di in Home Assistant
Monch
я уже сделал все. настраиваю температуру и яркость
👍
источник

M

Monch in Home Assistant
Dmitry Di
Так ты его уже создал, вызвав в цикле listen_state для каждой из ламп.
Тебе просто надо уложить в голове концепцию callback-ов. Метод dimmer у тебя один и это нормально, это просто код, не привязанный к конкретной лампе до тех пор, пока ты не вызовешь listen_state. listen_state, в свою очередь, говорит AD: вызови этот код когда лампа 1 поменяет состояние. А потом: вызови этот же код, когда лампа два поменяет состояние. Твоя задача - понять в коде, какая именно лампа спровоцировала его вызов (параметр entity) и обработать его соответствующим образом. Ты как бы хранишь состояние (данные) отдельно от обработчика (кода).
помог, когда то данный тобой self.log(и_по_списку)
источник

M

Monch in Home Assistant
важно видеть что прилетает в callback - это скажем таки основа
источник

DD

Dmitry Di in Home Assistant
ну я об этом и говорил почти в каждом сообщении. Видимо плохо объяснял
источник

DD

Dmitry Di in Home Assistant
Забрал свой NUC вчера, кстати. Завтра память приедет, буду мутить Proxmox и виртуалки.
источник