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

stigvi

Medlemmer
  • Innlegg

    2 650
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    141

Alt skrevet av stigvi

  1. stigvi

    Han port direkte til LAN

    Dagens teknologi gjør det helt klart mulig. Men her har en tenkt på muligheter forbi det å få data opp på en nettside, heldigvis. Det enkleste og sannsynligvis billigste er nok å kjøpe en superbillig trådløs aksesspunkt og sette den opp i nærheten av skapet. Det finnes esp32 noder med nettverkstilkobling, men da må du sitte inne med kunnskaper om å lodde og koble deler sammen på egenhånd.
  2. Spørsmål: Er det ikke mer brukervennlig om rattet brukes til å dimme ned til det praktisk brukbare minimumsnivået? Hvorfor skal det være mulig å dimme ned til null hvis dette er noe som ikke brukes og skaper kluss?
  3. Jeg har etterhvert en god del automasjoner som er avhengig av strømpris og da var det alltid irriterende at pris ikke var tilgjengelig. Ofte var den tilgjengelig på Entso-e integrasjonen, men ikke på Nordpool integrasjonen. Eller motsatt. Å bytte mellom de to er ikke gjort i en håndvending fordi de leverer data på forskjellig format. Så jeg har laget et pyscript som leser strømpriser fra både Nordpool og Entso-e og tilbyr data på et nytt format som da blir felles for disse to. Noen vil kalle det en bakdel, men for meg er det en fordel at scriptet samler alle prisene i en enkel liste istedenfor å splitte den i to. Det er ikke meningen at sciptet skal være gjenbrukbart hos alle og enhver, men mer som tips og inspirasjon til å lage et eget script. PS1. Scriptet har to funksjoner i toppen for å akkumulere dagens strømkostnad. PS2: Nordpool og Entso-e forutsettes satt opp til å levere spotpris inkl mva og i kroner. Skriptet legger til nettleie og trekker fra strømstøtte. PS3: Sats for nettleie hentes fra to input_number. Tidspunkt en veksler mellom natt og dag er hardkodet. Det samme er strømstøtte. PS4: Nettleie natt blir brukt for lørdag, søndag og andre røde dager. from datetime import datetime,timedelta import holidays YEAR = datetime.today().year NOR_HOLIDAYS = holidays.NO(years=[YEAR, YEAR+1]) state.persist('pyscript.total_pris_for_strom', default_value=0, default_attributes={"unit_of_measurement":"NOK"}) state.persist('pyscript.snittpris_for_strom', default_value=0, default_attributes={"unit_of_measurement":"NOK/kWh"}) state.persist('pyscript.spart_paa_strom', default_value=0, default_attributes={"unit_of_measurement":"NOK"}) state.persist('pyscript.strompris', default_value=0, default_attributes={"unit_of_measurement":"NOK/kWh"}) @time_trigger("cron(59 * * * *)") def akkumulere_stromkostnad(): p = round(float(pyscript.strompris) * float(sensor.estimated_hourly_consumption) + float(pyscript.total_pris_for_strom), 2) pyscript.total_pris_for_strom = p if float(sensor.consumption_thisday) > 0: pyscript.snittpris_for_strom = round(float(pyscript.total_pris_for_strom) / float(sensor.consumption_thisday), 4) pyscript.spart_paa_strom = round(float(sensor.consumption_thisday) * (float(pyscript.strompris.averageprice) - float(pyscript.snittpris_for_strom)), 2) @time_trigger("cron(0 0 * * *)") def nullstille_stromkostnad(): pyscript.total_pris_for_strom = 0 @time_trigger("cron(0 * * * *)") @time_trigger("once(now)") @state_trigger("sensor.nordpool", "sensor.nordpool.raw_tomorrow") @state_trigger("sensor.current_electricity_market_price", "sensor.average_electricity_price_today.prices_tomorrow") def strompris(): #state.set("pyscript.strompris", new_attributes={}) grid_night = float(input_number.nettleie_natt) / 100.0 grid_day = float(input_number.nettleie_dag) / 100.0 additional_costs = float(input_number.paslag_strom) / 100.0 if (sensor.nordpool.raw_tomorrow is not None and len(sensor.nordpool.raw_tomorrow) > 0 and sensor.nordpool.raw_tomorrow[0]['value'] is not None): pyscript.strompris.updatetime = datetime.now().isoformat() pyscript.strompris.source = "Nordpool" l = [] for sourceprice in sensor.nordpool.raw_today + sensor.nordpool.raw_tomorrow: pr = {} d = sourceprice["start"] pr["start"] = d.isoformat() pr["end"] = (d + timedelta(hours=1)).isoformat() pr["spotprice"] = float(sourceprice["value"]) pr["gridprice"] = grid_day if is_peak(d) else grid_night pr["payback"] = max((float(pr["spotprice"]) - 0.875) * 0.9, 0.0) pr["totalprice"] = float(pr["spotprice"]) + float(pr["gridprice"]) + float(additional_costs) - float(pr["payback"]) l.append(pr) pyscript.strompris.prices = l elif (sensor.average_electricity_price_today.prices_tomorrow is not None and len(sensor.average_electricity_price_today.prices_tomorrow) > 0): pyscript.strompris.updatetime = datetime.now().isoformat() pyscript.strompris.source = "Entso-e" l = [] for sourceprice in sensor.average_electricity_price_today.prices_today + sensor.average_electricity_price_today.prices_tomorrow: pr = {} d = datetime.strptime(sourceprice["time"], "%Y-%m-%d %H:%M:%S%z") pr["start"] = d.isoformat() pr["end"] = (d + timedelta(hours=1)).isoformat() pr["spotprice"] = float(sourceprice["price"]) pr["gridprice"] = grid_day if is_peak(d) else grid_night pr["payback"] = max((float(pr["spotprice"]) - 0.875) * 0.9, 0.0) pr["totalprice"] = float(pr["spotprice"]) + float(pr["gridprice"]) + float(additional_costs) - float(pr["payback"]) l.append(pr) pyscript.strompris.prices = l price_sum = 0.0 peak_sum = 0.0 offpeak1_sum = 0.0 offpeak2_sum = 0.0 high = -1000 low = 1000 for sourceprice in pyscript.strompris.prices: if datetime.now() >= datetime.fromisoformat(sourceprice["start"]).replace(tzinfo=None) and datetime.now() < datetime.fromisoformat(sourceprice["end"]).replace(tzinfo=None): pyscript.strompris = float(sourceprice["totalprice"]) pyscript.strompris.current_gridprice = float(sourceprice["gridprice"]) pyscript.strompris.current_payback = float(sourceprice["payback"]) pyscript.strompris.current_spotprice = float(sourceprice["spotprice"]) if datetime.now().day == datetime.fromisoformat(sourceprice["start"]).day: price_sum += sourceprice["totalprice"] if datetime.fromisoformat(sourceprice["start"]).hour < 8: offpeak1_sum += sourceprice["totalprice"] elif datetime.fromisoformat(sourceprice["start"]).hour < 20: peak_sum += sourceprice["totalprice"] else: offpeak2_sum += sourceprice["totalprice"] if high < sourceprice["totalprice"]: high = sourceprice["totalprice"] if low > sourceprice["totalprice"]: low = sourceprice["totalprice"] pyscript.strompris.averageprice = float(price_sum) / 24.0 pyscript.strompris.peak = float(peak_sum) / 12.0 pyscript.strompris.offpeak1 = float(offpeak1_sum) / 8.0 pyscript.strompris.offpeak2 = float(offpeak2_sum) / 4.0 pyscript.strompris.high = float(high) pyscript.strompris.low = float(low) def is_peak(t : datetime): if t.isoweekday() >= 6 or t.hour <= 5 or t.hour >= 22 or t.date() in NOR_HOLIDAYS: return False else: return True
  4. Jeg bygde i 2018 og valgte bare Nobø varmesystem på varmekabler og ovner som ekstra. Alt lys var planen å bruke smartlys med enten smarte pærer eller smarte armaturer basert på zigbee. Jeg har fagbrev innen elektro så jeg monterte alt lys selv. Jeg er superfornøyd med at jeg har gått for smartbelysning istedenfor vanlig belysning og eventuelt brytere og dimmere basert på zigbee. Å kunne styre hver lyskilde individuelt har gitt en del flere muligheter enn det en ser i en byggeprosess. Og det er greit å ikke være låst til hvordan huset ble bygd og ledninger ble trukket når det gjelder lysgrupper. For eksempel fant vi ut at nattlys i gang bare skal være på den lampen som ikke vises i fra soverommet. Enkelt å få til med smart belysning. Håpløst å få til dersom begge lamper i gang var styrt i fra en felles dimmer.
  5. Det står også nevnt i linken som Erling startet tråden med. Har Erling lest artikkelen selv?
  6. Kanskje du skulle startet tråden din med å beskrive systemet ditt. Kjører du HA på en offisiell støttet måte? Eller er det noe mekket i hop selv?
  7. Du kan også teste på en zigbee sensor og hvis den er utilgjengelig og har vært det i feks 5 minutt, bruk servicen hassio.addon_restart for å starte opp igjen deconz
  8. Automatisk reboot er enkelt å få til. Slik som dette. Der har jeg lagt inn en betingelse som ikke forteller deg så mye, men du ser jo eventuelt hvordan du tar en omstart med å kjøre homeassistant.restart PS. Nei, ingen problemer hos meg. Det lureste er å sjekke loggene hos deg. Homeassistant.log er den pågående loggen og homeassistant.log.1 er den som gjaldt før siste omstart. PS. Min ferie-omstart er lagd slik at hvis jeg ikke slår av input_boolean.next_day_reboot i løpet av formiddagen, så tas en omstart. Jeg lagde det da jeg så at forbindelsen til Nabu Casa gikk ned og jeg mistet kontakten med HA hjemme. Som ikke løste seg før etter en omstart da jeg var hjemme igjen. Så da ble det disse to automasjonene. - id: '1661234937227' alias: Omstart på ferie (steg 1) description: '' trigger: - platform: time at: '12:30:00' condition: - condition: state entity_id: calendar.ferie state: 'on' action: - service: input_boolean.turn_on data: {} target: entity_id: input_boolean.next_day_reboot mode: single - id: '1671626910222' alias: Omstart på ferie (steg 2) description: '' trigger: - platform: time at: '12:05:00' condition: - condition: state entity_id: input_boolean.next_day_reboot state: 'on' action: - service: homeassistant.restart data: {} mode: single
  9. For meg er det motsatt. Jeg har en enkel liste som inneholder alle priser istedenfor å splitte den opp i to lister. Listen inneholder dato og klokkeslett så å splitte den i to for i dag og i morgen, gjør det bare mer komplisert. @state_trigger("sensor.nordpool") def strompris(): if (sensor.nordpool.raw_tomorrow is not None and len(sensor.nordpool.raw_tomorrow) > 0 and sensor.nordpool.raw_tomorrow[0]['value'] is not None): pyscript.strompris = datetime.now() pyscript.strompris.raw_price = sensor.nordpool.raw_today + sensor.nordpool.raw_tomorrow Dette lagde jeg for mer enn et år siden, med en plan om å lese inn priser fra Entso-e hvis Nordpool er utilgjengelig. Men så stoppet det opp av en eller annen grunn.
  10. Har vurdert det samme. Og å lage det slik at prisene for hvor time enten hentes fra Nordpool integrasjon eller Entsoe-e integrasjon, avhengig av tilgjengelighet på priser. Da får jeg to kilder som jeg varierer på, alt ettersom.
  11. Hos meg fikk jeg problem med at Nordpool integrasjonen starter opp før holidays integrasjonen og da feiler prisberegningen. Dette kan en løse med å endre manifest filen til nordpool. Men så må en huske å gjøre det hver gang det er ny versjon av nordpool. Da er det lettere å huske å endre helligdag-listen som jeg har i malen. Den endres kun en gang i året og jeg må jo allikevel endre malen pga nye priser. Da tar det mindre enn et minutt å legge inn 5 bevegelige helligdager istedenfor å være avhengig av at holidays integrasjonen starter opp før nordpool.....
  12. Flott at du fant integrasjonen "Holidays". Da går det, som du har gjort, å teste på om en dato er en rød dag i kalenderen.
  13. Jeg har oppdatert til 2023.12 og Nobø integrasjonen virker som den skal. Select for ukeprofiler/overstyring blir også lagt til og det er dette som feiler hos deg.
  14. Er ikke det selve definisjonen på defekt sensor?
  15. Noe andre ovner har hatt i årevis. Allerede på 80-tallet hadde jeg ovner med dette. Jeg er enig i at en god regulator er fint. Det gir en behagelig varme i fra de. Dessverre er det mange som ødelegger denne funksjonaliteten på sin ovn med å sette en fjernstyrt kontakt mellom ovn og stikkontakt.
  16. Med tanke på hvor mange som sliter med å få Mill ovner til å virke, bra du setter spørsmåltegn bak 🙂
  17. Beklager, men det gjør den ikke. Når listen "Tomorrow" fylles inn med priser, så bruker du en workday som sier om dagen i dag er en helgedag. Den sier ikke hva morgendagen er. Men du har rett i at prisene oppdateres. Ved midnatt vil "Tomorrow" bli "Today" og workday vil være rett. Men klokken 14 når "Tomorrow" fylles inn med priser, har en samme problem igjen.
  18. Jeg får opp denne meldingen: "Selected view cannot be displayed with incomplete data. Values for some time intervals are not available." https://transparency.entsoe.eu/transmission-domain/r2/dayAheadPrices/show?name=&defaultValue=false&viewType=GRAPH&areaType=BZN&atch=false&dateTime.dateTime=05.12.2023+00:00|CET|DAY&biddingZone.values=CTY|10YNO-0--------C!BZN|10YNO-2--------T&resolution.values=PT15M&resolution.values=PT30M&resolution.values=PT60M&dateTime.timezone=CET_CEST&dateTime.timezone_input=CET+(UTC+1)+/+CEST+(UTC+2) Dette skjer innimellom og hver gang det har skjedd tidligere så er det ikke stort å gjøre før nye priser for nye dager tikker inn og 5. desember forsvinner ut og blir historie.
  19. Du må vel egentlig bruke to workday sensorer der den ene forteller om morgendagen er en helgedag eller ikke. For slik det er nå vil du få feil priser neste dag (i tomorrow tabellen). Og slik now() blir overstyrt, er det ikke lett å vite hva som er neste dag. Jeg ga opp i min template. Subs kan i din mal bli negativ når current_price er mindre enn 0,875. Og det er jo feil. Støtten er aldri mindre enn null.
  20. Dør- og vindusensoren har en form som tyder på at de ikke bruker CR2032 batteri. Får håpe de har gått over til AA.
  21. Du kan ikke montere disse rundt kabelen. Da vil magnetfeltet rundt den ene lederen nulle ut magnetfeltet i den/de andre lederene. Så slike målere som du klipser over en leder må som regel stå i skap eller i ladeboks hvis det er plass til noe slikt der.
  22. Nå var jo opprinnelig spørsmålet om HomeSeer, men siden du nevner Home Assistant. Den har jo siste årene fått mye funksjonalitet for å langtidslagre statistikk og aggregere data. Dette kan en også spørre på som feks historisk forbruk av varmtvann som jeg har gjort. InfluxDB er sikkert topp, men for oss som ikke trenger "all in" i funksjonalitet så er det noe innebygd i Home Assistant. Sikkert noe i HomeSeer også, kanskje.
  23. Det er ikke et idiotkrav når folk lar være å teste og å bytte batteri på røykvarslere. Undersøkelser viser at 1 av 5 sluntrer unna med batteribytte.
×
×
  • 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.