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

Falense

Medlemmer
  • Innlegg

    6
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    1

Alt skrevet av Falense

  1. Rart. Mitt fungerer fortsatt helt fint. Se om du har samme som meg eller om jeg har endret noe: import datetime @time_trigger("cron(* * * * *)") def update_saving_hours(): #Get todays prices from nordpool hacs addon. Todays prices should always be available today_prices = state.getattr(sensor.nordpool_kwh_oslo_nok_3_00_025).get("today") hour_price_pairs = zip(range(24), today_prices) hour_price_pairs = sorted(hour_price_pairs, key=lambda v: v[1]) #Create a lookup table from hour to index. Index of 0 is the least expensive hour, 23 the most. most_expensive_today = {} for i,(hour, price) in enumerate(hour_price_pairs): most_expensive_today[hour] = i #Try to fetch tomorrows prices. This might fail before 14:00 tomorrow_prices = state.getattr(sensor.nordpool_kwh_oslo_nok_3_00_025).get("tomorrow") #If prices for tomorrow is available if len(tomorrow_prices) > 0 and tomorrow_prices[0] is not None: hour_price_pairs = zip(range(24), tomorrow_prices) hour_price_pairs = sorted(hour_price_pairs, key=lambda v: v[1]) most_expensive_tomorrow = {} for i,(hour, price) in enumerate(hour_price_pairs): most_expensive_tomorrow[hour] = i now = datetime.datetime.now() current_hour = now.hour log.info("Ran power saving script at %s" % now) #Generate 23 sensors for least and most expensive hours of the day for i in range(1,24): #Generate schedule attribute for today least_n_expensive = [{"price": today_prices[v], "hour": v, "state": most_expensive_today[v] < i} for v in range(0,24)] #If tomorows prices are available, generate schedule for tomorrow. if len(tomorrow_prices) > 0 and tomorrow_prices[0] is not None: least_n_expensive_tomorrow = [{"price": tomorrow_prices[v], "hour": v, "state": most_expensive_tomorrow[v] < i} for v in range(0,24)] else: least_n_expensive_tomorrow = [] #Set the new state of the sensor state.set("sensor.powersaving_%s_least_expensive" %i, most_expensive_today[current_hour] < i, new_attributes={"today_prices": today_prices, "today": least_n_expensive, "tomorrow_prices": tomorrow_prices, "tomorrow": least_n_expensive_tomorrow})#, new_attributes={"hours": }) #Generate schedule for most expensive hours today n_most_expensive = [{v: most_expensive_today[v] > 23-i} for v in range(0,24)] #If tomorrows prices are available, generate schedule for tomorrow if len(tomorrow_prices) > 0 and tomorrow_prices[0] is not None: n_most_expensive_tomorrow = [{v: most_expensive_tomorrow[v] > 23-i} for v in range(0,24)] else: n_most_expensive_tomorrow = [] #Set the new state of the sensor state.set("sensor.powersaving_%s_most_expensive" %i, most_expensive_today[current_hour] > 23-i, new_attributes={"today_prices": today_prices, "today": n_most_expensive, "tomorrow_prices": tomorrow_prices, "tomorrow": n_most_expensive_tomorrow})#, new_attributes={"hours:": map(lambda v: most_expensive[current_hour] >= i, range(0,24))})
  2. I utgangspunktet skal den gi 12 timer for "12 least expensive". Noe av utfordringen er at Nordpool HACS modulen ikke alltid gir ut data i timene etter midnatt. Dette fører til noe inkonsistent oppførsel. Forøvrig kan du se under Developer Tools->States hva "planen" er. F.eks denne for "12 least expensive".
  3. Styrer prosjektoren min med IR. Problemet er gjerne at da har man ikke mulighet til å få status informasjon fra enheten. Jeg har sett litt på denne (https://chrdavis.github.io/hacking-a-mitsubishi-heat-pump-Part-1/) Vet ikke om det fungerer for nyere Mitsubishi varmepumper, det skal fungere på en gammel som jeg har...
  4. Hei! Noen som har tips til luft til luft varmepumpe som kan styres men uten at dette krever sky?
  5. Istedenfor at man må bestemme seg hvor mange av de dyreste timene man vil unngå så kan nå hver enhet få sin egen strømstyring basert på hvor mye man er villig til å ofre. Sensorene oppdateres automatisk hver time (et minutt over hel) og hver sensor har "timeplanen" som tilleggs attributt.
  6. import datetime @time_trigger("cron(1 * * * *)") def update_saving_hours(): today_prices = state.getattr(sensor.nordpool_kwh_oslo_nok_3_00_025).get("today") hour_price_pairs = zip(range(24), today_prices) hour_price_pairs = sorted(hour_price_pairs, key=lambda v: v[1]) most_expensive_today = {} for i,(hour, price) in enumerate(hour_price_pairs): most_expensive_today[hour] = i tomorrow_prices = state.getattr(sensor.nordpool_kwh_oslo_nok_3_00_025).get("tomorrow") hour_price_pairs = zip(range(24), tomorrow_prices) hour_price_pairs = sorted(hour_price_pairs, key=lambda v: v[1]) most_expensive_tomorrow = {} for i,(hour, price) in enumerate(hour_price_pairs): most_expensive_tomorrow[hour] = i now = datetime.datetime.now() current_hour = now.hour log.info("Ran power saving script at %s" % now) for i in range(1,24): least_n_expensive = [{v: most_expensive_today[v] < i} for v in range(0,24)] least_n_expensive_tomorrow = [{v: most_expensive_tomorrow[v] < i} for v in range(0,24)] state.set("sensor.powersaving_%s_least_expensive" %i, most_expensive_today[current_hour] < i, new_attributes={"today_prices": today_prices, "today": least_n_expensive, "tomorrow_prices": tomorrow_prices, "tomorrow": least_n_expensive_tomorrow})#, new_attributes={"hours": }) n_most_expensive = [{v: most_expensive_today[v] > 23-i} for v in range(0,24)] n_most_expensive_tomorrow = [{v: most_expensive_tomorrow[v] > 23-i} for v in range(0,24)] state.set("sensor.powersaving_%s_most_expensive" %i, most_expensive_today[current_hour] > 23-i, new_attributes={"today_prices": today_prices, "today": n_most_expensive, "tomorrow_prices": tomorrow_prices, "tomorrow": n_most_expensive_tomorrow})#, new_attributes={"hours:": map(lambda v: most_expensive[current_hour] >= i, range(0,24))}) Jeg syntes det ble litt tungvindt med template for hver time så jeg skrev dette snippet som kan brukes med pyscript (som finnes under HACS). Denne lager 23 sensorer med billigste og dyreste time. Husk å bytt ut "nordpool_kwh_oslo_nok_3_00_025" med din sensor.
×
×
  • 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.