Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon! 🥇🥈🥉

picnic84

Medlemmer
  • Innlegg

    24
  • Ble med

  • Besøkte siden sist

Hjemmeautomasjon

  • System
    Home Assistant

Nylige profilbesøk

Blokken for nylige besøkende er slått av og vises ikke for andre medlemmer.

picnic84 sine prestasjoner

Kabelfører

Kabelfører (6/16)

  • Samarbeidspartner
  • Første innlegg
  • Reagerer godt
  • Samtalestarter
  • Uke én ferdig

Nylige merker

4

Nettsamfunnsomdømme

  1. Ga deg nok litt for mye i forrige.. Leftover er bare en betegnelse på de timene som ikke er de rimeligste. Her er den relevante apexchart grafen: - 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: true experimental: color_threshold: true all_series_config: show: legend_value: false extremas: true float_precision: 3 type: area invert: false fill_raw: zero now: show: true label: Now color: red yaxis: - id: Strompris min: ~0 - id: Forbruk opposite: true min: ~0 max: ~5000 series: - entity: sensor.charge_cheap_hours name: Today unit: kr yaxis_id: Strompris type: column 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_leftover_hours_today.map((start, index) => { return [new Date(start["start"]).getTime(), entity.attributes.raw_leftover_hours_today[index]["value"]]; }); - entity: sensor.charge_cheap_hours name: Tomorrow unit: kr yaxis_id: Strompris type: column opacity: 0.8 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_leftover_hours_tomorrow.map((start, index) => { return [new Date(start["start"]).getTime(), entity.attributes.raw_leftover_hours_tomorrow[index]["value"]]; }); - entity: sensor.charge_cheap_hours name: Cheapest Hours unit: kr yaxis_id: Strompris color: "#380d94" type: column opacity: 0.9 extend_to: false 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: 200px 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: true og sensorer: - platform: template sensors: charge_cheap_hours_binary: friendly_name: "Cheap hour binary sensor" value_template: > {% set ns = namespace(matched = "false") %} {% set data = state_attr('sensor.charge_cheap_hours','raw_cheapest_hours') %} {% for item in data %} {% if as_timestamp(item.end) >= as_timestamp(now()) and as_timestamp(item.start) <= as_timestamp(now()) %} {% set ns.matched = "true" %} {% endif %} {% endfor %} {{ ns.matched }} charge_cheap_hours: friendly_name: "Cheapest hours lists" value_template: > {{ "" }} attribute_templates: raw_today_priceadjusted: > {% set chargingpricehourly=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') %} {% if chargingpricehourly | length == 0 %} {{ state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') }} {% else %} {% if now().month in [1, 2, 3] %} {% set price_day = 39.89/100 %} {% set price_night = 26.51/100 %} {% else %} {% set price_day = 48.55/100 %} {% set price_night = 35.18/100 %} {% endif %} {% set data = namespace(chargingpricehourly=[]) %} {% for item in chargingpricehourly %} {% if item.end <= item.end.replace(hour=6, minute=0, second=0) or item.start >= item.end.replace(hour=22, minute=0, second=0) %} {% set customer = ({"start":item.start.isoformat(),"end": item.end.isoformat(),"value":item.value + price_night }) %} {% set data.chargingpricehourly=data.chargingpricehourly + [customer] %} {% else %} {% set customer = ({"start":item.start.isoformat(),"end": item.end.isoformat(),"value":item.value + price_day }) %} {% set data.chargingpricehourly=data.chargingpricehourly + [customer] %} {% endif %} {% endfor %} {{ data.chargingpricehourly }} {% endif %} raw_today_priceadjusted_datetime: > {% set chargingpricehourly=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') %} {% if chargingpricehourly | length == 0 %} {{ state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') }} {% else %} {% if now().month in [1, 2, 3] %} {% set price_day = 39.89/100 %} {% set price_night = 26.51/100 %} {% else %} {% set price_day = 48.55/100 %} {% set price_night = 35.18/100 %} {% endif %} {% set data = namespace(chargingpricehourly=[]) %} {% for item in chargingpricehourly %} {% if item.end <= item.end.replace(hour=6, minute=0, second=0) or item.start >= item.end.replace(hour=22, minute=0, second=0) %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_night }) %} {% set data.chargingpricehourly=data.chargingpricehourly + [customer] %} {% else %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_day }) %} {% set data.chargingpricehourly=data.chargingpricehourly + [customer] %} {% endif %} {% endfor %} {{ data.chargingpricehourly }} {% endif %} raw_tomorrow_priceadjusted: > {% set chargingpricehourly=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow') %} {% if chargingpricehourly | length == 0 %} {{ state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow') }} {% else %} {% if now().month in [1, 2, 3] %} {% set price_day = 39.89/100 %} {% set price_night = 26.51/100 %} {% else %} {% set price_day = 48.55/100 %} {% set price_night = 35.18/100 %} {% endif %} {% set data = namespace(chargingpricehourly=[]) %} {% for item in chargingpricehourly %} {% if item.end <= item.end.replace(hour=6, minute=0, second=0) or item.start >= item.end.replace(hour=22, minute=0, second=0) %} {% set customer = ({"start":item.start.isoformat(),"end": item.end.isoformat(),"value":item.value + price_night }) %} {% set data.chargingpricehourly=data.chargingpricehourly + [customer] %} {% else %} {% set customer = ({"start":item.start.isoformat(),"end": item.end.isoformat(),"value":item.value + price_day }) %} {% set data.chargingpricehourly=data.chargingpricehourly + [customer] %} {% endif %} {% endfor %} {{ data.chargingpricehourly }} {% endif %} raw_cheapest_hours: > {% if now().month in [1, 2, 3] %} {% set price_day = 39.89/100 %} {% set price_night = 26.51/100 %} {% else %} {% set price_day = 48.55/100 %} {% set price_night = 35.18/100 %} {% endif %} {% set maxrange = (states('number.tesla_model_3_charge_limit')|int/100 * 570)|int %} {% set chargespeedkmh = ((states('input_number.charge_watt_max')|float-300) * (27/(10*1.732*230*1.1)))|int %} {% set nhoursmax = namespace(nhoursmax= 4) %} {% if states('sensor.tesla_model_3_range')|int > 0 and states('sensor.tesla_model_3_range')|int < maxrange %} {% set nhoursmax.nhoursmax = ((maxrange - states('sensor.tesla_model_3_range')|int)/chargespeedkmh)|round(0,'ceil') %} {% elif states('sensor.tesla_model_3_range')|int >= maxrange %} {% set nhoursmax.nhoursmax = 0 %} {% else %} {% set nhoursmax.nhoursmax = 4 %} {% endif %} {% if (state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today')|length > 1 and state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today')[0].value != None) %} {% if (state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow')|length > 1 and state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow')[0].value != None) %} {% if state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow')[0].start != state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today')[0].start %} {% set chargingpricehourly=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today')+state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow') %} {% else %} {% set chargingpricehourly=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') %} {% endif %} {% else %} {% set chargingpricehourly=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') %} {% endif %} {% endif %} {% set data = namespace(chargingpricehourly=[]) %} {% for item in chargingpricehourly %} {% if item.end <= item.end.replace(hour=6, minute=0, second=0) or item.start >= item.end.replace(hour=22, minute=0, second=0) %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_night }) %} {% set data.chargingpricehourly=data.chargingpricehourly + [customer] %} {% else %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_day }) %} {% set data.chargingpricehourly=data.chargingpricehourly + [customer] %} {% endif %} {% endfor %} {% set chargingpricehourly=data.chargingpricehourly|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 chargeto.chargeto = chargeto.chargeto + timedelta(days=1) %} {% set chargeto.chargeto = chargeto.chargeto.replace(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 chargeto.chargeto = chargeto.chargeto + timedelta(days=1) %} {% set chargeto.chargeto = chargeto.chargeto.replace(hour=18,minute=0,second=0) %} {% endif %} {% endif %} {% if states('input_select.charge_deadline') == "Unlimited" %} {% set chargeto.chargeto = chargeto.chargeto + timedelta(days=3) %} {% set chargeto.chargeto = chargeto.chargeto.replace(hour=18,minute=0,second=0) %} {% endif %} {% set data = namespace(list=[]) %} {% for item in chargingpricehourly %} {% if item.end >= chargefrom.chargefrom and item.end <= chargeto.chargeto and data.list|length < nhoursmax.nhoursmax %} {% set customer = ({"start":item.start|string|replace(" ","T"),"end": item.end|string|replace(" ","T"),"value":item.value}) %} {% set data.list=data.list + [customer] %} {% endif %} {% endfor %} {{data.list|sort(attribute='start')|to_json}} raw_leftover_hours_today: > {% if now().month in [1, 2, 3] %} {% set price_day = 39.89/100 %} {% set price_night = 26.51/100 %} {% else %} {% set price_day = 48.55/100 %} {% set price_night = 35.18/100 %} {% endif %} {% set maxrange = (states('number.tesla_model_3_charge_limit')|int/100 * 570)|int %} {% set chargespeedkmh = ((states('input_number.charge_watt_max')|float-300) * (27/(10*1.732*230*1.1)))|int %} {% set nhoursmax = namespace(nhoursmax= 4) %} {% if states('sensor.tesla_model_3_range')|int > 0 and states('sensor.tesla_model_3_range')|int < maxrange %} {% set nhoursmax.nhoursmax = ((maxrange - states('sensor.tesla_model_3_range')|int)/chargespeedkmh)|round(0,'ceil') %} {% elif states('sensor.tesla_model_3_range')|int >= maxrange %} {% set nhoursmax.nhoursmax = 0 %} {% else %} {% set nhoursmax.nhoursmax = 4 %} {% endif %} {% if (state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today')|length > 1 and state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today')[0].value != None) %} {% if (state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow')|length > 1 and state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow')[0].value != None) %} {% if state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow')[0].start != state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today')[0].start %} {% set chargingpricehourly=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today')+state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow') %} {% set chargingpricehourlytoday=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') %} {% set chargingpricehourlytomorrow=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow') %} {% else %} {% set chargingpricehourly=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') %} {% set chargingpricehourlytoday=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') %} {% set chargingpricehourlytomorrow=[] %} {% endif %} {% else %} {% set chargingpricehourly=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') %} {% set chargingpricehourlytoday=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') %} {% set chargingpricehourlytomorrow=[] %} {% endif %} {% endif %} {% set data = namespace(chargingpricehourly=[]) %} {% for item in chargingpricehourly %} {% if item.end <= item.end.replace(hour=6, minute=0, second=0) or item.start >= item.end.replace(hour=22, minute=0, second=0) %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_night }) %} {% set data.chargingpricehourly=data.chargingpricehourly + [customer] %} {% else %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_day }) %} {% set data.chargingpricehourly=data.chargingpricehourly + [customer] %} {% endif %} {% endfor %} {% set chargingpricehourly=data.chargingpricehourly|sort(attribute='value')%} {% set data = namespace(chargingpricehourlytoday=[]) %} {% for item in chargingpricehourlytoday %} {% if item.end <= item.end.replace(hour=6, minute=0, second=0) or item.start >= item.end.replace(hour=22, minute=0, second=0) %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_night }) %} {% set data.chargingpricehourlytoday=data.chargingpricehourlytoday + [customer] %} {% else %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_day }) %} {% set data.chargingpricehourlytoday=data.chargingpricehourlytoday + [customer] %} {% endif %} {% endfor %} {% set chargingpricehourlytoday=data.chargingpricehourlytoday%} {% set data = namespace(chargingpricehourlytomorrow=[]) %} {% for item in chargingpricehourlytomorrow %} {% if item.end <= item.end.replace(hour=6, minute=0, second=0) or item.start >= item.end.replace(hour=22, minute=0, second=0) %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_night }) %} {% set data.chargingpricehourlytomorrow=data.chargingpricehourlytomorrow + [customer] %} {% else %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_day }) %} {% set data.chargingpricehourlytomorrow=data.chargingpricehourlytomorrow + [customer] %} {% endif %} {% endfor %} {% set chargingpricehourlytomorrow=data.chargingpricehourlytomorrow%} {% 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 chargeto.chargeto = chargeto.chargeto + timedelta(days=1) %} {% set chargeto.chargeto = chargeto.chargeto.replace(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 chargeto.chargeto = chargeto.chargeto + timedelta(days=1) %} {% set chargeto.chargeto = chargeto.chargeto.replace(hour=18,minute=0,second=0) %} {% endif %} {% endif %} {% if states('input_select.charge_deadline') == "Unlimited" %} {% set chargeto.chargeto = chargeto.chargeto + timedelta(days=3) %} {% set chargeto.chargeto = chargeto.chargeto.replace(hour=18,minute=0,second=0) %} {% endif %} {% set data = namespace(list=[],listto=[]) %} {% for item in chargingpricehourly %} {% if item.end >= chargefrom.chargefrom and item.end <= chargeto.chargeto and data.list|length < nhoursmax.nhoursmax %} {% set customer = ({"start":item.start|string|replace(" ","T"),"end": item.end|string|replace(" ","T"),"value":item.value}) %} {% set data.list=data.list + [customer] %} {% endif %} {% endfor %} {% for item in chargingpricehourlytoday %} {% set customer = ({"start":item.start|string|replace(" ","T"),"end": item.end|string|replace(" ","T"),"value":item.value}) %} {% if customer not in data.list %} {% set data.listto=data.listto + [customer] %} {% endif %} {% endfor %} {{data.listto|sort(attribute='start')|to_json}} raw_leftover_hours_tomorrow: > {% if now().month in [1, 2, 3] %} {% set price_day = 39.89/100 %} {% set price_night = 26.51/100 %} {% else %} {% set price_day = 48.55/100 %} {% set price_night = 35.18/100 %} {% endif %} {% set maxrange = (states('number.tesla_model_3_charge_limit')|int/100 * 570)|int %} {% set chargespeedkmh = ((states('input_number.charge_watt_max')|float-300) * (27/(10*1.732*230*1.1)))|int %} {% set nhoursmax = namespace(nhoursmax= 4) %} {% if states('sensor.tesla_model_3_range')|int > 0 and states('sensor.tesla_model_3_range')|int < maxrange %} {% set nhoursmax.nhoursmax = ((maxrange - states('sensor.tesla_model_3_range')|int)/chargespeedkmh)|round(0,'ceil') %} {% elif states('sensor.tesla_model_3_range')|int >= maxrange %} {% set nhoursmax.nhoursmax = 0 %} {% else %} {% set nhoursmax.nhoursmax = 4 %} {% endif %} {% if (state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today')|length > 1 and state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today')[0].value != None) %} {% if (state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow')|length > 1 and state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow')[0].value != None) %} {% if state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow')[0].start != state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today')[0].start %} {% set chargingpricehourly=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today')+state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow') %} {% set chargingpricehourlytoday=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') %} {% set chargingpricehourlytomorrow=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_tomorrow') %} {% else %} {% set chargingpricehourly=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') %} {% set chargingpricehourlytoday=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') %} {% set chargingpricehourlytomorrow=[] %} {% endif %} {% else %} {% set chargingpricehourly=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') %} {% set chargingpricehourlytoday=state_attr('sensor.nordpool_kwh_no3_nok_2_095_025', 'raw_today') %} {% set chargingpricehourlytomorrow=[] %} {% endif %} {% endif %} {% set data = namespace(chargingpricehourly=[]) %} {% for item in chargingpricehourly %} {% if item.end <= item.end.replace(hour=6, minute=0, second=0) or item.start >= item.end.replace(hour=22, minute=0, second=0) %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_night }) %} {% set data.chargingpricehourly=data.chargingpricehourly + [customer] %} {% else %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_day }) %} {% set data.chargingpricehourly=data.chargingpricehourly + [customer] %} {% endif %} {% endfor %} {% set chargingpricehourly=data.chargingpricehourly|sort(attribute='value')%} {% set data = namespace(chargingpricehourlytoday=[]) %} {% for item in chargingpricehourlytoday %} {% if item.end <= item.end.replace(hour=6, minute=0, second=0) or item.start >= item.end.replace(hour=22, minute=0, second=0) %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_night }) %} {% set data.chargingpricehourlytoday=data.chargingpricehourlytoday + [customer] %} {% else %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_day }) %} {% set data.chargingpricehourlytoday=data.chargingpricehourlytoday + [customer] %} {% endif %} {% endfor %} {% set chargingpricehourlytoday=data.chargingpricehourlytoday%} {% set data = namespace(chargingpricehourlytomorrow=[]) %} {% for item in chargingpricehourlytomorrow %} {% if item.end <= item.end.replace(hour=6, minute=0, second=0) or item.start >= item.end.replace(hour=22, minute=0, second=0) %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_night }) %} {% set data.chargingpricehourlytomorrow=data.chargingpricehourlytomorrow + [customer] %} {% else %} {% set customer = ({"start":item.start,"end": item.end,"value":item.value + price_day }) %} {% set data.chargingpricehourlytomorrow=data.chargingpricehourlytomorrow + [customer] %} {% endif %} {% endfor %} {% set chargingpricehourlytomorrow=data.chargingpricehourlytomorrow%} {% 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 chargeto.chargeto = chargeto.chargeto + timedelta(days=1) %} {% set chargeto.chargeto = chargeto.chargeto.replace(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 chargeto.chargeto = chargeto.chargeto + timedelta(days=1) %} {% set chargeto.chargeto = chargeto.chargeto.replace(hour=18,minute=0,second=0) %} {% endif %} {% endif %} {% if states('input_select.charge_deadline') == "Unlimited" %} {% set chargeto.chargeto = chargeto.chargeto + timedelta(days=3) %} {% set chargeto.chargeto = chargeto.chargeto.replace(hour=18,minute=0,second=0) %} {% endif %} {% set data = namespace(list=[],listto=[]) %} {% for item in chargingpricehourly %} {% if item.end >= chargefrom.chargefrom and item.end <= chargeto.chargeto and data.list|length < nhoursmax.nhoursmax %} {% set customer = ({"start":item.start|string|replace(" ","T"),"end": item.end|string|replace(" ","T"),"value":item.value}) %} {% set data.list=data.list + [customer] %} {% endif %} {% endfor %} {% for item in chargingpricehourlytomorrow %} {% set customer = ({"start":item.start|string|replace(" ","T"),"end": item.end|string|replace(" ","T"),"value":item.value}) %} {% if customer not in data.list %} {% set data.listto=data.listto + [customer] %} {% endif %} {% endfor %} {{data.listto|sort(attribute='start')|to_json}}
  2. Bruker det ikke lenger siden Tesla stengte av APIet for å kunne styre Tesla gratis. Effektledd begrensningen tok jeg inn som en varsel til mobil i stedet dersom jeg ser ut til å gå over effektleddet jeg ønsker å ligge innenfor. Men har apexchart grafen fortsatt: - type: custom:apexcharts-card graph_span: 48h span: end: hour update_interval: 30s header: title: Electricity Consumption Hourly Average show: true show_states: true colorize_states: true floating: false hours_12: false stacked: true experimental: color_threshold: true all_series_config: show: legend_value: false extremas: true float_precision: 3 type: area invert: false fill_raw: zero now: show: true label: Now color: red series: - entity: sensor.ams_powu_p name: AMS meter group_by: func: avg duration: 60min type: column opacity: 0.5 extend_to: false color_threshold: - value: -1 color: "#008000" - value: 4500 color: "#DAA520" - value: 5000 color: "#FF0000" - entity: sensor.heated_water_power_consumption name: Water Heating transform: return x * 1000; unit: W group_by: func: diff duration: 60min fill: last start_with_last: true type: column fill_raw: last opacity: 0.3 extend_to: false color_threshold: - value: -1 color: "#008000" apex_config: chart: height: 200px 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 decimals: 0 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: true - 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: true experimental: color_threshold: true all_series_config: show: legend_value: false extremas: true float_precision: 3 type: area invert: false fill_raw: zero now: show: true label: Now color: red yaxis: - id: Strompris min: ~0 - id: Forbruk opposite: true min: ~0 max: ~5000 series: - entity: sensor.charge_cheap_hours name: Today unit: kr yaxis_id: Strompris type: column 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_leftover_hours_today.map((start, index) => { return [new Date(start["start"]).getTime(), entity.attributes.raw_leftover_hours_today[index]["value"]]; }); - entity: sensor.charge_cheap_hours name: Tomorrow unit: kr yaxis_id: Strompris type: column opacity: 0.8 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_leftover_hours_tomorrow.map((start, index) => { return [new Date(start["start"]).getTime(), entity.attributes.raw_leftover_hours_tomorrow[index]["value"]]; }); - entity: sensor.charge_cheap_hours name: Cheapest Hours unit: kr yaxis_id: Strompris color: "#380d94" type: column opacity: 0.9 extend_to: false 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: 200px 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: true
  3. EDIT: Endret post til test Testet et par rimelige kompakte plugger nå: 1.) Med DNB Supertilbud får Aeotec pluggene til 399 * 0,8 = 319,20 pr stk hos Power. https://www.power.no/smarte-hjem/smart-kontroll/smart-stroemstyring-og-skjoeteledninger/aeotec-smart-veggplugg/p-1132218/ Verdict: Disse gir en bakgrunnslyd med summing. Jeg returnerte alle mine. 2.) Elektroimportøren har noen kompakte plugger til normalpris 499,-. Nå på kampanje til 399,-. Kjøpte noen slike. De fungerer bra så langt. Ingen summing i mitt øre, og veldig kompakte. Parret lett med Deconz. https://www.elektroimportoren.no/namron-zigbee-smart-plug-16a-hvit/4512766/Product.html
  4. Jeg gjør det samme selv. Dumper Verisure, og får inn Ajax. Glemte å nevne av 9,5k prisen så var det også med en universalsensor som jeg kobler til alarm fra waterguard inn i ajax.
  5. Fått tilbud på ca 9500 for 3 varslere + universalsensor (for tilkobling av waterguard) + sentral + montering. Ca 1600 ekstra for hver ekstra varsler. Fordelen er at det er FG-godkjent og TEK10/17 uten 220v i hver varsler. EDIT: glemte universalsensor
  6. @The X Vet du eller noen andre om det er mulig å trigge hendelser i Elotec Ajax (utløse brannalarm)? Vurderer å kjøpe Elotec Ajax med minimumskrav her for TEK10/17, og så heller utvide alarmsystemet med noen ekstra sensorer som jeg allerede har og noen få jeg kjøper rimelig.
  7. Akkurat dette som er min bekymring. Vil bare ha noen kompakte, rimelige zigbeeplugger som er solgt av en "legit" kilde. Computersalg oppleves litt halvveis.
  8. Noen som har prøvd de her? https://www.computersalg.no/i/10522744/nous-a1z-smarter-stecker-zigbee-4er-15a-messung-zigbee-4er-pack
  9. Jeg har ID Lock 150 med Zigbee modul. Installerte i fjor høst. Byttet batteri først nå før sommeren en gang. Det er for et hus med en familie på 4 med en del aktivitet. Funker bra.
  10. Gjør dette selv på en Tesla. Har HAN sensor for å måle belastningen totalt. Koden er litt for kaotisk til å deles men jeg har tenkt slik: * Jeg har en sensor som løpende beregner tilgjengelig ampere til bilen (effektledd - (forbruk - bilforbruk)) * Samme sensor har også en trigger sensor som i praksis bare sørger for at automasjonen kjøres ofte under ladingen for å se om det er endringer. (Du kan i praksis bare brukere endring i tilgjengelig beregnet ampere på desimalnivå så lenge bilen lader som sensor) * For at sensoren med tilgjengelig ampere til bilen ikke skal bli så volatil, så bruker jeg en custom "average" modul til HA for å gjør denne mindre volatil. Den innebygde averagefunksjonen til HA er ubrukelig til dette. https://github.com/Limych/ha-average * Automasjonen har også lagt inn en delay på 1 minutt etter kjøring for å hindre hyppige justeringer: action: - service: tesla_custom.api data: command: CHARGING_AMPS parameters: wake_if_asleep: true path_vars: vehicle_id: "{{ state_attr('binary_sensor.tesla_model_3_online', 'id') }}" charging_amps: >- {{ state_attr('sensor.tesla_available_amps_new','average_available_amps_integer')|int }} - delay: hours: 0 minutes: 1 seconds: 0 milliseconds: 0 mode: single
  11. Vulgært dyre disse smartpluggene som ikke bygger all verdens ut (Develco, Frient, Eva). Spesielt tatt i betraktning at de faktisk har vært på salg til 100kr for noen år siden. Skal man ha et visst antall så er det faktisk et brytningspunkt før det er rimeligere å få montert nye stikkontakter rett og slett. Noen som har erfaring med de?
  12. Vekker denne litt til live. Har selv en ID Lock 150. Har oppladbare IKEA Nimh i den nå. 8 stk. Var litt tight å få plass, men gikk bra. Er det noe problem egentlig? Basert på discharge kurver jeg har sett på nett, så er eneste ulempen jeg klarer å se at de mer plutselig vil slutte å fungere med hensyn til indikasjon på gjenværende batteri? Er det noe jeg misforstår her?
  13. Min hypotese er nok at dette er noe som vil bli mer og mer styrt via bilene. Praktisk talt alle biler som leveres i dag har nettilkobling og solide "datamaskiner". Hvorfor vi da skal trenge enda en kompliserende styringsenhet oppå dette (ladeboks) igjen skjønner jeg ikke. Den kan være dum som et brød for min del. Standarder er fint, men jeg tror vi skal se langt etter noe standard API løsning på tvers av bilmodellene. Jeg har uansett utvidet modellen ovenfor nå med noen få ting: - knapp til å angi om man skal lade med maxrange eller ikke (100%/80%) - en mer smooth justering av opp og ned justering ved hjelp av en "average" modul som er mye bedre enn den som finnes i HA - har også laget script hvor jeg justerer effektbelastningen med hensyn til nettselskapenes trinnprising - (bruker amsleser.no for å lese totalbelastning som fungerer utrolig bra) Kan oppdatere her etterhvert.
  14. Aktuelt med en ny avstemming her? Hvor er Home Assistant?
  15. Av pur interesse. Om du ikke har noe smarthussystem, hvordan benytter du dataen fra Pow-U? Har selv Home Assistant. Da er det enkelt å lage en egen sensor som kalkulerer strømpris 🙂 Pow-U bestilt denne uken for min egen del.
×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.