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

stigvi

Medlemmer
  • Innlegg

    2 644
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    141

Alt skrevet av stigvi

  1. Jeg byttet ut deconz og conbee ii med sonoff zbdongle-p og zigbee2mqtt. Det hele har gått fra smått irriterende til dønn stabilt. Ingenting har falt ut. Zigbee2mqtt har hatt en krasj på 1 år. Jeg har laget en automasjon som fanger opp dette og starter den på nytt hvis det skulle skje flere ganger.
  2. Februar utgaven av Home Assistant får støtte for å lese inn forbruksdata fra Elvia. https://rc.home-assistant.io/integrations/elvia Edit: Tenk hvis vi kunne fått en universell løsning for å lese data fra elhub, men neida. Elhub har selvfølgelig ikke noe api for slikt. Hvorfor skulle et offentlig eid selskap som har som oppgave å lagre og distribuere målepunktdata, ha et api som privatpersoner kan bruke?
  3. Jeg er, som sikkert flere andre, avhengig av en daglig dose medisiner. Sånn er det når en er arvelig belastet med høyt blodtrykk. For å huske å ta medisin og for å ha kontroll på beholdning, har jeg brukt en app. Men har egentlig alltid tenkt at de som lager denne app'en får mye informasjon om meg. Så for et par dager siden fant jeg ut at jeg ville la Home Assistant styre dette. Så det jeg har nå er en side i HA som viser min tablettbruk. I HA kan en sette visning og tilgang til sider ut i fra innlogget bruker så når kona tar dette fram på hennes mobil så ser hun sitt og ikke mitt. HA holder kontroll på beholdning og skifter farge på ikon når det nærmer seg tur til apotek. Har jeg ikke trykket på "Medisin tatt" knappen, får jeg et varsel på tlf som jeg svarer ja eller nei på (actionable notification som HA appen har). Her kan jeg sette "kanal" slik at jeg kan bruke egen varsellyd. Etter en time med litt fikling har jeg noe som fungerer bedre enn medisin-appen. Og herfra er det mange muligheter. Jeg kan feks varsle med et lys hjemme. Jeg kan la være å varsle på tlf hvis jeg ikke er hjemme. Det er jo ingen vits i det når tablettene ligger hjemme. Og jeg kan ha en trykknapp i skuffen på badet som teller ned beholdning. PS. Jeg tar noen tabletter om morgen og noen om kveld. Selvsagt måtte jeg da lage det slik at det telles ned på de tablettene som gjelder for aktuelt tidsrom. Og det vises når de ble sist tatt.
  4. Jeg jobber fulltid med programmering og Esphome er noe av det "gøyeste" jeg har vært borti. Det er faktisk veldig tilfredstillende å bruke "esphome run en_eller_annen.yaml" på kommandolinje for å kompilere, linke og laste opp ny firmware via OTA. Og finnes ikke enheten på lokalnettet, så spør den om jeg vil laste det ned til en dings koblet til USB-porten. Dette virker så bra at jeg følte meg trygg på å endre en esp32 kode mens jeg var på en månedslang tur i USA. En liten redigering i teksteditor i Home Assistant via mobil. Og en kompilering, linking og OTA ved hjelp av esphome for arm slik at jeg kan kjøre det på en raspberry pi (som kjører i en docker sammen med Home Assistant). Noen sekunder etterpå fikk jeg melding om at esp32 dingsen var startet opp igjen. Jeg har en EPROM brenner liggende hjemme og det var en tid da jeg programmerte 8-bits mikrokontrollere i assembly. Det var kjekt, det også. Men OTA funksjonaliteten og lettheten i å endre på kode i Esphome, det er en ny verden. Fordi resultatet kommer så fort.
  5. Det finnes på github https://github.com/esphome/esphome/tree/dev/esphome/components
  6. https://www.elfadistrelec.no/no/elektriske-releer-rm48-1no-50a-530v-skrueklemme-carlo-gavazzi-rm1a48d50/p/13745035?queryFromSuggest=true&itemList=suggested_search Ser denne har økt voldsomt i pris, men det var denne jeg kjøpte. Esp8266 er på en Sonoff sak som hadde et lite 10A rele. Jeg loddet av releet og førte to ledninger fra der releets spole var koblet til, til optokobler på SSR. Og så satte jeg en inn en motstand i parallell slik at motstand totalt ble den samme som motstanden i releets spole. Egenskap ved SSR som var viktig for meg var innkobling og utkobling ved nullgjennomgang av spenning og at den hadde riktig spenningsnivå på optokobler. Den er litt overdimensjonert på strøm, men greit nok. Kjøleplaten er stor nok til at den holder seg under 50 grader på full belastning.
  7. Min VVB er styrt av en esp8266 og den får stadig ny funksjonalitet. I sommer byttet jeg ut to DS18B20 sensorer med Oso sin sensorstav med 3 temperaturfølere. De 3 sensorene bruker jeg til å prioritere oppvarming av vannet. Hvis bunntemperatur kommer under ønsket temperatur, så varmes vannet med lav effekt og typisk rundt om 100W. Kommer sentertemp. under ønsket temperatur, så økes effekten "passelig" og hvis topptemperatur er under ønsket temp. så er det 100% effekt og 2kW. På den måten klarer jeg å stoppe at temperatur synker enda lavere uten å utfordre nettleie og å bruke minst mulig strøm når pris ikke er optimal. Temperatur settes til middels en gang i døgnet og på billigste timer. Til høy hver 11. dag på billigste timer. I det siste har jeg lagt inn nøyaktig beregning av oppvarmingstid slik at jeg treffer bedre på den billigste timen istedenfor å utnytte nest-billigste og 1/3 av den billigste. Effekten på varmeelementet er via en SSR så jeg kan styre effekt trinnløst vha puls-bredde modulering og dette er effektivt for å holde seg under effekttrinn på nettleie. Psnitt/Pmaks er snitt effekt på siste oppvarming delt på 2000W. Da får jeg et forholdstall som jeg bruker til å beregne oppvarmingstid på neste døgns syklus. Det gir ikke nøyaktig tid, men det er en god indikasjon når VVB blir nedprioritert i forhold til lading av biler. Esp8266 er selvsagt programmert ved hjelp av Esphome. Kodefilen er ikke mer enn 360 linjer.
  8. Ok, grei nok forklaring selv om jeg ikke helt er med på at C kode er så mye lettere å skrive enn yaml på et høyere nivå. Og da spesielt ikke når esphome har så mange ferdig lagde komponenter.
  9. Esphome er universell og støtter mqtt. Den har støtte for å sende data til HA i et mer effektivt binær format, men som de skriver, bruker en noe annet enn HA og vil bruke mqtt så slår en av denne muligheten for å sende i binærformat. https://esphome.io/components/mqtt.html?highlight=mqtt
  10. Med tanke på hvor ekstremt mye en får i esphome og hvor enkel denne er å bruke, er det litt interessant å høre hvorfor dere ikke velger å bruke den?
  11. Sant nok, dumme meg. Jeg tenkte på IKEA sine skaplys, men det er jo også for enkelt. Jeg har noen IKEA garderobelys med detektor for skapdør. De virker helt fint, men jeg burde allikevel bytte de ut....... 🤪
  12. Hehe. Hva med å bruke et reed rele eller en annen magnetkontakt som tåler nok strøm til å drive lyset?
  13. Dette du har gjort her med maler skal i teorien og i praksis ikke være nødvendig. Home Assistant skal vise noe tilsvarende helt på egenhånd. Her har jeg satt en sensor til .. og HA viser "Neste uke" i kortet. Settes dato til sensoren til 20. januar, viser kortet dette: For at dette skal virke, må sensor ha device_class satt til timestamp og sensor må ha en tilstand som tolkes som en dato og tid med tidssone, altså at den faktisk er en timestamp. Og i samme åndedrag - hvis en sensor har device_class satt til duration så vil et flyttall vises som timer, minutter og sekunder. Her er en sensor brukt som har verdien 1,2 og dette vises som 1:12:00 Men du har fått det til å virke slik du vil ha det og det er det viktigste. Min kommentar er bare til info om at det skal være mulig å gjøre dette på en lett måte.
  14. Og i visning av priser så setter jeg en "opacity" mindre enn 1 slik at jeg må ha kurvene for Tibber, Nordpool og Entso oppå hverandre for å gi en mørk blåfarge. Da er det lett å se på kurven om pris fra en av de mangler.
  15. Home Assistant har også bilder som en kan legge UI på. Men i utgangspunktet er det "kort" som er den enkle måten å lage det på. De fleste tror jeg løser dette med å installere pyscript modulen. Da kan en lage rutinene i python. https://hacs-pyscript.readthedocs.io/en/stable/overview.html Jeg tror nok du går på en liten blemme med å introdusere enda et nytt verktøy i automatiseringen istedenfor å sette seg inn i hvordan modbus konfigureringen virker i HA. Men det er jo bare min mening. Uanz, du får det nok til med node-red også.
  16. Jeg endrer stadig på dette og har tatt med mulighet for å hente strømpris fra Tibber. Skriptet velger selv hvor den skal hente prisen i fra, men hvis dette gjøres feil, kan jeg slå av kildene med brytere i UI. 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"}) state.persist('pyscript.totalstrompris', default_value=0, default_attributes={"unit_of_measurement":"NOK/kWh"}) state.persist('pyscript.nettleie', default_value=0, default_attributes={"unit_of_measurement":"NOK/kWh"}) state.persist('pyscript.stromstotte', default_value=0, default_attributes={"unit_of_measurement":"NOK/kWh"}) state.persist('pyscript.spotpris', default_value=0, default_attributes={"unit_of_measurement":"NOK/kWh"}) state.persist('pyscript.gjennomsnittlig_strompris', default_value=0, default_attributes={"unit_of_measurement":"NOK/kWh"}) state.persist('pyscript.peak_strompris', default_value=0, default_attributes={"unit_of_measurement":"NOK/kWh"}) state.persist('pyscript.offpeak_1_strompris', default_value=0, default_attributes={"unit_of_measurement":"NOK/kWh"}) state.persist('pyscript.offpeak_2_strompris', default_value=0, default_attributes={"unit_of_measurement":"NOK/kWh"}) state.persist('pyscript.hoyeste_strompris', default_value=0, default_attributes={"unit_of_measurement":"NOK/kWh"}) state.persist('pyscript.laveste_strompris', default_value=0, default_attributes={"unit_of_measurement":"NOK/kWh"}) @time_trigger("cron(59 * * * *)") def akkumulere_stromkostnad(): p = round(float(pyscript.totalstrompris) * 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.gjennomsnittlig_strompris) - float(pyscript.snittpris_for_strom)), 2) @time_trigger("cron(0 0 * * *)") def nullstille_stromkostnad(): pyscript.total_pris_for_strom = 0 @time_trigger("cron(0 * * * *)") @state_trigger("input_button.oppdater_strompris") 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 entso_valid = False if sensor.average_electricity_price_today.prices is not None and len(sensor.average_electricity_price_today.prices) >= 48: ld = datetime.strptime(sensor.average_electricity_price_today.prices[47]["time"], "%Y-%m-%d %H:%M:%S%z") if datetime.now() < ld.replace(tzinfo=None): entso_valid = True if input_boolean.strompriskilde_tibber == 'on' and sensor.energy_price_gabriel_edlands_veg_16.tomorrow_valid == True: pyscript.strompris.updatetime = datetime.now().isoformat() pyscript.strompris.source = "Tibber" l = [] for sourceprice in sensor.energy_price_gabriel_edlands_veg_16.raw_today + sensor.energy_price_gabriel_edlands_veg_16.raw_tomorrow: pr = {} d = datetime.strptime(sourceprice["time"], "%Y-%m-%dT%H:%M:%S.000%z") pr["start"] = d.isoformat() pr["end"] = (d + timedelta(hours=1)).isoformat() pr["spotprice"] = round(float(sourceprice["total"]) - float(additional_costs), 4) pr["gridprice"] = round(grid_day if is_peak(d) else grid_night, 4) pr["payback"] = round(payback(float(pr["spotprice"])), 4) pr["totalprice"] = round(float(pr["spotprice"]) + float(pr["gridprice"]) + float(additional_costs) - float(pr["payback"]), 4) l.append(pr) pyscript.strompris.prices = l elif input_boolean.strompriskilde_nordpool == 'on' and sensor.nordpool.tomorrow_valid == True: 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"] = round(float(sourceprice["value"]), 4) pr["gridprice"] = round(grid_day if is_peak(d) else grid_night, 4) pr["payback"] = round(payback(float(pr["spotprice"])), 4) pr["totalprice"] = round(float(pr["spotprice"]) + float(pr["gridprice"]) + float(additional_costs) - float(pr["payback"]), 4) l.append(pr) pyscript.strompris.prices = l elif input_boolean.strompriskilde_entsoe == 'on' and entso_valid == True: pyscript.strompris.updatetime = datetime.now().isoformat() pyscript.strompris.source = "Entso-e" l = [] for sourceprice in sensor.average_electricity_price_today.prices: 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"] = round(float(sourceprice["price"]), 4) pr["gridprice"] = round(grid_day if is_peak(d) else grid_night, 4) pr["payback"] = round(payback(float(pr["spotprice"])), 4) pr["totalprice"] = round(float(pr["spotprice"]) + float(pr["gridprice"]) + float(additional_costs) - float(pr["payback"]), 4) 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 = round(float(sourceprice["totalprice"]), 4) pyscript.totalstrompris = round(float(sourceprice["totalprice"]), 4) pyscript.nettleie = round(float(sourceprice["gridprice"]), 4) pyscript.stromstotte = round(float(sourceprice["payback"]), 4) pyscript.spotpris = round(float(sourceprice["spotprice"]), 4) 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.gjennomsnittlig_strompris = round(float(price_sum) / 24.0, 4) pyscript.peak_strompris = round(float(peak_sum) / 12.0, 4) pyscript.offpeak_1_strompris = round(float(offpeak1_sum) / 8.0, 4) pyscript.offpeak_2_strompris = round(float(offpeak2_sum) / 4.0, 4) pyscript.hoyeste_strompris = round(float(high), 4) pyscript.laveste_strompris = round(float(low), 4) 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 def payback(spot : float): return max((spot - 0.9125) * 0.9, 0.0)
  17. stigvi

    Modbus

    Ja, som du så er min yaml for esp noden.
  18. Nei, det tror jeg ikke. Ikea sine lyspærer hadde for noen år siden en bug som gjorde at de ikke videresendte meldinger. Hjemme hos meg førte det til treg respons og ikke respons i det hele tatt. Men samtidig var deconz og conbee II ikke verdens beste så mulig annen programvare som feks zigbee2mqtt hadde fanget det opp bedre.
  19. Dette med strømpris siste time var et eksempel og ikke noe jeg bruker selv. Min mal for strømpris siste time ser slik ut: - unique_id: be7b58ab-a2da-4f51-b770-9583e1da4cb9 name: "Energy price last hour" unit_of_measurement: "NOK/kWh" device_class: monetary state: >- {% set s = (now()-timedelta(hours=1))|as_timestamp|timestamp_custom('%Y-%m-%dT%H:00:00+01:00') %} {{ (state_attr("pyscript.strompris", "prices")|selectattr("start", "eq", s)|list)[0].totalprice }} Den gjør samme jobben, bortsett fra at den endres på hver hele time istedenfor 1 minutt før. Men den er mer kryptisk og å bruke en mal-trigger istedenfor, viser at det går å lage slikt enkelt. Sannsynligvis er mal-triggere også mer effektive i og med at den evalueres en gang i timen, mens denne som er i dette innlegget evalueres hvert minutt.
  20. Et annet eksempel er strømpris for forrige time. Som kjent vil strømmåler i huset sende forbruk noen sekunder etter hver hele time. I "Energi" oppsettet til HA kan en knytte opp en sensor som inneholder strømpris, men dette bør da være pris som var i forrige time og ikke i den gjeldende timen. template: - trigger: - platform: time_pattern minutes: 59 sensor: - unique_id: be7b58ab-a2da-4f51-b770-9583e1da4cb9 name: "Energy price last hour" unit_of_measurement: "NOK/kWh" device_class: monetary state: "{{ states('pyscript.totalstrompris')|round(6) }}"
  21. Mon tro om de vurderer en offisiell Home Assistant integrasjon. Home Assistant har 314.000 aktive brukere og 12500 av disse bor i Norge og Sverige. Hvor mye har Homey solgt i disse to landene?
  22. Det er noe jeg ikke har tenkt så mye over. Men Amina S ser interessant ut. Jeg hadde letet etter en som har lokal styring. Jeg ønsker ikke å være avhengig av en skytjeneste. Det er noe som ser trygt ut der og da, men i et 20 år langt perspektiv har jeg ikke så mye tro på det. Jeg bruker Home Assistant og har mye utstyr basert på esphome. Så det er mulig jeg hadde sett på en ladeboks som jeg kunne styre via noen enkle releer. Jeg ser at min egen styring av easee boksene begrenser seg til å slå av og på lading for å treffe billige timer og å holde meg under effekttariff-trinn. I tillegg setter jeg ladestrøm to ganger i året til en vinter- og sommerinnstilling. Jeg henter ut ladeeffekt og ladekostnad fra easee, men dette havner i kategorien "kjekt å ha".
  23. Jeg har to easee ladebokser. Er litt skeptisk til å anbefale disse, nettopp pga uavklart situasjon for selskapet. Og så er de styrt via en skytjeneste. Fordelen med det er at de er lette å integrere, men samtidig er det noen problemer innimellom. Det har blitt langt mer stabilt siste årene, så det går rette veien. De har også lagt til lokal styring via mobil i tilfelle easee går dukken. Men da forsvinner nok app også så min plan B er i så fall å reklamere ovenfor forhandler på boksene hvis det skulle gå helt ille.
  24. Jeg lader to biler på 1,3kW hver (VW eGolf og VW Passat GTE) og klarer å holde meg under 5kWh/h i 8 av årets måneder. Men om vinteren må jeg opp i 10kWh/h for å kunne lade biler på natt, varme vann på natt og samtidig ha varmt badegolv om morgenen.
  25. Det var heller ikke det jeg kommenterte ..........
×
×
  • 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.