Vinnerliste
Populært innhold
Viser innholdet med mest poeng fra 13. okt. 2022 i alle områder
-
Laget litt script og visuelt grensesnitt for smartlading av elbil (i mitt tilfelle Tesla på Tesla Wall Charger). Kommer til å innarbeide hensyn til effekttariff også etterhvert når det kommer her i distriktet. Blått viser rimeligste timen(e) frem til fastsatt deadline. Beregner automatisk ut hvor mange timer lading som behøves basert på info fra Tesla. Apexcharts-card for grensesnittet. Apexchart grensesnittet i stor grad kopiert fra en annen forumpost. Deretter kan man sette opp en automasjon som starter og stopper lading basert på binary sensor laget nedenfor. Koden er litt kaotisk nå, men håper den kanskje er til hjelp eller inspirasjon for andre: Et par forklaringer i koden: 454 = maks rekkevidde på bil 70 = ladehastighet angitt i km/t sensor: - platform: template sensors: charge_cheap_hours: friendly_name: "Cheapest hours" attribute_templates: raw_cheapest_hours: > {% set nhoursmax = namespace(nhoursmax= 4) %} {% if states('sensor.tesla_model_3_range_sensor')|int > 0 %} {% set nhoursmax.nhoursmax = ((454 - states('sensor.tesla_model_3_range_sensor')|int)/70)|round(0,'ceil') %} {% else %} {% set nhoursmax.nhoursmax = 4 %} {% endif %} {% if state_attr('sensor.nordpool_kwh_trheim_nok_2_095_025', 'raw_tomorrow')|length > 1 %} {% if state_attr('sensor.nordpool_kwh_trheim_nok_2_095_025', 'raw_tomorrow')[0].value == None %} {% set c=state_attr('sensor.nordpool_kwh_trheim_nok_2_095_025', 'raw_today') %} {% else %} {% set c=state_attr('sensor.nordpool_kwh_trheim_nok_2_095_025', 'raw_today')+state_attr('sensor.nordpool_kwh_trheim_nok_2_095_025', 'raw_tomorrow') %} {% endif %} {% endif %} {% if state_attr('sensor.nordpool_kwh_trheim_nok_2_095_025', 'raw_tomorrow')|length == 0 %} {% set c=state_attr('sensor.nordpool_kwh_trheim_nok_2_095_025', 'raw_today') %} {% endif %} {% set c=c|sort(attribute='value')%} {% set chargefrom = namespace(chargefrom=now()) %} {% set chargeto = namespace(chargeto=now()) %} {% if now().hour < 8 %} {% set chargeto.chargeto = now().replace(hour=8,minute=0,second=0) %} {% endif %} {% if now().hour >= 8 %} {% set d = now().day + 1 %} {% set chargeto.chargeto = now().replace(day=d,hour=8,minute=0,second=0) %} {% endif %} {% if states('input_select.charge_deadline') == "Evening" %} {% if now().hour < 18 %} {% set chargeto.chargeto = now().replace(hour=18,minute=0,second=0) %} {% endif %} {% if now().hour >= 18 %} {% set d = now().day + 1 %} {% set chargeto.chargeto = now().replace(day=d,hour=18,minute=0,second=0) %} {% endif %} {% endif %} {% if states('input_select.charge_deadline') == "Unlimited" %} {% set d = now().day + 3 %} {% set chargeto.chargeto = now().replace(day=d,hour=18,minute=0,second=0) %} {% endif %} {% set data = namespace(list=[]) %} {% for item in c %} {% if item.end >= chargefrom.chargefrom and item.end <= chargeto.chargeto and data.list|length < nhoursmax.nhoursmax %} {% set customer = ({"start":item.start|string,"end": item.end|string,"value":item.value}) %} {% set data.list=data.list + [customer] %} {% endif %} {% endfor %} {{data.list|sort(attribute='start')|to_json}} value_template: 'on' charge_cheap_hour_bool: friendly_name: "Cheap hour" value_template: > {% set nhoursmax = namespace(nhoursmax= 4) %} {% if states('sensor.tesla_model_3_range_sensor')|int > 0 %} {% set nhoursmax.nhoursmax = ((454 - states('sensor.tesla_model_3_range_sensor')|int)/70)|round(0,'ceil') %} {% else %} {% set nhoursmax.nhoursmax = 4 %} {% endif %} {% if state_attr('sensor.nordpool_kwh_trheim_nok_2_095_025', 'raw_tomorrow')|length > 1 %} {% if state_attr('sensor.nordpool_kwh_trheim_nok_2_095_025', 'raw_tomorrow')[0].value == None %} {% set c=state_attr('sensor.nordpool_kwh_trheim_nok_2_095_025', 'raw_today') %} {% else %} {% set c=state_attr('sensor.nordpool_kwh_trheim_nok_2_095_025', 'raw_today')+state_attr('sensor.nordpool_kwh_trheim_nok_2_095_025', 'raw_tomorrow') %} {% endif %} {% endif %} {% if state_attr('sensor.nordpool_kwh_trheim_nok_2_095_025', 'raw_tomorrow')|length == 0 %} {% set c=state_attr('sensor.nordpool_kwh_trheim_nok_2_095_025', 'raw_today') %} {% endif %} {% set c=c|sort(attribute='value')%} {% set chargefrom = namespace(chargefrom=now()) %} {% set chargeto = namespace(chargeto=now()) %} {% if now().hour < 8 %} {% set chargeto.chargeto = now().replace(hour=8,minute=0,second=0) %} {% endif %} {% if now().hour >= 8 %} {% set d = now().day + 1 %} {% set chargeto.chargeto = now().replace(day=d,hour=8,minute=0,second=0) %} {% endif %} {% if states('input_select.charge_deadline') == "Evening" %} {% if now().hour < 18 %} {% set chargeto.chargeto = now().replace(hour=18,minute=0,second=0) %} {% endif %} {% if now().hour >= 18 %} {% set d = now().day + 1 %} {% set chargeto.chargeto = now().replace(day=d,hour=18,minute=0,second=0) %} {% endif %} {% endif %} {% if states('input_select.charge_deadline') == "Unlimited" %} {% set d = now().day + 3 %} {% set chargeto.chargeto = now().replace(day=d,hour=18,minute=0,second=0) %} {% endif %} {% set data = namespace(list=[]) %} {% for item in c %} {% if item.end >= chargefrom.chargefrom and item.end <= chargeto.chargeto and data.list|length < nhoursmax.nhoursmax %} {% set customer = item %} {% set data.list=data.list + [customer] %} {% endif %} {% endfor %} {% set chargebool = namespace(chargebool=False) %} {% for item in data.list %} {% if now() >= item.start and now() <= item.end %} {% set chargebool.chargebool = True %} {% endif %} {% endfor %} {{ chargebool.chargebool }} input_boolean: charge_onoff: name: Enable smart charge icon: mdi:car input_select: charge_deadline: name: Smart charge deadline options: - Morning - Evening - Unlimited icon: mdi:car Apexchart: type: custom:apexcharts-card graph_span: 48h span: start: day offset: +0H header: title: Electricity Price show: false show_states: true colorize_states: true floating: false hours_12: false stacked: false experimental: color_threshold: true all_series_config: show: legend_value: false datalabels: false extremas: true in_brush: true float_precision: 3 type: area invert: false fill_raw: last now: show: true label: Now color: red series: - entity: sensor.nordpool_kwh_trheim_nok_2_095_025 name: Current day opacity: 0.7 extend_to: false color_threshold: - value: -1 color: '#1E90FF' - value: 0 color: '#008000' - value: 0.9 color: '#008000' - value: 1.7 color: '#DAA520' - value: 2 color: '#FF0000' data_generator: | return entity.attributes.raw_today.map((start, index) => { return [new Date(start["start"]).getTime(), entity.attributes.raw_today[index]["value"]]; }); - entity: sensor.nordpool_kwh_trheim_nok_2_095_025 name: Tomorrow opacity: 0.5 extend_to: false color_threshold: - value: -1 color: '#1E90FF' - value: 0 color: '#008000' - value: 0.9 color: '#008000' - value: 1.7 color: '#DAA520' - value: 2 color: '#FF0000' data_generator: | return entity.attributes.raw_tomorrow.map((start, index) => { return [new Date(start["start"]).getTime(), entity.attributes.raw_tomorrow[index]["value"]]; }); - entity: sensor.charge_cheap_hours name: Cheapest Hours color: '#380d94' type: column opacity: 0.9 extend_to: false stroke_width: -2 data_generator: | return entity.attributes.raw_cheapest_hours.map((start, index) => { return [new Date(start["start"]).getTime(), entity.attributes.raw_cheapest_hours[index]["value"]]; }); apex_config: chart: height: 400px animations: enabled: true easing: easeinout speed: 800 animateGradually: enabled: true delay: 150 zoom: enabled: true type: x autoScaleYaxis: true zoomedArea: fill: color: '#90CAF9' opacity: 0.4 stroke: color: '#0D47A1' opacity: 0.4 width: 1 legend: show: false floating: true offsetY: 25 yaxis: opposite: false reversed: false logarithmic: false decimalsInFloat: 2 min: 0 labels: show: true tooltip: enabled: true crosshairs: show: true xaxis: labels: show: true rotate: -45 rotateAlways: true logarithmic: true stroke: show: true curve: stepline lineCap: butt colors: undefined plotOptions: candlestick: colors: upward: '#00B746' downward: '#EF403C' wick: useFillColor: true markers: size: 1 grid: show: true strokeDashArray: 1 position: front xaxis: lines: show: true1 poeng
-
Høres ut som om det er ødelagt. Lysstoffrør kan drepe reléer. Du kan prøve å gi det et lite "kakk" og de om det våkner til liv.1 poeng
-
Gode poeng, - og da har du heller 24/7 lagring av video til sky? (ved bevegelser?1 poeng
Vinnerlisten er satt til Oslo/GMT+02:00