Peale kuuajalist kasutamist panen siia ülesse ka mõned täiustused mida vahepal olen teinud. Antud postituses kajastan põhiliselt täiustusi mis seotud soojuspumba juhtimisega. Tegelikkuses olen vahepeal juba automatiseerinud ära pool oma elamaisest (välisvalgustus, väravaajamite juhtimine, erinevad õhu- ja temperatuurimonitorid, sisevalgustuse juhtimine, energiaarvestid). Nendest ehk kijutan täpsemalt järgmisel korral.
Tundelise temperatuuri järgi juhtimine
Tundeline temperatuur (real feel) on temperatuur, mis arvestab ka tuule ja niiskuse mõju küttetundide arvutamiseks. Antud näite puhul arvestame vaid tuule osakaalu. Selle arvutamiseks on mingi üldtuntud valem, mille sisu väga lahkama ei tahaks hakata. Kolleeg (Indrek V) saatis facebooki postituses oma nägemuse antud sensorist, mis tuleb lisada templatede sektsiooni konfiguratsioonifailis.
- sensor:
- name: keskminetemp_real_feel
unique_id: keskminetemp_real_feel
state: >-
{% set list=state_attr('weather.openweathermap', 'forecast') %}
{% set temp_rf_0=13.2+0.6215*list[0].temperature-11.37*(list[0].wind_speed**0.16)+0.3965*list[0].temperature*(list[0].wind_speed**0.16)|float %}
{% set temp_rf_4=13.2+0.6215*list[4].temperature-11.37*(list[4].wind_speed**0.16)+0.3965*list[4].temperature*(list[4].wind_speed**0.16)|float %}
{% set temp_rf_8=13.2+0.6215*list[8].temperature-11.37*(list[8].wind_speed**0.16)+0.3965*list[8].temperature*(list[8].wind_speed**0.16)|float %}
{% set temp_rf_12=13.2+0.6215*list[12].temperature-11.37*(list[12].wind_speed**0.16)+0.3965*list[12].temperature*(list[12].wind_speed**0.16)|float %}
{{ ((temp_rf_0+temp_rf_4+temp_rf_8+temp_rf_12)/4)|round(1) }}
Antud koodijada tekitab juurde sensori nimega keskminetemp_real_feel
Asendame selle oma eelnevalt loodud sensori heatrequest (mis kalkuleerib küttetundude vajadust) koodis, eelneva keskminetemp sensoriga
Edaspidi arvutatakse töötunnid, arvestades ka tuule mõju.
Lisatunnid ja minimalne tööaeg
Et oleks mugavam küttegraafikut muuta (seadistada vajaminevaid küttetunde) tegin eraldi slideri, mis aritmeetiliselt liidab ning lahutab vajadusel siis sensori heatrequest poolt arvutatud tundidele soovitud koguse juurde.
Samuti tekitasin lisaks ka slideri, mille alusel määratakse minimaalne küttetundide kogus, kui näiteks teoreetiliselt maja kütmiseks enam polegi vaja soojuspumpa, samas aga soojuspump peaks töötama, et ta kütaks soojavee boilerit.
Selleks lisame konfiguratsioonifaili järgmised read (tekitavad vajalikud sliderid)
Sliderite lisamiseks tuleb valida menüüst Edit Dashboard, ning sealt alt lisada kaart Entities
Kui slaiderid loodud, siis tuleb vastavad muutujad ka koodis õigetesse kohtadesse lisada.
Lisan screenshoti
Ongi korras!
Kütteaja ja toatemperatuuri võrdlus
Lisasin tubadesse ka temperatuuriandurid, mille alusel saab jälgida, mis toas tegelikult toimub. Süsteemi häälestamiseks väga vajalik riistapuu. Samuti lisasin süsteemi ka energiakuluarvesti. Nende lisamisest kirjutan järgmisel korral. Hetkel panen ülesse ühe graafiku, kus mõlemad kokku pandud ja kust näeb kui kaua maja jahtub, kui kaua ülesse köeb ning kuidas mõjub lisaküte (kamin)
Pildilt on näha, et soojuspump alustas tööd kusagil südaöösel, ca 300W elektrienergiat tarbides. Vaikselt-vaikselt hakkas kasvama ka toatemperatuur.
Graafikult on ka näha, kui kiirelt toatemperatuurile mõjus kamina süütamine. Hetkelga tõusis temperatuur ca 2C.
Mõned vead on välja tulnud. Allpool annan ülevaate parandustest
Pumba taimer
Koodius oli väike viga sees, arvas in et for loop puhul algab i väärtus ühest, aga oli null. Muutke ära pumba taimeri kood selliselt:
- binary_sensor:
- name: pumba taimer
unique_id: pumba taimer
state: >-
{% set l=state_attr('sensor.nordpool_mwh_ee_eur_3_10_02', 'raw_today')|sort(attribute='value') %}
{% set t = now() %}
{% for i in range(states('sensor.heatrequest')|int) %}
{% if (t >= l[i].start and t <= l[i].end) %}
{{ true }}
{% endif %}
{% endfor %}
Salapärane väljalülitus öösel
Mingil veidral põhjusel on soojuspump ennast vahel südaöösel välja lülitanud. Kuna pumba taimeri olek ei muutunud ning switch lülitas pumba lihtsalt välja, ei rakendu ka triger, et seda uuesti sisse lülitada. Kuni täpne viga pole teada tuleks lisada üks kontroll, mis vaatab kell 00:01, kas pump ikka on sees kui ta peaks sees olema.
Samba aseme väga mugav asi, mida konfiguratsioonifailide muutmiseks kasutada on File Editor. Siis pole vaja hakata windowsi all ip aadresse taga ajama, saab otse Home Assistanti kasututajaliidesest faili muuta.
Installeerimiseks mingi Configuration -> Add-ons vajutage Add-on store ning otsige File Editor.
Uuendus: 21.01.2022 Loodud Facebooki grupp teema arutamiseks. Uuendus: 22.01.2022 Algse tekstiga võrreldes on lisatud ka mõned muudatused. Vaadake kindlasti siit, kui esialgse kirjelduse järgi valmistasite Uuendus: 06.02.2022Täiendused peale kuuajalist kasutamist
Mis? Kuidas? Millal?
Kõigepealt seletaks lahti, mis asi on börsihinda jälgiv kontroller? Tegemist on juhtimisseadmega, mille abil saab sisse-välja lülitada teisi elektriseadmeid, vastavalt Nordpooli börsihinnale.
Mis kasu tast on? Kasu on väga lihtne – ta juhib teisi seadmeid ajal mil börsihind on soodne – seega maksate tarbimise eest vähem. Antud juhendis kirjeldan ma peaasjalikult kuidas juhtida õhk-vesi soojuspumpa, kuid seda võib panna juhtima ka mitmeid muid seadmeid – radiaatorid, nõudepesumasinad, tuled, tsirkulatsioonipumbad jne.
Kuna oleks mõistlik antud juhtimissüsteemi rakendada? Iga hoone puhul ei pruugi küttesüsteemide kellaajaline juhtimine olla otstarbekas. Selline juhtimine eeldab, et hoones on kuidagi võimalik salvestada soojust. Õhk-vesi kütte puhul on kõige sobilikum, kui kasutate põrandkütet, mille mass hoiab maja soojana ka peale soojusallika väljalülitamist. Veel parem, kui teil on ka akupaak, kuhu sooja vett salvestada. Samuti sõltub otstarbekus hoone soojapidavusest. Tähtis on – kui kaua seisab maja soe ilma kütmata? Selle kindlaks tegemine on suhteliselt lihtne. Lülitage küttesüsteem välja ja jälgige mis juhtuma hakkab. Kui maja on soe ka näitks 12h pärast, siis antud lahendus on teile sobilik. Loomulikult sõltub soojapidavus ka välisõhu tempeatuurist. Mul enda maja püsib soe veel 16h järjest, kui välistemperatuur on 0 C. Kui väljas on aga -20 kraadi, siis üle nelja tunni ei kannata kütet väljas hoida.
Juhtimise põhimõte
Nagu eelnevas peatükis kirjeldatud, on mõistlik küttesüsteemi juhtida mitme erineva parameetri alusel. Olulisemad parameetertid on välisõhutemperatuur ning elektrihind. Samuti tuleb kindlaks määrata hoone küttevajadus, mida saab tuletada piirdekonstruktsioonide soojusjuhtiuvuse järgi. Me siin nüüd nii keeruliseks ei lähe ja lahendame asja katse-eksituse meetodil. Muud parameetrid, millede järgi võib veel juhtida on ruumi sisemine temperatuur, tuulekiirus, akupaagi temperatuur jne – nii peeneks samuti hetkel ei lähe.
Antud juhendis katsume soojuspumba juhtimiseks kasutada järgnevat lahendust.
Kõigepealt tõmbame internetist jooksva päeva börsihinnad, tunni aja kaupa
Võtame internetist piirkondliku ilmaprognoosi ning arvutame välja järgneva 12h keskmise temperatuuri
Arvutame välja keskmise temperatuuri alusel mitu tundi on tarvis antud päeval kokku kütta, et maja ei jahtuks
Valime välja odavaimad tunnid, millede koguse arvutasime eelnevas punktis
Kindlasti peab arvestama, et me sellise tegevusega energiat otseselt väga kokku ei hoia kuna eeldame, et maja jääb siiski peaaegu kontstantselt soojaks. Välja lülitatud ajal kütab maja salvestatud energia põrandaplaadis ning akupaagis. Peale kütte sisse lülitamist peame need mõlemad uuesti “täis laadima”. Küll aga saame valida aega, millal on kõige odavam seda laadimist teostada.
Mida on tarvis?
OK, aitab mulast – läheme nüüd asja kallale.
Vajalikud seadmed on järgmised:
Raspberry Pi
Kogu asja juhtimiseks kasutame Miniarvutit Raspberry Pi 4. Sobib ka Raspberry Pi 3, kui see on juba olemas.
Osta saab ühest Taani veebipoest. Tuli kohale kolme päevaga. Hind 53€. Eestis kohapealt hetkel kusagilt ei leidnud.
Soovitav juurde tellida ka korpus10€. Enda oma printisin ise välja 3D printeriga ning polnud vaja tellida.
Võib tarvis minna ka microHDMI kaablit (tegmist siiski päris arvutiga ning võib vajadusel ka kuvari/teleka taha ta pista) ja toiteplokki (kõlbab ka tavaline telefonilaadija USB-C otsikuga).
Releemoodul 5V
Kuna soojuspumbal on juhtimiseks üks sisend, mis eeldab potentsiaali vaba kontakti, siis selleks kasutame 5V releed. Relee juhtimisega saab meie Raspberry Pi ilusasti hakkama.
Mugavamaks ühendamiseks võiks kasutada pistikuga ühendusjuhtmeid, mis ilusasti sobivad releemooduli ning Raspberry ühendamiseks. Osta saab sealt samast poest kust Raspberrygi või AliExpressist sama raha eest terve hunniku.
Vaja võib veel minna juhet (2 soonelist) soojuspumba ja releemooduli vahele ning arvuti patch-kaablit (RJ45 otsikutega) Raspberry ühendamiseks ruuteriga.
SD kaart
Kindasti on tarvis ka ühte mälukaarti, võib ola ilmselt suht suvaline, minimaalselt 8GB SD kaart, kuhu peale salvestatakse juhtimistarkvara. Vaja on ka SD kaardi lugerit, millega arvutist tarkvara peale saab laadida.
Tarkvara installeerimine
Nüüd läheb asi juba põnevamaks. Kirjeldan samm sammult mida tarvis teha.
Juhtimiseks kasutame tarkvara nimega Home Assistant. Tegemist on väga võimeka nuti-kodu juhtimise tarkvaraga, millega saata kindlasti ka paljusid muid kodus olevaid nutiseadmeid juhtida. Olgu selleks siis valgustid, telekad, kaamerad või mõni muu tark vidin. Võimalused on suhteliselt piiramatud. Meie keskendume siin hetkel vaid oma teemale.
Installeerimise juhendi leiate siit. Ei hakka seda ümber jutustama, kuid tegevus lühidalt järgmine:
Laadite alla tarkvara (vastavalt kas Raspberry Pi 4 või 3 jaoks, 64bit)
Laadite alla SD kaardi ettevalmistamise tarkvara Balena Etcher
Selle abiga valmistage ette SD kaart ning pistke see oma Raspberry (milelle olete juba ümbrise ümber pannud) sisse.
Pistke Pi-le külge juhe, mis ühendatud ruuteriga ning USB kaabel toiteks
Edasi tuleb veidikene oodata kuni süsteem ennast ülesse laadib. Peale paari minutit, kui kõik läks õigesti, minge oma arvuti (mis peab internetis olema sama ruuteri kaudu) internetibrowserissse ning sisestage aadressiks http://homeassistant.local:8123 Ilmuma peab järgnev lehekülg.
Sisestage oma nimi, valige parool ja looge omale konto. Järgmisel lehel pange paika oma asukoht, see on tähtis ka hiljem, et saada sobivat ilmaprognoosi. Edasi veel paar lehte. Viimasel otsitakse ülesse kõik võrgus olevad seadmed, millega ta oskab suhelda. Vajutagi Finish. Kui kõik möödus korrektselt peaks tulema ette taoline pilt. Õnnitlen. Esimene samm on teostatud.
Lisamoodulite installeerimine
Nüüd kus baastarkvara on installeeritud, peame tõmbama juurde paar moodulit ning programmeerima Pi soojuspumpa juhtima. Kirjeldan antud juhendis vaid seda mida ise tegin, et enda süsteem tööle saada. Läheneda võib kõikidele asjadele mitmel eriviisil, kõiki kaalutlusi ei hakka lahti seletama.
Lisamoodulite installeerimine
Lülitage sisse “Advanced mode“, selleks vajutage all vasakul nurgas oma nimele ning avanenud menüüs lülitage sisse advanced mode
Samba
Installeerige mõned vajalikud “lisad”. Minge menüüsse Configuration -> Addons, valige “add-on store“. Sealt installeerige “Samba share”. Antud lisa abil saate hiljem ligi oma Raspberry Pi seadistustefailile üle võrgu).
Peale installeerimist muutke ka Samba konfiguratsiooni. Valige kasutajanimi ning parool. Seejärel salvestage.
Minge tagasi Info lehele ja lülitage Samba tööle
SSH & Web Terminal
Installeerige SSH terminal. Pikemalt ei hakka seletama aga seda läheb hiljem ühe käsu sisestamiseks tarvis. Peale installeerimist samuti käivitage (Start). Samuti valige Show in sidebar, et ta sinna küljepaneelile ilmuks.
HACS – Home Assistant Community Store
Antud tarkvara võimaldab ligipääsu kolmanda osapoolte äppidele, mida samuti tarvis. HACS installeerimine on veidikene keerulisem. Juhend selleks asub nende kodulehel. Lühidalt:
Minge äsja seadistatud ssh terminali: Valige vasakul menüüst Terminal
Avanenud konsoolile kirjutage järgnev rida:
wget -O - https://get.hacs.xyz | bash -
Kui kõik läks hästi on HACS installeeritud ning avanes järgnev pilt:
Tehke ka nüüd üks alglaadimine oma Home Assistantile.
Configuration->Settings ja valige restart
HACS on nüüd teie Raspberrysse tõmmatud. Selle installeerimiseks minge Configuration -> Devices & Services. Valige sealt Add Integration ning otsige HACS. Nõustuge kõikide tingimustega ning valige “Submit”.
Edasi suunatakse teid GitHubi, kus peate tegema konto ja seal oma HACS-i koopia autoriseerima. Et asi sujuks kiiremini soovitan GitHubi konto eelnevalt juba teostada.
NordPool
Nüüd kui see kadalip läbitud on aeg installeerida NordPooli hinnamoodul. Seda saab paigaldada äsja installeeritud HACS poest. Minge HACS -> Integrations. Valige “Explore & Download repositories“ ning otsige “Nordpool“.
Peale installeerimist tehke ka üks alglaadimine Configuration -> Settings -> Restart.
Nordpooli mooduli aktiveerimiseks minge Configuration -> Devices and Services ning “Add Integration“. Otsige “Nordpool“. Millegipärast ta ei tahtnud sinna mul ilmuda enne kui olin browserile restardi teinud.
Nüüd on tähtis koht. Peate valima õiged parameetrid ning hinnapiirkonnad.
Nüüd on Nordpool seadistatud süsteemi jaoks kui “Sensor”, mis siis “mõõdab” hinda. Antud sensori info alusel on võimalik teha hiljem automatiseerimisi ning arvutusi. Sensori nimeks meie piirkonnas sai “nordpool_mwh_ee_eur_3_10_02”. Kui te teete teised valikud, muutub ka sensori nimi ning peate seda hilisemas konfigureerimises arvestama.
Apexcharts-card
Ilusate börsiraafikute kuvamiseks installeerige HACS->Frontend alt veel “apexcharts-card“
OpenWeatherMap
Kasutame OpenWeatherMaps teenust ilmaprognoosi saamiseks. Selle paigaldamiseks tuleb minna Configuration->Devices&Services ja valida Add Integration, kust alt leiate OpenWeatherMaps. Nüüd küsitakse teie asukohta ning API võtit (Selle genereerimiseks klikake pakutud lingil. Võtab veidi aega et kasutaja teha).
Jälgige et Mode oleks hourly (uuendatakse tunni tagant)
Nüüd on kõik vajalikud tarkvarajupid ja äpid installeeritud. Jääb üle vaid kogu see krempel koos tööle panna.
Konfigureerimine
Hakkame siis pihta. Home Assistant hoiab oma konfiguratsioone ja seadistusi enda sees, failis nimaga configuration.yaml. Olgu ennetavalt öeldiudud, et põhilised asjad saab ka läbi ilusa veebiliidese teostatud. Kuna antud ülesanne on veidikene custom made, siis seetõttu tuleb ka veidi failis surkida. Kui soovite täpsemalt aru saada, mida me teeme, siis peaks kindlasti tutvuma ka manualiga. Antud platvorm on väga võimas ja kindlasti kui selle pumbaga ühele poole saate, soovitan ka muid asju kodus vaadata, automatiseerimise pilgu läbi, mis siis võiks hoopis lihtsalmalt käia.
Konfiguratsioonifailile ligipääsemiseks installeerisime eelnevalt Samba Share mooduli. Et seda näha, kirjutage oma windowsi failihalduri aadressi reale \\<ip aadress>. Mu koduruuter andis talle aadressiks 192.168.0.67. IP aadressi saate vaadata kui lähede HA menüüsse Configuration-> Addons Bacup Supervisor, sealt ülevalt valite System. Kaardil Host peaksite nägema oma IP aadressi. Hiljem saab antud menüüs seadistada ka WiFi, peale mida võite oma võrgukaabli eemaldada (hiljem täpsemalt).
Nüüd küsitakse teilt kasutajanime ning parooli, mida eelnevalt Samba seadistamise ajal sisestasite.
Edasi minge kausta config ning avage tekstiredaktoriga (notepad näiteks) fail configuration.yaml
Configuration.yaml
Paari sõnaga kirjeldan ette üldiselt, mida me siin teeme. Et midagi juhtida on meil tarvis juhtimisinfot (mille aluselt juhtimine toimub, HA puhul nimetame neid sensoriteks) ning juhitavat seadet. Antud konfiguratsioonifailis tekitame ise juurde mõned sensorid ja samuti tekitame ka “lüliti” soojuspumba juhtimiseks. Lüliti hakkab hiljem juhtima releed.
Avame faili
Faili ees olevad read peab kindlasti säilitama. hiljem kirjeldatud read kopeerige sinna alla lihtsalt. Failis on näha, et antud faili liidetakse hiljem ka teiste failide sisu. Meid hiljem huvitab veel nendest fail automations.yaml.
Muidu üldiselt on igasugused andurid juba sisse ehitatud. Kui tahame tekitada oma virtuaalseid andureid, siis tuleb kasutada selleks ette nähtud “templatete” põhist kirjeldust. Templated kirjeldatakse mingis Jinja keeles, mida nägin esimest korda. Täpsemalt saab uurida siit.
Kindlasti jälgige ka “joondust”, et erinevad read oleks üksteise kohal alla õiges kohas. All väike tulevikupilt, kuhu tahame jõuda.
Keskmise temperatuuri sensor
Keskmist tuleviku temperatuuri on tarvis, et saaks aru mis lähiajal juhtuma hakkab ning vastavalt sellele reageerida. Arvestades maja soojapidavust tundub, et mõistlik on arvutada ca järgneva 12h keskmine. Pikemaaegsem annab liiga keskmise, millele kütte süsteem ei jõua reageerida õigesti. Keskmise temperatuuri arvutamisks kasutasin lihtsalt lahendust, liitsin kokku nelja prognoositava tunni temperatuurid ning jagasin neljaga. Sensori nimeks tuleb “keskminetemp”.
Salvestage fail. Nüüd laadime iga sammu järel konfiguratsiooni uuesti sisse ja testime et töötaks. Seda sammu ma rohkem ei kirjelda aga peaks tegema iga sammu järel. Minge “Configuration->Settings“. Vajutage kõigepealt Check Configuration, mis kontrollib et vigu polels. Kui on OK, siis vajutage all “Template Entities“, mis laadib konfiguratsioonist sisse uued seaded.
Peale seda peaks tekkima sensor “keskminetemp“. See tekib üldjuhul ka Overview rubriiki. Seal hiljem korrastame kõik vajalikud andmed ära. OpenWeatherMap on kõvasti seal segadust tekitanud.
Teine koht, kust saate parameetreid vaadata on Developer Tools. Seal on loetletud kõik parameetrid mida süsteem kasutab.
Küttevajadus
Järgmisena katsume keskmise temperatuuri alusel välja arvutada, mitu tundi on vaja küttesüsteemil töötada. Selleks võib kasutada midagi väga keerukat aga ma lahendasin suhteliselt lineaarse valemi abil. Ise kasutasin sellist valemit (keskminetemp-6)x(-0,5)+6. See andis tulemuseks eelnevalt katsetatud küteajad, kus 0 kraadi juures on mul vaja pumpa töös hoida 9 tundi, -20 puhul 19 tundi. Võibolla vaja hiljem ka korrigeerida. Graafikut saate katsetada Excelis.
Et kuna ööpäevas on 24 tundi, mis ei saa negatiivseks minna, panin ka programmiliselt piirangud. Samuti jätsin et päevas vähemalt 1h asi kütaks, et suvel saaks veeboileri selle ajaga kasvõi köetud siis kõige odavamal tunnil.
Testige ja vaadake kas tekkis sensor nimega “heatrequest” ja ta peab näitama ka mingeid numbreid.
Pumba taimer
Järgmine sensor mille teeme on binaarne, ehk tema väljund on 0 või 1. See on nüüd üks tähtsamaid osasid, mis siis valib välja eelmises punktis saadud tundude koguse hulgast need kõige magusamad (odavamad). Kui tund on odav, siis annab väärtuseks 1, kui kallis siis 0. Antud info järgi hakkame juhtima ka pumpa.
- binary_sensor:
- name: pumba taimer
unique_id: pumba taimer
state: >-
{% set l=state_attr('sensor.nordpool_mwh_ee_eur_3_10_02', 'raw_today')|sort(attribute='value') %}
{% set t = now() %}
{% for i in range(states('sensor.heatrequest')|int) %}
{% if (t >= l[i].start and t <= l[i].end) %}
{{ true }}
{% endif %}
{% endfor %}
Vaadake, et Nordpooli sensori nimi on sama mille te eelnevalt tekitasite. Peale seda testige kas sensor töötab. Antud sensor peaks tekkima binaarsensorite rubriiki
Odava hinna piir
See miinimumhind, millega taimer sisse lülitub oleks ilus ka teada saada. Selleks tegin järgmise sensori, mille nimeks odavhind. Hiljem saab selle ka graafikul ilusasti visualiseerida.
Nüüd on sensoritega kõik. Tekitame juurde ka ühe “lüliti”, mis hakkab soojuspumpa hiljem juhtima. Juhtimiseks kasutame Raspberry plaadil olevaid ühendusi (pin), mida siis tarkvaraliselt sisse ja välja lülitame, nagu tavalülitigi toimib. Hilisemas riistvara ühenduste peatükis selgitan lähemalt. Hetkel on vaja vaid teada et ühendame soojuspumba pinile nr 17.
Edasi tuleb teha restart (Configuration->Settings ja sealt Restart).
Tekkis juurde kaks lülitit (meelega jätsin teise reservi, et tulevikus midagi sinna ka ühendada)
Soojuspumba automaatjuhtimine
Nüüd kus kõik vajalikud komponendid on olemas, jääb vaid üle see süsteem automatiseerida.
Lisage järgmised read ning salvestage.
automation Soojuspumba juhtimine:
initial_state: 'on'
alias: Soojuspumba juhtimine
trigger:
- platform: state
entity_id: binary_sensor.pumba_taimer
to: 'on'
- platform: state
entity_id: binary_sensor.pumba_taimer
to: 'off'
action:
- service_template: 'switch.turn_{{trigger.to_state.state}}'
entity_id: switch.soojuspump
Siin sisuliselt automatiseeritakse lüliti switch.soojuspump juhtimine vastavalt trigerile, milleks on binary_sensor.pumba_taimer . Selliseid automatiseerimisi saab tegelikult teostada ka graafiliselt Configuration – Automation menüüs.
Täpsemalt automatiseerimise kohta saate lugeda siin.
Tehke veel üks restart.
Menüüsse Configuration->Automation & Scenes peab ilmuma nupp “Soojuspumba juhtimine”, mis sisselülitatud asendis käivitab automaatjuhtimise.
Palju õnne! Teil on nüüd laua peal juba töötav süsteem olemas!
Lisan siia pisikeselt kogu konfiguratsioonifaili sisu, et saaksite copy&pasteda.
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
lovelace:
# mode: yaml
resources:
- url: /local/apexcharts-card.js?v=1.10.0
type: module
# Text to speech
tts:
- platform: google_translate
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
template:
- sensor:
- name: keskminetemp
unique_id: keskminetemp
state: >-
{% set list=state_attr('weather.openweathermap', 'forecast') %}
{{ (list[0].temperature + list[4].temperature + list[8].temperature + list[12].temperature) / 4 }}
- sensor:
- name: heatrequest
unique_id: heatrequest
state: >-
{% set req_hours = (states('sensor.keskminetemp')|int - 6) * -0.5 + 6 %}
{% if (req_hours > 24) %}
req_hours=24
{% elif (req_hours < 0) %}
req_hours=0
{% endif %}
{{ req_hours|int }}
- binary_sensor:
- name: pumba taimer
unique_id: pumba taimer
state: >-
{% set l=state_attr('sensor.nordpool_mwh_ee_eur_3_10_02', 'raw_today')|sort(attribute='value') %}
{% set t = now() %}
{% for i in range(states('sensor.heatrequest')|int) %}
{% if (t >= l[i].start and t <= l[i].end) %}
{{ true }}
{% endif %}
{% endfor %}
- sensor:
- name: odavhind
unique_id: odavhind
state: >-
{% set l=state_attr('sensor.nordpool_mwh_ee_eur_3_10_02', 'raw_today')|sort(attribute='value') %}
{{ l[states('sensor.heatrequest')|int-1].value }}
switch:
- platform: rpi_gpio
# invert_logic: true
ports:
17: soojuspump
18: reserv
automation Soojuspumba juhtimine:
initial_state: 'on'
alias: Soojuspumba juhtimine
trigger:
- platform: state
entity_id: binary_sensor.pumba_taimer
to: 'on'
- platform: state
entity_id: binary_sensor.pumba_taimer
to: 'off'
action:
- service_template: 'switch.turn_{{trigger.to_state.state}}'
entity_id: switch.soojuspump
Graafikud ja visualiseerimine
Enne kui läheme juhtmeid ühendama, teeme veel mõned ilusad graafikud, mida saate hiljem mobiilist ja arvutist vaadata. Kogu jälgimise osa on siis juba eelnevalt vaadeldud Overview menüüs.
Graafikute saamiseks lisage eelmises peatükis kirjaldatud konfiguratsioonifaili ülaossa veel järgmine lõik:
Salvestage ning tehke restart. NB! sulgege ka browseri aken ja käivitage uuesti. Vastasel juhul need graafiku elemendid ei ilmu.
Minge uuesti menüüsse Overview, seal paremal üleval menüüst valige “Edit Dashboard”. Ma siinkohal jätan nüüd teile vavastamise rõõmu, et saaksite puhastada oma Dashboardi ebaolulisest ja teha uue kaardi, kus kõik antud rakenduse jaoks olevad elemendid kokku koondatud.
Mul endal tekkis midagi sellist:
Lisame ka ühe ilusa graafiku börsihindadega. Selleks valime Add Card ning otsime Apexchart-cardi, mille eelnevalt aktiveerisime.
type: custom:apexcharts-card
experimental:
color_threshold: true
graph_span: 24h
header:
title: Elektrihind täna
show: true
span:
start: day
apex_config:
dataLabels:
enabled: true
now:
show: true
label: Hetkel
series:
- entity: sensor.nordpool_mwh_ee_eur_3_10_02
name: Elektrihind täna
type: column
data_generator: |
return entity.attributes.raw_today.map((start, index) => {
const andmed = [new Date(start["start"]).getTime(), entity.attributes.raw_today[index]["value"]];
return andmed;
});
color_threshold:
- value: 0
color: green
opacity: 1
- value: 60
color: yellow
- value: 100
color: red
- entity: sensor.odavhind
name: Madal hind
unit: €
type: line
Tulemus võiks olla midagi taolist
Sinine joon näitab millise hinna tasemelt kütma hakatakse täna. Graafiku järgi tundub päris hea lõige. Endale lisasin veel ühe graafiku, kuhu panin järgmise koodi, mis teeb tänase ja homse hinna võrdluse:
type: custom:apexcharts-card
experimental:
color_threshold: true
graph_span: 24h
header:
title: Elektrihind homme vs täna
show: true
span:
start: day
offset: +1d
now:
show: true
label: Hetkel
series:
- entity: sensor.nordpool_mwh_ee_eur_3_10_02
name: Hind homme
type: column
data_generator: |
return entity.attributes.raw_tomorrow.map((start, index) => {
return [new Date(start["start"]).getTime(), entity.attributes.raw_tomorrow[index]["value"]];
});
- entity: sensor.nordpool_mwh_ee_eur_3_10_02
name: Hind täna
offset: '-1d'
type: column
data_generator: |
return entity.attributes.raw_today.map((start, index) => {
return [new Date(start["start"]).getTime(), entity.attributes.raw_today[index]["value"]];
});
Nüüd softi poolega on kõik!
Endale veel lisasin siia kaamerapildi ja veid muud pudi-padi.
WIFI ühendus
Et kogu süsteem mobiilsem oleks ning ei peaks olema võrgukaabliga ruuteri taga, oleks mõistlik kodusesse wifisse ühenduda. Wifi võrku ühendumiseks minge Configuration->Addons, Backup&Supervisior, valige ülevalt menüüst System ning lahtris IP Address vajutage Change.
Klikkige WLAN0 peale ning valige pildil olevad settingud ning otsige oma wifi võrk
Kui võrk leitud, sisestage kindlasti ka ligipääsu parool. Üldjuhul WPA-PSK on õige valik
Valige Reboot Host, mille peale taaskäivitatakse Pi. Ühendage lahti võrgukaabel ning vaadake, kas ta ilmub tagasi võrku 🙂
Juhtmete ühendamine
Juhtmete ühendamise jagan kahte etappi. Kontrolleri ja relee vahelised ühendused. ning Relee ja soojuspumba vahelised ühendused.
Raspberry Pi ühendamine releemooduliga
Kõgepealt siia üks pilt, kus on lahti seletatud Pi ühendused.
Eelnevalt oli ka juttu, kui seadistasime lülitit, siis programmis viitasime pordile “17”.
See tähendaski, et käsu rakendumisel antakse antud klemmile GND suhtes. 5V. Tehke ühendused selliselt:
Pi +5V ühendage relee Vcc klemmiga Pi GND ühendage relee GND klemmiga Pi GPIO17 ühendage relee IN klemmiga
Relee võite kahepoolse teibiga liimida näiteks Pi karbi külge.
Kui nüüd süsteem toimib, siis peab kuulma relee klõpsamist kui vajutada soojuspumba lülitit.
Kui soojuspump peaks tööle minema, lülituvad klemmid COM ja NO kokku. See annabki käsu soojuspumba käivitumiseks.
Relee ühendamine soojuspumbaga
Nüüd on kontrolleri pool kõik valmis. Jääb ühendada vaid soojuspumba klemmidele. See osa on muidugi huvitav kuna kõikidel soojuspumpadel see erinevalt lahendatud. Peata ülesse otsima manuali. Toon näitena kuidas enda Panasonic WH-SXF12D9E8 puhul asi käib.
Netist leidsin “Service manuali”. Sarnane asi peaks olema kõikidel pumpadel. Pildil on näha et klemmid 17 ja 18 on kokku sillatud. Ühendasin antud silla lahti ja panin asemele meie relee. Kui sild maas, soojuspump lülitub välja, kui kinni, soojuspump lülitub sisse. Enne ühenduste teostamist lülitage kindlasti oma soojuspump välja ning lülitage ka kilbist kaitse välja. Kõik mida teete on omal vastutusel!
Siin üks foto ka pumba sisemusest kuidas ühenduse teostasin. Punase juhtmega olnud silla ühendasin lahti ning selle asemele ühendasin releemooduli väljundi.
Edasi tuleb lihtsalt kõik kokku kruvida ning viisakaks muuta. Raspberry võib ka kusagile soojuspumba kesta sisse peita, kui sinna WiFi levib. Vaja vaid toidet USB-C kaabliga!
Kokkuvõte
Iseenesest polegi väga keerulime sellist juhtimist ise teostada. Peab veidikene olema elektrialaseid teadmisi. Kui ise ei saa hakkama, siis kindlasti leiate kellegi vastava eriala tuttava 🙂
Kuna see Home Automation on väga võimekas, siis jätkan enda kodu automatiseerimist. Kirjutan ka tulevikus, mida olen korda saatnud. Juba olen tellinud erinevaid huvitavaid vidinaid, mida ühendada HA-ga ning millega saab väga odavalt väga huvitavaid asju korda saata.