Hi, could you post the code please?
Like this view a lot.
Thanks
Hi, could you post the code please?
Like this view a lot.
Thanks
I have a SolarEdge solar setup and currently have a bad optimizer/panel. I was trying to understand/adapt the examples above to create an automation to notify me when this happens as my solar company does not do this. I was unable to adapt the examples above but I was able to create an automation which checks whether the sensor.last_measurement date is within two days. This seems to work, but may get annoying since itās triggered to run once each day. At least it will act as a reminder to submit a service request to my provider. Replace the list of sensor last measurement (which is provided by the SolarEdge Optimizers data integration) with yours (or if you know a better way to loop through them without naming each, do that). Replace notify.mobile_app_DEVICE with the mobile device you want the notification to go to.
- alias: "[Solar] Mobile app notify when optimizer measurement date isn't updating"
description: ""
trigger:
- platform: time
at: "05:00:00"
action:
- repeat:
for_each:
- sensor.last_measurement_1_0_1
- sensor.last_measurement_1_0_10
- sensor.last_measurement_1_0_11
- sensor.last_measurement_1_0_12
- sensor.last_measurement_1_0_13
- sensor.last_measurement_1_0_14
- sensor.last_measurement_1_0_15
- sensor.last_measurement_1_0_16
- sensor.last_measurement_1_0_17
- sensor.last_measurement_1_0_18
- sensor.last_measurement_1_0_19
- sensor.last_measurement_1_0_2
- sensor.last_measurement_1_0_20
- sensor.last_measurement_1_0_21
- sensor.last_measurement_1_0_22
- sensor.last_measurement_1_0_23
- sensor.last_measurement_1_0_24
- sensor.last_measurement_1_0_25
- sensor.last_measurement_1_0_26
- sensor.last_measurement_1_0_27
- sensor.last_measurement_1_0_28
- sensor.last_measurement_1_0_29
- sensor.last_measurement_1_0_3
- sensor.last_measurement_1_0_30
- sensor.last_measurement_1_0_31
- sensor.last_measurement_1_0_32
- sensor.last_measurement_1_0_33
- sensor.last_measurement_1_0_34
- sensor.last_measurement_1_0_35
- sensor.last_measurement_1_0_36
sequence:
- condition: template
value_template: "{{ ((as_timestamp(now()) - as_timestamp(states(repeat.item)))/86400) > 2 }}"
- service: notify.mobile_app_DEVICE
data:
message: >
{{ state_attr( repeat.item , 'friendly_name') }} last measurement was on: {{ states( repeat.item ) }}, over 2 days ago. Check MySolarEdge app to confirm.
data: {}
I am doing making one with weather animations over the panels (e.g sun rays, rain etc (have finished animations for: cloudy, pouring, rainy, sunny, windy)):


The sun & moon also tracks across the sky based on the time.
Coded to look with both light and dark themes regardless of time of day.
The only 3rd party component here is card-mod.
The panels and background gradients that changes throughout the day are drawn purely with css, the weather uses animated SVGās that I am composing myself.
Will post the code when I am done and link to it here.
Hi, Iād like to use this on my solar plan (in Dutch ;)) but Iām not able to find out what this jinja thing is. Can you please clearify for me?
Thanks,
Jonathan
the ājinja thingā is a custom template saved in the custom_templates folder
you can search this community to find heaps of examples, and this is the release explaining the feature 2023.4: Custom template macros, and many more new entity dialogs! - Home Assistant
Cool, thanks! Couldnāt believe it was not possible to find this using Google.
got this in a DM today⦠from a complete unknown person to me
Good evening,
Would you be so kind to share the final code and other things needed to copy this in my solaredge PV system.
It looks great / awsome. I am Dutch BTW
Since i am a newby, is it possible to explain step by step what you did?
at first I figured this was a prank, but then I got a second one
Good evening,
Like you prog. code to show solaredge optimizers.
Would you be so kind of sharing the final code?i am a newby, but admire your work.
Could you briefly explain what you did step by step (what card you use, what sensors, what binairies you made, etc)
of is it possible to make a hacs for this (or is this remark realy stupid)I am Dutch BTW
Thank you for sharing
Linking to my posts above in this thread
this is as crazy impolite as it gets in here I guess⦠never seen anything like it before, and posting this to the public seemed the only way to make clear this is completely inappropriate. Even for the Dutch.
@MissyQ anything we can do to improve generic instructions for newbies this cant be done?
good morning everyone, recently owner of homeassistant, recently made solaredge photovoltaic system, already all integrated in HA.
I also wanted to do the integration optimizers, but I get stuck with official Solaredge site id / account / psw. I tried all the combinations (http my complete site, public site, site id code etc) but it always gives me an error ![]()
Go to your solaredge phone app,go to your location icon.
In HA first colum type your ID numbers from solarapp, username:mail / password:your password
Hello Kris,
Newbie here, Ffoxxann, what a wonderful card you made.
Just finished a layout of Lange stefan (som bugs, but ⦠time will see.
You mentioned that you would post this card. Is there any change to get a total copy of this (raw configuration)?
Thank you for this Wonderfull idea.
Have a nice Xmas
Hello,
I just installed the integration myself for my new installation and I got the same issue as you. Iām not sure why but after I tried 3-4 times with the same credentials, at the end it went through. I confirm you need to use siteID, email and password
Really like the look of this card with the weather animations. Did you complete it enough where you could provide a link?
I took the lazy manās route and just used custom button cards with borders to represent my solar array. Admittedly it doesnāt look as fancy as those with graphical backgrounds, but it gets the job done and is all I really need.
type: custom:mod-card
style: |
ha-card {
font-family: "roboto";
--primary-text-color: black;
--secondary-text-color: black;
font-weight: bold;
font-size: 16px !important;
}
card:
type: conditional
conditions:
- condition: state
entity: sensor.ecu_inverter_status
state_not: unavailable
card:
type: vertical-stack
title: LIVE SOLAR ARRAY PRODUCTION
cards:
- type: horizontal-stack
cards:
- type: custom:button-card
entity: sensor.inverter_702000836649_power_ch_2
show_name: false
show_icon: false
show_state: true
styles:
card:
- border-radius: 0px
- border: 2px solid grey
- type: custom:button-card
entity: sensor.inverter_702000836649_power_ch_1
show_name: false
show_icon: false
show_state: true
styles:
card:
- border-radius: 0px
- border: 2px solid grey
- type: custom:button-card
entity: sensor.inverter_702000833555_power_ch_2
show_name: false
show_icon: false
show_state: true
styles:
card:
- border-radius: 0px
- border: 2px solid grey
- type: custom:button-card
entity: sensor.inverter_702000833555_power_ch_1
show_name: false
show_icon: false
show_state: true
styles:
card:
- border-radius: 0px
- border: 2px solid grey
- type: custom:button-card
entity: sensor.inverter_702000836648_power_ch_2
show_name: false
show_icon: false
show_state: true
styles:
card:
- border-radius: 0px
- border: 2px solid grey
- type: custom:button-card
entity: sensor.inverter_702000836648_power_ch_1
show_name: false
show_icon: false
show_state: true
styles:
card:
- border-radius: 0px
- border: 2px solid grey
- type: horizontal-stack
cards:
- type: custom:button-card
entity: input_text.text0
show_name: false
show_icon: false
show_state: true
styles:
card:
- background-color: rgba(0, 0, 0, 0)
- box-shadow: none
- border: none
- type: custom:button-card
entity: input_text.text0
show_name: false
show_icon: false
show_state: true
styles:
card:
- background-color: rgba(0, 0, 0, 0)
- box-shadow: none
- border: none
- type: custom:button-card
entity: sensor.inverter_702000836651_power_ch_2
show_name: false
show_icon: false
show_state: true
styles:
card:
- border-radius: 0px
- border: 2px solid grey
- type: custom:button-card
entity: sensor.inverter_702000836650_power_ch_1
show_name: false
show_icon: false
show_state: true
styles:
card:
- border-radius: 0px
- border: 2px solid grey
- type: custom:button-card
entity: sensor.inverter_702000836650_power_ch_2
show_name: false
show_icon: false
show_state: true
styles:
card:
- border-radius: 0px
- border: 2px solid grey
- type: custom:button-card
entity: input_text.text0
show_name: false
show_icon: false
show_state: true
styles:
card:
- background-color: rgba(0, 0, 0, 0)
- box-shadow: none
- border: none
- type: horizontal-stack
cards:
- type: custom:button-card
entity: input_text.text0
show_name: false
show_icon: false
show_state: true
styles:
card:
- background-color: rgba(0, 0, 0, 0)
- box-shadow: none
- border: none
- type: custom:button-card
entity: sensor.inverter_702000836655_power_ch_2
show_name: false
show_icon: false
show_state: true
styles:
card:
- border-radius: 0px
- border: 2px solid grey
- type: custom:button-card
entity: sensor.inverter_702000836655_power_ch_1
show_name: false
show_icon: false
show_state: true
styles:
card:
- border-radius: 0px
- border: 2px solid grey
- type: custom:button-card
entity: sensor.inverter_702000833551_power_ch_1
show_name: false
show_icon: false
show_state: true
styles:
card:
- border-radius: 0px
- border: 2px solid grey
- type: custom:button-card
entity: sensor.inverter_702000833551_power_ch_2
show_name: false
show_icon: false
show_state: true
styles:
card:
- border-radius: 0px
- border: 2px solid grey
- type: custom:button-card
entity: input_text.text0
show_name: false
show_icon: false
show_state: true
styles:
card:
- background-color: rgba(0, 0, 0, 0)
- box-shadow: none
- border: none
I love this post. I donāt have SolarEdge, but Iām building off of this for my Enphase based system. I want to understand the math youāre using to translate to my system:
Math.round(Number(entity.state)) / 250 + 0.2
Is 250 what your panel max output is? Whatās the addition of another 20% on top of the entity state? Iām pretty sure the extra 20% is make sure the panel is completely blacked out when itās not producing or producing very little, but just verifying.
Thanks for such a great dashboard and starting such a productive discussion here!
Just some numbers I played with to make the colors look good, and to have some contrast so it became easier to compare off vs on panels. I recommend testing your panels at 100% and 0% and just see how it looks on your dashboard.
Hi, Has anyone found a reliable way to tell if the optimizer is down?
you could do a basic outlier detection. So compare the current value against the rolling average, normalized to irradiance. And on top of that compare the current value against the rest of the array in the same orientation.
Hi, how did you get the daily values?
It only gives me instantaneous values and lifetime values.