evcc-io / evcc

Solar Charging ☀️🚘
https://evcc.io
MIT License
3.63k stars 675 forks source link

Tesla mit TWC und Teslamate - set Charge limit #12658

Closed minestrone1994 closed 8 months ago

minestrone1994 commented 8 months ago

Describe the bug

I am using EVCC running as an Addon on HassOs. I implemented the new API token system and created the virtual key - so far so good. My first loading was also running smoothly. However the charge limit from evcc does not translate into the correct charge limit in my Tesla app, is this a bug or a feature?

Steps to reproduce

  1. evcc as addon in HassOs
  2. teslamate as addon in HassOs
  3. TWC2, but emulating a TWC3-api using data from teslamate.
  4. using a higher limit in my Tesla app I can start and stop charging from evcc fine without problems.
  5. using a lower limit in the app then in evcc I cannot charge my Tesla and the limit also does not change when changed in evcc.

Configuration details

network:
  # schema is the HTTP schema
  # setting to `https` does not enable https, it only changes the way URLs are generated
  schema: http
  # host is the hostname or IP address
  # if the host name contains a `.local` suffix, the name will be announced on MDNS
  # docker: MDNS announcements don't work. host must be set to the docker host's name.
  host: evcc.local
  # port is the listening port for UI and api
  # evcc will listen on all available interfaces
  port: 7070

interval: 30s # control cycle interval. Interval <30s can lead to unexpected behavior, see https://docs.evcc.io/docs/reference/configuration/interval

# database configuration for persisting charge sessions and settings
# database:
#   type: sqlite
#   dsn: <path-to-db-file>

# sponsor token enables optional features (request at https://sponsor.evcc.io)
sponsortoken: eyXXX
# telemetry enables aggregated statistics
#
# Telemetry allows collecting usage data (grid and green energy, charge power).
# Data is aggregated, no individual charging sessions are tracked. The collected,
# anonymous data can be retrieved using https://api.evcc.io.
#
# See https://github.com/evcc-io/evcc/pull/4343 or details.
#
# For time being, this is only available to sponsors, hence data is associated with
# the sponsor token's identity.
#
# telemetry: true

# log settings
log: info
levels:
  site: debug
  lp-1: debug
  lp-2: debug
  cache: error
  db: error

# modbus proxy for allowing external programs to reuse the evcc modbus connection
# each entry will start a proxy instance at the given port speaking Modbus TCP and
# relaying to the given modbus downstream device (either TCP or RTU, RS485 or TCP)
modbusproxy:
  #  - port: 5200
  #    uri: solar-edge:502
  #    # rtu: true
  #    # readonly: true # use `deny` to raise modbus errors

# meter definitions
# name can be freely chosen and is used as reference when assigning meters to site and loadpoints
# for documentation see https://docs.evcc.io/docs/devices/meters
meters:
  - name: grid
    type: template
    template: victron-energy
    usage: grid
    host: 192.168.3.189 # IP-Adresse oder Hostname
    port: 502
  - name: pv
    type: template
    template: victron-energy
    usage: pv
    host: 192.168.3.189 # IP-Adresse oder Hostname
    port: 502
  - name: battery
    type: template
    template: victron-energy
    usage: battery
    host: 192.168.3.189 # IP-Adresse oder Hostname
    port: 502
  - name: chargemeter
    type: custom
    power : 
        source : mqtt
        topic :  /TWC/chargerpower
        scale: 1000
# charger definitions
# name can be freely chosen and is used as reference when assigning charger to vehicle
# for documentation see https://docs.evcc.io/docs/devices/chargers
chargers:
  - name: charger
    type: template
    template: twc3
    host: 192.168.3.227:8000

# vehicle definitions
# name can be freely chosen and is used as reference when assigning vehicle to loadpoint
# for documentation see https://docs.evcc.io/docs/devices/vehicles
vehicles:
  - name: ModelY
    type: template
    template: tesla
    title: ModelY # Wird in der Benutzeroberfläche angezeigt (optional)
    accessToken: eyJXXXX
    refreshToken: EU_b6bXXXX
    vin: LRWYXX # Erforderlich, wenn mehrere Fahrzeuge des Herst
    control: true
# site describes the EVU connection, PV and home battery
site:
  title: Home # display name for UI
  meters:
    grid: grid # grid meter
    pv:
      - pv # list of pv inverters/ meters
    battery:
      - battery # list of battery meters
  residualPower: 0 # additional household usage margin
  maxGridSupplyWhileBatteryCharging: 0 # ignore battery charging if AC consumption is above this value

# loadpoint describes the charger, charge meter and connected vehicle
loadpoints:
  - title: Garage # display name for UI
    charger: charger # charger
    meter: chargemeter # charge meter
    mode: "off" # default charge mode to apply when vehicle is disconnected; use "off" to disable by default if charger is publicly available
    phases: 3 # electrical connection (normal charger: default 3 for 3 phase, 1p3p charger: 0 for "auto" or 1/3 for fixed phases)
    minCurrent: 6 # minimum charge current (default 6A)
    maxCurrent: 16 # maximum charge current (default 16A)

    # remaining settings are experts-only and best left at default values
    priority: 0 # relative priority for concurrent charging in PV mode with multiple loadpoints (higher values have higher priority)
    soc:
      # polling defines usage of the vehicle APIs
      # Modifying the default settings it NOT recommended. It MAY deplete your vehicle's battery
      # or lead to vehicle manufacturer banning you from API use. USE AT YOUR OWN RISK.
      poll:
        # poll mode defines under which condition the vehicle API is called:
        #   charging: update vehicle ONLY when charging (this is the recommended default)
        #   connected: update vehicle when connected (not only charging), interval defines how often
        #   always: always update vehicle regardless of connection state, interval defines how often (only supported for single vehicle)
        mode: charging
        # poll interval defines how often the vehicle API may be polled if NOT charging
        interval: 60m
      estimate: true # set false to disable interpolating between api updates (not recommended)
    enable: # pv mode enable behavior
      delay: 1m # threshold must be exceeded for this long
      threshold: 0 # grid power threshold (in Watts, negative=export). If zero, export must exceed minimum charge power to enable
    disable: # pv mode disable behavior
      delay: 3m # threshold must be exceeded for this long
      threshold: 0 # maximum import power (W)
    guardDuration: 5m # switch charger contactor not more often than this (default 5m)

# tariffs are the fixed or variable tariffs
tariffs:
  currency: EUR # three letter ISO-4217 currency code (default EUR)
  grid:
    # either static grid price (or price zones)
    type: fixed
    price: 0.294 # EUR/kWh

    # or variable tariffs
    # type: tibber
    # token: "" # access token
    # homeid: "" # optional if multiple homes associated to account

    # type: awattar
    # region: de # optional, choose at for Austria
    # charges: # optional, additional charges per kWh
    # tax: # optional, additional tax (0.1 for 10%)

    # type: octopusenergy
    # tariff: AGILE-FLEX-22-11-25 # Tariff code
    # region: A # optional

    # type: elering # Nordpool
    # region: ee # or lt, lv, fi
    # charges: # optional, additional charges per kWh
    # tax: # optional, additional tax (0.1 for 10%)

    # type: energinet # Energinet using the price in DKK
    # region: dk1 # or dk2
    # charges: # optional, additional charges per kWh
    # tax: # optional, additional tax (0.1 for 10%)

    # type: entsoe # Entso-E european market data
    # domain: BZN|DE-LU # https://transparency.entsoe.eu/content/static_content/Static%20content/web%20api/Guide.html#_areas
    # securitytoken: # api token
    # charges: # optional, additional charges per kWh
    # tax: # optional, additional tax (0.1 for 10%)

    # type: custom # price from a plugin source; see https://docs.evcc.io/docs/reference/plugins
    # price:
    #   source: http
    #   uri: https://example.org/price.json
    #   jq: .price.current

  feedin:
    # rate for feeding excess (pv) energy to the grid
    type: fixed
    price: 0.08 # EUR/kWh

    # type: octopusenergy
    # tariff: AGILE-FLEX-22-11-25 # Tariff code
    # region: A # optional
  co2:
    # co2 tariff provides co2 intensity forecast and is for co2-optimized target charging if no variable grid tariff is specified
    # type: grünstromindex # GrünStromIndex (Germany only)
    # zip: <zip>

    # type: electricitymaps # https://app.electricitymaps.com/map
    # uri: <uri>
    # token: <token>
    # zone: DE

    # type: ngeso # National Grid Electricity System Operator data (United Kingdom only) https://carbonintensity.org.uk/
    # provides national data if both region and postcode are omitted - do not supply both at the same time!
    # region: 1 # optional, coarser than using a postcode - see https://api.carbonintensity.org.uk/ for full list
    # postcode: SW1A1AA # optional

# mqtt message broker
mqtt:
   broker: localhost:1883
   topic: evcc # root topic for publishing, set empty to disable
   user: user
   password: XXX

# influx database
influx:
  # url: http://localhost:8086
  # database: evcc
  # user:
  # password:

# eebus credentials
eebus:
  # uri: # :4712
  # interfaces: # limit eebus to specific network interfaces
  # - en0
  # certificate: # local signed certificate, required, can be generated via `evcc eebus-cert`
  #   public: # public key
  #   private: # private key

# push messages
messaging:
  events:
    start: # charge start event
      title: Charge started
      msg: Started charging in "${mode}" mode
    stop: # charge stop event
      title: Charge finished
      msg: Finished charging ${chargedEnergy:%.1fk}kWh in ${chargeDuration}.
    connect: # vehicle connect event 
      title: Car connected
      msg: "Car connected at ${pvPower:%.1fk}kW PV"
    disconnect: # vehicle connected event
      title: Car disconnected
      msg: Car disconnected after ${connectedDuration}
    soc: # vehicle soc update event
      title: Soc updated
      msg: Battery charged to ${vehicleSoc:%.0f}%
    guest: # vehicle could not be identified
      title: Unknown vehicle
      msg: Unknown vehicle, guest connected?
  services:
  # - type: pushover
  #   app: # app id
  #   recipients:
  #   - # list of recipient ids
  # - type: telegram
  #   token: # bot id
  #   chats:
  #   - # list of chat ids
  # - type: email
  #   uri: smtp://<user>:<password>@<host>:<port>/?fromAddress=<from>&toAddresses=<to>
  # - type: ntfy
  #   uri: https://<host>/<topics>
  #   priority: <priority>
  #   tags: <tags>

Log details

[lp-1  ] DEBUG 2024/03/04 14:29:53 charge power: 8000W
[site  ] DEBUG 2024/03/04 14:29:53 pv power: 9766W
[site  ] DEBUG 2024/03/04 14:29:53 battery soc: 100%
[site  ] DEBUG 2024/03/04 14:29:53 battery power: -78W
[site  ] DEBUG 2024/03/04 14:29:53 grid meter: -101W
[site  ] DEBUG 2024/03/04 14:29:53 site power: -179W
[lp-1  ] DEBUG 2024/03/04 14:29:53 charger status: C
[lp-1  ] DEBUG 2024/03/04 14:29:53 vehicle soc: 81%
[lp-1  ] DEBUG 2024/03/04 14:29:53 vehicle soc limit: 90%
[lp-1  ] DEBUG 2024/03/04 14:29:53 vehicle range: 420km
[lp-1  ] DEBUG 2024/03/04 14:29:53 pv charge current: 12.3A = 12A + 0.259A (-179W @ 3p)
[lp-1  ] DEBUG 2024/03/04 14:30:14 set session soc limit: 80
[site  ] DEBUG 2024/03/04 14:30:14 ----
[lp-1  ] DEBUG 2024/03/04 14:30:14 charge power: 8000W
[site  ] DEBUG 2024/03/04 14:30:14 pv power: 9471W
[site  ] DEBUG 2024/03/04 14:30:14 battery soc: 100%
[site  ] DEBUG 2024/03/04 14:30:14 battery power: -363W
[site  ] DEBUG 2024/03/04 14:30:14 grid meter: -8626W
[site  ] DEBUG 2024/03/04 14:30:14 site power: -8989W
[lp-1  ] DEBUG 2024/03/04 14:30:14 charger status: C
[lp-1  ] DEBUG 2024/03/04 14:30:14 vehicle soc: 81%
[lp-1  ] DEBUG 2024/03/04 14:30:14 vehicle soc limit: 90%
[lp-1  ] DEBUG 2024/03/04 14:30:14 vehicle range: 420km
[lp-1  ] DEBUG 2024/03/04 14:30:14 limitSoc reached: 81.0% > 80%
[lp-1  ] DEBUG 2024/03/04 14:30:15 charger disable
[lp-1  ] DEBUG 2024/03/04 14:30:15 wake-up timer: stop
[site  ] DEBUG 2024/03/04 14:30:23 ----
[lp-1  ] DEBUG 2024/03/04 14:30:23 charge power: 0W
[site  ] DEBUG 2024/03/04 14:30:23 pv power: 10015W
[site  ] DEBUG 2024/03/04 14:30:23 battery soc: 100%
[site  ] DEBUG 2024/03/04 14:30:23 battery power: 420W
[site  ] DEBUG 2024/03/04 14:30:23 grid meter: -8824W
[site  ] DEBUG 2024/03/04 14:30:23 site power: -8404W
[lp-1  ] DEBUG 2024/03/04 14:30:23 charger status: B
[lp-1  ] INFO 2024/03/04 14:30:23 stop charging <-
[lp-1  ] DEBUG 2024/03/04 14:30:24 vehicle soc: 81%
[lp-1  ] DEBUG 2024/03/04 14:30:24 vehicle soc limit: 80%
[lp-1  ] DEBUG 2024/03/04 14:30:24 vehicle range: 420km
[lp-1  ] DEBUG 2024/03/04 14:30:24 limitSoc reached: 81.0% > 80%
[site  ] DEBUG 2024/03/04 14:30:53 ----
[lp-1  ] DEBUG 2024/03/04 14:30:53 charge power: 0W
[site  ] DEBUG 2024/03/04 14:30:53 pv power: 8344W
[site  ] DEBUG 2024/03/04 14:30:53 battery soc: 100%
[site  ] DEBUG 2024/03/04 14:30:53 battery power: -68W
[site  ] DEBUG 2024/03/04 14:30:53 grid meter: -8075W
[site  ] DEBUG 2024/03/04 14:30:53 site power: -8143W
[lp-1  ] DEBUG 2024/03/04 14:30:53 charger status: B
[lp-1  ] DEBUG 2024/03/04 14:30:53 limitSoc reached: 81.0% > 80%
[site  ] DEBUG 2024/03/04 14:31:23 ----
[lp-1  ] DEBUG 2024/03/04 14:31:23 charge power: 0W
[site  ] DEBUG 2024/03/04 14:31:23 pv power: 8432W
[site  ] DEBUG 2024/03/04 14:31:23 battery soc: 100%
[site  ] DEBUG 2024/03/04 14:31:23 battery power: -257W
[site  ] DEBUG 2024/03/04 14:31:23 grid meter: -7923W
[site  ] DEBUG 2024/03/04 14:31:23 site power: -8180W
[lp-1  ] DEBUG 2024/03/04 14:31:23 charger status: B
[lp-1  ] DEBUG 2024/03/04 14:31:23 limitSoc reached: 81.0% > 80%

What type of operating system are you running?

HomeAssistant Add-on

Version

No response

andig commented 8 months ago

However the charge limit from evcc does not translate into the correct charge limit in my Tesla app, is this a bug or a feature?

There is no integration for the limit.