Code Monkey home page Code Monkey logo

audi_connect_ha's Introduction

Audiconnect integration for home assistant

GitHub Activity License Code Style

hacs Project Maintenance BuyMeCoffee

Description

The audiconnect component offers integration with the Audi connect cloud service and offers presence detection, sensors such as range, mileage, and fuel level, and provides car actions such as locking/unlocking and setting the pre-heater.

Note that certain functions may require special permissions from Audi, such as the position update via GPS.

Credits go to the guys at the ioBroker VW-Connect forum, which were able to figure out how the API and the pin hashing works, and to davidgiga1993 of the original AudiAPI Python package on which some of this code is loosely based.

Installation

There are two ways this integration can be installed into Home Assistant.

The easiest way is to install the integration using HACS.

Alternatively, installation can be done manually by copying the files in this repository into the custom_components directory in the HA configuration directory:

  1. Open the configuration directory of your HA configuration.
  2. If you do not have a custom_components directory, you need to create it.
  3. In the custom_components directory create a new directory called audiconnect.
  4. Copy all the files from the custom_components/audiconnect/ directory in this repository into the audiconnect directory.
  5. Restart Home Assistant
  6. Add the integration to Home Assistant (see Configuration)

Configuration

Configuration is done through the Home Assistant UI.

To add the integration, go to Configuration->Integrations, click + and search for Audi Connect

Configuration

Configuration Variables

username

  • (string)(Required)The username associated with your Audi Connect account.

password

  • (string)(Required)The password for your given Audi Connect account.

S-PIN

  • (string)(Optional)The S-PIN for your given Audi Connect account.

region

  • (string)(Optional)The region where the Audi account is registered. Set to 'DE' for Europe (or leave unset), to 'US' for North America, or to 'CN' for China.

scan_interval

  • specify in minutes how often to fetch status data from Audi Connect (optional, default 10 min, minimum 1 min)

Services

audiconnect.refresh_vehicle_data

The normal update procedure retrieves the data from the servers and does not directly interact with the vehicle. This service triggers an update request from the vehicle. When the data is retrieved successfully, the data in Home Assistant is automatically updated. The service requires a vin as parameter.

audiconnect.execute_vehicle_action

Executes a given action in the vehicle. The service takes a vin and an action as parameters. Possible action values:

  • lock
  • unlock
  • start_climatisation
  • stop_climatisation
  • start_charger
  • stop_charger
  • start_preheater
  • stop_preheater
  • start_window_heating
  • stop_window_heating

Note that certain action require the S-PIN to be defined in the configuration.

When the action was successfully performed, an update request from the vehicle is automatically triggered.

Example Lovelace Card

Below is an example Lovelace Card summarizing some of the sensors this Home Assistant addon provides.

Example Lovelace Card

The card requires the following mods:

which are obtainable via HACS.

The card uses the following code in ui-lovelace.yaml.

     - type: picture-elements
        image: /local/pictures/audi_sq7.jpeg
        style: | 
          ha-card {
            border-radius: 10px;
            border: solid 1px rgba(100,100,100,0.3);
            box-shadow: 3px 3px rgba(0,0,0,0.4);
            overflow: hidden;
          } 
        elements:
        - type: image
          image: /local/pictures/cardbackK.png
          style:
            left: 50%
            top: 90%
            width: 100%
            height: 60px

        - type: icon
          icon: mdi:car-door
          entity: sensor.doors_trunk_sq7
          tap_action: more_info
          style: {color: white, left: 10%, top: 86%}
        - type: state-label
          entity: sensor.doors_trunk_sq7
          style: {color: white, left: 10%, top: 95%}

        - type: state-icon
          entity: sensor.windows_sq7
          tap_action: more_info
          style: {color: white, left: 30%, top: 86%}
        - type: state-label
          entity: sensor.windows_sq7
          style: {color: white, left: 30%, top: 95%}

        - type: icon
          icon: mdi:oil
          entity: sensor.audi_sq7_oil_level
          tap_action: more_info
          style: {color: white, left: 50%, top: 86%}
        - type: state-label
          entity: sensor.audi_sq7_oil_level
          style: {color: white, left: 50%, top: 95%}

        - type: icon
          icon: mdi:room-service-outline
          entity: sensor.audi_sq7_service_inspection_time
          tap_action: more_info
          style: {color: white, left: 70%, top: 86%}
        - type: state-label
          entity: sensor.audi_sq7_service_inspection_time
          style: {color: white, left: 70%, top: 95%}

        - type: icon
          icon: mdi:speedometer
          entity: sensor.audi_sq7_mileage
          tap_action: more_info
          style: {color: white, left: 90%, top: 86%}
        - type: state-label
          entity: sensor.audi_sq7_mileage
          style: {color: white, left: 90%, top: 95%}

        - type: custom:circle-sensor-card
          entity: sensor.audi_sq7_tank_level
          max: 100
          min: 0
          stroke_width: 15
          gradient: true
          fill: '#aaaaaabb'
          name: tank
          units: ' '
          font_style:
            font-size: 1.0em
            font-color: white
            text-shadow: '1px 1px black'
          style:
            top: 5%
            left: 80%
            width: 4em
            height: 4em
            transform: none

        - type: custom:circle-sensor-card
          entity: sensor.audi_sq7_range
          max: 630
          min: 0
          stroke_width: 15
          gradient: true
          fill: '#aaaaaabb'
          name: range
          units: ' '
          font_style:
            font-size: 1.0em
            font-color: white
            text-shadow: '1px 1px black'
          style:
            top: 5%
            left: 5%
            width: 4em
            height: 4em
            transform: none

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.