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. Dropp i temperatur kl 0600 og 2230 skyldes bruk av dusj Temperaturføler i topp står i kontakt med vannet i tankens hull for termometer. Føler i bunn ligger inntil utsiden der termostat er. I den fasen i oppvarmingen der disse to følger hverandre så er forskjellen mellom dem 0,2-0,3 grader. Virker som at det er helt greit å måle på utsiden. Jeg startet prosjektet med å måle ved blandeventilen, men da ble det mye rare målinger, sannsynligvis fordi det også strømmer kaldt vann der. I ettertid ser jeg at jeg kunne klart meg med føler i bunn og kun beregnet topptemperatur.
  2. Her er min løsning på dette med å styre oppvarming av vann. Jeg har i alle fall lært en del av dette. Før jeg startet trodde jeg det ville være nok å måle temperatur i topp av tank, men ser den gir lite nyttig info. Jeg trodde temperaturen på vannet ville jevne seg ut når det var stillestående lenge nok, men ser at det motsatte er tilfellet. Stillestående vann leder varme dårlig og kaldt vann som kommer inn i bunn av tanken blir ikke varmet opp av det varme vannet i topp. Det kan fint være 30-40 grader forskjell på topp og bunn og dette opprettholdes over tid. Jeg så også at temperatur i topp fortsatte å synke i opp til en time etter at varme var påslått og det var da jeg virkelig begynnte å lure. Virker ikke styringen min? Er det ikke strøm på varmeelementet? Da monterte jeg en temperaturføler i bunn av tank og fikk et mye klarere bilde av hva som skjer. 1. Temperatur i topp på min tank synker 0,5 grader i timen uavhengig av vannforbruk (med normalt forbruk) 2. Temperatur i bunn synker raskt ned mot 35-45 grader selv med moderat forbruk Konklusjon er at det er vanskelig å vite status på vanntemperatur ut fra en føler i topp og bunn. Men jeg er endt opp med å ta snittet av disse to. Målet mitt var at vannet skal være ferdig oppvarmet til klokken 0400. Stort sett alltid er strøm billigst på natt og jeg har ingen annen kobling mot strømpris. Tanken tar 194 liter og det tar 404 sekund å varme den opp 1 grad. Med dette som utgangspunkt beregnes tidspunkt varmen må slås på for at det skal være varmt 0400. Strømmen slås av 0500. Denne ekstra timen er der i tilfelle tanken inneholder mer kaldt vann enn det jeg har antatt med å ta snitt av topp og bunn temperatur. Styringen blir gjort av en Sonoff TH16, men strøm til tank går via en kontaktor. Pinglereleet i TH16 stoler jeg ikke på. Kontaktoren er ikke lydløs så det er et minus. Kunne byttet den ut, men fruen klager ikke over smell på vaskerommet enda. På Sonoff har jeg lagt inn Esphome. Kode og bilder er nedenfor. Et kjekt lite prosjekt som ikke har kostet allverdens ? esphome: name: varmtvannstank platform: ESP8266 board: esp01_1m wifi: ssid: "HEIME5.ORG" password: !secret heime_wifi domain: .lan # Enable fallback hotspot (captive portal) in case wifi connection fails #ap: # ssid: "Varmtvannstank Fallback Hotspot" # password: "okz8anWfZKFP" #captive_portal: # Enable logging logger: # Enable Home Assistant API api: ota: globals: - id: heating type: bool restore_value: no initial_value: 'false' - id: seconds type: int restore_value: no initial_value: '0' switch: - platform: gpio pin: 12 id: varmtvannstank_varme name: "varmtvannstank_varme" restore_mode: ALWAYS_OFF dallas: - pin: GPIO14 sensor: - platform: dallas address: 0xC5000008FABF3328 id: varmtvannstank_topp_temperatur #name: "varmtvannstank_temperatur" filters: - sliding_window_moving_average: window_size: 5 send_every: 5 - platform: dallas address: 0xFA0319A2796AD628 id: varmtvannstank_bunn_temperatur name: "varmtvannstank_bunn_temperatur" filters: - sliding_window_moving_average: window_size: 5 send_every: 5 - platform: template name: "Energibruk varmtvann" lambda: |- return id(seconds) / 1800.0; update_interval: 300s unit_of_measurement: "kWh" interval: - interval: 5min then: - if: condition: - lambda: !lambda |- auto time_now = id(homeassistant_time).utcnow(); auto time_heat_end = time_now; id(seconds) = (77.0 - (id(varmtvannstank_topp_temperatur).state + id(varmtvannstank_bunn_temperatur).state) / 2.0) * 404.30769; if(id(seconds) < 0) id(seconds) = 0; else if(id(seconds) > 28800) id(seconds) = 28800; time_heat_end.hour = 4; if(time_heat_end.is_dst) { ESP_LOGD("main", "dst is on"); time_heat_end.hour = 3; } time_heat_end.minute = 0; time_heat_end.second = 0; time_heat_end.recalc_timestamp_utc(); if(id(heating) == true && time_now < time_heat_end) { ESP_LOGD("main", "t1"); return true; } if(time_now > time_heat_end) time_heat_end = esphome::time::ESPTime::from_epoch_utc(time_heat_end.timestamp + 86400); auto time_heat_start = esphome::time::ESPTime::from_epoch_utc(time_heat_end.timestamp - id(seconds) - 3600); ESP_LOGD("main", "seconds=%d", id(seconds)); ESP_LOGD("main", "%d-%d-%d %d:%d:%d", time_heat_start.year, time_heat_start.month, time_heat_start.day_of_month, time_heat_start.hour, time_heat_start.minute, time_heat_start.second); if(id(heating) == false && time_now > time_heat_start) { ESP_LOGD("main", "t2"); return true; } else { ESP_LOGD("main", "t3"); return false; } then: - if: condition: - lambda: !lambda |- if(id(heating) == false) { id(heating) = true; return true; } else return false; then: - climate.control: id: varmtvannstank target_temperature_low: 79.0 target_temperature_high: 81.0 else: - if: condition: - lambda: !lambda |- if(id(heating) == true) { id(heating) = false; return true; } else return false; then: - climate.control: id: varmtvannstank target_temperature_low: 60.0 target_temperature_high: 61.0 time: - platform: homeassistant id: homeassistant_time climate: - platform: bang_bang id: varmtvannstank name: "varmtvannstank" sensor: varmtvannstank_topp_temperatur default_target_temperature_low: 60.0 default_target_temperature_high: 61.0 visual: min_temperature: 60.0 max_temperature: 85.0 temperature_step: 0.1 heat_action: - switch.turn_on: varmtvannstank_varme idle_action: - switch.turn_off: varmtvannstank_varme
  3. Så bra ut. Hva slags lys har du brukt og hvor har du gjort av ledningene?
  4. Nobø sine ovner og varmekabeltermostater fungerer glimrende med Home Assistant hjemme hos meg
  5. Nei, DS18B20 har en 1-wire bus og du kan koble til mange på samme inngang. En leser de individult ved hjelp av en indeks eller adresse. Står mer om dette hos esphome sitt web område
  6. Dette er altså esphome sin måte å lese temperatur fra en DS18B20 dallas: - pin: GPIO14 sensor: - platform: dallas index: 0 id: varmtvannstank_temperatur name: "varmtvannstank_temperatur"
  7. Jeg bruker en sonoff th16 og der firmware er esphome. Tanken er avslått mesteparten av døgnet, men det beregnes tidspunkt strømmen må slås på for at vannet skal være 75 grader klokken 04:45. Tanken bruker ca 400 sekund på å varme vannet 1 grad. esphome: name: varmtvannstank platform: ESP8266 board: esp01_1m wifi: ssid: "HEIME5.ORG" password: !secret heime_wifi domain: .lan # Enable fallback hotspot (captive portal) in case wifi connection fails #ap: # ssid: "Varmtvannstank Fallback Hotspot" # password: "okz8anWfZKFP" #captive_portal: # Enable logging logger: # Enable Home Assistant API api: ota: globals: - id: heating type: int restore_value: no initial_value: '0' switch: - platform: gpio pin: 12 id: varmtvannstank_varme #name: "varmtvannstank_varme" restore_mode: ALWAYS_ON dallas: - pin: GPIO14 sensor: - platform: dallas index: 0 id: varmtvannstank_temperatur #name: "varmtvannstank_temperatur" filters: - sliding_window_moving_average: window_size: 5 send_every: 5 interval: - interval: 1min then: - if: condition: - lambda: !lambda |- auto time_now = id(homeassistant_time).utcnow(); auto time_heat_end = time_now; if(id(varmtvannstank).mode != CLIMATE_MODE_AUTO) id(heating) = 0; int seconds = (75.0 - id(varmtvannstank_temperatur).state) * 404.30769; if(seconds < 0) seconds = 0; time_heat_end.hour = 4; if(time_heat_end.is_dst) { ESP_LOGD("main", "dst is on"); time_heat_end.hour = 3; } time_heat_end.minute = 45; time_heat_end.second = 0; time_heat_end.recalc_timestamp_utc(); if(time_heat_end < time_now) time_heat_end = esphome::time::ESPTime::from_epoch_utc(time_heat_end.timestamp + 86400); auto time_heat_start = esphome::time::ESPTime::from_epoch_utc(time_heat_end.timestamp - seconds - 3600); ESP_LOGD("main", "seconds=%d", seconds); ESP_LOGD("main", "%d-%d-%d %d:%d:%d", time_heat_start.year, time_heat_start.month, time_heat_start.day_of_month, time_heat_start.hour, time_heat_start.minute, time_heat_start.second); if(time_now > time_heat_start && time_now < time_heat_end) return true; else return false; then: - if: condition: - lambda: !lambda |- if(id(varmtvannstank).mode == CLIMATE_MODE_AUTO && id(heating) != 2) { id(heating) = 2; return true; } else return false; then: - climate.control: id: varmtvannstank mode: AUTO target_temperature_low: 79.0 target_temperature_high: 81.0 else: - if: condition: - lambda: !lambda |- if(id(varmtvannstank).mode == CLIMATE_MODE_AUTO && id(heating) != 1) { id(heating) = 1; return true; } else return false; then: - climate.control: id: varmtvannstank mode: AUTO target_temperature_low: 54.0 target_temperature_high: 56.0 time: - platform: homeassistant id: homeassistant_time climate: - platform: bang_bang id: varmtvannstank name: "varmtvannstank" sensor: varmtvannstank_temperatur default_target_temperature_low: 79.0 default_target_temperature_high: 81.0 visual: min_temperature: 54.0 max_temperature: 85.0 temperature_step: 0.1 heat_action: - switch.turn_on: varmtvannstank_varme idle_action: - switch.turn_off: varmtvannstank_varme
  8. https://store.brewpi.com/temperature-control/temperature-sensors/threaded-onewire-temperature-sensor-bsp-1-2 Min tank hadde mulighet for temp. føler i topp så da var det naturlig å bruke den muligheten. Er i ferd med å ferdigstille mitt opplegg og skal lage et innlegg her med mer info
  9. Har endret det slik at setting av temperatur og preset er mer naturlig nå. Verdiene hopper ikke lenger fram og tilbake mellom gammel og ny verdi når en endrer. climate.py nobo.py
  10. Hei og da er jeg med her. Har jobbet med programmering i mange år, men HA og python var ukjent for meg fram til fredag i forrige uke da jeg kjøpte en raspberry pi 4 og begynte å lese litt her. Første mål var å få temperaturene fra Switch inn og det er i boks nå. Trodde temperatur fra termostater også kunne hentes, men ser i et eldre innlegg at det ikke støttes. Størst minus med Nobø er at det ikke er mulig å hente info om hva ovnene gjør. Jeg kunne svært gjerne hatt varmeeffekt i form av av/på forholdet de er i. Feilen med manglende temperatur fra Switch er at de ikke er i en sone, men rapporterer hvilken sone de er sensor for i et annet felt. En liten oppdatering i parsing av komponent info fikset det. Og så tok jeg vekk -274 som indikasjon av manglende temperatur og erstattet det med 'None'. Da viser ikke HA temperatur hvis det ikke er noe å vise. Filene mine er med her, men skal lage en git pull request senere i dag eller i morgen. Har merget inn andre sine endringer og er bittelitt usikker på hvordan det går å legge det inn i git, men det er vel bare å prøve. climate.py nobo.py
×
×
  • 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.