Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Varmestyring - komme i gang


Anbefalte innlegg

42 minutter siden, stigvi skrev:

Hvis du tar hensyn til den så ser du at perioder som er billige (og dyrere) blir langt sjeldnere.

Gjør vel kun det hvis man ikke har fast nettleie? Foreløpig har jo til og med vi med Lyse det (men det er jo et spørsmål hvor lenge det varer).

 

 

43 minutter siden, stigvi skrev:

Jeg har selv laget min egen "price level" sensor, men det er for Home Assistant så det er neppe nyttig for deg.

Det står "Home Assistant" på hans system. :) 

Lenke til kommentar
Del på andre sider

4 timer siden, hjemmedude skrev:

Lærer stadig noe nytt her inne, jeg bruker home assistant så du kan alltids dele koden om du ønsker.

Jeg har laget et felt for å kunne skrive inn pris for nettleie
image.png.00803071a28aa2303ca6a50715a055ef.png


 

input_number:
  pris_pr_kwh_kleppenergi:
    name: Nettleie pr kWh
    min: 0
    max: 200
    step: 0.01
    unit_of_measurement: 'øre'
    icon: mdi:cash-100
    mode: box


Så en ny sensor som summerer pris fra Tibber med dette

 

sensor:
  - platform: template
    sensors:    
      total_electricity_price:
        friendly_name: "Total strømpris"
        unit_of_measurement: 'NOK'
        value_template: >-
            {% if states('sensor.electricity_price_orstad') != 'unavailable' %}
            {{ (states('sensor.electricity_price_orstad')|float + states('input_number.pris_pr_kwh_kleppenergi')|float / 100) | round(4) }}
            {% else %}
            {{ states('sensor.total_electricity_price') }}
            {% endif %}


Deretter en sensor som gir meg snitt de 3 siste dager

 

sensor:
  - platform: statistics
    name: "Strompris filtrert"
    entity_id: sensor.total_electricity_price
    precision: 4
    sampling_size: 144
    max_age:
      hours: 72


Og til slutt en sensor som gir prisnivå

 

sensor:
  - platform: template
    sensors:
      pricelevel:
        friendly_name: "Strømprisnivå"
        value_template: >-
            {% if states('sensor.total_electricity_price')|float(0.5) >= states('sensor.strompris_filtrert')|float(0.5) *0.9
                and states('sensor.total_electricity_price')|float(0.5) < states('sensor.strompris_filtrert')|float(0.5) *1.15 %}
                NORMAL
            {% elif states('sensor.total_electricity_price')|float >= states('sensor.strompris_filtrert')|float *0.6
                and states('sensor.total_electricity_price')|float < states('sensor.strompris_filtrert')|float *0.9 %}
                CHEAP
            {% elif states('sensor.total_electricity_price')|float < states('sensor.strompris_filtrert')|float *0.6 %}
                VERY_CHEAP
            {% elif states('sensor.total_electricity_price')|float >= states('sensor.strompris_filtrert')|float *1.15
                and states('sensor.total_electricity_price')|float < states('sensor.strompris_filtrert')|float *1.4 %}
                EXPENSIVE
            {% elif states('sensor.total_electricity_price')|float >= states('sensor.strompris_filtrert')|float *1.4 %}
                VERY_EXPENSIVE
            {% endif %}



Disse prisnivåene har samme tekst som Tibber sine tekster på dette og nivåene er også like i forhold til snittpris siste 3 dager. Det er bare nettleie som tas med som er eneste forandring.

  • Like 2
  • Thanks 1
Lenke til kommentar
Del på andre sider

Takk for dette stigvi - kommer til å sjekke dette nærmere i morgen. Men først som sist må jeg advare at det nå kommer dumme spørsmål.. på ei snor.
Nettleien (x) legger du til Tibber strømpris (y) , men du sier at nettleien kan være høg når strømprisen er lav og at Tibber sin rapportering av price level kan være feil. 
Men jeg forstår det egentlig ikke.. er ikke nettleien (kr kWh) lik over en lenger periode (måneder av gangen?) 
 

Vi må begynne i det små..

Lenke til kommentar
Del på andre sider

14 minutter siden, hjemmedude skrev:

Men jeg forstår det egentlig ikke.. er ikke nettleien (kr kWh) lik over en lenger periode (måneder av gangen?) 



For de fleste er nettleien konstant i lange perioder.
Noen nettselskap har begynt med en ny prismodel, der prisen endrer seg i løpet av døgnet. Glitre Energi har for eksempel 14øre lavere pris mellom kl 22 og 6 om vinteren.

Lenke til kommentar
Del på andre sider

Ok, her er et eksempel.

Tibber sier at strømpris er 10 øre pr kwh og slik har den vært lenge. Så stiger prisen til 12 øre pr kwh. I flg Tibber er det 20% økning og prisnivå går fra normal til expensive. Men la oss si at du betaler 40 øre pr kwh i nettleie. Så den egentlige økningen for deg er fra 50 til 52 øre. Det er kun en 4% økning i pris og prisnivå er fortsatt normal.

Lager du automasjon basert på Tibber sin indikasjon på at strømmen er blitt dyr så slår du av varmen pga en reell økning i pris på 4%. Det kan jo være greit nok, det. Men for meg var det ikke greit nok. Det ble for mange perioder med "dyr" strøm og ekstra ille ble det i år med lave strømpriser i forhold til nettleie. Altså at strømpris varierte mellom 5 og 10 øre. Tibber sier en dobling i pris, men reell økning er fra 45 til 50 øre. Knapt noe å bry seg om.

Endret av stigvi
  • Like 2
Lenke til kommentar
Del på andre sider

12 minutter siden, hjemmedude skrev:

Takk for oppklaringen - det er jeg faktisk helt med på. Så du bruker snittet de siste 3 dagene for å unngå nettopp dette. 

Jeg regner det ut akkurat som Tibber gjør, bortsett fra at jeg tar med nettleie. Siden Tibber sammenligner nå-pris i forhold til et 3 dagers snitt, så gjør jeg det også.

  • Like 1
Lenke til kommentar
Del på andre sider

10 timer siden, daniel.h.iversen skrev:

Vil bare nevne at pricelevel fra APIet ikke brukes til varmestyringen hos Tibber

Det hadde vært kult om priser som kom i fra Tibber både i app og i api hadde inkludert nettleie og også faste kostnader. Noe som ga en total oversikt over det en bruker på strøm. Men jeg ser at noe slikt blir vanskelig å få til når systemet er lagd som det er med en drøss forskjellige nettselskap der hver av de har sine egne priser og modeller.

Lenke til kommentar
Del på andre sider

5 minutter siden, stigvi skrev:

Det hadde vært kult om priser som kom i fra Tibber både i app og i api hadde inkludert nettleie og også faste kostnader. Noe som ga en total oversikt over det en bruker på strøm. Men jeg ser at noe slikt blir vanskelig å få til når systemet er lagd som det er med en drøss forskjellige nettselskap der hver av de har sine egne priser og modeller.



Ja, det hadde vært bra. Problemet i dag er at det ikke finnes noen måte å automatiske hente inn nettleien. 

Elvia (Hafslund) har laget et API som de håper skal bli en slags standard i markedet: https://elvia.portal.azure-api.net/
Jeg spurte Glitre, som er mitt nettselskap, om de kommer til å støtte dette, men de hadde ingen planer om det :(

Lenke til kommentar
Del på andre sider

Hmm.. Jeg startet en ny tråd i "feil" forum (Forum->Systemer->Home Assistant ->Automasjoner) ser jeg. Kunne jo naturligvis hektet meg på denne tråden ettersom jeg føler at vi berører mye av det samme . Jeg har noen tanker/behov knyttet til temaet, som dere kan se her: 

 

Lenke til kommentar
Del på andre sider

39 minutter siden, daniel.h.iversen skrev:

Jeg spurte Glitre, som er mitt nettselskap, om de kommer til å støtte dette, men de hadde ingen planer om det

Jeg spurte Klepp Energi om de hadde noen planer for 2021 med hensyn til NVE sine ønsker om en mer differensiert nettleie for å redusere toppene i strømforbruket. Og svaret var at de ser det an og har ingen umiddelbare planer. Noe som overrasket meg. 2021 er jo her snart.
Jeg tror de har det for godt med monopolene sine og sannsynligvis null krav om effektivisering. Det er kanskje litt flaut for et nettselskap å havne på forsiden av VG som Norges dyreste nettselskap, men bortsett fra slike vage trusler så har de sikkert lite å bekymre seg for. Det mener og tror jeg. Som kanskje er helt på bærtur, igjen.

Lenke til kommentar
Del på andre sider

Hei,

 

Om dere synest det blir mye config for å endre setpunkt på de forskjellige termostatene basert på tidspunkt og tilstand kan jeg anbefale å bruke "schedy" i "appdaemon", og la denne ta over dette. Det er ikke perfekt, men gjør jobben. Støtter også input fra vindu og dører slik at for eksempel termostaten skrues av om vindu eller dør står åpen. Jeg bruker denne sammen med input boleans på tilstandander som "hvem er hjemme" "utetemp" Strømpris" "ferie" "fridag" osv.  som igjen bestemmer schedules.

min konfig:

 

schedy_heating:  # This is our app instance name.
  module: hass_apps_loader
  class: SchedyApp

  actor_type: thermostat

  watched_entities:
  - input_boolean.pers1_hjemme
  - input_boolean.pers2_hjemme
  - input_boolean.pers3_hjemme
  - input_boolean.varmt_ute
  - input_boolean.ferie
  - input_boolean.energy_cost_high
  - input_boolean.jentene_hjemme
  - input_boolean.fri

  rooms:

    living:
      actors:
        climate.stue:
      schedule:
      - v: 22
        rules:
          - rules:
            - x: "Add(-0.5) if is_on ('input_boolean.energy_cost_high') else Next()"
            - x: "Add(-5) if is_on ('input_boolean.varmt_ute') else Next()"
            - x: "Add(-10) if is_on ('input_boolean.ferie') else Next()"
          - rules:
            - x: "Next() if state('input_boolean.fri') == 'off' else Break()"  
            - { start: "14:00", end: "22:00", weekdays: 1-4 }
            - { start: "14:00", end: "23:00", weekdays: 5 }
            - { start: "08:00", end: "23:00", weekdays: 6 }
            - { start: "08:00", end: "23:00", weekdays: 7 }
            - { v: 18 }

          - rules:
            - x: "Next() if state('input_boolean.fri') == 'on' else Break()"  
            - { start: "08:00", end: "22:00", weekdays: 1-4 }
            - { start: "08:00", end: "23:00", weekdays: 5 }
            - { start: "08:00", end: "23:00", weekdays: 6 }
            - { start: "08:00", end: "23:00", weekdays: 7 }
            - { v: 18 }
    
  
  

       
    Bad:
      actors:
        climate.bad:
      schedule:
       -  x: "Add(-4) if is_on ('input_boolean.ferie') else Next()"       
       - { v: 24, start: "23:00", end: "06:00", weekdays: 1-4 }
       - { v: 24, start: "23:00", end: "06:00", weekdays: 5 }
       - { v: 24, start: "23:00", end: "06:00", weekdays: 6 }
       - { v: 24, start: "23:00", end: "06:00", weekdays: 7 }
       - { v: 24 }


    Bad2:
      actors:
        climate.bad2:
      schedule:
       -  x: "Add(-1) if is_on ('input_boolean.energy_cost_high') else Next()"
       -  x: "Add(-10) if is_on ('input_boolean.ferie') else Next()"       
       - { v: 22, start: "20:00", end: "06:00", weekdays: 1-4 }
       - { v: 22, start: "20:00", end: "06:00", weekdays: 5 }
       - { v: 22, start: "20:00", end: "10:00", weekdays: 6 }
       - { v: 22, start: "20:00", end: "10:00", weekdays: 7 }
       - { v: 20 }


    Bedroom:
      actors:
        climate.masterbedroom:
      schedule:
       -  x: "Add(-5) if is_on ('input_boolean.varmt_ute') else Next()"
       -  x: "Add(-10) if is_on ('input_boolean.ferie') else Next()"  
       - { v: 16, start: "21:00", end: "02:00", weekdays: 1-4 }
       - { v: 16, start: "22:00", end: "02:00", weekdays: 5 }
       - { v: 16, start: "23:00", end: "04:00", weekdays: 6 }
       - { v: 16, start: "22:00", end: "04:00", weekdays: 7 }
       - { v: 12 }


    pers0:
      actors:
         climate.pers0:
      schedule:
       -  x: "Add(-1) if is_on ('input_boolean.energy_cost_high') else Next()"
       -  x: "Add(-5) if is_on ('input_boolean.varmt_ute') else Next()"
       -  x: "Add(-7) if is_on ('input_boolean.ferie') else Next()"
       - { v: 21, start: "11:00", end: "20:00", weekdays: 1-4 }
       - { v: 21, start: "11:00", end: "21:00", weekdays: 5 }
       - { v: 21, start: "08:00", end: "21:00", weekdays: 6 }
       - { v: 21, start: "08:00", end: "20:00", weekdays: 7 }
       - { v: 17 }       
       
    pers1:
      actors:
         climate.pers1:
      schedule:
      - v: 21
        rules:
          - rules:
            - x: "Add(-0.5) if is_on ('input_boolean.energy_cost_high') else Next()"
            - x: "Add(-5) if is_on ('input_boolean.varmt_ute') else Next()"
            - x: "Add(-7) if is_off ('input_boolean.pers1_hjemme') else Next()"
            - x: "Add(-7) if is_on ('input_boolean.ferie') else Next()"
          - rules:
            - x: "Next() if state('input_boolean.fri') == 'off' else Break()"  
            - { start: "02:00", end: "04:00", weekdays: 1-4 }
            - { start: "11:00", end: "17:30", weekdays: 1-4 }
            - { start: "02:00", end: "04:00", weekdays: 5 }            
            - { start: "11:00", end: "18:00", weekdays: 5 }
            - { start: "03:00", end: "20:00", weekdays: 6 }
            - { start: "03:00", end: "19:00", weekdays: 7 }
            - { v: 17 }

          - rules:
            - x: "Next() if state('input_boolean.fri') == 'on' else Break()"  
            - { start: "03:00", end: "19:00", weekdays: 1-4 }
            - { start: "03:00", end: "19:00", weekdays: 5 }
            - { start: "03:00", end: "19:00", weekdays: 6 }
            - { start: "03:00", end: "19:00", weekdays: 7 }
            - { v: 18 }

       
    pers2:
      actors:
         climate.pers2:
      schedule:
      - v: 21
        rules:
          - rules:
            - x: "Add(-0.5) if is_on ('input_boolean.energy_cost_high') else Next()"
            - x: "Add(-5) if is_on ('input_boolean.varmt_ute') else Next()"
            - x: "Add(-7) if is_off ('input_boolean.pers2_hjemme') else Next()"
            - x: "Add(-7) if is_on ('input_boolean.ferie') else Next()"
          - rules:
            - x: "Next() if state('input_boolean.fri') == 'off' else Break()"  
            - { start: "01:00", end: "04:00", weekdays: 1-4 }
            - { start: "10:00", end: "18:00", weekdays: 1-4 }
            - { start: "01:00", end: "04:00", weekdays: 5 }      
            - { start: "10:00", end: "18:00", weekdays: 5 }
            - { start: "03:00", end: "20:00", weekdays: 6 }
            - { start: "03:00", end: "19:00", weekdays: 7 }
            - { v: 18 }

          - rules:
            - x: "Next() if state('input_boolean.fri') == 'on' else Break()"  
            - { start: "03:00", end: "19:00", weekdays: 1-4 }
            - { start: "03:00", end: "19:00", weekdays: 5 }
            - { start: "03:00", end: "19:00", weekdays: 6 }
            - { start: "03:00", end: "19:00", weekdays: 7 }
            - { v: 18 }

    pers3:
      actors:
         climate.pers3:
      schedule:
      - v: 21
        rules:
          - rules:
            - x: "Add(-0.5) if is_on ('input_boolean.energy_cost_high') else Next()"
            - x: "Add(-5) if is_on ('input_boolean.varmt_ute') else Next()"
            - x: "Add(-7) if is_off ('input_boolean.pers3_hjemme') else Next()"
            - x: "Add(-7) if is_on ('input_boolean.ferie') else Next()"
          - rules:
            - x: "Next() if state('input_boolean.fri') == 'off' else Break()"  
            - { start: "02:00", end: "05:00", weekdays: 1-4 }
            - { start: "10:00", end: "17:30", weekdays: 1-4 }
            - { start: "02:00", end: "05:00", weekdays: 5 }      
            - { start: "10:00", end: "18:00", weekdays: 5 }
            - { start: "03:00", end: "20:00", weekdays: 6 }
            - { start: "03:00", end: "19:00", weekdays: 7 }
            - { v: 18 }

          - rules:
            - x: "Next() if state('input_boolean.fri') == 'on' else Break()"  
            - { start: "03:00", end: "20:00", weekdays: 1-4 }
            - { start: "03:00", end: "20:00", weekdays: 5 }
            - { start: "03:00", end: "20:00", weekdays: 6 }
            - { start: "03:00", end: "20:00", weekdays: 7 }
            - { v: 18 }



    Kjellerstue:
      actors:
         climate.kjellerstue:
      schedule:
      - v: 21
        rules:
          - rules:
            - x: "Add(-0.5) if is_on ('input_boolean.energy_cost_high') else Next()"
            - x: "Add(-5) if is_on ('input_boolean.varmt_ute') else Next()"
            - x: "Add(-4) if is_off ('input_boolean.jentene_hjemme') else Next()"
            - x: "Add(-7) if is_on ('input_boolean.ferie') else Next()"
          - rules:
            - x: "Next() if state('input_boolean.fri') == 'off' else Break()"  
            - { start: "02:00", end: "04:00", weekdays: 1-4 }
            - { start: "10:00", end: "17:30", weekdays: 1-4 }
            - { start: "02:00", end: "04:00", weekdays: 5 }             
            - { start: "10:00", end: "18:00", weekdays: 5 }
            - { start: "03:00", end: "20:00", weekdays: 6 }
            - { start: "03:00", end: "19:00", weekdays: 7 }
            - { v: 18 }

          - rules:
            - x: "Next() if state('input_boolean.fri') == 'on' else Break()"  
            - { start: "03:00", end: "20:00", weekdays: 1-4 }
            - { start: "03:00", end: "20:00", weekdays: 5 }
            - { start: "03:00", end: "20:00", weekdays: 6 }
            - { start: "03:00", end: "20:00", weekdays: 7 }
            - { v: 18 }


       
    Kjellergang:
      actors:
         climate.kjellergang:
      schedule:
       -  x: "Add(-0.5) if is_on ('input_boolean.energy_cost_high') else Next()"
       -  x: "Add(-5) if is_on ('input_boolean.varmt_ute') else Next()"
       -  x: "Add(-7) if is_on ('input_boolean.ferie') else Next()"
       - { v: 20 }
       
       
    Vaskerom:
      actors:
         climate.vaskerom:
      schedule:
      - v: 22
        rules:
          - rules:
            - x: "Add(-0.5) if is_on ('input_boolean.energy_cost_high') else Next()"
            - x: "Add(-5) if is_on ('input_boolean.varmt_ute') else Next()"
            - x: "Add(-8) if is_on ('input_boolean.ferie') else Next()"
          - rules:
            - x: "Next() if state('input_boolean.fri') == 'off' else Break()"  
            - { start: "23:00", end: "07:00", weekdays: 1-5 }
            - { start: "23:00", end: "19:00", weekdays: 6-7 }
            - { v: 20 }

          - rules:
            - x: "Next() if state('input_boolean.fri') == 'on' else Break()"  
            - { start: "23:00", end: "19:00", weekdays: 1-7 }
            - { v: 20 }

 

Endret av kjetilsn
  • Like 2
Lenke til kommentar
Del på andre sider

8 minutter siden, kjetilsn skrev:

kan jeg anbefale å bruke "schedy"

Hadde ikke hørt om denne før nå. Her, Schedy — hass-apps 0.20200319.0 documentation (hass-apps.readthedocs.io) er en link til de som ikke gidder søke.

Den ser umiddelbart ganske kraftig og konfigurerbar ut. Og bekrefter også at det meste finnes til Home Assistant hvis du leter litt og tar deg bryet med å konfigurere det 😉

Lenke til kommentar
Del på andre sider

Da er koden til stigvi på plass, mange takk for den! :)

Har ikke gjort noe mer med automasjonsdelen ennå. Må tenke litt på den og se litt på schedy. 

Hva bruker man til wifi device tracking i HA? Trackeren er satt til gps såvidt jeg skjønner, ikke den mest nøyaktige. Har kjapt sett nmap, ping, rpc via openwrt..

og det er mest for å sjekke om telefon/ipad er hjemme eller ei.

edit: etter en god dose googling finner jeg mange som ikke er fornøyd med 1 tjeneste alene, så mulig denne går på hylla.. :)

 

Endret av hjemmedude
Lenke til kommentar
Del på andre sider

13 timer siden, hjemmedude skrev:

edit: etter en god dose googling finner jeg mange som ikke er fornøyd med 1 tjeneste alene, så mulig denne går på hylla.

Mulig det. Jeg har 4 forskjellige måter å detektere på.

1. Home Assistant appen på tlf sender inn sone en er i basert på GPS
2. Home Assistant appen på tlf sender inn wifi nett den er tilkoblet

3. Jeg har en raspberry pi zero hjemme som kontinuerlig sjekker hvilke telefoner som er i nærheten via bluetooth
4. Jeg har en integrasjon i HA som poller Wifi ruteren og sjekker hvilke enheter som er på hjemmenettet.

Lenke til kommentar
Del på andre sider

Nå forstår jeg hvorfor ikke iphone dukket opp.

Har en netgear router som aksesspunkt hvor vi som regel er tilkoblet wifi. Så enheter på dette ap-et blir ikke detektert av HA..

Skal dette være nok for å aktivere mot netgear routeren? : https://www.home-assistant.io/integrations/netgear/

edit: ja det var nok, fikk opp en hel gjeng med device_tracker_mac:addresse nå. :)

Endret av hjemmedude
Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • 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.