Pandora Car Alarm System custom component

Русский | English

Pandora

Автомобиль тоже может быть частью умного дома. С помощью этого компонента вы сможете отслеживать состояние, управлять и автоматизировать свой автомобиль, если он оборудован охранной системой Pandora. После настройки ваши автомобили автоматически обнаружатся и добавятся в Home Assistant.

Компонент использует неофициальный API, полученный в результате reverse engineering, к официальному сайту Pandora https://p-on.ru. Функциональность компонента, в целом, повторяет функциональность, доступную на сайте или в мобильном приложении. Для настройки Вам следует использовать те же авторизационные данные, что вы используете на сайте Pandora.

На данный момент компонент поддерживает:

  • Device Tracker: Местоположение автомобиля.

  • Sensors and Binary Sensors: Температура, скорость, статус охраны, дверей и т.д.

  • Services: Команды, например: открыть/закрыть, завести/заглушить и др.

Подробное описание см. на странице компонента

7 Likes

Здравствуйте! Если ассистент установлен в docker в какие папки нужно копировать файлы? К меня таких путей нет (

Hello Vladislav! I’m glad it is interesting to at least someone except me.

I’ve shared early release of pandora integration. It was addressed to advanced users of HA.
In your case I ask to wait full release of integration.

А если серьезно, то просто не хватает времени, чтобы доделать нормальный компонент. Но если будет много интереса, то найду в себе силы. Под докером ни разу не запускал. Вероятно папка отличается. Рекомендую поискать все папки типа “python3.5/site-packages/homeassistant/components/” или просто “homeassistant”.

Здравствуйте, Turbo.
Мне тоже интересен Ваш модуль, но с наскока не разобрался, как его подключить.
Не могли бы Вы выложить краткую инструкцию?
Использую hass.io

Hi guys! I’ve just updated first post. Please have a look.

Привет.
Большое спасибо! Проверил - работает.
А возможно ли расширить функционал до:

  • датчики:
    • в охране / снята с охраны
    • багажник/двери открыт(ы) / закрыт(ы)
    • оставшееся время работы двигателя в режиме автозапуска
  • службы:
    • запуск / остановка двигателя

Thanks for your feedback!

Lock state is available.
Door states are depends on your vehicle and wiring diagram. In general - it is available.
Remaining time - is not available on p-on.ru
Start/stop engine is available.

You can fork and modify my integration as you wish.

1 Like

Ошибаетесь. Эта информация доступна, если двигатель запущен.

На сколько я понял принцип работы Вашей интеграции, за отправку команды на p-on.ru отвечает remote_services.py, а именно:

    def _trigger_remote_service(self, service_id: _Services) -> requests.Response:

        data = {
            'id': self._vehicle.id,
            'command': '33'}

        response = self._account.send_request('https://p-on.ru/api/devices/command', data=data, post=True, tolerant=True)

        return response

Я правильно понимаю, что достаточно указать правильный номер команды ( ‘command’: ‘ХХ’) для запуска/остановки двигателя? Как Вы определили номер команды?

Номер команды можно определить если в браузере открыть режим разработчика на сайте p-on.ru и отправить оттуда соответствующую команду.

Разработчику:
Подключил интеграцию - всё работает, большое спасибо!!
Можете в своем репозитории сделать возможность оптравлять разные команды по их id а не захардкоживать их? очень просим)

1 Like

Как сделать, чтобы двигатель можно было запускать?

Пока - никак. Нужно дописать команды.

На первом скрине, первый сенсор статус - отключен. Баг или фича?

Фича. Машина на подземной парковке. В зависимости от этого статуса я показываю разные данные. Связи нет - только уровень топлива. Связь есть - все данные.

Пример:

cards:
  - card:
      title: Телематика Honda Pilot
      show_header_toggle: false
      type: entities
      entities:
        - binary_sensor.honda_pilot_connection_state
        - sensor.honda_pilot_fuel
    type: conditional
    conditions:
      - entity: binary_sensor.honda_pilot_connection_state
        state: 'off'
  - card:
      title: Телематика Honda Pilot
      show_header_toggle: false
      type: entities
      entities:
        - binary_sensor.honda_pilot_engine_state
        - sensor.honda_pilot_fuel
        - type: divider
        - sensor.honda_pilot_out_temp
        - sensor.honda_pilot_cabin_temp
        - sensor.honda_pilot_engine_temp
    type: conditional
    conditions:
      - entity: binary_sensor.honda_pilot_connection_state
        state: 'on'
type: vertical-stack
1 Like

Добрый день! Случайно совершенно наткнулся на Ваш пост.
Подскажите, пожалуйста, Вы указали, что есть device tracker. Не могу найти.
И второе: У Вас на картинке в одном из постов есть пункт “Включить подогрев сидений”.
Такой команды в оригинальном приложении нет. Как Вы этого добились? ) Или в случае с Вашим авто это штатная функция?

А трекер, да, не работает в 0.106.2:
2020-03-01 11:49:47 ERROR (MainThread) [homeassistant.core] Error doing job: Future exception was never retrieved
Traceback (most recent call last):
File “/usr/lib/python3.7/concurrent/futures/thread.py”, line 57, in run
result = self.fn(*self.args, **self.kwargs)
File “/home/homeassistant/.homeassistant/custom_components/pandora/init.py”, line 140, in update
listener()
File “/home/homeassistant/.homeassistant/custom_components/pandora/device_tracker.py”, line 55, in update
if self.vehicle.state.bit_state_1 & 1 == 1:
TypeError: unsupported operand type(s) for &: ‘str’ and ‘int’

Добрый!

Пост по подогреву: https://www.drive2.ru/l/526540176697066100/

Остальное гляну позже

1 Like

Спасибо большое!

Добрый день!
Не удалось посмотреть/починить ошибку?

Пока нет. Возможно на выходных исправлю.

На первый взгляд выглядит так, как будто этот кусок device_tracker.py можно безболезненно выкосить:

        if self.vehicle.state.bit_state_1 & 1 == 1:
            ic='mdi:thermometer'
        else:
            ic='mdi:car'

Либо исправить так:

        if int(self.vehicle.state.bit_state_1) & 1 == 1:
            ic='mdi:thermometer'
        else:
            ic='mdi:car'

А вообще хочется понять сколько народу пользуется. Кроме меня :rofl:

Я ))
Но, мне кажется, надо пропиарить. Многие просто не знаю про это решение.
В телеге попиарить попробую.
Исправил на:
if int(self.vehicle.state.bit_state_1) & 1 == 1:
ic=‘mdi:thermometer’
else:
ic=‘mdi:car’
Ругань пропала, трекер появился, вечером попробую, работает ли, пишет ли историю.