I put it on the YAML but it is missing sensors to make a card on dashboard there I need help
Post your config properly then, you haven’t posted anything resembling yaml.
nissan_leaf:
username: XXX
password: XXXX
region: NE
update_interval:
hours: 1
update_interval_charging:
minutes: 15
update_interval_climate:
minutes: 5
force_miles: true
that is from my YAML
Hi,
To get the Leaf charge information onto a dashboard there are two steps. Firstly, you need a bit more yaml code in your configuration which creates variables that you can use throughout Home Assistant, and then you need to add those to a panel.
So, here are all the entries for my Leaf in the configuration.yaml file. Note: you will need to replace leaf1phil with the name that you chose for your car.
# Add Nissan Leaf integration
nissan_leaf:
username: "xxxxxxx"
password: "xxxxxxx"
region: "NE"
update_interval:
minutes: 10
update_interval_charging:
minutes: 10
update_interval_climate:
minutes: 5
force_miles: true
sensor:
- platform: template
sensors:
leaf_charge_state:
value_template: "Charging: {{ states('binary_sensor.leaf1phil_charging_status') }}"
leaf_charge_message:
value_template: "{{ states('sensor.leaf1phil_charge') }}% - {{ states('sensor.leaf1phil_range') }} miles ({{ states('sensor.leaf1phil_range_ac') }} with AC)"
icon_template: "{%- if states.sensor.leaf1phil_charge.state >= '95' %}mdi:battery{%- elif states.sensor.leaf1phil_charge.state == '100' %}mdi:battery{%- elif states.sensor.leaf1phil_charge.state <= '15' %}mdi:battery-outline{% else %}mdi:battery-{{(states.sensor.leaf1phil_charge.state|float / 10)|round*10}}{%- endif %}"
leaf_range_ac:
value_template: "{{ states('sensor.leaf1phil_range_ac') }} miles with AC"
leaf_range:
value_template: "{{ states('sensor.leaf1phil_range') }} miles"
leaf_battery:
unit_of_measurement: '%'
value_template: "{{ states('sensor.leaf1phil_charge') }}"
icon_template: "{%- if states.sensor.leaf1phil_charge.state >= '95' %}mdi:battery{%- elif states.sensor.leaf1phil_charge.state == '100' %}mdi:battery{%- elif states.sensor.leaf1phil_charge.state <= '15' %}mdi:battery-outline{% else %}mdi:battery-{{(states.sensor.leaf1phil_charge.state|float / 10)|round*10}}{%- endif %}"
This is what the car pane on my dashboard looks like. The extra information about ‘updating’, ‘last’ and ‘next’ is to help me see if the Nissan servers have got stuck mid update, in which case a restart of HA is needed. The carport light is just a light. The ‘Fossil Fuel %’ comes from the CO2 signal integration. If you’re interested the plugin information is here: CO2 Signal - Home Assistant
And here’s the YAML code. Note: you will need to replace leaf1phil with the name that you chose for your car, in the configuration, above. Also, there is a place which I have marked where you need to enter the VIN of your car (the code you can see on the small metal plate just inside the windscreen).
views:
- title: Home
cards:
- type: vertical-stack
cards:
- type: grid
columns: 4
cards:
- type: gauge
min: 0
max: 100
name: Car Batt
entity: sensor.leaf1phil_charge
- type: gauge
entity: sensor.grid_fossil_fuel_percentage
unit: '%'
max: 100
min: 0
name: Fos. Fuel
severity:
green: 0
yellow: 10
red: 50
- type: custom:gap-card
- type: custom:gap-card
- type: button
entity: button.start_leaf1phil_charging
name: Charge now
icon: mdi:power
hold_action:
action: none
tap_action:
action: call-service
service: nissan_leaf.start_charge
service_data:
vin: >-
*************************************** put your VIN here
and remove the apostrophes ********************
target: {}
- type: button
show_icon: true
entity: switch.leaf1phil_climate_control
icon: mdi:fan
name: Preheat car
hold_action:
action: none
- type: custom:gap-card
- type: markdown
content: >-
Leaf updating:
{{states.sensor.leaf1phil_range.attributes.update_in_progress}}
square: true
- type: grid
columns: 2
cards:
- type: glance
entities:
- entity: binary_sensor.leaf1phil_plug_status
- entity: binary_sensor.leaf1phil_charging_status
show_name: false
show_state: true
- type: entities
entities:
- type: attribute
entity: sensor.leaf1phil_charge
name: Last
icon: mdi:car
attribute: updated_on
format: relative
- type: attribute
entity: sensor.leaf1phil_charge
name: Next
icon: mdi:car
attribute: next_update
format: relative
square: false
Hope this works for you. And of-course huge credit to all the people in this community who helped me reach this solution since my original post!
many thanks for your help.
I added everything as you described but I am getting uknown status
Logger: homeassistant.helpers.template_entity
Source: helpers/template_entity.py:312
First occurred: 9:18:23 AM (2 occurrences)
Last logged: 9:18:23 AM
Template loop detected while processing event: <Event state_changed[L]: entity_id=sensor.leaf_range_ac, old_state=<state sensor.leaf_range_ac=unknown miles with AC; friendly_name=leaf_range_ac @ 2022-07-10T09:18:21.669370+02:00>, new_state=<state sensor.leaf_range_ac=unknown miles with AC miles with AC; friendly_name=leaf_range_ac @ 2022-07-10T09:18:23.171946+02:00>>, skipping template render for Template[{{ states(‘sensor.LEAF_range_ac’) }} miles with AC]
Template loop detected while processing event: <Event state_changed[L]: entity_id=sensor.leaf_range, old_state=<state sensor.leaf_range=unknown miles; friendly_name=leaf_range @ 2022-07-10T09:18:21.674337+02:00>, new_state=<state sensor.leaf_range=unknown miles miles; friendly_name=leaf_range @ 2022-07-10T09:18:23.177112+02:00>>, skipping template render for Template[{{ states(‘sensor.LEAF_range’) }} miles]
did I missed something ?
Hello,
I have same problem. no entity existing.
No logs, no yaml = no issue. Please people read the posting guidelines.
Hi
here is the yaml:
nissan_leaf:
username: XXX
password: XXXX
region: NE
update_interval:
minutes: 10
update_interval_charging:
minutes: 15
update_interval_climate:
minutes: 5
force_miles: true
sensor:
-
platform: template
sensors:
leaf_charge_state:
value_template: "Charging: {{ states('binary_sensor.LEAF_charging_status') }}"
leaf_charge_message:
value_template: "{{ states('sensor.LEAF_charge') }}% - {{ states('sensor.LEAF_range') }} miles ({{ states('sensor.LEAF_range_ac') }} with AC)" icon_template: "{%- if states.sensor.LEAF_charge.state >= '95' %}mdi:battery{%- elif states.sensor.LEAF_charge.state == '100' %}mdi:battery{%- elif states.sensor.LEAF_charge.state <= '15' %}mdi:battery-outline{% else %}mdi:battery-{{(states.sensor.LEAF_charge.state|float / 10)|round*10}}{%- endif %}"
leaf_range_ac:
value_template: "{{ states('sensor.LEAF_range_ac') }} miles with AC"
leaf_range:
value_template: "{{ states('sensor.LEAF_range') }} miles"
leaf_battery:
unit_of_measurement: '%' value_template: "{{ states('sensor.LEAF_charge') }}" icon_template: "{%- if states.sensor.LEAF_charge.state >= '95' %}mdi:battery{%- elif states.sensor.LEAF_charge.state == '100' %}mdi:battery{%- elif states.sensor.LEAF_charge.state <= '15' %}mdi:battery-outline{% else %}mdi:battery-{{(states.sensor.LEAF_charge.state|float / 10)|round*10}}{%- endif %}"
the card:
- theme: Backend-selected
title: leaf
path: leaf
icon: mdi:car
badges: []
cards:- type: vertical-stack
cards:- type: grid
columns: 4
cards:- type: gauge
min: 0
max: 100
name: cAR bATT
entity: sensor.LEAF_charge - type: gauge
entity: sensor.grid_fossil_fuel_percentage
unit: ‘%’
max: 100
min: 0
name: Fos. Fuel
severity:
green: 0
yellow: 10
red: 50 - type: custom:gap-card
- type: custom:gap-card
- type: button
entity: button.start_LEAF_charging
name: Charge now
icon: mdi:power
hold_action:
action: none
tap_action:
action: call-service
service: nissan_leaf.start_charge
service_data:
vin: SJNFAAZE0U6023145
target: {} - type: button
show_icon: true
entity: switch.LEAF_climate_control
icon: mdi:fan
name: Preheat car
hold_action:
action: none - type: custom:gap-card
- type: markdown
content: >-
Leaf updating:
{{states.sensor.LEAF_range.attributes.update_in_progress}}
square: true
- type: gauge
- type: grid
columns: 2
cards:- type: glance
entities:- entity: binary_sensor.LEAF_plug_status
- entity: binary_sensor.LEAF_charging_status
show_name: false
show_state: true
- type: entities
entities:- type: attribute
entity: sensor.LEAF_charge
name: Last
icon: mdi:car
attribute: updated_on
format: relative - type: attribute
entity: sensor.LEAF_charge
name: Next
icon: mdi:car
attribute: next_update
format: relative
square: false
- type: attribute
- type: glance
- type: grid
- type: entities
entities:- sensor.leaf_battery
- type: vertical-stack
log:
Logger: homeassistant.helpers.template_entity
Source: helpers/template_entity.py:312
First occurred: 5:28:13 PM (2 occurrences)
Last logged: 5:28:13 PM
- Template loop detected while processing event: <Event state_changed[L]: entity_id=sensor.leaf_range_ac, old_state=<state sensor.leaf_range_ac=unknown miles with AC; friendly_name=leaf_range_ac @ 2022-07-12T17:28:12.303621+02:00>, new_state=<state sensor.leaf_range_ac=unknown miles with AC miles with AC; friendly_name=leaf_range_ac @ 2022-07-12T17:28:13.704359+02:00>>, skipping template render for Template[{{ states(‘sensor.LEAF_range_ac’) }} miles with AC]
- Template loop detected while processing event: <Event state_changed[L]: entity_id=sensor.leaf_range, old_state=<state sensor.leaf_range=unknown miles; friendly_name=leaf_range @ 2022-07-12T17:28:12.308333+02:00>, new_state=<state sensor.leaf_range=unknown miles miles; friendly_name=leaf_range @ 2022-07-12T17:28:13.709817+02:00>>, skipping template render for Template[{{ states(‘sensor.LEAF_range’) }} miles]
That is not how to post yaml.
Where can I find the guideline ?
Can you please speak clearly , i am new here
Sorry, I thought everyone was referred to it when they joined the forum. How to help us help you - or How to ask a good question
nissan_leaf:
username: XXX
password: XXX
region: NE
update_interval:
minutes: 10
update_interval_charging:
minutes: 15
update_interval_climate:
minutes: 5
force_miles: true
sensor:
- platform: template
sensors:
leaf_charge_state:
value_template: "Charging: {{ states('binary_sensor.LEAF_charging_status') }}"
leaf_charge_message:
value_template: "{{ states('sensor.LEAF_charge') }}% - {{ states('sensor.LEAF_range') }} miles ({{ states('sensor.LEAF_range_ac') }} with AC)"
icon_template: "{%- if states.sensor.LEAF_charge.state >= '95' %}mdi:battery{%- elif states.sensor.LEAF_charge.state == '100' %}mdi:battery{%- elif states.sensor.LEAF_charge.state <= '15' %}mdi:battery-outline{% else %}mdi:battery-{{(states.sensor.LEAF_charge.state|float / 10)|round*10}}{%- endif %}"
leaf_range_ac:
value_template: "{{ states('sensor.LEAF_range_ac') }} miles with AC"
leaf_range:
value_template: "{{ states('sensor.LEAF_range') }} miles"
leaf_battery:
unit_of_measurement: '%'
value_template: "{{ states('sensor.LEAF_charge') }}"
icon_template: "{%- if states.sensor.LEAF_charge.state >= '95' %}mdi:battery{%- elif states.sensor.LEAF_charge.state == '100' %}mdi:battery{%- elif states.sensor.LEAF_charge.state <= '15' %}mdi:battery-outline{% else %}mdi:battery-{{(states.sensor.LEAF_charge.state|float / 10)|round*10}}{%- endif %}"
is it better now ?
Hi. So firstly, apologies for forgetting that I have installed some custom cards which are in use in the dashboard. So maybe it’s best to simplify things and take it a step at a time:
- Ignore (or delete completely) the part of the dashboard with the LEAF stuff. You can add the controls that you need later, without all the complexity.
- See how far you can get debugging it yourself:
- Firstly in the developer tools click on Check Configuration to see if some error has slipped into the YAML
- If that’s all OK, then use the ‘States’ tab to see if you can find your new LEAF variables and work out if they are getting values from the Nissan servers. Tip: use the ‘Filter entities’ option to filter just entities with the right kind of names (eg. ‘Leaf’)
- Also look at the error logs. That’s under Settings → System → Logs and then you will probably need to Load Full Logs. Beware, that last bit can take a long time. Look through the logs or apply filtering to see if you are getting an error from the Nissan servers.
It can take quite a long time for the Nissan servers to provide updates, so you have to be patient at times with this. Also, everyone says that the Nissan servers are temperamental, so sometimes it really isn’t your code that’s at fault. When I was trying to get it all working I used a third party app on my phone, QuickLeaf that I used to check whether or not the Nissan APIs were working and that I had got all my login details correct (!). If the QuickLeaf app on your phone can poll the Nissan servers for the battery status then HA should be able to; conversely, if QuickLeaf cannot get a response, then you’re better waiting until Nissan is playing nicely again!
Let me know how you get on.
A tip as well, ha entity names are always lower case, so nothing will EVER be named sensor.LEAF_charge
.
I found it from the app you gave me quickLeaf I used the email to sign in on HA it should be the user name now it works fine. Many thanks
I want to have to change the unit from miles to km
is it just to change in the yaml from miles to km ?
thanks
It is change force miles to falce to get km
Thanks all
Worth a try! Let us know if it works.
everything works now
many thanks