По телеку что-ли рекламу запустить? Кто ищет тот всегда найдет. А не найдет - так свое сделает.
Подскажите, стоит ли ожидать поддержку запуска двигателя ?
Hi, how to add “alarm_state” sensor?
Добрый вечер земляку.
Поставил ваш компонент в Hassio,в докере.
Валит несколько ошибок.Можете посоветовать на что смотреть надо?
Занимаюсь с HA второй месяц,осваиваю
Для новичков в HomeAssistant написал код для двух переключателей (svitch и lock), которые будут ставить/снимать с охраны и заводить/глушить двигатель.
Учел защиту от двойных случайных нажатий (после нажатия кнопка блокируется до реального запуска двигателя).
Для удобства все элементы кода разместил в отдельном файле my_auto.yaml. Для этого использовал функцию packages (это не сложно и оказывается ОЧЕНЬ удобно). Для этого в самом верху файла configuration.yaml вставляем:
homeassistant:
packages: !include_dir_merge_named packages/
Создаем в нашей основной директории “Homeassistant” папку “packages”, а в ней файл “my_auto.yaml”. В файл “my_auto.yaml” вставляем весь нижеприведенный код, заменив лишь “Creta” на наименование своего автомобиля (см. сенсоры), а также ID 1234567890 на свой ID из личного кабинета.
Вы можете не использовать функцию packages и тогда разложите все элементы кода (input_boolean, switch, automation) по местам в вашем конфигурационном файле.
my_auto:
#-------------------------------------------------------------------------------------------
input_boolean:
enginie_button:
name: Нажали ли кнопку запуска
initial: off
lock_button:
name: Кнопка закрытия авто
initial: on
#-------------------------------------------------------------------------------------------
switch: # Выключатель "Двигатель" (запустить, остановить)
- platform: template
switches:
engine:
# Кнопка не доступна, если кнопка была включена, но еще двигатель не запустился. И наоборот. Если машина не на связи или открыта.
availability_template: >-
{%- if (((is_state('input_boolean.enginie_button', 'on') and is_state('binary_sensor.creta_engine_state', 'on'))
or (is_state('input_boolean.enginie_button', 'off') and is_state('binary_sensor.creta_engine_state', 'off'))))
and (is_state('binary_sensor.creta_lock', 'off'))
and (is_state('binary_sensor.creta_connection_state', 'on'))
%}
true
{%- endif %}
friendly_name: Двигатель
value_template: "{{ is_state('binary_sensor.creta_engine_state', 'on') }}"
turn_on:
- service: input_boolean.turn_on # Запоминаем, что включили кнопку
data:
entity_id: input_boolean.enginie_button
- service: pandora.start_engine # Запускаем двигатель
data:
id: 1234567890 # Берем из личного кабинета p-on.ru во вкладке "информация"
# следующие строчки можно удалить, если они вам мешают ---------
- delay: 10 # Обновляем каждые
- service: pandora.update_state # 10 секунд статус
- delay: 10 # авто, что бы
- service: pandora.update_state # быстрее кнопка
- delay: 10 # стала активной
- service: pandora.update_state # До сюда ----------------------
turn_off:
- service: input_boolean.turn_off # Запоминаем, что выключили кнопку
data:
entity_id: input_boolean.enginie_button
- service: pandora.stop_engine # Останавливаем двигатель
data:
id: 1234567890
# следующие строчки можно удалить, если они вам мешают ---------
- delay: 10 # Обновляем каждые
- service: pandora.update_state # 10 секунд статус
- delay: 10 # авто, что бы
- service: pandora.update_state # быстрее кнопка
- delay: 10 # стала активной
- service: pandora.update_state # До сюда ----------------------
icon_template: >- # Смена иконок во включенном и выключенном состоянии
{% if not ((is_state('input_boolean.enginie_button', 'on') and is_state('binary_sensor.creta_engine_state', 'on'))
or (is_state('input_boolean.enginie_button', 'off') and is_state('binary_sensor.creta_engine_state', 'off'))) %}
mdi:timer-sand
{% else %}
{% if is_state('binary_sensor.creta_lock', 'on') %}
mdi:engine-off-outline
{% else %}
{% if is_state('binary_sensor.creta_engine_state', 'on') %}
mdi:fan
{% else %}
{% if is_state('binary_sensor.creta_lock', 'on') %}
mdi:engine-off-outline
{% else %}
mdi:engine-outline
{% endif %}
{% endif %}
{% endif %}
{% endif %}
#-------------------------------------------------------------------------------------------
lock:
- platform: template
name: auto
value_template: "{{ is_state('binary_sensor.creta_lock', 'off') }}" # off - авто на охране
availability_template: >-
{%- if ((is_state('input_boolean.lock_button', 'on') and is_state('binary_sensor.creta_lock', 'off'))
or (is_state('input_boolean.lock_button', 'off') and is_state('binary_sensor.creta_lock', 'on')))
and (is_state('binary_sensor.creta_connection_state', 'on'))
%}
true
{%- endif %}
lock:
- service: input_boolean.turn_on # Запоминаем, что нажали закрыть авто
data:
entity_id: input_boolean.lock_button
- service: pandora.lock # Закрываем авто
data:
id: 1234567890
# следующие строчки можно удалить, если они вам мешают ---------
- delay: 10 # Обновляем каждые
- service: pandora.update_state # 10 секунд статус
- delay: 10 # авто, что бы
- service: pandora.update_state # быстрее кнопка
- delay: 10 # стала активной
- service: pandora.update_state # До сюда ----------------------
unlock:
- service: input_boolean.turn_off # Запоминаем, что нажали кнопку снятия с охраны
data:
entity_id: input_boolean.lock_button
- service: pandora.unlock # Снимаем с охраны (сенсор становится ON)
data:
id: 1234567890
# следующие строчки можно удалить, если они вам мешают ---------
- delay: 10 # Обновляем каждые
- service: pandora.update_state # 10 секунд статус
- delay: 10 # авто, что бы
- service: pandora.update_state # быстрее кнопка
- delay: 10 # стала активной
- service: pandora.update_state # До сюда ----------------------
#-------------------------------------------------------------------------------------------
automation:
# Если вы завели двигатель, сняли-поставили авто на охрану не из ХА, то надо следующее:
- alias: Обновление состояния кнопки при остановки двигателя
trigger:
- platform: state
entity_id: binary_sensor.creta_engine_state
from: 'on'
to: 'off'
action:
- service: input_boolean.turn_off
data:
entity_id: input_boolean.enginie_button
- alias: Обновление состояния кнопки при запуске двигателя
trigger:
- platform: state
entity_id: binary_sensor.creta_engine_state
from: 'off'
to: 'on'
action:
- service: input_boolean.turn_on
data:
entity_id: input_boolean.enginie_button
- alias: Обновление состояния кнопки при постановке на охрану
trigger:
- platform: state
entity_id: binary_sensor.creta_lock
from: 'on'
to: 'off' # Авто закрылось (поставилось на охрану)
action:
- service: input_boolean.turn_on
data:
entity_id: input_boolean.lock_button
- alias: Обновление состояния кнопки при снятии с охраны
trigger:
- platform: state
entity_id: binary_sensor.creta_lock
from: 'off'
to: 'on' # Авто открылось (снялось с охраны)
action:
- service: input_boolean.turn_off
data:
entity_id: input_boolean.lock_button
Теперь добавляем кнопки в интерфейс. Для этого в ui-lovelace.yaml вставляем:
Включение/открытие долгим нажатие кнопки:
- type: entity-button
entity: lock.auto
tap_action: # По короткому:
action: more-info
hold_action: # зажать, что бы открыть
action: toggle
- type: entity-button
entity: switch.engine
tap_action: # По короткому:
action: more-info
hold_action: # зажать, что бы запустить
action: toggle
Спасибо за внимание)
Получится. Сам пользую hassbian на RPi.
Добавил оставшиеся численные сенсоры:
- Balance
- Speed
- Engine RPM
- GSM level
- Battery voltage
P.S. Переименовал некоторые старые имена сенсоров . Возможно придется перенастроить их в UI и автоматизациях.
Оставшиеся сенсоры мы с Сергеем настроили самостоятельно. Ждем команд
Добавил службы:
- pandora.lock
- pandora.unlock
- pandora.start_engine
- pandora.stop_engine
- pandora.turn_on_ext_channel (ex. pandora.enable_seat_heater)
- pandora.turn_off_ext_channel
В данных нужно по-прежнему указать id вашей машины в сервисе p-on.ru:
id: 1234567890
Также в конфигурацию добавил параметр polling_interval для регулирования интервала получения информации о состоянии сигнализации. В секундах. Не чаще, чем 1 раз 10с.
...
pandora:
name:
username: your_email@for_p-on.ru
password: your_password_for_p-on.ru
polling_interval: 30
...
Обновиться можно так:
cd /config/custom_components/pandora
git pull
exit
P.S. Далее бинарные сенсоры. В конце почищу и причешу код.
Сам проверил только старт и стоп. У меня запрещено снимать с охраны через GSM.
Пробуйте. Не забывайте отписывайться по результатам.
Проверил, снятие ,постановка запуск и остановка работает. Спасибо за отличный проект.
Чудненько!
Отличный проект, спасибо за обновление. Но я так и не понимаю как мне прочитать статус постановки на охрану.
Поделитесь пожалуйста как в частности интересуют статус постановки на охрану в первую очередь
Это один из бинарных сенсоров. Я их еще не доделалал. Все просили команды.
Очень ждём их, спасибо было бы удобно для отслеживания постановки и снятия с Охраны а автоматизациях. Ещё я заметил что в коде есть также запрос GPS координат, но куда они потом попадают в HA не нашёл
Координаты попадают в device tracker
Добрый день!
Похоже, pandora опять поломалась в 0.107:
2020-04-04 14:02:16 ERROR (MainThread) [homeassistant.components.binary_sensor] pandora: Error on device update!
File “/home/homeassistant/.homeassistant/custom_components/pandora/binary_sensor.py”, line 106, in update
А device tracker сам должен был создаться? Просто у меня не появился новый для машины после установки аддона, только сенсоры