Tesla Wall Connector Gen 3

This adapter reads API information from a Tesla Wall Connector Gen 3

Current Release
1.3.3
Developer
NoBl
License
MIT

Tesla Wall Connector Gen 3 adapter for ioBroker

Reads live data from a Tesla Wall Connector Gen 3 on your local network. All states are read-only (the wallbox API does not support write access).

Configuration

Settings

Main Settings

FieldDescription
Tesla Wall Connector Gen 3IP address or hostname of your wallbox (e.g. 192.168.1.50 or wallbox.local). Enter only the bare address — no scheme (http://), port, path, credentials, or bracketed IPv6. An empty field or 0.0.0.0 is treated as unconfigured and prevents polling.
Polling IntervalHow often the adapter reads data from the wallbox, in seconds. Default: 10. Range: 1 - 3600.
Request TimeoutMaximum time to wait for a response from the wallbox, in milliseconds. Default: 5000. Range: 1000 - 10000.
Polling RetriesHow many times to retry after a failed request. The value means retry attempts after the initial failure. 0 = no retries, 999 = unlimited. Default: 10.
Polling Retry FactorSpaces retries further apart. The n-th retry waits interval x factor x n seconds after the previous attempt. Example with defaults: 1st retry after 20 s, 2nd after 40 s. Resets after a successful read. Default: 2. Range: 1 - 10.
Split-phase power calculationEnable for North American split-phase installations. Uses grid_v x vehicle_current_a instead of per-phase voltage x current sums. Default: disabled (three-phase calculation).

After saving, the adapter restarts and begins polling immediately.

States

All states are read-only. The adapter polls the wallbox API and creates states for each value returned.

info

StateTypeDescription
info.connectionbooleantrue when the adapter can reach the wallbox and receives valid responses.

vitals

Live operational data, polled every interval.

StateTypeDescription
evse_statenumberCharging state (see table below)
vehicle_connectedbooleanWhether a vehicle is plugged in
vehicle_current_anumberCurrent drawn by the vehicle (A)
session_energy_whnumberEnergy delivered in the current session (Wh)
power_wnumberCharging power (W), calculated by the adapter. Three-phase mode: sum of V x A per phase. Split-phase mode: grid_v x vehicle_current_a.
session_snumberDuration of the current charging session (s)
contactor_closedbooleanWhether the charging relay is closed
grid_vnumberGrid voltage (V)
grid_hznumberGrid frequency (Hz)
voltageA_v, voltageB_v, voltageC_vnumberVoltage per phase (V)
currentA_a, currentB_a, currentC_a, currentN_anumberCurrent per phase (A)
pcba_temp_c, mcu_temp_c, handle_temp_cnumberTemperature readings (°C)
relay_coil_vnumberRelay coil voltage (V)
relay_k1_vnumberRelay K1 voltage (V)
relay_k2_vnumberRelay K2 voltage (V)
prox_vnumberProximity pilot voltage (V)
pilot_high_vnumberControl pilot high voltage (V)
pilot_low_vnumberControl pilot low voltage (V)
input_thermopile_uvnumberThermopile sensor reading
config_statusnumberConfiguration status
uptime_snumberWallbox uptime (s)
current_alertsstring (JSON)Active alerts as a JSON array (e.g. "[]"). Numeric child states (.0, .1, ...) are kept for backward compatibility and cleaned up automatically when the array shrinks.
evse_not_ready_reasonsstring (JSON)Reasons the wallbox is not ready, as a JSON array. Child states like current_alerts.

EVSE state codes:

CodeMeaning
0Booting
1Idle
2Vehicle connected but not ready to charge
4Vehicle connected and ready to charge
6Vehicle plugged in, handshake in progress
8Charging completed or interrupted
9Ready to charge, waiting for the vehicle
10Charging at reduced power (less than 3 phases, 16 amps each)
11Charging at full power (3 phases, 16 A each)

States 3, 5, 7, and 12 are undocumented. If you know what they mean, pull requests are welcome!

lifetime

Cumulative statistics over the lifetime of the wallbox. Polled no more than once per 60 seconds.

StateTypeDescription
energy_whnumberTotal energy delivered (Wh)
charge_startsnumberNumber of charging sessions started
charging_time_snumberTotal time spent charging (s)
uptime_snumberTotal uptime (s)
contactor_cyclesnumberNumber of relay open/close cycles
connector_cyclesnumberNumber of plug-in/plug-out cycles
alert_countnumberTotal number of alerts

version

Firmware and hardware identification. Polled at startup, after reconnection, and no more than once per hour.

StateTypeDescription
firmware_versionstringFirmware version
serial_numberstringSerial number
part_numberstringPart number

Additional states like git_branch, web_service, and IEEE 1547 CRC checksums may appear depending on firmware version.

wifi_status

WiFi connection details. Polled no more than once per 60 seconds.

StateTypeDescription
wifi_connectedbooleanWhether the wallbox is connected to WiFi
internetbooleanWhether the wallbox has internet access
wifi_ssidstringConnected SSID
wifi_infra_ipstringIP address on the WiFi network
wifi_macstringMAC address
wifi_signal_strengthnumberSignal strength (unitless quality value, higher is better)
wifi_rssinumberRSSI (dBm)
wifi_snrnumberSignal-to-noise ratio (dB)

The adapter dynamically creates states for all values returned by the API. Your wallbox may report additional states not listed here, depending on firmware version.

Polling behaviour

The adapter staggers requests to avoid overloading the wallbox's embedded web server:

EndpointFrequency
vitalsEvery polling interval
lifetimeAt most every 60 seconds
wifi_statusAt most every 60 seconds
versionAt startup, after reconnection, and at most once per hour

Requests are sent one at a time (sequentially). If a single endpoint fails, the other endpoints are still processed normally. Failed endpoints are retried on the next eligible cycle.

The adapter automatically repairs known Tesla firmware JSON defects (bare nan values, missing closing brace) before parsing responses.

Disclaimer

All product and company names or logos are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them or any associated subsidiaries! This personal project is maintained in spare time and has no business goal.

The default settings should be safe for normal use. Shortening the polling interval can overload the Wall Connector's embedded web server; if the wallbox stops responding, increase the interval or stop the adapter.

No warranty, and no liability. This adapter is a spare-time project, provided as-is under the MIT license. It reads data from a Tesla Wall Connector over a local, undocumented API. The author accepts no liability for any consequence of using it, and cannot tell you whether using it affects your warranty or support arrangements with Tesla or your installer. If that is not acceptable to you, please do not use this adapter.

Changelog

1.3.3 (2026-09-12)

  • Added Node.js 26 to test matrix
  • Dependency updates

1.3.2 (2026-09-04)

  • Dependency updates

1.3.1 (2026-08-14)

  • Dependency updates

1.3.0 (2026-08-04)

  • Added North American split-phase power calculation mode (splitPhase setting)
  • Added recovery for malformed wallbox responses (bare nan, Infinity, and truncated data)
  • Added address validation: clearer error messages for misconfigured wallbox addresses
  • Added 2 MiB response size limit
  • Fixed connection status flapping when the wallbox was partially reachable
  • Fixed charging power (power_w) sometimes showing a stale value after charging stops — now always 0 when not charging
  • Fixed handling of additional malformed sensor readings from certain firmware versions
  • Fixed unavailable sensor readings showing as empty instead of 0
  • Fixed state types sometimes changing unexpectedly, including after adapter restart
  • Fixed alerts and not-ready reasons not updating correctly when the list changes
  • Fixed all data refreshing immediately after connection loss recovery
  • Fixed retry count being off by one compared to the configured value
  • Fixed rare state updates still happening briefly after adapter shutdown
  • Fixed timeout help text showing wrong maximum (now correctly shows 10000 ms)
  • Fixed wallbox requests failing on systems with an HTTP proxy configured
  • Corrected WiFi signal strength metadata
  • Fixed database errors no longer triggering unnecessary reconnection attempts
  • Reduced load on wallbox: version data polled hourly, WiFi and lifetime data every 60 seconds
  • Expanded and corrected documentation

1.2.0 (2026-07-20)

  • (copilot) Adapter requires node.js >= 22 now
  • Added IEEE 1547 CRC state attributes
  • Fixed adapter checker warnings (jsonConfig, pollingTimeout)
  • Replaced plain setTimeout with adapter-managed timers
  • Added calculated charging power state (vitals.power_w)
  • Added specific ioBroker roles for all states
  • Simplified state attribute definitions
  • Fixed startup recovery: adapter now retries if wallbox is unreachable at start
  • Capped retry delay at 1 hour
  • Fixed state attribute typos and placeholder names
  • Updated documentation

License

MIT License

Copyright (c) 2024-2026 Norbert Bluemle github@bluemle.org

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.