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

Anbefalte innlegg

Skrevet (endret)
janfrode skrev (5 minutter siden):

Det fungerte bedre ja. Tusen takk!

Så bra! Siden du la det inn i dag vil du sikkert legge til data fra 01-06. oktober manuelt.

 

Du kan legge inn noe sånt for hver dag du mangler denne måneden, lagre, og ta det bort igjen:

pyscript.electricity_monthly_average_price.stored_values['2022-10-01'] = [1.053, 0.875, 0.69, 0.302, 0.24, 0.228, 0.223, 0.334, 0.621, 1.005, 1.505, 1.463, 1.235, 1.017, 0.91, 0.92, 0.96, 1.885, 2.314, 2.674, 2.463, 1.982, 1.511, 1.064]

 

Endret av RVM
Skrevet (endret)

Jeg fant at snitt prisen i oktober har være 145 øre/kvh inkl. moms, så jeg la inn:

 

    pyscript.electricity_monthly_average_price.stored_values['2022-10-01'] = [1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450]
    pyscript.electricity_monthly_average_price.stored_values['2022-10-02'] = [1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450]
    pyscript.electricity_monthly_average_price.stored_values['2022-10-03'] = [1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450]
    pyscript.electricity_monthly_average_price.stored_values['2022-10-04'] = [1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450]
    pyscript.electricity_monthly_average_price.stored_values['2022-10-05'] = [1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450]
    pyscript.electricity_monthly_average_price.stored_values['2022-10-06'] = [1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450, 1.450]

 

og da har jeg grafen under. Får korrigere 2022-10-07 i morgen. 

 

image.png.0bce96e9525fcc5241f641f7e1c49e0c.png

 

 

Hmm.. det ble nok ikke helt rett... støtten er jo bare 90% på det over 70 øre.. 

Endret av janfrode
Skrevet (endret)

Den ble vel mer rett:

 

  - entity: pyscript.electricity_monthly_average_price
    name: støtte
    type: line
    stroke_width: 2
    transform: return ((x/1.25)-0.70)*0.9

 

 

image.png.96ee1381f625947ebbfdad8d3c7f86eb.png


 

Endret av janfrode
glemte moms..
  • 1 måned senere...
  • 2 uker senere...
Skrevet (endret)
Thomas skrev (På 14.11.2022 den 23.15):

Kom over denne i dag. i json fila finner man gjennomsnitt hittil denne måned. Man finner også kalkuler og estimer strømstøtte.
https://github.com/martinju/stromstotte

Tusen takk for denne (og til han som har laget det)! Jeg kan ingenting om R, men siden han automatisk publiserer csv/json daglig er det lett å hente inn forecast for månedspris og strømstøtte fra modellen hans med f.eks. pandas og pyscript:

 

 

import pandas as pd

@pyscript_compile 
def read_csv():
    # Separate function for blocking I/O, using @pyscript_compile 
    url = "https://raw.githubusercontent.com/martinju/stromstotte/master/data/current_estimated_compensation.csv"
    try:
        df = pd.read_csv(url)
        df = df[df["area"] == "NO2"]  # Only look at region NO2
        df = df.set_index("type")
        
        out = {}
        out["mean"] = df.loc["mean"]["mean_price"]
        out["quantile_0.025"] = df.loc["quantile_0.025"]["mean_price"]
        out["quantile_0.975"] = df.loc["quantile_0.975"]["mean_price"]
        
        return out, None
    except Exception as exc:
        return None, exc

@time_trigger("cron(@daily)")
def get_forecast():
    result, exception = task.executor(read_csv)
    if exception:
        raise exception
    else:
        pyscript.forecast_monthly_electricity_price_mean = round(result["mean"], 3)
        pyscript.forecast_monthly_electricity_price_quantile_0_025 = round(result["quantile_0.025"], 3)
        pyscript.forecast_monthly_electricity_price_quantile_0_975 = round(result["quantile_0.975"], 3)

 

image.png.8c7d3236d124f32ad3f7984b6b69e1d7.png

Endret av RVM
Litt rydding i kode
  • Like 1
Skrevet
RVM skrev (47 minutter siden):

Tusen takk for denne (og til han som har laget det)! Jeg kan ingenting om R, men siden han automatisk publiserer csv/json daglig er det lett å hente inn forecast for månedspris og strømstøtte fra modellen hans med f.eks. pandas og pyscript:

 

 

import pandas as pd

@pyscript_compile 
def read_csv():
    # Separate function for blocking I/O, using @pyscript_compile 
    url = "https://raw.githubusercontent.com/martinju/stromstotte/master/data/current_estimated_compensation.csv"
    try:
        df = pd.read_csv(url)
        df = df.drop(df[df["area"] != "NO2"].index)     # Drop regions not NO2
        df = df.set_index("type")
        
        out = {}
        out["mean"] = df.loc["mean"]["mean_price"]
        out["quantile_0_05"] = df.loc["quantile_0.05"]["mean_price"]
        out["quantile_0_95"] = df.loc["quantile_0.95"]["mean_price"]
        
        return out, None
    except Exception as exc:
        return None, exc

@time_trigger("cron(@daily)")
def get_forecast():
    result, exception = task.executor(read_csv)
    if exception:
        raise exception
    else:
        pyscript.forecast_monthly_electricity_price_mean = result["mean"]
        pyscript.forecast_monthly_electricity_price_quantile_0_05 = result["quantile_0_05"]
        pyscript.forecast_monthly_electricity_price_quantile_0_95 = result["quantile_0_95"]

 

 



Kan også anbefale å legge dette inn øverst i skriptet like under import

 

state.persist('pyscript.forecast_monthly_electricity_price_mean', default_value=0, default_attributes={"unit_of_measurement":"NOK/kWh"})
state.persist('pyscript.forecast_monthly_electricity_price_quantile_0_05', default_value=0, default_attributes={"unit_of_measurement":"NOK/kWh"})
state.persist('pyscript.forecast_monthly_electricity_price_quantile_0_95', default_value=0, default_attributes={"unit_of_measurement":"NOK/kWh"})

 

  • Like 1
Skrevet

Her var det mange gode ideer som jeg tror jeg vil låne.

Har aldri brukt, eller hørt om, pyscript.. Men det gikk jo greit i legge inn ved å følge bruksanvisningen som ligger her i tråden.

 

Kan jeg spørre om hvordan du får denne visningen:

RVM skrev (På 25.11.2022 den 12.06):

image.png.8c7d3236d124f32ad3f7984b6b69e1d7.png

 

Skrevet (endret)
Kardemomme skrev (23 minutter siden):

Her var det mange gode ideer som jeg tror jeg vil låne.

Har aldri brukt, eller hørt om, pyscript.. Men det gikk jo greit i legge inn ved å følge bruksanvisningen som ligger her i tråden.

 

Kan jeg spørre om hvordan du får denne visningen:

 

 

Visningen er multiple-entity-row.

Endret av RVM
  • Thanks 1
Skrevet (endret)

Er det mulig å unngå overlappingen som gjør at gjennomsiktigheten blir litt feil her?

image.thumb.png.68994b41ea66513a60cfa10256189330.png

Har slått sammen today/tomorrow for å slippe å ha egen serie med I dag og i morgen, som bare heiter strømpris.

    data_generator: |
      return [].concat(
        entity.attributes.raw_today.map((p) => { return [new Date(p.start), p.value];}), 
        entity.attributes.raw_tomorrow.map((p) => {return [new Date(p.start), p.value];}))

Men får ikkje heilt til å slå sammen med strømprisene som kommer fra serien uten data_generator, og legger eg til en ekstra serie så overlapper det på dagen i dag. Har nokken inspill her?

 

Eg kan alltids fjerne gjenommsiktigheten, men er det da mulig å skjule navnet på serien som nå heter "(skjul meg?)" 

Endret av bearer
Skrevet (endret)

Endra like godt området til grafen til å kun være 48h og justert mot slutten av neste dag, da vil det det ikkje være behov for å fylle med med gårsdagens pris og kan beholde gjennomsiktigheten. Men om noen finner en måte å kombinere serier på lytter eg gjerne. En av grunnene til eg ville beholde 72h var at eg da fikk ticks på midnatt; tidlighere ignorerte grafen tickAmount for X, som nå plutselig virker.

graph_span: 48h
span:
  end: day
  offset: +24h
apex_config:
  xaxis:
    tickAmount: 2

 

Screenshot 2022-11-29 at 22.06.50.png

 

edit: .. ved midnatt var det kanskje ikkje en like god ide, null historikk, 24h strømpris og 24h blank graf.

Endret av bearer
  • 3 uker senere...
Skrevet
RVM skrev (På 25.11.2022 den 12.06):

Tusen takk for denne (og til han som har laget det)! Jeg kan ingenting om R, men siden han automatisk publiserer csv/json daglig er det lett å hente inn forecast for månedspris og strømstøtte fra modellen hans med f.eks. pandas og pyscript:

 

 

import pandas as pd

@pyscript_compile 
def read_csv():
    # Separate function for blocking I/O, using @pyscript_compile 
    url = "https://raw.githubusercontent.com/martinju/stromstotte/master/data/current_estimated_compensation.csv"
    try:
        df = pd.read_csv(url)
        df = df[df["area"] == "NO2"]  # Only look at region NO2
        df = df.set_index("type")
        
        out = {}
        out["mean"] = df.loc["mean"]["mean_price"]
        out["quantile_0.025"] = df.loc["quantile_0.025"]["mean_price"]
        out["quantile_0.975"] = df.loc["quantile_0.975"]["mean_price"]
        
        return out, None
    except Exception as exc:
        return None, exc

@time_trigger("cron(@daily)")
def get_forecast():
    result, exception = task.executor(read_csv)
    if exception:
        raise exception
    else:
        pyscript.forecast_monthly_electricity_price_mean = round(result["mean"], 3)
        pyscript.forecast_monthly_electricity_price_quantile_0_025 = round(result["quantile_0.025"], 3)
        pyscript.forecast_monthly_electricity_price_quantile_0_975 = round(result["quantile_0.975"], 3)

 

image.png.8c7d3236d124f32ad3f7984b6b69e1d7.png

Veldig nyttig script!

Noen ide om hvordan man installerer pandas for pyscript i Home Assistant OS?

Skrevet
Jepsh skrev (9 timer siden):

Veldig nyttig script!

Noen ide om hvordan man installerer pandas for pyscript i Home Assistant OS?

Har du prøvd å legge det til i requirements.txt?

 

Sitat

If your pyscript code requires particular Python packages that are not already installed by HASS, add a requirements.txt file the <config>/pyscript directory.

 

Skrevet (endret)
RVM skrev (1 time siden):

Har du prøvd å legge det til i requirements.txt?

 

 

Forsøkte dette i går, men fikk fortsatt ikke verdier ut. Ser ut til at den har kommet seg i dag morges, så fungerte tydeligvis uansett.

Men endte med å benytte dette

rest:
    scan_interval: 86400
    resource: https://raw.githubusercontent.com/martinju/stromstotte/master/data/current_estimated_compensation.json
    sensor:
      - name: "Mean price"
        json_attributes_path: "$.16"
        value_template: "{{ value_json.16.mean_price | round (2)}}"
        unit_of_measurement: "kr"
        json_attributes:
          - "estimation_date"
          - "computation_year" 
          - "computation_month"
      - name: "Quantile 0.025"
        json_attributes_path: "$.19"
        value_template: "{{ value_json.19.mean_price | round (2)}}"
        unit_of_measurement: "kr"
        json_attributes:
          - "estimation_date"
          - "computation_year" 
          - "computation_month"
      - name: "Quantile 0.975"
        json_attributes_path: "$.26"
        value_template: "{{ value_json.26.mean_price | round (2)}}"
        unit_of_measurement: "kr"
        json_attributes:
          - "estimation_date"
          - "computation_year" 
          - "computation_month"

 

Endret av Jepsh
  • Like 3
Skrevet
RVM skrev (På 25.11.2022 den 12.06):

Tusen takk for denne (og til han som har laget det)! Jeg kan ingenting om R, men siden han automatisk publiserer csv/json daglig er det lett å hente inn forecast for månedspris og strømstøtte fra modellen hans med f.eks. pandas og pyscript:

 

 

import pandas as pd

@pyscript_compile 
def read_csv():
    # Separate function for blocking I/O, using @pyscript_compile 
    url = "https://raw.githubusercontent.com/martinju/stromstotte/master/data/current_estimated_compensation.csv"
    try:
        df = pd.read_csv(url)
        df = df[df["area"] == "NO2"]  # Only look at region NO2
        df = df.set_index("type")
        
        out = {}
        out["mean"] = df.loc["mean"]["mean_price"]
        out["quantile_0.025"] = df.loc["quantile_0.025"]["mean_price"]
        out["quantile_0.975"] = df.loc["quantile_0.975"]["mean_price"]
        
        return out, None
    except Exception as exc:
        return None, exc

@time_trigger("cron(@daily)")
def get_forecast():
    result, exception = task.executor(read_csv)
    if exception:
        raise exception
    else:
        pyscript.forecast_monthly_electricity_price_mean = round(result["mean"], 3)
        pyscript.forecast_monthly_electricity_price_quantile_0_025 = round(result["quantile_0.025"], 3)
        pyscript.forecast_monthly_electricity_price_quantile_0_975 = round(result["quantile_0.975"], 3)

 

image.png.8c7d3236d124f32ad3f7984b6b69e1d7.png

 

Hei, har forsøkt å få til dette uten hell. Har gjort følgende:

 

I configuration.yaml:

pyscript:
  allow_all_imports: true

 

I requirements.txt

pandas

 

Får følgende feilmelding i core logs:

Failed to send request, {"errorCode":3012,"error":"request timeout","timeIdentification":0}

 

Noen tips?

 

- JT -

Skrevet
Autoper skrev (På 25.12.2022 den 13.46):

 

Får følgende feilmelding i core logs:

Failed to send request, {"errorCode":3012,"error":"request timeout","timeIdentification":0}

 

Noen tips?

Ingen kjempegode tips nei, men klarer du å feilsøke hvor problemet oppstår? Forstår jeg det riktig at du får importert pandas, men at det feiler på pd.read_csv fordi den ikke får sendt requesten?

Skrevet

Sleit med tilsvarande i dag, og fant ut at å legge inn versjonsnummeret i requirements.txt filen vil løyse problemet (etter ein restart av HAOS).
t.d erstatt "pandas" med "pandas=1.5.2"
Genialt å få dette på plass

Skrevet
RVM skrev (På 27.12.2022 den 9.04):

Ingen kjempegode tips nei, men klarer du å feilsøke hvor problemet oppstår? Forstår jeg det riktig at du får importert pandas, men at det feiler på pd.read_csv fordi den ikke får sendt requesten?

Har ingen aning hva som feilet, men nå virker alt (uten at jeg har gjort noe)...

  • 2 uker senere...
Skrevet

Hei, Tibber har tatt kvelden for meg, så jeg har installert nordpool.

Prøver å få sammenlignet nåværende pris mot gjennomsnittlig ved å bruke templates. Har ikke hatt suksess. Har til og med sett den samme koden i denne tråden, men det fungerer ikke for meg.

 

Denne koden gir False uansett hva man gjør

 

value_template: "{{ state_attr('nordpool_kwh_oslo_nok_3_10_025','Current price')|float(0) >
                state_attr('nordpool_kwh_oslo_nok_3_10_025','average')|float(0) }}"

 

Skrevet

sensoren har vel et navn som starter med "sensor." ?

Min nordpool sensor har ikke en attributt som heter "Current price". Hvor har du funnet det?

Prøv heller med 

states('sensor.nordpool_kwh_oslo_nok_3_10_025')|float(0)
  • Like 1
Skrevet

Altså, så enkelt var det, med sensor.nordpool.... så viser den true og false. Takk skal du ha.

 

 

Jeg var litt rask i avtrekkeren. Viser seg det at den viser True og False invertert i forhold til hva som er riktig

 

"{{ state_attr('sensor.nordpool_kwh_oslo_nok_3_10_025','Current price')|float(0) < state_attr('sensor.nordpool_kwh_oslo_nok_3_10_025','average')|float(0) }}"

 

Hvis jeg tar bort den ene halvdelen så får jeg 0 og det er det som står i parantesen etter float . Burde akkurat nå vært 138 øre

Skrevet (endret)
stigvi skrev (26 minutter siden):

sensoren har vel et navn som starter med "sensor." ?

Min nordpool sensor har ikke en attributt som heter "Current price". Hvor har du funnet det?

Prøv heller med 

states('sensor.nordpool_kwh_oslo_nok_3_10_025')|float(0)

 

Med denne får jeg riktig nåverdi, men jeg skulle gjerne sammenlignet med gjennomsnitt. Attributtene fant jeg i HA på det kortet jeg har laget for den i lovelace. Det er en nedtrekksmeny der med alle attributtene slik jeg har forstått det

 

image.png.6a4e316f61226f96dd32d2139825eb06.png

 

image.thumb.png.d53b78e82979526d3ba8848a97746aaa.png

image.thumb.png.c1e1e4fbe7ab2682e900e465e23eb39a.png

Endret av dagern
Skrevet
dagern skrev (10 timer siden):

Med denne får jeg riktig nåverdi, men jeg skulle gjerne sammenlignet med gjennomsnitt.

Jeg tenkte at dette kunne du bruke i ditt uttrykk for å sammenligne.

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.