From d474dad00d0b42ea6147a2ba9a6cb606afc64994 Mon Sep 17 00:00:00 2001 From: Steve Krulewitz Date: Sun, 12 Jan 2025 15:42:28 -0800 Subject: [PATCH] Charger template for tesla-ble --- templates/definition/charger/tesla-ble.yaml | 63 +++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 templates/definition/charger/tesla-ble.yaml diff --git a/templates/definition/charger/tesla-ble.yaml b/templates/definition/charger/tesla-ble.yaml new file mode 100644 index 0000000000..1f96cbea43 --- /dev/null +++ b/templates/definition/charger/tesla-ble.yaml @@ -0,0 +1,63 @@ +template: tesla-ble +products: + - description: + generic: Tesla BLE +group: generic +requirements: + description: + de: Open Source Tesla BLE HTTP Proxy https://github.com/wimaha/TeslaBleHttpProxy + en: Open Source Tesla BLE HTTP Proxy https://github.com/wimaha/TeslaBleHttpProxy +params: + - preset: vehicle-common + - name: vin + required: true + example: W... + help: + de: Erforderlich für BLE-Verbindung + en: Required for BLE connection + - name: url + required: true + example: http://192.168.178.27 + help: + de: URL des Tesla BLE HTTP Proxy + en: URL of the Tesla BLE HTTP Proxy + - name: port + example: 8080 + default: 8080 + help: + de: Port des Tesla BLE HTTP Proxy + en: Port of the Tesla BLE HTTP Proxy +render: | + type: custom + power: + source: http + uri: {{ .url }}:{{ .port }}/api/1/vehicles/{{ .vin }}/vehicle_data?endpoints=charge_state + method: GET + jq: .response.response.charge_state.charger_voltage * .response.response.charge_state.charger_actual_current + timeout: 30s + status: + source: http + uri: {{ .url }}:{{ .port }}/api/1/vehicles/{{ .vin }}/vehicle_data?endpoints=charge_state + method: GET + jq: (if (.response.response.charge_state.charging_state == "Charging") then "C" + elif (.response.response.charge_state.charging_state == "Stopped") then "B" + elif (.response.response.charge_state.charging_state == "NoPower") then "B" + elif (.response.response.charge_state.charging_state == "Complete") then "B" + else "A" end) + timeout: 30s + enabled: + source: http + uri: {{ .url }}:{{ .port }}/api/1/vehicles/{{ .vin }}/vehicle_data?endpoints=charge_state + method: GET + jq: (.response.response.charge_state.charging_state == "Charging" + and .response.response.charge_state.charger_power > 0) + timeout: 30s + enable: + source: http + uri: {{ .url }}:{{ .port }}/api/1/vehicles/{{ .vin }}/command/{{`{{ if .chargeenable }}charge_start{{ else }}charge_stop{{ end }}`}} + method: POST + maxcurrent: + source: http + uri: {{ .url }}:{{ .port }}/api/1/vehicles/{{ .vin }}/command/set_charging_amps + method: POST + body: '{"charging_amps": ${maxcurrent}}'