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

alge

Medlemmer
  • Innlegg

    5
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av alge

  1. Mike skrev (3 timer siden):

     

    I've been trying to game it out in my head how to run it. I'm thinking I would need to:

    • poll the API, once a day at midnight, to get the electricity rates for the coming day
    • store that data somewhere
    • create a sensor in Home Assistant that then looks at that data every hour to display the relevant price for that hour
    • create a template sensor that changes the price into categories of "Very Cheap", "Cheap", "Normal", "Expensive", "Very Expensive" based on defined ranges

     

    Jeg tipper du leser norsk selv om du skriver engelsk Mike! (= ... Du kan se på min appdaemon-greie over, den funker bra og gjøre "poll API på midnatt", "lagre dataene", "lager en sensor som viser strømprisen nå". Så det eneste som mangler er å kategorisere det i billig til dyrt, og det tror jeg er enkelt å gjøre med en template sensor i home assistant. Appdaemon var ikke trivielt å sette opp, så hvis man kan gjøre det samme rett i home assistant så hadde det vært lettere. Eneste mod'en jeg har gjort på koden i det siste er å legge inn en API-nøkkel i forespørselen.

  2. funny0frank skrev (36 minutter siden):

    Hei folkens! hjemmeautomasjon har sluttet å sende meg mail av en eller annen grunn så har ikke fått med meg at dere har skrevet her.

    Grunnen til at jeg gikk inn for å sjekke er at noen kaller API-et 16.000 ganger til dagen... Hvis ikke dette tar slutt så må jeg legge på API nøker på dette API-et. 

     

    Huffsann! Jeg sjekket loggene mine og den har sagt "fetched new price info" 38 ganger, så jeg tror ikke de 16000 gangene kommer fra meg. (Tipper mine forespørsler er logget som å være fra 2a04:981:3300:... hvis du har logger). Tar gjerne imot en API-nøkkel hvis du går for den løsningen, forstår deg godt!

  3. Hei, jeg har brukt APIet (takk!) til å lage et AppDaemon-script som henter inn data og lager en sensor av det i Home Assistant. Sikkert mye teit kode, men:

     

    i apps.yaml:

    spotpris:
      module: spotpris
      class: Spotpris
      sensor: "sensor.spotpris_nok"
      zone: "NO3"
      timezone: "Europe/Oslo"
      multiplier: 1.25
      adder: 0.01
      sensor_attributes:
          state_class: measurement
          device_class: monetary
          unit_of_measurement: "NOK/kWh"

     

    spotpris.py:

    import requests
    from datetime import datetime
    from datetime import timedelta
    import zoneinfo
    import hassapi as hass
    
    """
    
    Fetch spot price data and expose as a sensor
    
    Uses funny0frank's REST API from ~https://www.hjemmeautomasjon.no/forums/topic/6096-gratis-%C3%A5pent-api-for-%C3%A5-f%C3%A5-times-str%C3%B8mpris-for-de-forskjellige-sonene-i-norge/
    
    Agruments:
         - zone: string Which electricity zone to fetch price from
         - multiplier: float To apply sales tex etc., value is multiplied with this
         - adder: float Added to value after multiplication, i.e. "påslag"
         - tz: string Timezone e.g. "Europe/Oslo"
         - sensor: string Name of generated sensor
         - sensor_attributes: dict Attributes of generated sensor, e.g.
               state_class: measurement
               device_class: monetary
               unit_of_measurement: "NOK/kWh"
    """
    
    class Spotpris(hass.Hass):
        def initialize(self):
            self.zone = self.args["zone"]
            self.multiplier = self.args["multiplier"]
            self.adder = self.args["adder"]
            self.tz = zoneinfo.ZoneInfo(self.args["timezone"])
            self.sensor = self.args["sensor"]
            self.attributes=self.args["sensor_attributes"]
            self.price_info = {}
            self.price_info_date = ''
    
            now = datetime.now(self.tz) + timedelta(seconds=5)
            self.run_every(self.updateState, now, 60)
    
        def updateState(self, foo, kwargs=None):
            today = datetime.now(self.tz).date().isoformat()
    
            if (not self.price_info_date == today):
                self.fetch_price_info(today)
    
            now = datetime.now(self.tz).strftime("%G-%m-%dT%H:00:00+01:00")
            price = self.price_info[now]["NOK_per_kWh"]*self.multiplier+self.adder
    
            self.set_state(self.sensor, state=price, attributes=self.attributes)
    
        def fetch_price_info(self, today):
            response = requests.get(f"https://norway-power.ffail.win/?zone={self.zone}&date={today}")
            self.price_info = response.json()
            self.log(f"fetched new price info: {self.price_info}", level="INFO") 
            self.price_info_date = today

     

    Det tilfredsstiller "bare hent en gang i døgnet" siden den gjør on-demand oppslag, det minuttet det begynner på en ny dag slår den opp, og da er det vel garantert at de datane finnes også. Det er veldig utestet, jeg hacket det sammen på et par timer her nettopp, men ser ut til å kanskje funke? Jeg har f.eks. ikke kjørt den i et døgn for å se at den faktisk bytter dato ennå... Den genererte sensoren kan så brukes som kilde for home assistant sin "Bruk ei oppføring med gjeldande pris" i Konfigurasjon -> Energi -> Straumnett i home assistant for å gi utregning av effektiv kostnad.

     

    Vet ikke helt rett måte å beregne kostnad på, her har jeg jo bare tatt * 1.25 (for moms) og lagt på 1 øre (påslag).

     

    Tror jeg bare kan anbefale denne metoden for folk som allerede har satt opp AppDaemon... Det tok meg mye lengre tid enn å lage det over.

     

    @AMelbye, der ser du forresten hvordan man henter inn dataene i python. (=

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