Tesla Wall Connector Gen 3 RESTful

I got my Tesla Wall Connector Gen 3 yesterday and wanted to integrate this with HA, did not find any integration so I started to find a way and just wanted to share how i did this. Probably there is better ways and deeper way of doing this then please let me know below, I’m just a newbie :smiley:

I want four things when it comes to Tesla Wall Connector and these are:

  • See if a vehicle are connected to the charger :white_check_mark:
  • Be able to get how much energy last charging session was :white_check_mark:
  • Be able to control how much Amp the charger is giving to the vehicle
  • Be able to turn on/off the charging capabilities

I managed to get two out of four done yesterday and will instigate future how to solve all my asks. There is a API that is undocumented so it’s a bit like finding a needle in the haystack but below is some API calls:

  • http://>IP address</api/1/vitals
  • http://>IP address</api/1/wifi_status
  • http://>IP address</api/1/lifetime
  • http://>IP address</api/1/version
  • http://>IP address</tedapi/v1

The one I think is the most useful are the first one Vitals, so I created one sensor and one binary sensor. The sensor display how much energy Wh used by the last charging session and the binary sensor display if a vehicle is connected or not.

#Tesla Wall Connector Gen 3
rest:
  - authentication: basic
    username: ""
    password: ""
    scan_interval: 60
    resource: http://>IP address</api/1/vitals
    sensor:
      - name: "Last charge session"
        value_template: "{{ value_json.session_energy_wh }}"
        device_class: energy
    binary_sensor:
      - name: "Vehicle connected"
        value_template: "{{ value_json.vehicle_connected }}"
        device_class: occupancy

If you like to make a Tesla Wall Connector sensor with all Vitals attributs you can use the following code

rest:
  - authentication: basic
    username: ""
    password: ""
    scan_interval: 60
    resource: http://>IP address</api/1/vitals
    sensor:
      - name: "Tesla Wall Connector"
        value_template: "OK"
        json_attributes:
          - "contactor_closed"
          - "vehicle_connected"
          - "session_s"
          - "grid_v"
          - "grid_hz"
          - "vehicle_current_a"
          - "currentA_a"
          - "currentB_a"
          - "currentC_a"
          - "voltageA_v"
          - "voltageB_v"
          - "voltageC_v"
          - "relay_coil_v"
          - "pcba_temp_c"
          - "handle_temp_c"
          - "mcu_temp_c"
          - "uptime_s"
          - "input_thermopile_uv"
          - "prox_v"
          - "pilot_high_v"
          - "pilot_low_v"
          - "session_energy_wh"
          - "config_status"
          - "evse_state"
          - "current_alerts"

ps.
Don’t forget to change >IP address< to whatever IP address your Tesla Wall Connector has.

1 Like

Hi!

I would also like to be able to change the Amps as this would solve a load balance issue I have :slight_smile:

Have you come any further with this?

Leaving a comment for subscription. Have any further APIs been discovered? I also have the Use case of setting Amps remotely. Would like to contribute also. How did you reverse engineer the APIs?

Sorry to say I have not, I have tried to Wireshark the communication but have not been successful to find out more :frowning: I also tried to look into the firmware but I’m not a hacker and it seams to encrypted.

I found one more API call:

  • http:///api/1/lifetime

It’s harder to find the way how to send Amps and on/off as it’s a POST command, so we need to figure out how the amps are formatted and where to send the info. It’s just a matter of testing back and forth to try to find the say, getting into the head of the engineering’s that built the API.