<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>MarkoKaartinen.net: kaikki</title>
    <link>https://markokaartinen.net/</link>
    <description>Blogin artikkelit ja reseptit</description>
    <generator>Hugo</generator>
    <language>fi</language>
    <lastBuildDate>Wed, 11 Nov 2026 17:05:00 +0200</lastBuildDate>
    <atom:link href="https://markokaartinen.net/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Sivusto uusiksi, tällä kertaa Hugolla</title>
      <link>https://markokaartinen.net/2026/sivusto-uusiksi-talla-kertaa-hugolla</link>
      <pubDate>Wed, 11 Nov 2026 17:05:00 +0200</pubDate>
      <guid>https://markokaartinen.net/2026/sivusto-uusiksi-talla-kertaa-hugolla</guid>
      <description>Blogi sai taas uuden kodin: WordPressistä ja Laravelista siirryttiin staattiseen Hugoon ja ulkoasu uusittiin Catppuccin-väreillä. Käyn läpi miten sivusto muuttui, mitä nörttijuttuja siihen tuli ja mikä on tekoälyn rooli.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Tervetuloa uudistettuun MarkoKaartinen.net-blogiin! Tällä kertaa mennään vielä enemmän staattiseen suuntaan, tosin pienellä twistillä.&lt;/p&gt;
&lt;p&gt;Edellinen isompi uudistus oli vuonna &lt;a href=&#34;https://markokaartinen.net/2024/tervetuloa-uudistettuun-blogiin&#34;&gt;2024&lt;/a&gt;, kun vaihdoin WordPressin Laraveliin.&lt;/p&gt;
&lt;h2 id=&#34;historian-havinaa&#34;&gt;Historian havinaa
&lt;/h2&gt;
&lt;p&gt;Tätä versiota tehdessä piti ihan tarkistaa taas, mistä kaikki alkoi. Domainin sain 2005 alkuun ilmaiseksi pariksi vuodeksi, kun olin työharjoittelussa eräässä webbilafkassa. Siellä aloittelin myös PHP:n koodailua ja tein omat sivut harjoituksena muiden töiden ohella. Sivusto on siis yli 20 vuotta vanha.&lt;/p&gt;
&lt;p&gt;Vuodesta 2007 lähtien täällä on ollut WordPress ja aina vuoteen 2024 asti sivusto pyöri pitkälti sen päällä. WordPress tuli valittua jo silloin, koska se oli tehty tutulla PHP:llä, siihen sai tehtyä omia teemoja ja hallinta oli helppoa.&lt;/p&gt;
&lt;p&gt;Sitten tuli Laravel-versio, jossa muunsin WP-artikkelit markdown-muotoon tai oikeastaan markdown tiedostoiksi, jossa oli HTML koodia. Uudet artikkelit oli sitten markdownia. Laravel hoiti sisällön näytön, ja sisältö oli pääosin markdownia SQLite-kannassa. Näin kirjoittaminen siirtyi selaimen hallintapaneelista omaan markdown-editoriin.&lt;/p&gt;
&lt;h2 id=&#34;hugo-staattiset-sivut&#34;&gt;Hugo? Staattiset sivut?
&lt;/h2&gt;
&lt;p&gt;Sitten tuli Hugo ja staattiset sivut. &lt;a href=&#34;https://gohugo.io&#34;&gt;Hugo&lt;/a&gt; on Go-kielellä tehty staattisten sivujen generaattori. Se ottaa sisällön markdown-tiedostoina, ajaa ne teemojen pohjien läpi ja tuottaa lopputulokseksi valmiita HTML-tiedostoja. Tietokantaa tai PHP:tä ei tarvita, vaan palvelin tarjoaa pelkkiä tiedostoja. Näin oli muuten ennen vanhaan muutenkin.&lt;/p&gt;
&lt;p&gt;Sisältö voi olla järjestetty monella tavalla: yksittäisinä markdown-tiedostoina tai kansioina, joissa on tiedoston lisäksi kuvat. Tiedoston alussa on ns. front matter eli artikkelin tiedot, kuten otsikko ja päivämäärä. Teema päättää, miltä sivut näyttävät, ja Hugo yhdistää sisällön ja teeman. Lopputulos tulee &lt;code&gt;public&lt;/code&gt;-kansioon, jonka voi viedä palvelimelle sellaisenaan. Hugo hoitaa myös kuvien optimoinnit, syötteet ja paljon muuta.&lt;/p&gt;
&lt;p&gt;Hugon etuna on nopeus: koko sivusto rakentuu käytännössä hetkessä. Sisältö on edelleen markdownia, joten siirtyminen Laravelista oli helpohko. Etuna on myös se, että sivusto pysyy gitissä ja nyt vielä paremmin sillä kaikki kuvatkin on siellä.&lt;/p&gt;
&lt;p&gt;Haittana on se, että staattinen sivu pitää ensin rakentaa, ennen kuin se on palvelimella ja näkyy muille. Tarvitaan siis jonkinlainen build-prosessi: joko manuaalinen, jossa rakennan sivun itse ja siirrän tiedostot palvelimelle esimerkiksi FTP:llä. Tai automaattinen, jossa rakennus ja siirto hoituvat esimerkiksi GitHubin kautta.&lt;/p&gt;
&lt;p&gt;Toinen haittapuoli on se, että dynaamiset jutut, kuten vieraskirja, eivät onnistu ihan helposti. Staattinen sivu kun ei osaa tallentaa mitään, joten tarvitaan jonkinlainen välipalikka, esimerkiksi API, jolta sivu hakee ja jolle se lähettää tietoa. Tästä lisää &lt;a href=&#34;#kommentointi&#34;&gt;kommentointi&lt;/a&gt;-osiossa.&lt;/p&gt;
&lt;h2 id=&#34;ulkoasu&#34;&gt;Ulkoasu
&lt;/h2&gt;
&lt;p&gt;Halusin tästäkin ulkoasusta suht simppelin ja koodarimaisen. Tähän halusin kuitenkin tuoda jotain hauskoja juttuja ulkoasuun ja tuoda hieman nörttijuttuja tänne!&lt;/p&gt;
&lt;p&gt;Vaihdoin editorissa ja terminaalissa &lt;a href=&#34;https://www.nordtheme.com/&#34;&gt;Nord&lt;/a&gt; teeman värit &lt;a href=&#34;https://catppuccin.com/&#34;&gt;Catppuccin Mocha&lt;/a&gt; väreihin. Silloin tuli pieni kutina, että pitäisi vaihtaa myös bloginkin teema vastaamaan. No näinhän siinä sitten kävi, mutta rempasta tulikin vähän isompi, kuin pelkkä värien vaihto...&lt;/p&gt;
&lt;p&gt;Värit ovat siis Catppuccinin: tumma on Mocha ja vaalea Latte. Sivusto valitsee niistä selaimen asetuksen mukaan, mutta teemaa voi vaihtaa myös yläpalkin napista tai näppäimellä &lt;kbd class=&#34;kbd&#34;&gt;t&lt;/kbd&gt;.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;ulkoasu-split.png&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;1424×924&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2026/sivusto-uusiksi-talla-kertaa-hugolla/ulkoasu-split_hu_79d49789069046d4.webp&#34; alt=&#34;Sama artikkeli tummalla ja vaalealla teemalla&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1424&#34; height=&#34;924&#34; data-name=&#34;ulkoasu-split.png&#34; data-dim=&#34;1424×924&#34;&gt;&lt;figcaption&gt;Vasemmalla tumma Mocha, oikealla vaalea Latte&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Fontteja on kaksi. Leipiksessä on &lt;a href=&#34;https://www.brailleinstitute.org/freefont/&#34;&gt;Atkinson Hyperlegible Next&lt;/a&gt;, joka on tehty nimenomaan helposti luettavaksi.&lt;/p&gt;
&lt;p&gt;Otsikoissa, koodissa ja pienemmissä jutuissa on &lt;a href=&#34;https://www.jetbrains.com/lp/mono/&#34;&gt;JetBrains Mono&lt;/a&gt;. Se on ollut käytössä omassa editorissani jo pidempään ja siksi se oli helppo valinta myös tänne. Taisipa se olla entisessä versiossakin fonttina.&lt;/p&gt;
&lt;p&gt;Atkinsoniin törmäsin itse asiassa vasta, kun &lt;a href=&#34;https://www.rollemaa.fi/rollemaan-uusi-versio-the-purple-people-eater/&#34;&gt;Rolle&lt;/a&gt; uudisti ulkoasua. Tykästyin siihen heti. Sori Rolle, että nappasin saman fontin käyttöön.&lt;/p&gt;
&lt;p&gt;Nörttimäisyys näkyy pienissä jutuissa. Logon vieressä on &lt;code&gt;~/markokaartinen.net&lt;/code&gt;, valikon linkit ovat &lt;code&gt;/blogi&lt;/code&gt;-tyylisiä polkuja ja otsikoiden alussa on markdownin &lt;code&gt;#&lt;/code&gt;-merkit. Ingressin edessä on &lt;code&gt;//&lt;/code&gt;, kuten koodin kommentissa. Näistä lisää alempana &lt;a href=&#34;#n%C3%B6rtteily%C3%A4&#34;&gt;Nörtteilyä&lt;/a&gt;-osiossa.&lt;/p&gt;
&lt;p&gt;Teema on tehty &lt;a href=&#34;https://tailwindcss.com/&#34;&gt;Tailwindiä&lt;/a&gt; apuna käyttäen, ja se on nimeltään hugoccino (Hugo + Catppuccin). Sen kaikki värit tulevat suoraan Catppuccinin paletista.&lt;/p&gt;
&lt;h2 id=&#34;sisällöstä&#34;&gt;Sisällöstä
&lt;/h2&gt;
&lt;p&gt;Sisältö siirtyi tänne ihan kivasti, kun se oli jo valmiiksi markdownia. Artikkeleita on yhteensä 793, ja mukana on myös reseptit. Kuvat ovat artikkelien omissa kansioissa, joten kaikki yhden artikkelin tavara on samassa paikassa. Tässä oli iso apu tekoälystä, sillä se kirjoitti skriptin, joka muutti vanhat WP-artikkelit kokonaan markdowniksi ja siirsi kuvat artikkelien kansioihin.&lt;/p&gt;
&lt;p&gt;Osoitteet halusin pitää ennallaan. Artikkelit löytyvät edelleen osoitteesta &lt;code&gt;/{vuosi}/{slug}&lt;/code&gt;. Hugo tuki tätä suoraan, onneksi. Historiasta kertoo myös se, että on vanhoja &lt;code&gt;/{slug}&lt;/code&gt; alkuisia aliaksia front matterissa. Ne ovat jäänteitä WordPress-ajoilta: kun siirryin WordPressistä Laraveliin, muutin polkuja ja pidin vanhoista ohjaukset, ja nyt ne siirtyivät mukana tähän versioon. Myös vanha &lt;code&gt;/feed&lt;/code&gt; toimii, joten RSS-lukijoiden ei pitäisi huomata mitään. Hugon syötteen osoitteet tuli myös käyttöön ja ne on listattu &lt;a href=&#34;https://markokaartinen.net/syotteet&#34;&gt;/syotteet&lt;/a&gt;-sivulla.&lt;/p&gt;
&lt;p&gt;Kategoriat, avainsanat ja sarjat ovat samat kuin ennen sekä reseptit ovat omassa osiossaan (näitä pitäisikin lisätä). Vanhoissa artikkeleissa on nykyään huomautus siitä, että teksti on kirjoitettu aikoja sitten ja linkit tai tekniset jutut voivat olla vanhentuneita.&lt;/p&gt;
&lt;p&gt;Aiemman version perinteiset sivut siirtyivät mukaan sellaisenaan, mutta päivittelin hieman niiden sisältöä samalla.&lt;/p&gt;
&lt;h2 id=&#34;nörtteilyä&#34;&gt;Nörtteilyä
&lt;/h2&gt;
&lt;p&gt;Tässä kohtaa pääsi nörttipuoli vähän valloilleen. Etusivulla on jo valmiiksi muutama komento: &lt;code&gt;cat tervetuloa.md&lt;/code&gt; kertoo mistä tässä on kyse, ja &lt;code&gt;git log --graph&lt;/code&gt; näyttää uusimmat artikkelit ikään kuin commit-historiana.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;nortteilya-etusivu.png&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;1280×800&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2026/sivusto-uusiksi-talla-kertaa-hugolla/nortteilya-etusivu_hu_5bcbe8522e3b9d66.webp&#34; alt=&#34;Etusivu&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1280&#34; height=&#34;800&#34; data-name=&#34;nortteilya-etusivu.png&#34; data-dim=&#34;1280×800&#34;&gt;&lt;figcaption&gt;Etusivu: tervetulotekstin ja uusimpien artikkelien edessä on komennot&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Tavallisen näppäimistönavigoinnin lisäksi sivustolla on kasa omia oikoteitä, joita löytyy vähän sieltä sun täältä ja &lt;kbd class=&#34;kbd&#34;&gt;?&lt;/kbd&gt; napilla voi löytyä jotain siitä. Haku ja komennot ovat samassa ikkunassa. Kirjoittamalla voi hakea artikkeleita, ja &lt;code&gt;&amp;gt;&lt;/code&gt;-merkillä pääsee ajamaan komentoja.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;nortteilya-haku.png&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;1280×800&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2026/sivusto-uusiksi-talla-kertaa-hugolla/nortteilya-haku_hu_bdca4cc3fcd0f6d6.webp&#34; alt=&#34;Haku&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1280&#34; height=&#34;800&#34; data-name=&#34;nortteilya-haku.png&#34; data-dim=&#34;1280×800&#34;&gt;&lt;figcaption&gt;Haku ja komennot avautuvat näppäimellä /&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Pienempiä juttuja on sitten siellä täällä. Artikkelin lopussa on &lt;code&gt;git blame&lt;/code&gt; -tyylinen rivi, jossa näkyy kuka kirjoitti ja milloin. Alareunassa on joko edistymispalkki tai nappi riippuen oletko tietokoneella vai mobiililaitteella.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://markokaartinen.net/nyt&#34;&gt;Nyt&lt;/a&gt;-sivulla otsikot ovat terminaalikomentoja ja tehtävälistat ovat oikeita listoja, joissa on ruksit.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;nortteilya-nyt.png&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;1280×760&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2026/sivusto-uusiksi-talla-kertaa-hugolla/nortteilya-nyt_hu_d664485d8a663f3a.webp&#34; alt=&#34;Nyt-sivu&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1280&#34; height=&#34;760&#34; data-name=&#34;nortteilya-nyt.png&#34; data-dim=&#34;1280×760&#34;&gt;&lt;figcaption&gt;Nyt-sivu: otsikot komentoina ja tehtävälistat&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Myös 404-sivu on saanut terminaali vibaa. Siellä ei oikeasti voi kirjoittaa komentoja, mutta sivu ehdottaa osoitteen perusteella samankaltaisia artikkeleita.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;nortteilya-404.png&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;1280×760&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2026/sivusto-uusiksi-talla-kertaa-hugolla/nortteilya-404_hu_74fbf4174fa841ae.webp&#34; alt=&#34;404-sivu&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1280&#34; height=&#34;760&#34; data-name=&#34;nortteilya-404.png&#34; data-dim=&#34;1280×760&#34;&gt;&lt;figcaption&gt;404-sivu ehdottaa osoitteen perusteella artikkeleita&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&#34;kommentointi&#34;&gt;Kommentointi
&lt;/h2&gt;
&lt;p&gt;Edellisessä versiossa kommentin pystyi jättämään sivulle lomakkeella, ja se tallentui tietokantaan, sen lisäksi oli kommentointi Mastodonin kautta. Nyt tähän uuteen versioon toin mukaan vain Mastodon-osan, joten nyt Mastodon viestiin, kun kommentoidaan tulee ne tänne näkyviin.&lt;/p&gt;
&lt;p&gt;Kun julkaisen artikkelin, GitHubin deploy tekee buildin ja julkaisee samalla postauksen Mastodoniin, jossa on linkki artikkeliin. Postauksen vastaukset näkyvät artikkelin alla. Tietokannan kautta tulleet vanhat kommentit ovat edelleen mukana, ja ne näkyvät staattisina artikkeleissa, joissa niitä oli.&lt;/p&gt;
&lt;p&gt;Tämän lisäksi on &lt;a href=&#34;https://markokaartinen.net/vieraskirja&#34;&gt;vieraskirja&lt;/a&gt;, jonne voi jättää viestin ilman Mastodon-tiliä. Se on se kohta, jossa tarvittiin välipalikka: viestit tallentuvat erilliseen API:in (Laravel, Horizon ja Redis), josta sivu hakee ne.&lt;/p&gt;
&lt;p&gt;Viestit käyvät läpi moderoinnin, ja mukana on piilotettu kenttä sekä pieni odotusaika lomakkeella roskapostin vähentämiseksi.&lt;/p&gt;
&lt;p&gt;Viesteissä saa käyttää Markdownia: lihavointia, kursiivia, koodia, linkkejä, listoja, lainauksia ja jopa koodilohkoja väritettynä. Kuvat ja HTML näytetään tekstinä.&lt;/p&gt;
&lt;p&gt;Samasta API:sta tulee myös alatunnisteen kävijälaskuri.&lt;/p&gt;
&lt;h2 id=&#34;tekoälyn-rooli&#34;&gt;Tekoälyn rooli
&lt;/h2&gt;
&lt;p&gt;Mainitsinkin tuolla aiemmin, että tekoäly oli apuna artikkelien siirrossa ja tämä pitää paikkansa. Se teki koodit määrittelyjen mukaan ja sen avulla vanhat WP:stä tuodut, HTML:ää sisältävät markdown-tiedostot saatiin oikeaksi markdowniksi ja kuvat omiin kansioihinsa. Tämänkin olisin voinut toki itse rustailla, mutta epäilen, että olisi vaatinut aika paljon enemmän säätöä mitä tässä nyt oli.&lt;/p&gt;
&lt;p&gt;Hugo ei ole onneksi ihan tuntematon tapaus itselle. &lt;a href=&#34;https://bbqblogi.fi/&#34;&gt;BBQ Blogi&lt;/a&gt; ja mun &lt;a href=&#34;https://markok.dev/&#34;&gt;enkku blogi&lt;/a&gt; on jo niiden päällä. Silläpä päädyinkin tällä kantilta tutumpaan, mutta kokonaan oman teeman teko oli sitten uutta. Siinä puolessa oli AI:sta taas iso apu, se kun näkyi osaavan.&lt;/p&gt;
&lt;p&gt;Halusin meinaa saada noita ominaisuuksia mitä vanhoilla sivuilla oli kuten etusivulla (ja alareunassa) oleva kävijälaskuri, &lt;a href=&#34;https://markokaartinen.net/vieraskirja&#34;&gt;vieraskirja&lt;/a&gt; ja &lt;a href=&#34;https://markokaartinen.net/kahvilaskuri&#34;&gt;kahvilaskuri&lt;/a&gt;. Nehän on sitten javascriptin kautta ja vieraskirjaa varten onkin sitten minulla erillinen Laravel pohjainen API, joka hoitaa tallennukset. AI teki tähän tätä Hugon puolta eli noita javascripteja millä haetaan dataa esim APIsta.&lt;/p&gt;
&lt;p&gt;AI auttoi teeman kanssa myös ulkoasun säädöissä, kun itsellä meinasi olla ongelmaa joillain osin. Esimerkiksi AI teki tuon lukemisen edistymislaskurin mikä näkyy tuolla, kun sivua selaa sekä näitä nörtähtäviä juttuja ideoitiin AI kanssa yhdessä.&lt;/p&gt;
&lt;p&gt;Osa koodista on täysin AI:n tekemää ja osassa on sit härvätty itsekin. AI:n tekemä koodi on kuitenkin minun lukemaa ja ymmärtämää. Opin tästä kanssa ihan jonkin verran, joten koen sen plussana jo heti.&lt;/p&gt;
&lt;div class=&#34;kommentti&#34;&gt;&lt;p&gt;Voi olla, että tuon joitain AI:n tekemiä juttua tänne myöhemmin.&lt;/p&gt;
&lt;p&gt;Ehkä esim. artikkelin tiivistelmä tai jotain hauskempaa.&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Samoin julkaisu skriptissä ja varsinkin Mastodon osuudessa AI auttoi, kun palloteltiin tehdäänkö tämä tuon API kautta vai saadaanko GitHub deployn kautta tämä toimimaan. Päädyttiin GitHubiin, koska API ei tiedä artikkeleista mitään ja Mastodon-postauksen tunnus pitää saada artikkelin tietoihin.&lt;/p&gt;
&lt;p&gt;Commit viestit ja dokumentointi... Tämä on osa mihin AI on tuonut helpotusta isosti. Dokumentointi on myös se osa mikä tulee tehtyä ns. pakollisena pahana ja commitit tulee usein oltua iso könttä. Nyt AI voi tutkia sovellusta ja dokumentoida sitä ja itse tarkistaa työn jäljen. Samoin commiteissa AI voi jakaa ison kasan muutoksia loogisiin osiin ja näin sekin toimii pienenä helpotuksena jos joskus etsii syyllistä (itseä).&lt;/p&gt;
&lt;p&gt;Olen AI-käytöstä laittanut eri &lt;a href=&#34;https://markokaartinen.net/ai&#34;&gt;sivulle&lt;/a&gt; ja kirjoittanut vanhan &lt;a href=&#34;https://markokaartinen.net/2026/miten-kaytan-tekoalya&#34;&gt;artikkelin&lt;/a&gt;. Tästä vanhasta artikkelista tulen kirjoittamaan päivitetyn version sillä homma on muuttunut. Esimerkiksi tämän artikkelin teksteihin olen pyytänyt apua AI:lta ja on palloteltu myös hieman sisältöjä ja ideoita niihin liittyen - AI:n kanssa on siitä kiva pallotella, että se antaa (minun mielestä) hyviä ehdotuksia ja asioita mitä en itse ajattelisi.&lt;/p&gt;
&lt;h2 id=&#34;loppu-lätinöitä&#34;&gt;Loppu lätinöitä
&lt;/h2&gt;
&lt;p&gt;No tämmöinen tästä nyt tällä kertaa tuli. Tämä projekti opetti kyllä vanhaa koodaria ihan jonkin verran. Niin Hugosta, JavaScriptistä, CSS:stä, kuin tekoälyn käytöstä tämmöisessä projektissa.&lt;/p&gt;
&lt;p&gt;Koen nyt myös, että voisin ottaa projektiksi tehdä omaa ulkoasua myös ihan noille muille Hugo projekteilleni. Näin voisi saada nekin hieman freesausta!&lt;/p&gt;
&lt;p&gt;Mun blogi on aina ollut semmoinen, että se elää ja kehittyy. Siksi se muuttui WordPressistä Laraveliin ja aikoinaan myös sen ulkoasu vaihtui silloin, kun huvitti - oli valmis teemaa ja oma tekemää. Lisäosia pyöri vaikka minkälaisia ja uusia sekä vanhoja juttuja koitettiin.&lt;/p&gt;
&lt;p&gt;Nyt huvitti lähteä tekemään tämmöistä. En muuten pidä sitäkään ajatusta mahdottomana, että tämä sivusto menisi itsehostaukseen myös joskus. Eli tämä pyörisi omalla koneellani jossain, jos Raspberry Pi ei maksaisi niin pirusti niin pistäisin siihen kokeeksi pyörimään.&lt;/p&gt;
&lt;p&gt;Täällä pitää vielä rempata kategorioita uuteen uskoon ja jotenkin hieman järkeistää sitä puolta. En vielä tiedä miten, mutta se selvinnee. Bugeja kanssa löytynee ja niistä voi huudella &lt;a href=&#34;https://kaartinen.social/@marko&#34;&gt;Mastodonissa&lt;/a&gt; tai &lt;a href=&#34;https://github.com/MarkoKaartinen/MarkoKaartinen.net&#34;&gt;GitHubissa&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;alert alert-tip&#34; role=&#34;note&#34;&gt;
  &lt;p class=&#34;alert-title&#34;&gt;Mites ruudun toisella puolen?&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Tumma&lt;/strong&gt; vai &lt;strong&gt;vaalea&lt;/strong&gt; teema?&lt;/p&gt;
&lt;p&gt;Mitenkäs tekoälyn käyttö, käytätkö?&lt;/p&gt;
&lt;p&gt;Entäs mitä tänne blogiin voisi tehdä?&lt;/p&gt;
&lt;/div&gt;</content:encoded>
    </item>
    <item>
      <title>Miten löytää sopiva Linux-jakelu</title>
      <link>https://markokaartinen.net/2026/miten-loytaa-sopiva-linux-jakelu</link>
      <pubDate>Tue, 27 Oct 2026 08:22:00 +0200</pubDate>
      <guid>https://markokaartinen.net/2026/miten-loytaa-sopiva-linux-jakelu</guid>
      <description>Miten löytää itselle sopiva Linux-jakelu? Vinkkejä distrojen vertailuun ja kokeiluun sekä omia kokemuksia CachyOS:stä ja Linuxin käytöstä.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Nyt, kun on Linux pinnalla ja siitä on muutenkin kiva rustailla niin annan pari vinkkiä siihen miten löydät sen sopivan jakelun (distron).&lt;/p&gt;
&lt;p&gt;Koitan tässä siis vinkata erilaisia keinoja löytää se oma jakelu mikä voisi korvata sitten Windowsin. Kerron toki mitä itse käytän tällä hetkellä.&lt;/p&gt;
&lt;h2 id=&#34;mikä-ihmeen-linux-jakeludistro&#34;&gt;Mikä ihmeen Linux-jakelu/distro?
&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://fi.wikipedia.org/wiki/Linux-jakelu&#34;&gt;Wikipedia&lt;/a&gt; kertoo aika hyvin mitä tarkoittaa:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Linux-jakelu tai GNU/Linux-jakelu (distribuutio tai distro) tarkoittaa Linux-käyttöjärjestelmää, jonka muodostaa kokoelma ohjelmia, ohjelmistoja, kirjastoja sekä Linux-ydin.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Eli Linux-jakelu on jonkun tekemä käyttöjärjestelmä, joka sisältää ns. koko paketin. Sisältö vaihtelee eri jakeluiden välillä ja se selittää taas miksi niitä on niin paljon.&lt;/p&gt;
&lt;p&gt;Esimerkiksi suositusta Ubuntusta on eri versioitakin itsessään. Perus Ubuntu tulee Gnome-työpöytäympäristöllä, kun taas Kubuntu sisältää KDE:n ja Ubuntu Cinnamon taas Cinnamonin. Ubuntu taas itsessään pohjaa Debianiin.&lt;/p&gt;
&lt;p&gt;Arch on taas suht tee se itse valinta, kun taas CachyOS on Arch pohjainen, mutta asennuksessa saat valita esim. työpöytäympäristön ja se tarjoaa graafisen asennuksen live usbin kautta.&lt;/p&gt;
&lt;p&gt;Sinäkin voisit tehdä oman Linux distron, mutta se vaatisi jo hieman harrastuneisuutta ja puuhaa. Mahdollista se kuitenkin on.&lt;/p&gt;
&lt;p&gt;Suositut Linux-jakelut vähän vaihtelee aina mikä milloinkin trendaa. Ns. ennen vanhaan Ubuntu oli kovassa nosteessa ja se onkin ottanut vakiintunen aseman distrojen joukossa. Nyt kuitenkin taitaa kirjoitushetkellä olla nosteessa Omarchy, CachyOS, Linux Mint, MX Linux ja muita.&lt;/p&gt;
&lt;h2 id=&#34;mistä-niitä-distroja-oikein-löytää&#34;&gt;Mistä niitä distroja oikein löytää?
&lt;/h2&gt;
&lt;p&gt;Lyhyt vastaus: &lt;strong&gt;Internetistä&lt;/strong&gt; &lt;em&gt;(eh, eh, olipas hyvä vitsi taas)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Onneksi on jokunen resurssi mitä voi käyttää apuna. &lt;a href=&#34;https://distrowatch.com/&#34;&gt;DistroWatch&lt;/a&gt; on 2000-luvun alussa perustettu verkkosivu, joka nimenä mukaan seuraa eri distroja. Sieltä löydät melkeinpä distron, kuin distron ja siellä on sitten arvosteluitakin niistä.&lt;/p&gt;
&lt;p&gt;DistroWatchissa on myös etusivulla mielenkiintoinen suosiolista ja kirjoitushetkellä 6kk aikana suosion kärjessä on CachyOS, Mint, MX Linux, Debian ja Fedora. Nämä ovat siis DistroWatchin omien metriikoiden tuomia suosioita, ei varsinaisia käyttäjämääriä.&lt;/p&gt;
&lt;p&gt;Oikeastaan tämä työkalu sai innoituksen tähän blogiin. Löysin nimittäin &lt;a href=&#34;https://distrochooser.de/fi&#34;&gt;Distrochooser&lt;/a&gt; sivuston, jossa vastaamalla kysymyksiin saat suosituksia eri distroista. Tämän jälkeen sinulla onkin jokunen vaihtoehto jo käsissäsi mitä lähteä tutkimaan esim. distron kotisivuilta tai DistroWatchista.&lt;/p&gt;
&lt;p&gt;Kannattaa myös miettiä, mihin käyttöön Linux on tulossa. Onko tarkoitus pelata, tehdä töitä vai ihan vain selailla nettiä? Myös oman koneen yhteensopivuus ja työpöytäympäristö kannattaa huomioida. Haluatko mahdollisimman helpon ja valmiin paketin vai tykkäätkö enemmän säätää ja muokata kaiken mieleiseksesi?&lt;/p&gt;
&lt;p&gt;Voit kysyä myös mielipidettä somesta. Varmasti tulee vastauksia ja suosituksia. Toki jokainen suosittelee mikä itsellä on toiminut tai on käytössä. Eli kannattaa siinäkin hieman tehdä itsenäisesti tutkimusta minkä valitsee.&lt;/p&gt;
&lt;h2 id=&#34;kokeile-ensin&#34;&gt;Kokeile ensin
&lt;/h2&gt;
&lt;p&gt;Tiesithän, että voit kokeilla useaa distroa ennen, kuin asennat? Monessa distrossa Linuxin asennus asennetaan USB tikulle (ennen DVD-levy) ja sillä USB:llä on myös live ympäristö, joka käynnistetään tikulta (kaikissa ei toki ole live ympäristöä). Monessa asennuskin tapahtuu tuon live ympäristön kautta sekä on noita asennuksia tullut korjattuakin tuommoisen liven kautta.&lt;/p&gt;
&lt;p&gt;Live USB:ltä boottaminen ei siis vielä tarkoita, että olisit asentanut mitään ja voit vielä muuttaa mielen ja vaihtaa toiseen distroon.&lt;/p&gt;
&lt;p&gt;Jos et halua nähdä tuotakaan vaivaa niin on ihan mielenkiintoinen sivusto nimeltä &lt;a href=&#34;https://distrosea.com/&#34;&gt;DistroSea&lt;/a&gt;, jossa voit kokeilla eri distroja ihan selaimella. Tuolla on ihan kiitettävä määrä vaihtoehtoja ja pääseekin hieman koklaamaan.&lt;/p&gt;
&lt;h2 id=&#34;mitä-minä-käytän-tällä-hetkellä&#34;&gt;Mitä minä käytän tällä hetkellä
&lt;/h2&gt;
&lt;p&gt;Olen kirjoitellut täällä &lt;a href=&#34;https://markokaartinen.net/sarja/windows-ja-linux-pelikoneessa&#34;&gt;blogissa&lt;/a&gt; ja hölöttänyt &lt;a href=&#34;https://kaartinen.social/@marko&#34;&gt;Mastodonissa&lt;/a&gt; tästä aiheesta ennenkin. Käytössä on vieläkin &lt;a href=&#34;https://cachyos.org/&#34;&gt;CachyOS&lt;/a&gt;. Minulla kävi pikaisesti &lt;a href=&#34;https://omarchy.org/&#34;&gt;Omarchy&lt;/a&gt;, mutta se jäi pikaiseksi kokeiluksi. Sen jälkeen laitoin taas CachyOS tulille ja tällä kertaa Hyprlandin kaveriksi &lt;a href=&#34;https://duxlabs.dev/&#34;&gt;Dux Shellin&lt;/a&gt; (ent. DankMaterialShell).&lt;/p&gt;
&lt;p&gt;Tuo kombo mulla on nyt ollut taas tovin ja ei voi moittia. Rinnalla on vieläkin Windows sillä ikävä kyllä ihan kaikki pelit ei toimi vielä Linuxilla. Nyt ei ole tosin hetkeen tarttenut Windowsin puolella käydä sillä en pelaa mitään semmoista peliä aktiivisesti nyt. Välistä myös pitää käydä testaamassa jotain Windowsin puolella, joten silläkin se on hyvä siellä olla.&lt;/p&gt;
&lt;p&gt;Jos nyt mietit dualboottia Windows + Linux niin itse suosittelen, että on silloin molemmille omat SSD levyt. Näin päästään helpommalla, kun on selkeät &amp;quot;rajat&amp;quot; ja levyt. Voi toki samalle levylle asentaa molemmat, mutta tuo on hitusen parempi minun mielestä, että on eriytettynä.&lt;/p&gt;
&lt;h2 id=&#34;loppulätinät&#34;&gt;Loppulätinät
&lt;/h2&gt;
&lt;p&gt;Windowsin paskeentumisen myötä (mainokset yms. diipadaapa) Linux on noussut yhtä varteenotettavammaksi vaihtoehdoksi monelle. Iso, siis tosi iso määrä pelejä toimii suoraan Linuxilla - sen kuin Steamissa painat play. Toki muidenkin launcherien pelejä saa toimimaan, mutta Steam on tällä hetkellä ehkä se helpoin (saa korjata, jos olen väärässä).&lt;/p&gt;
&lt;p&gt;Työkoneena minulla on MacBook, palvelimina on Ubuntu palvelimia, kotona on Windows+Linux dualboot - voisi siis sanoa, että olen tässä suhteessa &amp;quot;sekakäyttäjä&amp;quot;.&lt;/p&gt;
&lt;p&gt;Kannattaa siis rohkeasti kokeilla eri jakeluita eikä jäädä liikaa miettimään sitä täydellistä vaihtoehtoa. Jos ensimmäinen distro ei tunnu omalta, niin ei muuta kuin seuraavaa kokeilemaan. Ei sen ensimmäisen tarvitse olla se viimeinen (distro-hopping). Sekä Linuxia saat säätää vapaasti omanlaiseksi.&lt;/p&gt;
&lt;div class=&#34;alert alert-tip&#34; role=&#34;note&#34;&gt;
  &lt;p class=&#34;alert-title&#34;&gt;Kerro omasi&lt;/p&gt;
  &lt;p&gt;Jaa omat vinkkisi Linux-jakelun löytämiseen alla tai kerro mitä Linuxia sinä käytät/suosittelet!?&lt;/p&gt;
&lt;/div&gt;</content:encoded>
    </item>
    <item>
      <title>dotfiles - miksi en tehnyt tätä jo aiemmin?</title>
      <link>https://markokaartinen.net/2026/dotfiles-miksi-en-tehnyt-tata-jo-aiemmin</link>
      <pubDate>Mon, 19 Oct 2026 13:03:00 +0300</pubDate>
      <guid>https://markokaartinen.net/2026/dotfiles-miksi-en-tehnyt-tata-jo-aiemmin</guid>
      <description>Tämä menee tosiaan sarjaan miksi ei tullut tehtyä jo aiemmin tätä urakkaa. Nimittäin ottaa ylös omia dotfiles määreitä ja pistää ne gittiin, josta ne saa helposti omille koneille.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Tämä menee tosiaan sarjaan miksi ei tullut tehtyä jo aiemmin tätä urakkaa. Nimittäin ottaa ylös omia dotfiles määreitä ja pistää ne gittiin, josta ne saa helposti omille koneille.&lt;/p&gt;
&lt;p&gt;Tämä nykyinen MacBook Pro on ollut minulla käytössä about 2021 asti. Tämä on MacBook Pro 14″ vm. 2021 ja tässä on M1 Pro prosessori ja 16 Gt muistia ja 500 gigaa levytilaa. Eli suht perusmalli tuohon aikaan. Tämä pelittää vielä ja käytän tätä niin kauan, kuin se kestää.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Olisi&lt;/strong&gt; tietysti kiva joku tuoreempi kone ja enemmän tehoa sekä levytilaa, mutta tällä pärjää vielä hyvin. Sekä hinnat ovat mitä ovat...&lt;/p&gt;
&lt;h2 id=&#34;mikä-ihmeen-dotfiles&#34;&gt;Mikä ihmeen dotfiles
&lt;/h2&gt;
&lt;p&gt;Dotfiles tarkoittaa ohjelmien asetustiedostoja/-kansioita, joiden nimet alkavat usein pisteellä. Esimerkiksi &lt;code&gt;.gitconfig&lt;/code&gt; ja &lt;code&gt;.bashrc&lt;/code&gt; ovat tällaisia.&lt;/p&gt;
&lt;p&gt;Käytännössä dotfiles-repoon voi kerätä kaikenlaisia ohjelmien asetuksia, vaikka tiedostojen nimet eivät alkaisikaan pisteellä.&lt;/p&gt;
&lt;p&gt;Ideana on säilyttää asetukset versionhallinnassa, jolloin ne löytyvät helposti myös uudelle koneelle.&lt;/p&gt;
&lt;p&gt;Aiheesta löytyy lisää tietoa osoitteesta &lt;a href=&#34;https://dotfiles.github.io/&#34;&gt;dotfiles.github.io&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;omat-pistetiedostot&#34;&gt;Omat &amp;quot;pistetiedostot&amp;quot;
&lt;/h2&gt;
&lt;p&gt;Laitoin toki omat dotfiles tiedostot &lt;a href=&#34;https://github.com/MarkoKaartinen/dotfiles&#34;&gt;GitHubiin&lt;/a&gt; ja sinne sitä tässä hissukseen rakentelen.&lt;/p&gt;
&lt;p&gt;Terminaali oli pidempään ajatus pistää vaihtoon ja ottaa käyttöön avoimen lähdekoodin &lt;a href=&#34;https://wezterm.org/&#34;&gt;WezTerm&lt;/a&gt; ja siihen &lt;a href=&#34;https://fishshell.com/&#34;&gt;fish&lt;/a&gt; shelliksi. Siitä se sitten ajatus lähti, että otetaan asetukset ylös niin saan samat määreet myös CachyOS Linux koneelle.&lt;/p&gt;
&lt;p&gt;Sinne tulee uusia ja vanhoja konffeja sitä mukaa kun niitä sinne jaksan pistää. Itsellä tässä mäkillä pyörii jo devausympäristöt niin en tähän hetkeen ole noita olemassaolevia juurikaan laitellut - vasta näitä uudempia.&lt;/p&gt;
&lt;p&gt;Repo on julkinen, joten sieltä saa vapaasti käydä kurkkimassa ja poimimassa omiin käyttöihin sopivia asetuksia.&lt;/p&gt;
&lt;h2 id=&#34;tekoäly-apuna&#34;&gt;Tekoäly apuna
&lt;/h2&gt;
&lt;p&gt;Tässä on tekoälyä äkytetty apuna. Dokumentointi on itselle sitä tylsintä niin tekoäly on saanut niitä pistää tonne ylös ja tehdä commit viestejä. Mä saan keskittyä säätämiseen.&lt;/p&gt;
&lt;p&gt;Apua on kanssa kysytty, kun menee konffauksessa &amp;quot;sormi suuhun&amp;quot; ja on kyselty miksi joku ei toimi tai miten minkäkin saa toimimaan.&lt;/p&gt;
&lt;p&gt;Sit joskus, kun on aika tehdä jonkinlainen asennus skripti tähän niin siinäkin saa sit tekoäly olla apuna.&lt;/p&gt;
&lt;p&gt;On myös tullut palloteltua ajatuksia AI kanssa ja se onkin omanlaista hupia jo sekin.&lt;/p&gt;
&lt;h2 id=&#34;homma-jatkuu-lätinöillä-ja-säädöllä&#34;&gt;Homma jatkuu lätinöillä ja säädöllä
&lt;/h2&gt;
&lt;p&gt;Tähän tulee tipoittain lisää säätöä ja muutosta. Osa backlogissa olevista jutuista jää käyttöön ja osa ei. Nykyisiä määreitä mitä ennen tän aloitusta ei välttis ole vielä täällä ollenkaan.&lt;/p&gt;
&lt;p&gt;Tulevaisuudessa, kun joskus konetta uusii ja pääsee tekemään ihan puhtaalta pöydältä testiä niin näkee mitenkä tämä auttaa hommassa sekä mitä kaikkea tulee lisää.&lt;/p&gt;
&lt;p&gt;Tästä on jo nyt ollut isosti hyötyä kun MacBookin ja CachyOS terminaalin konffit ui gitin yli koneelta toiselle. Pientä poikkeusta per käyttis on pitänyt tehdä sillä mäkkiä käyttelen pääosin tällä 14&amp;quot; näytöltä ja sitten CachyOS on vähän isompi pelinäyttö kii.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Miksi vasta nyt?&lt;/strong&gt; - kysymykseen mulla ei ole vastausta. Jälkiviisaana olisi vuonna 2021 pitänyt alkaa tekemään jo tätä sillä silloin tuli tauon jälkeen taas MacBook työkoneeksi niin olisi ollut oikein mainio hetki.&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>Vibekoodasin Mastodon-sovelluksen</title>
      <link>https://markokaartinen.net/2026/vibekoodasin-mastodon-sovelluksen</link>
      <pubDate>Mon, 12 Oct 2026 11:35:00 +0300</pubDate>
      <guid>https://markokaartinen.net/2026/vibekoodasin-mastodon-sovelluksen</guid>
      <description>Vibekoodasin tekoälyn avulla oman Mastodon-sovelluksen. Näin syntyi Ronsu, jolla voin jatkaa Mastodonin lukemista samasta kohdasta eri laitteilla.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Luit otsikon oikein. Vibekoodasin täysin tekoälyn avulla oman Mastodon sovelluksen. Kerron nyt hieman miksi ja miten.&lt;/p&gt;
&lt;p&gt;Pohdin pitkään kirjoitanko tästä mitään sillä tämä aihe on ns. kuuma peruna vähän joka puolella. Mutta päätin silti kirjoittaa, koska sain tästä itselleni jotain käyttökelpoista aikaan ja jotain muutakin voi tämä kiinnostaa.&lt;/p&gt;
&lt;p&gt;Tiedän, että tämä voi tuoda suht kärkkäitä mielipiteitä ja kommentteja Mastodonin ja blogin kommentoinnnin kautta. Koittakaa olla ihmisiksi silti ja kiltisti. Jos tekoäly hiertää pahasti niin lopeta lukeminen jo tähän, ainakin ennen kuin tuo AI tekemä kuva tulee vastaan 😆&lt;/p&gt;
&lt;h2 id=&#34;vibekoodaus&#34;&gt;Vibekoodaus?
&lt;/h2&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;vibekoodasin-mastodon-vibekoodaus.png&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;1536×1024&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2026/vibekoodasin-mastodon-sovelluksen/vibekoodasin-mastodon-vibekoodaus_hu_7cb2f7f2d76406d7.webp&#34; alt=&#34;Rennosti tuolissa istuva mies antaa ohjeita tekoälyrobotille, joka kirjoittaa koodia tietokoneella. Puhekuplat kuvaavat vibekoodauksen vaiheita ideasta virheiden korjaamiseen.&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1536&#34; height=&#34;1024&#34; data-name=&#34;vibekoodasin-mastodon-vibekoodaus.png&#34; data-dim=&#34;1536×1024&#34;&gt;&lt;figcaption&gt;AI generoima näkemys vibekoodauksesta&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;Avataan ensin mitä ihmettä on vibekoodaus. Käytännössä annat tekoälyn tehdä hommat.&lt;/p&gt;
&lt;p&gt;Käytännössä homma menee niin, että kirjoitat/puhut tekoälylle mitä sen pitää tehdä ja tekoäly sitten hoitaa koodauksen. Jos tulee ongelmia tai virheitä niin heität herjan tekoälylle ja se korjaa. Samoin jos haluat jotain muutoksia niin kerrot taas sen tekoälylle.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://markokaartinen.net/2026/miten-kaytan-tekoalya&#34;&gt;Miten käytän tekoälyä&lt;/a&gt; -artikkelissa rustasin miten itse käytän tekoälyä. En harrasta isommin ns. vibekoodausta, mutta nyt päätin koittaa sitä ja antaa tekoälyn tehdä hommat.&lt;/p&gt;
&lt;p&gt;Tässä projektissa homma meni käytännössä niin, että kerroin mitä haluan, miten haluan homman toimivan ja mitä ominaisuuksia ensimmäisessä versiossa pitäisi olla.&lt;/p&gt;
&lt;p&gt;Sen jälkeen sitten, kun sain ekan version toimimaan kehitettiin sitä pala palalta eteenpäin. Valmista ei vielä ole.&lt;/p&gt;
&lt;p&gt;Käytin projektin tekemiseen Claude Codea, joka hoiti varsinaisen koodaamisen. ChatGPT:tä käytin puolestaan ominaisuuksien suunnittelussa, määrittelyssä ja ideoiden pallottelussa. Tekniseksi toteutukseksi muodostui Svelte 5, TypeScript ja Vite. Svelte ei ollut itselleni entuudestaan tuttu, mutta Vitestä ja TypeScriptistä oli jo kokemusta. Annoin tekoälyn kuitenkin hoitaa teknisen toteutuksen aika pitkälti itsenäisesti.&lt;/p&gt;
&lt;h2 id=&#34;ronsu&#34;&gt;Ronsu
&lt;/h2&gt;
&lt;p&gt;Syntyi &lt;strong&gt;Ronsu&lt;/strong&gt;. Ronsu on Mastodon sovellus ja se on ajateltu PWA:na toimivaksi. Voi sitä käyttää toki verkkoselaimella, mutta itse käytän sitä PWA:na puhelimessa ja tietokoneella.&lt;/p&gt;
&lt;p&gt;Ronsun ajatus lähti siitä, kun vaihdoin tässä keväällä puhelinta Androidiin ja enää ei ollutkaan Mona sovellusta käytössä ja lukukohta ei synkronoitunut. En oikein löytänyt sopivaa softaa millä tämän olisin saavuttanut ja päätin sitten, että pistetään tekoäly töihin ja katsotaan mitä se tekee.&lt;/p&gt;
&lt;p&gt;Ronsussa siis jatkat siitä kohtaa mihin jäit millä laitteella tahansa. Tai ainakin näin sen pitäisi toimia ja omalla kokemuksella on ihan ok toiminut ja tekoäly on parantanut sitä pyydettäessä.&lt;/p&gt;
&lt;p&gt;Ronsussa ei ole myöskään mitään omaa taustapalvelinta, vaan se toimii kokonaan selaimessa ja keskustelee suoraan Mastodon-palvelimen kanssa. Lukukohta tallennetaan Mastodonin omaan rajapintaan, joten mitään erillistä palvelua sen synkronointiin ei tarvita.&lt;/p&gt;
&lt;p&gt;Ronsu löytyy &lt;a href=&#34;https://github.com/MarkoKaartinen/ronsu&#34;&gt;GitHubista&lt;/a&gt; ja sitä voi koittaa myös suoraan &lt;a href=&#34;https://ronsu.markok.dev/&#34;&gt;ronsu.markok.dev&lt;/a&gt; osoitteen kautta.&lt;/p&gt;
&lt;p&gt;Olen itse tätä käytellyt nyt tovin verran ja se onkin ollut nyt pääasiallinen tapa selata Mastodonia itsellä.&lt;/p&gt;
&lt;p&gt;Tämä on siis täysin tekoälyn koodaama. Olen itse tutustunut koodiin, mutta en ole sitä itse tuottanut. Samoin logon on tehnyt tekoäly.&lt;/p&gt;
&lt;p&gt;Ronsussa on tällä hetkellä mahdollista seurata omaa syötettä, julkaista sisältöä, vastata, lainata, buustata, tykätä sekä nähdä omia ilmoituksia. Lisää ominaisuuksia tulee sitä mukaa kun tulee itselle tarve.&lt;/p&gt;
&lt;p&gt;Ronsussa syötettä on myös tarkoitus lukea eikä vain selata loputtomasti. Ajatuksena on, että voit aloittaa vanhimmasta lukemattomasta julkaisusta ja edetä siitä uusimpiin. Sovellus näyttää myös, kuinka paljon olet ajallisesti jäljessä uusimmista julkaisuista.&lt;/p&gt;
&lt;p&gt;Ronsu isolla näytöllä:&lt;/p&gt;
&lt;div class=&#34;galleria&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;galleria&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;4 kuvaa&lt;/span&gt;&lt;/span&gt;&lt;div class=&#34;g-ruudut&#34; style=&#34;--sarakkeet: 4&#34;&gt;&lt;span class=&#34;g-item&#34;&gt;&lt;img src=&#34;https://markokaartinen.net/2026/vibekoodasin-mastodon-sovelluksen/ronsu-desktop-1_hu_9faf26679a26d461.webp&#34; alt=&#34;Ronsun syöte ja ilmoitukset isolla näytöllä&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;1004&#34; data-name=&#34;ronsu-desktop-1.png&#34; data-dim=&#34;2500×1569&#34;&gt;&lt;span class=&#34;g-nimi&#34; aria-hidden=&#34;true&#34;&gt;ronsu-desktop-1.png&lt;/span&gt;&lt;/span&gt;
&lt;span class=&#34;g-item&#34;&gt;&lt;img src=&#34;https://markokaartinen.net/2026/vibekoodasin-mastodon-sovelluksen/ronsu-desktop-2_hu_1b652a218f97852f.webp&#34; alt=&#34;Ronsun asetukset isolla näytöllä&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;1004&#34; data-name=&#34;ronsu-desktop-2.png&#34; data-dim=&#34;2500×1569&#34;&gt;&lt;span class=&#34;g-nimi&#34; aria-hidden=&#34;true&#34;&gt;ronsu-desktop-2.png&lt;/span&gt;&lt;/span&gt;
&lt;span class=&#34;g-item&#34;&gt;&lt;img src=&#34;https://markokaartinen.net/2026/vibekoodasin-mastodon-sovelluksen/ronsu-desktop-3_hu_d393b844dc9c9cd9.webp&#34; alt=&#34;Ronsun profiilinäkymä isolla näytöllä&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;1004&#34; data-name=&#34;ronsu-desktop-3.png&#34; data-dim=&#34;2500×1569&#34;&gt;&lt;span class=&#34;g-nimi&#34; aria-hidden=&#34;true&#34;&gt;ronsu-desktop-3.png&lt;/span&gt;&lt;/span&gt;
&lt;span class=&#34;g-item&#34;&gt;&lt;img src=&#34;https://markokaartinen.net/2026/vibekoodasin-mastodon-sovelluksen/ronsu-desktop-4_hu_84972ccd18b2e525.webp&#34; alt=&#34;Ronsun uusi julkaisu -ikkuna isolla näytöllä&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;1004&#34; data-name=&#34;ronsu-desktop-4.png&#34; data-dim=&#34;2500×1569&#34;&gt;&lt;span class=&#34;g-nimi&#34; aria-hidden=&#34;true&#34;&gt;ronsu-desktop-4.png&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Ja puhelimella:&lt;/p&gt;
&lt;div class=&#34;galleria&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;galleria&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;6 kuvaa&lt;/span&gt;&lt;/span&gt;&lt;div class=&#34;g-ruudut&#34; style=&#34;--sarakkeet: 3&#34;&gt;&lt;span class=&#34;g-item&#34;&gt;&lt;img src=&#34;https://markokaartinen.net/2026/vibekoodasin-mastodon-sovelluksen/ronsu-mobi-1_hu_be425ec772a44dec.webp&#34; alt=&#34;Ronsun syöte mobiilissa&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1147&#34; height=&#34;2500&#34; data-name=&#34;ronsu-mobi-1.jpg&#34; data-dim=&#34;1147×2500&#34;&gt;&lt;span class=&#34;g-nimi&#34; aria-hidden=&#34;true&#34;&gt;ronsu-mobi-1.jpg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&#34;g-item&#34;&gt;&lt;img src=&#34;https://markokaartinen.net/2026/vibekoodasin-mastodon-sovelluksen/ronsu-mobi-2_hu_64e04dd6daf128b1.webp&#34; alt=&#34;Ronsun uusi julkaisu mobiilissa&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1147&#34; height=&#34;2500&#34; data-name=&#34;ronsu-mobi-2.jpg&#34; data-dim=&#34;1147×2500&#34;&gt;&lt;span class=&#34;g-nimi&#34; aria-hidden=&#34;true&#34;&gt;ronsu-mobi-2.jpg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&#34;g-item&#34;&gt;&lt;img src=&#34;https://markokaartinen.net/2026/vibekoodasin-mastodon-sovelluksen/ronsu-mobi-3_hu_c7d07e5248224142.webp&#34; alt=&#34;Ronsun ilmoitukset mobiilissa&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1147&#34; height=&#34;2500&#34; data-name=&#34;ronsu-mobi-3.jpg&#34; data-dim=&#34;1147×2500&#34;&gt;&lt;span class=&#34;g-nimi&#34; aria-hidden=&#34;true&#34;&gt;ronsu-mobi-3.jpg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&#34;g-item&#34;&gt;&lt;img src=&#34;https://markokaartinen.net/2026/vibekoodasin-mastodon-sovelluksen/ronsu-mobi-4_hu_11291948cf50386c.webp&#34; alt=&#34;Ronsun asetukset mobiilissa&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1147&#34; height=&#34;2500&#34; data-name=&#34;ronsu-mobi-4.jpg&#34; data-dim=&#34;1147×2500&#34;&gt;&lt;span class=&#34;g-nimi&#34; aria-hidden=&#34;true&#34;&gt;ronsu-mobi-4.jpg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&#34;g-item&#34;&gt;&lt;img src=&#34;https://markokaartinen.net/2026/vibekoodasin-mastodon-sovelluksen/ronsu-mobi-5_hu_bef59043229a3679.webp&#34; alt=&#34;Ronsun profiilinäkymä mobiilissa&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1147&#34; height=&#34;2500&#34; data-name=&#34;ronsu-mobi-5.jpg&#34; data-dim=&#34;1147×2500&#34;&gt;&lt;span class=&#34;g-nimi&#34; aria-hidden=&#34;true&#34;&gt;ronsu-mobi-5.jpg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&#34;g-item&#34;&gt;&lt;img src=&#34;https://markokaartinen.net/2026/vibekoodasin-mastodon-sovelluksen/ronsu-mobi-6_hu_700644a18580156e.webp&#34; alt=&#34;Ronsun ketjunäkymä mobiilissa&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1147&#34; height=&#34;2500&#34; data-name=&#34;ronsu-mobi-6.jpg&#34; data-dim=&#34;1147×2500&#34;&gt;&lt;span class=&#34;g-nimi&#34; aria-hidden=&#34;true&#34;&gt;ronsu-mobi-6.jpg&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Tuo on ns. opinionated eli miten itse haluaisin asioiden toimivan. Asiat siis saattaa muuttua johonkin suuntaan jos siltä tuntuu. Samoin löytynee joitain hassuuksia / bugeja. Sekä on asioita varmaan mitä en ole huomioinut vielä tai törmännyt semmoiseen.&lt;/p&gt;
&lt;h2 id=&#34;loppulätinöitä&#34;&gt;Loppulätinöitä
&lt;/h2&gt;
&lt;p&gt;Vibekoodaus on yleistynyt viime aikoina melkoisesti ja erilaisia tekoälyllä tehtyjä sovelluksia tuntuu ilmestyvän jatkuvasti lisää. Työkalut ovat kehittyneet siihen pisteeseen, että lähes kuka tahansa voi saada aikaan ainakin jonkinlaisen toimivan sovelluksen ilman varsinaista ohjelmointiosaamista. Se on sinällään hieno asia, sillä moni idea voi nyt muuttua oikeasti toimivaksi sovellukseksi.&lt;/p&gt;
&lt;p&gt;Samalla tässä on tietysti myös kääntöpuolensa. Kun sovelluksia voi tehdä näin helposti, niitä myös julkaistaan ilman, että tekijä välttämättä ymmärtää mitä tekoäly on oikeastaan tehnyt. Tietoturva, ylläpidettävyys ja kaikenlaiset muut ongelmat saattavat jäädä huomioimatta. Toimiva sovellus kun ei automaattisesti tarkoita hyvää tai turvallista sovellusta.&lt;/p&gt;
&lt;p&gt;Ja vaikka ensimmäisen version saisi tekoälyllä tehtyä nopeasti, pitäisi sitä sovellusta myös ylläpitää ja kehittää jatkossa. Saa nähdä miten käy, kun tekoälyllä tehtyjä sovelluksia alkaa olla enemmän ja niiden tekijät joutuvat selvittelemään ongelmia vuosien päästä.&lt;/p&gt;
&lt;p&gt;Tämä on ollut mielenkiintoinen kokemus ja olisin totta puhuen itsekin saanut tehtyä tämän. En ehkä näillä tekniikoilla, joita tekoäly käytti, mutta lopputulos olisi ollut vastaava.&lt;/p&gt;
&lt;p&gt;Pääsihän tässä ns. helpolla ja tuota on sinällään &amp;quot;hauska&amp;quot; kehittää, kun voi pyytää tekoälyä tekemään toimintoja ja itse testata. Siitä sitten vain puuttuu se oma tekemisen ilo ja kädenjälki mikä tulee, kun koodaat itse.&lt;/p&gt;
&lt;p&gt;Ymmärrän kyllä hyvin myös vibekoodaukseen kohdistuvan kritiikin. Tekoäly voi tuottaa toimivan näköistä koodia, mutta se ei tarkoita, että koodi olisi välttämättä hyvää, turvallista tai edes järkevästi toteutettua. Vastuu lopputuloksesta jää kuitenkin sille, joka sovelluksen julkaisee ja käyttää. Täähän menee tähän savolaisuuteen, että vastuu on kuulijalla? 🙈&lt;/p&gt;
&lt;p&gt;Koska sain tästä jotain käytettävää irti ja käytän tätä tällä hetkellä niin pyydän AI:ta kehittämään tätä, kun tulee jotain mieleen / vastaan. Ei tosiaan ole kaikkia ominaisuuksia. Jos haluat niin pistä oma tekoäly töihin ja tee PR!&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>Osallistun Helmet-pelihaasteeseen</title>
      <link>https://markokaartinen.net/2026/osallistun-helmet-pelihaasteeseen</link>
      <pubDate>Thu, 02 Jul 2026 16:30:00 +0300</pubDate>
      <guid>https://markokaartinen.net/2026/osallistun-helmet-pelihaasteeseen</guid>
      <description>Osallistun Helmet-pelihaasteeseen vaikka tajusin sen näin myöhään. Koitetaan silti pelata haaste läpi ja valita 24 eri peliä eri kriteereillä.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Parempi myöhään, kuin ei milloinkaan. Päätin tai oikeastaan sain tietää pelihaasteesta äskettäin, joten pitäähän siihen osallistua.&lt;/p&gt;
&lt;p&gt;Sain tästä tietää &lt;a href=&#34;https://pelittaa.fi/t/helmet-pelihaaste-2026/102&#34;&gt;Pelittää.fi&lt;/a&gt; foorumilla ja ajattelin, että vuotta on vielä jäljellä kuitenkin useampi kuukausi niin koitetaan. En tiedä miten tämä on mennyt minulta ihan täysin ohi.&lt;/p&gt;
&lt;p&gt;Teinkin &lt;a href=&#34;https://markokaartinen.net/pelihaaste&#34;&gt;/pelihaaste&lt;/a&gt; sivun tänne blogiin, jossa on tietoa tästä haasteesta ja päivittelen sinne pelejä mitä mihinkin haasteen kohtaan valikoituu.&lt;/p&gt;
&lt;p&gt;Ajatus on tosiaan pelata 24 peliä, jotka saa valita vapaasti liittyen haasteen kriteereihin. Näitä on 24 kappaletta ja aikaa on tosiaan vuosi 2026. Pelihaasteesta saa tietoa &lt;a href=&#34;https://helmet.finna.fi/FeedContent/wp-suosittelemme-juuri-nyt?element=https%3A%2F%2Fhelmet-tukisivusto.hel.fi%2F%3Fp%3D4035&amp;amp;lng=fi&#34;&gt;Helmet-pelihaasteen&lt;/a&gt; sivuilta.&lt;/p&gt;
&lt;p&gt;Tästä pitää myös kiittää Juhista ja linkkaankin hänen pelihaasteeseen: &lt;a href=&#34;https://notes.hamatti.org/gaming/video-games/helmet-gaming-challenge-2026&#34;&gt;notes.hamatti.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Osallistutko sinä pelihaasteeseen, jos kyllä niin jaa ihmeessä oma edistyminen!&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>Tule mukaan pelipiiriin! 🎮</title>
      <link>https://markokaartinen.net/2026/tule-mukaan-pelipiiriin</link>
      <pubDate>Thu, 02 Jul 2026 14:45:00 +0300</pubDate>
      <guid>https://markokaartinen.net/2026/tule-mukaan-pelipiiriin</guid>
      <description>Pelipiiri on Pelittää.fi:n yhteisöllinen tapa löytää uusia pelejä. Ehdota peliä, osallistu äänestykseen ja keskustele pelikokemuksista muiden kanssa.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Tiedättehän lukupiirin? Tulin ajatelleeksi miksi ei ole peleille vastaavaa. No hieman tätä pohdin ja tämähän käy, kuin &amp;quot;nyrkki silmään&amp;quot; tuonne &lt;a href=&#34;https://pelittaa.fi&#34;&gt;Pelittää.fi&lt;/a&gt; foorumille!&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Pelipiiri on vähän kuin lukupiiri, mutta kirjojen sijaan valitaan yhdessä peli pelattavaksi ja keskustellaan siitä muiden kanssa.&lt;/p&gt;
&lt;p&gt;Tarkoituksena on löytää uusia pelejä, vaihtaa kokemuksia ja nähdä tuttujakin pelejä uusista näkökulmista. Pelipiirissä ei tarvitse suorittaa, eikä peliä tarvitse pelata läpi. Riittää, että olet kiinnostunut osallistumaan keskusteluun.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Ajatus on siis, että Pelipiirin jäsenet ehdottavat pelejä. Ehdotuksista järjestetään äänestys, jonka voittanut peli valitaan seuraavaksi Pelipiirin peliksi. Sen jälkeen peliä pelataan noin parin viikon ajan ja kokemuksista keskustellaan foorumilla.&lt;/p&gt;
&lt;p&gt;Kirjoitin pidemmin Pelipiiristä tuonne foorumin puolelle: &lt;a href=&#34;https://pelittaa.fi/t/pelipiiri-pelataan-ja-keskustellaan-yhdessa/99&#34;&gt;Pelipiiri - Pelataan ja keskustellaan yhdessä 🎮&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Käytännössä mukaan pääsee tekemällä maksuttoman tunnuksen Pelittää.fi-foorumille. Tämä lähinnä siksi, että olisi joku paikka missä tämän saisi organisoitua - Mastodon on ehkä huono tämmöiselle... Ainakin suht hankala voisi olla.&lt;/p&gt;
&lt;p&gt;Liittymisen jälkeen pitää liittyä &lt;a href=&#34;https://pelittaa.fi/g/pelipiiri&#34;&gt;@pelipiiri&lt;/a&gt; ryhmään, jolloin saa oikeudet osallistua keskusteluun &lt;a href=&#34;https://pelittaa.fi/c/pelipiiri/20&#34;&gt;#pelipiiri&lt;/a&gt; alueelle.&lt;/p&gt;
&lt;p&gt;Ei myöskään tarvitse pelata peliä, jotta voi osallistua keskusteluun.Ehdotetut ja valitut pelit voi olla mitä vaan retroilusta aina nykypäivän AAA peleihin.&lt;/p&gt;
&lt;p&gt;Homma ei maksa mitään, toki halutessaan pelejä voi ostaa ja näin osallistua. Liittyminen tai osallistuminen ei maksa mitään ja Pelittää.fi foorumilla on käytössä ainoastaan itse hostattu Plausible - ei siis mainoksia eikä Google Analytiikkaa.&lt;/p&gt;
&lt;p&gt;En tiedä tuleeko tästä mitään, mutta sehän tässä onkin hauskaa. Kokeillaan. 🎮&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>Miten käytän tekoälyä</title>
      <link>https://markokaartinen.net/2026/miten-kaytan-tekoalya</link>
      <pubDate>Fri, 27 Mar 2026 12:25:00 +0200</pubDate>
      <guid>https://markokaartinen.net/2026/miten-kaytan-tekoalya</guid>
      <description>Kerron hieman tässä jutussa miten käytän tekoälyä tällä hetkellä. Käyn läpi hieman miten käytän sitä omissa projekteissa (kuten tässä blogissa) ja muuallakin.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Kerron hieman tässä jutussa miten käytän tekoälyä tällä hetkellä. Käyn läpi hieman miten käytän sitä omissa projekteissa (kuten tässä blogissa) ja muuallakin. Luvassa tuttuun tapaan sekalainen rustaus.&lt;/p&gt;
&lt;p&gt;Tekoäly on tullut toden teolla arkeen viimeisen vuoden aikana — siitä puhutaan joka paikassa ja käyttäjiä riittää nörteistä tavallisiin tallaajiin. Ennen Googlasit ja luit blogin, nyt kysyt tekoälyltä suoraan. Kätevää, mutta samalla ne sivustot joilta tieto on peräisin jäävät ilman kävijöitä ja mainostuloja — eikä se ole hyvä juttu.&lt;/p&gt;
&lt;p&gt;Tästä aiheesta saisi kirjoitettua vaikka kuinka pitkän räntän, mutta mennään asiaan: itse en ole mikään tehokäyttäjä, mutta käytän tekoälyä jo jonkin verran. Kerron hieman miten.&lt;/p&gt;
&lt;h2 id=&#34;miten-minä-käytän-tekoälyä&#34;&gt;Miten minä käytän tekoälyä
&lt;/h2&gt;
&lt;p&gt;Itse maksan Claude Pro tilauksesta ja se on riittänyt minulle vielä vallan mainiosti. Se kertonee myös jo hieman siitä miten paljon sitä käytän, jos ei ole tarvinnut kalliimpiin paketteihin lähteä. Käydään tässä nyt läpi esimerkein miten käytän tekoälyä niin se on ehkä paras tapa tai selkein tai jotain.&lt;/p&gt;
&lt;h3 id=&#34;kysy-tekoälyltä&#34;&gt;Kysy tekoälyltä
&lt;/h3&gt;
&lt;p&gt;Tämä on ehkä yksi käytetyin asia eli se kysyminen. Tätä käyttänee moni. Itse saatan kysellä tekoälyltä asioita kuten ennen Googlasin. Nyt ei tarvitse mietiä hakusanoja niin tarkkaan vaan voin kysyä omalla tapaa. Saatan monesti sitten kysyä vielä lähteitä ja lähden tutkimaan itse sivuja. Ja siitä ehkä sitten takaisin perinteisiin Googleen.&lt;/p&gt;
&lt;h3 id=&#34;tekoälykokeiluja&#34;&gt;Tekoälykokeiluja
&lt;/h3&gt;
&lt;p&gt;Pitää hieman kokeilla tuota tekoälyä ja tutkailla miten se toimii. Olen pyytänyt tekoälyä luomaan tyhmiä kuvia ja antanut sen muokata kuvaan jotain hassua. Näitä pääosin olen sit tutuille jakanut, enkä niinkään julkisesti.&lt;/p&gt;
&lt;p&gt;Yksi kokeilu koodiin liittyen oli MCP palvelimen tekeminen &lt;a href=&#34;https://spottihinta.fi&#34;&gt;SpottiHinta&lt;/a&gt; -sivustolle. Tämä oli lähinnä huvin vuoksi, että voi kysyä tekoälyltä kuluvaa spottihintaa ja se antaa silloin oikean hinnan, kun se hakee sen MCP palvelimelta. Tästä kirjoitin SpottiHinnan &lt;a href=&#34;https://spottihinta.fi/tiedote/spottihinta-tukee-nyt-mcpta-kysy-sahkon-hintoja-suoraan-tekoalyltasi&#34;&gt;tiedotteisiin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pikaisesti koitin myös hypetettyä OpenClawta, mutta en halunnut lähteä vielä tuohon ja antaa sille pääsyä isommin mihinkään. Näissäkin näkee paljon erilaisia toteutuksia ja mitä saavat aikaan, mutta tämä vaatisi jo hieman harrastuneisuutta ja olla valmis heittämään rahaa erilaisille palveluille.&lt;/p&gt;
&lt;h3 id=&#34;blogissa&#34;&gt;Blogissa
&lt;/h3&gt;
&lt;p&gt;En kirjoita kokonaisia artikkeleita tekoälyllä. Kirjoitan ne itse. Saatan kyllä tekoälyn kanssa sparrata jostain artikkelista, että miten voisi parantaa ja onko ajatuksia. Mutta senkin jälkeen teen itse muokkauksia jos se tuntuu hyvältä ajatukselta. Avainsanoja saatan kysyä tekoälyltä liittyen artikkeliin.&lt;/p&gt;
&lt;h3 id=&#34;koodaaminen&#34;&gt;Koodaaminen
&lt;/h3&gt;
&lt;p&gt;Pitää kai se vibekoodaus mainita ensin. Näen sen semmoisena, että sä koodaat koko softan täysin tekoälyllä ja et itse tee oikein mitään. Tämä on perhanan vaarallista jos et oikeasti osaa koodata ja et tiedä siitä mitään mitä turvallisen softan teko vaatii.&lt;/p&gt;
&lt;p&gt;Itse käytän tekoälyä apuna. Se ei koodaa koko softaa vaan tehdään ehkä enemmän yhdessä. Se on äärimmäisen hyvä apuri debuggaamiseen ja virheiden selvittämiseen. Voin heittää sille virheilmoituksen ja se tutkailee miten sen voisi korjata.&lt;/p&gt;
&lt;p&gt;Ns. &amp;quot;apinahommiin&amp;quot; se on myös hyvä apuri. &amp;quot;Apinahommilla&amp;quot; tarkoitan semmoista toistuvaa yksinkertaista touhua eli esim. etsi kaikki kääntämättömät stringit koodista ja korvaa ne käännösavaimilla. Tätä käytinkin apuna &lt;a href=&#34;https://tapaaminen.net&#34;&gt;Tapaaminen.net&lt;/a&gt; sivuston käännöksissä, kun etsin käännettäviä tekstejä koodista.&lt;/p&gt;
&lt;p&gt;Erilaiset työkalut ja bash skriptit saan myös helposti tekoälyltä. Itselle kun ei tuo bash skriptaus niin ole hallussa niin saan helpotuksia Linuxin käyttöön kun kyselen miten saisi aikaan ja saan sitten suht valmista koodia. Itse yleensä lueskelen läpi ja tuunaan sitä vielä vähän, mutta tosi iso apu tulee noissa sitten.&lt;/p&gt;
&lt;p&gt;Olen myös kysellyt miten joku ominaisuus voisi tehdä tai onko ajatusta yms. sparrausta. Melkein kuin puhelisi jonkun ihmisen kanssa, mutta voin kysellä huoletta tyhmiä 😆&lt;/p&gt;
&lt;p&gt;Olen myös pyytänyt tekemään lomakkeita sillä ne perkeleet on joskus ärsyttäviä tehdä. Käytän siis tekoälyä apuna ja ärsyttäviin asioihin. Itse kuitenkin tykkään koodailla ja ratkoa ongelmia sitä kautta. Ehkä tuo backend on itselle sitä ominta puolta ja näkyy kyllä näistä omien tekeleiden fronteista sen sit.&lt;/p&gt;
&lt;h2 id=&#34;loppulätinöitä&#34;&gt;Loppulätinöitä
&lt;/h2&gt;
&lt;p&gt;Tein tänne blogiin yleisen &lt;a href=&#34;https://markokaartinen.net/ai&#34;&gt;/ai&lt;/a&gt; -sivun, jossa kerron yleiseltä tasolta tekoälyn käytöstä. Ehkä koitan sitten jatkossa &lt;a href=&#34;https://markokaartinen.net/kategoria/tekoaly&#34;&gt;Tekoäly&lt;/a&gt; kategoriaan julkaista juttuja liittyen tekoälyyn ja sen käyttöön niin voi sinne tunkeutua katselemaan tarkempia.&lt;/p&gt;
&lt;p&gt;Tuolla AI sivulla on myös juttua &lt;a href=&#34;https://codeberg.org/robida/human.json&#34;&gt;human.json&lt;/a&gt; systeemistä ja senkin otin käyttöön. Se on merkkinä, että takana on ihminen ei tekoäly.&lt;/p&gt;
&lt;p&gt;Tekoäly tulee yleistymään tulevaisuudessa ja varmaan omaankin käyttöön se tulenee jollain tapaa lisääntymään. En vielä itsekään tiedä miten ja millä tapaa. Voi olla, että tämmöisiä juttuja mitä teen itse korvaan tekoälyllä - varsinkin jos on jotain semmoista työlästä ja itseään toistavaa.&lt;/p&gt;
&lt;p&gt;Summa summarum — tekoäly on apuri, ei korvaaja. Ainakaan vielä.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Miten sinä käytät tekoälyä?&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>Tsatsiki</title>
      <link>https://markokaartinen.net/resepti/tsatsiki</link>
      <pubDate>Wed, 18 Feb 2026 18:58:00 +0200</pubDate>
      <guid>https://markokaartinen.net/resepti/tsatsiki</guid>
      <description>Tsatsiki on perinteinen Kreikkalainen kastike, joka kuuluu omiin suosikkeihini. Se sopii mainiosti kanan, lihan ja kasvisten kanssa eli aika yleiskäyttöinen kastike. Tämä ohje on, kuin suoraan Kreikassa.</description>
      <content:encoded>&lt;h2&gt;Ainesosat&lt;/h2&gt;&lt;p&gt;Annoksia: 1&lt;/p&gt;&lt;ul&gt;&lt;li&gt;850 g kreikkalaista jogurttia&lt;/li&gt;&lt;li&gt;320 g raastettua kurkkua&lt;/li&gt;&lt;li&gt;2 tl valkosipulinkynsiä (noin 15 g)&lt;/li&gt;&lt;li&gt;3 rl oliiviöljyä&lt;/li&gt;&lt;li&gt;1 tl punaviinietikkaa&lt;/li&gt;&lt;li&gt;2/3 tl suolaa&lt;/li&gt;&lt;li&gt;mustapippuria&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&#34;valmistusohje&#34;&gt;Valmistusohje
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Kaada kreikkalainen jogurtti kulhoon ja sekoita se sileäksi niin ettei ole möykkyjä&lt;/li&gt;
&lt;li&gt;Raasta kurkku ja purista siitä nesteet pois. Lisää ne kulhoon ja sekoita jogurtin kanssa.&lt;/li&gt;
&lt;li&gt;Lisää loput ainesosat kulhoon ja sekoita.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Tsatsiki kannattaa tehdä esim. aamulla tekeytymään tai vielä parempi on edellisenä iltana. Itse tein hieman pienemmän määrän, kuin tuossa ja säädin sit sen mukaan.&lt;/p&gt;
&lt;p&gt;Resepti löydetty alunperin: &lt;a href=&#34;https://realgreekrecipes.com/tzatziki-recipe/&#34;&gt;Real Greek Recipes&lt;/a&gt;&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>Mastodon palvelimen viestin merkkimäärän nostaminen</title>
      <link>https://markokaartinen.net/2026/mastodon-palvelimen-viestin-merkkimaaran-nostaminen</link>
      <pubDate>Mon, 16 Feb 2026 14:00:00 +0200</pubDate>
      <guid>https://markokaartinen.net/2026/mastodon-palvelimen-viestin-merkkimaaran-nostaminen</guid>
      <description>Tämä on enemmän itselle muistiin ja muille ehkä avuksi. Nimittäin miten saat nostettua Mastodon palvelimen viestin merkkimäärää. Bonuksena kyselyn vaihtoehtojen määrän nosto myös.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Tämä on enemmän itselle muistiin ja muille ehkä avuksi. Nimittäin miten saat nostettua Mastodon palvelimen viestin merkkimäärää. Bonuksena kyselyn vaihtoehtojen määrän nosto myös.&lt;/p&gt;
&lt;p&gt;Ensin se disclaimer, että nämä muutokset voi päivityksessä nollautua ja joudut tekemään ne uusiksi. Sen takia tämän otankin tähän itselle ylös. Tämä toimii ainakin uusimmissa versioissa!&lt;/p&gt;
&lt;p&gt;Harmillisesti kumpikaan näistä ei ole esim &lt;code&gt;.env.production&lt;/code&gt; tiedostossa, vaan ne pitää muuttaa suoraan koodiin. Eli jos et ole varma mitä teet, älä tee näitä muutoksia. En ota sit vastuuta jos sössit jotain!&lt;/p&gt;
&lt;h2 id=&#34;merkkimäärän-nostaminen&#34;&gt;Merkkimäärän nostaminen
&lt;/h2&gt;
&lt;p&gt;Tämä vaatii oikeastaan kahden tiedoston muokkaamista. Voit tehdä muokkauksia esim. &lt;code&gt;nano&lt;/code&gt; editorilla. Nanossa &lt;kbd&gt;CTRL&lt;/kbd&gt; + &lt;kbd&gt;O&lt;/kbd&gt; tallentaa ja &lt;kbd&gt;CTRL&lt;/kbd&gt; + &lt;kbd&gt;X&lt;/kbd&gt; sulkee editorin.&lt;/p&gt;
&lt;p&gt;Mene mastodon (&lt;code&gt;sudo su - mastodon&lt;/code&gt;) käyttäjänä &lt;code&gt;/home/mastodon/live&lt;/code&gt; hakemistoon.&lt;/p&gt;
&lt;p&gt;Ensimmäisenä muokataan &lt;code&gt;compose_form_container.js&lt;/code&gt; tiedostoa.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nano app/javascript/mastodon/features/compose/containers/compose_form_container.js
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Siellä etsitään kohta missä määritetään &lt;code&gt;maxChars&lt;/code&gt; ja muutetaan se haluamaksesi merkkimääräksi. Oletuksena se on &lt;code&gt;500&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;maxChars: state.getIn([&amp;#39;server&amp;#39;, &amp;#39;server&amp;#39;, &amp;#39;configuration&amp;#39;, &amp;#39;statuses&amp;#39;, &amp;#39;max_characters&amp;#39;], 500),
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Toinen muokattava tiedosto on &lt;code&gt;status_length_validator.rb&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nano app/validators/status_length_validator.rb
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Siellä etsitään kohta &lt;code&gt;MAX_CHARS&lt;/code&gt; ja muutetaan se samaksi minkä määritimme aiemmin. Oletuksena se on &lt;code&gt;500&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;MAX_CHARS = 500
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Tämän jälkeen pitää sitten assetteja kääntää alla olevalla komennolla.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;RAILS_ENV=production bundle exec rails assets:precompile
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Sitten vielä käynnistele Mastodonin prosesseja uudelleen.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo systemctl stop &amp;#39;mastodon-*.service&amp;#39;

sudo systemctl start &amp;#39;mastodon-*.service&amp;#39; --all
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Jos kaikki meni kuten piti niin sitten pitäisi nähdä uusi merkkimäärä viestin kirjoituksessa!&lt;/p&gt;
&lt;h2 id=&#34;bonus-kyselyn-vaihtoehtojen-määrän-nostaminen&#34;&gt;Bonus: Kyselyn vaihtoehtojen määrän nostaminen
&lt;/h2&gt;
&lt;p&gt;Jos haluat vielä kyselyihin enenmmän, kuin 4 vaihtoehtoa niin voit muuttaa sitä &lt;code&gt;poll_options_validator.rb&lt;/code&gt; tiedostossa.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nano app/validators/poll_options_validator.rb
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Siellä etsitään kohta &lt;code&gt;MAX_OPTIONS&lt;/code&gt; ja muutetaan se haluamaksi vaihtoehtojen määräksi. Oletuksena se on &lt;code&gt;4&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;MAX_OPTIONS = 4 
&lt;/code&gt;&lt;/pre&gt;</content:encoded>
    </item>
    <item>
      <title>Puhutaan hieman pörssisähköstä</title>
      <link>https://markokaartinen.net/2026/puhutaan-hieman-porssisahkosta</link>
      <pubDate>Sun, 08 Feb 2026 10:20:00 +0200</pubDate>
      <guid>https://markokaartinen.net/2026/puhutaan-hieman-porssisahkosta</guid>
      <description>Viime aikoina on taas ollut puhetta pörssisähkön hinnasta ja tämähän on useamman kerran vuodessa toistuva keskustelunaihe, kun pörssisähkön hinta on korkealla. Annan omat &#34;kaksi senttiä&#34; tästä aiheesta.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Viime aikoina on taas ollut puhetta pörssisähkön hinnasta ja tämähän on useamman kerran vuodessa toistuva keskustelunaihe, kun pörssisähkön hinta on korkealla. Annan omat &amp;quot;kaksi senttiä&amp;quot; tästä aiheesta. Jos et jaksa lukea tätä ränttiä niin lopussa on TLDR yhteenveto aiheesta.&lt;/p&gt;
&lt;h2 id=&#34;mikä-on-pörssisähkö&#34;&gt;Mikä on pörssisähkö?
&lt;/h2&gt;
&lt;p&gt;Pörssisähkö on sähkösopimus, jossa sähkön hinta määräytyi ennen tunnittaisen ns. spottihinnan mukaan, mutta viime vuonna tuli uusi malli, jossa sähkön hinta määräytyy kuluvan vartin mukaan. Kuluvan vartin hintaa voi seurata esim. &lt;a href=&#34;https://spottihinta.fi/&#34;&gt;SpottiHinta.fi&lt;/a&gt; kautta.&lt;/p&gt;
&lt;p&gt;Pörssisähkösopimuksissa sähkön hinta määräytyy markkinahinnan mukaan ja se vaihtelee vartin välein. Sinun hintasi on sen vartin aikainen kulutus kertaa kuluvan vartin hinta eli &lt;code&gt;15min kulutus kWh * 15min hinta snt/kWh&lt;/code&gt;. Näin ollen, jos kulutat paljon sähköä vartti, jolloin hinta on korkea, maksat enemmän kuin jos kulutat vähemmän tai silloin, kun hinta on alhainen.&lt;/p&gt;
&lt;p&gt;Pörssisähkösopimuksissa tulee vielä tuohon päälle yleensä kiinteä marginaali, jonka sitten saa sähkönmyyjä.&lt;/p&gt;
&lt;p&gt;Pörssisähkön hinta määräytyy markkinoiden mukaan ja tämä hinta määritetään joka päivä. Tänään suomen aikaa iltapäivällä tulee seuraavan päivän hinnat eli tiedät vain seuraavan päivän hinnat etukäteen. Et voi siis ennakoida koko viikkoa, mutta seuraavaa päivää voit.&lt;/p&gt;
&lt;h2 id=&#34;mielipiteitä-pörssisähköstä-ja-sähköstä-ylipäätään&#34;&gt;Mielipiteitä pörssisähköstä ja sähköstä ylipäätään
&lt;/h2&gt;
&lt;p&gt;Nyt alkaa se sekalainen lätinä ja omat mielipiteet. Taustaksi sen verran, että olen itse ollut ns. sekäkäyttäjä näiden suhteen ja on ollut pörssisähköä sekä kiinteähintaista sähköä. Olen siis elänyt kumpaakin elämää. Itsellä ei ole sähköautoa ja isoimmat sähkönkäyttäjät on uuni, apk, pyykinpesukone, ilp sekä aiemmin sauna.&lt;/p&gt;
&lt;p&gt;Viime vuonna (2025) pörssisähkön keskihinta &lt;em&gt;koko&lt;/em&gt; vuodelle oli viitisen senttiä per kWh. Tämä siis on keskiarvo koko vuodelle ja sisältää kesän halvat ja talven kalliit hinnat. Keskimäärin siis voidaan sanoa, että pörssisähkö on halvempi, kuin kiinteähintainen. Kiinteähintaisessa hinnan riskin ottaa sähkönmyyjä ja sen takia sen hinta on heidän puolelta arvioitu korkeammaksi kuin pörssi ja he seuraa futuureja ja pohtii omilla työkaluillaan riskejä ja tähän perustuu sitten heidän kiinteä hinta.&lt;/p&gt;
&lt;p&gt;Muutama vuosi takaperin oli tosiaan kovia hintoja kiinteissä sopimuksissakin ja tällöin saatoit päästä isosti plussalle jos oli otettu 2v sopimus halvalla hintaa. Tällä hetkellä on ollut juuri korkeaa pörssisähköä ja tämän vuoden pörssin keskihinta on kirjoitushetkellä vajaa 17 senttiä per kWh. Tuo tasoittunee kyllä tästä vuoden mittaa.&lt;/p&gt;
&lt;p&gt;Pörssisähköllä sinun pitää hieman muuttaa elintapoja, jos haluat saada siitä hyödyn irti. Sähkön hintaa kannattaa seurata ja käyttää sähköä, kun se on halpaa. Varsinkin sähkösaunan lämmitys on hyvä esimerkki, että se kannattaa ajoittaa halvan sähkön aikaan. Uunin, pyykinpesukoneen ja astianpesukoneen kanssa sama juttu. Näissä kannattaa hyödyntää edullista sähköä. Sähköautosta nyt puhumattakaan ja monesta muusta sähköllä toimivasta isokulutuksisesta laitteesta. Itse suosin toki seuraamisessa oma koodaamia softia kuten &lt;a href=&#34;https://saunotaanko.fi/&#34;&gt;Saunotaanko.fi&lt;/a&gt; ja &lt;a href=&#34;https://spottihinta.fi/&#34;&gt;SpottiHinta.fi&lt;/a&gt;. Vaihtoehtoja on muitakin ja sovelluksia löytyy.&lt;/p&gt;
&lt;p&gt;Nostan yhden työkalun vielä. &lt;a href=&#34;https://liukuri.fi/laskuri&#34;&gt;Liukuri.fi&lt;/a&gt; -sivuston laskurilla saat katsottua oman sähkönkulutuksesi hinnan pörssisähköllä. Sinne siirrät esim. viime vuoden sähkönkulutuksen, jonka saat &lt;a href=&#34;https://oma.datahub.fi/&#34;&gt;Datahubista&lt;/a&gt; ja se kertoo sitten sinulle mitä sähkö olisi maksanut pörssisähköllä. Siihen, kun huomioit marginaalin mitä olisi voinut olla niin saat vielä tarkempaa kuvaa (sekä mahdollisen kk-maksun). Sitä kun vertaat saman ajan sähkölaskuusi niin näet olisitko säästänyt. &lt;em&gt;Toki&lt;/em&gt; tässä et ole optimoinut sähkönkäyttöäsi, mutta saat suuntaa antavan kuvan. Optimoimalla olisit voinut saada vielä pienemmän pörssin hinnan.&lt;/p&gt;
&lt;p&gt;On toki myös kulutusvaikutukseen pohjautuva sopimus jossa on kiinteä hinta ja oman kulutuksen mukaan se hinta joko nousee tai laskee. Näistä ei itsellä ole niin kokemusta, sillä olen ollut vain joko pörssissä tai kiinteässä hinnassa.&lt;/p&gt;
&lt;p&gt;Jos et halua seurata pörssisähkön hintaa ja et halua optimoida sähkönkäyttöä niin pörssisähkö ei ole sinua varten. Silloin suosittelen kiinteähintaista sopimusta. Mutta jos taas haluat seurata pörssisähköä ja hyödyntää halpaa sähköä, niin pörssisähkö on hyvä vaihtoehto.&lt;/p&gt;
&lt;p&gt;Itse suosisin melkein ns. hybridimallia. Sähkösopimuksen saat solmittua yleensä 3kk ennen kuin nykyinen päättyy. Tällöin kannattaa siis alkaa jo katsomaan tarjouksia. Voit saada edullisen. Näissä on verkossa tehtäessä vielä 2 viikon irtisanomissaika. Suosittelenkin, että otat kiinteähintaisen sopimuksen 6kk ajaksi ja tämä olisi talven yli. 6kk sopimus kannattanee aloittaa syyskuussa tai lokakuussa. Näin olet huoletta yleensä kalliit pörssisähkön ajat. Sitten toiset puoli vuotta olet pörssissä ja voit hyödyntää halpaa sähköä. Tämä ei toki välttämättä käy kaikille, mutta itse koen tämän hyväksi tavaksi.&lt;/p&gt;
&lt;h2 id=&#34;yhteenveto-tldr&#34;&gt;Yhteenveto (TL;DR)
&lt;/h2&gt;
&lt;p&gt;Pörssisähkö on keskimäärin halvempaa kuin kiinteähintainen, mutta vaatii aktiivista seurantaa ja kulutuksen optimointia. Vuonna 2025 pörssin keskihinta oli ~5 snt/kWh, vuonna 2026 tähän mennessä ~17 snt/kWh.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Työkalut avuksesi:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://spottihinta.fi/&#34;&gt;SpottiHinta.fi&lt;/a&gt; - seuraa hintoja&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://liukuri.fi/laskuri&#34;&gt;Liukuri.fi&lt;/a&gt; - laske oma kulutuksesi hinta&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://oma.datahub.fi/&#34;&gt;Datahub&lt;/a&gt; - hae kulutustietosi&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;💡 Millainen sähkösopimus sinulle?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pörssisähkö&lt;/strong&gt;, jos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Seuraat mielellään hintoja ja optimoit kulutusta&lt;/li&gt;
&lt;li&gt;Voit ajoittaa kulutusta joustavasti&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Kiinteähintainen&lt;/strong&gt;, jos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Et halua seurata hintoja&lt;/li&gt;
&lt;li&gt;Haluat saman hinnan koko ajan&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Hybridimalli (oma suosikkini):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kiinteä hinta talvelle (syys-maaliskuu)&lt;/li&gt;
&lt;li&gt;Pörssisähkö kesälle (huhti-elokuu)&lt;/li&gt;
&lt;li&gt;Uuden sopimuksen voi tehdä 3kk ennen päättymistä (alkamaan kun entinen päättyy)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Muista: Verkossa tehdyissä sopimuksissa on 2 viikon irtisanomisaika!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Optimoitko omaa sähkönkäyttöäsi? Onko sinulla pörsissähkö vai kiinteähintainen? Jaa kokemuksesi ja vinkkisi muille!&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>Eka kosketus CachyOS Linuxiin pelikoneessa</title>
      <link>https://markokaartinen.net/2026/eka-kosketus-cachyos-linuxiin-pelikoneessa</link>
      <pubDate>Thu, 15 Jan 2026 19:59:00 +0200</pubDate>
      <guid>https://markokaartinen.net/2026/eka-kosketus-cachyos-linuxiin-pelikoneessa</guid>
      <description>Ensimmäiset pari päivää takana CachyOS Linuxin kanssa ja hommat on saatu ns. alulle. Kuten aiemmin sanoin, niin Windowsin rinnalle asennellaan CachyOS ja näin tapahtui tässä tiistaina iltapuhteiksi. Katsotaan hieman mihin asti on päästy parina iltana ja mitä on tullut vastaan tähän mennessä.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Ensimmäiset pari päivää takana CachyOS Linuxin kanssa ja hommat on saatu ns. alulle. Kuten &lt;a href=&#34;https://markokaartinen.net/2026/windows-vai-linux-miksei-molemmat&#34;&gt;aiemmassa&lt;/a&gt; sanoin, niin Windowsin rinnalle asennellaan CachyOS ja näin tapahtui tässä tiistaina iltapuhteiksi. Katsotaan hieman mihin asti on päästy parina iltana ja mitä on tullut vastaan tähän mennessä&lt;/p&gt;
&lt;h2 id=&#34;cachyosn-asennus&#34;&gt;CachyOS:n asennus
&lt;/h2&gt;
&lt;p&gt;Asennus oli suhteellisen suoraviivainen projekti, mutta eipä tästäkään ihan ilman kommelluksia selvitty. Tein aiemmin päivällä Macillä &lt;a href=&#34;https://cachyos.org/&#34;&gt;CachyOS&lt;/a&gt; asennusmedian ja kun aloin asentamaan niin eihän se BIOS sitä tunnistanut. No tekasin sitten uusiksi tämän asennusmedian ja sen jopa BIOS tunnistikin.&lt;/p&gt;
&lt;p&gt;Ensimmäinen este oli Secure Boot, joka piti ottaa BIOSista pois päältä, jotta CachyOS:n asennusmedia ylipäätään käynnistyi. Tämä ei ollut ihan loogisin tuossa Asuksen BIOSissa sillä OS Type piti pistää OtherOS määreeksi, jotta se oli pois. Tämä löytyi sitten &lt;a href=&#34;https://www.asus.com/support/faq/1049829/&#34;&gt;ohjeista&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;CachyOS asennushan toimii niin, kuten monessa muussakin Linuxissa, että käynnistetään ensin asennusmedialla oleva käyttöjärjestelmä ja sieltä sitten käynnistetään asennusohjelma, jolla itse Linux asennetaan kiintolevylle.&lt;/p&gt;
&lt;p&gt;Asennusprosessi oli itsessään suhteellisen suoraviivainen. Käytiin asentajan stepit läpi ja syötettiin tunnukset ja infot sekä määritettiin minne asennetaan. Tämä asennus oli siitä helppo, että oli oma kiintolevy mille pistin asennuksen menemään. Tämä on myös ehkä se suositeltavin tapa, että on erillinen levy Windowsille ja Linuxille.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;cachyos-asennus-1.jpg&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;2500×1875&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2026/eka-kosketus-cachyos-linuxiin-pelikoneessa/cachyos-asennus-1_hu_cfc85617fc272004.webp&#34; alt=&#34;CachyOS asennusohjelma&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;1200&#34; data-name=&#34;cachyos-asennus-1.jpg&#34; data-dim=&#34;2500×1875&#34;&gt;&lt;/figure&gt;&lt;p&gt;Asennuksen jälkeen päästäänkin sitten itse pihviin. Parin vaiheen (mm. bootti järjestyksen vaihdon) päästänkin näkemään miltä Limine näyttää. Tätä käsittääkseni voidaan hieman tuunata, mutta katsotaan sitä myöhemmin.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;cachyos-asennus-2.jpg&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;2500×1875&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2026/eka-kosketus-cachyos-linuxiin-pelikoneessa/cachyos-asennus-2_hu_e71e0e6653dfe75a.webp&#34; alt=&#34;Limine bootloader&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;1200&#34; data-name=&#34;cachyos-asennus-2.jpg&#34; data-dim=&#34;2500×1875&#34;&gt;&lt;/figure&gt;&lt;p&gt;Tokihan pitää ensin saada säädettyä näytöt näkymään oikein ja minulla, kun toinen näyttö on pystyssä niin eihän se oikein luonnistu tuo käyttäminen ilman asetusmuutosta. Sama homma on Windowsillakin.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;cachyos-asennus-3.jpg&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;2500×1875&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2026/eka-kosketus-cachyos-linuxiin-pelikoneessa/cachyos-asennus-3_hu_1f6d681d11604fc2.webp&#34; alt=&#34;CachyOS KDE Plasma työpöytä&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;1200&#34; data-name=&#34;cachyos-asennus-3.jpg&#34; data-dim=&#34;2500×1875&#34;&gt;&lt;/figure&gt;&lt;p&gt;Tämän jälkeen oikeastaan ns. perusasennus on valmis ja pistin sitten vielä päivityksiäkin sisään.&lt;/p&gt;
&lt;h2 id=&#34;secure-boot&#34;&gt;Secure Boot
&lt;/h2&gt;
&lt;p&gt;Tämä ansaitsee oman kappaleen sillä tämän kanssa saikin tapella hetken ja olin jo &lt;a href=&#34;https://kaartinen.social/@marko/115888519697952091&#34;&gt;luovuttamassakin&lt;/a&gt; sen säädöstä siltä iltaa.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/UEFI#Secure_Boot&#34;&gt;Secure boot&lt;/a&gt; piti tosiaan ottaa pois käytöstä, kun asentelin tuota CachyOS:ää, mutta halusin sen takaisin päälle asennuksen jälkeen. Tähän syynä on se, että osa pelien huijauksenestoista vaatii sen. Tästä tuoreimpana esimerkkinä on Battlefield 6 peli, jota itse olen pelannutkin (nyt pieni tauko) ja sen Javelin huijauksenesto vaatii Secure Bootin olemisen päällä.&lt;/p&gt;
&lt;p&gt;CachyOS &lt;a href=&#34;https://wiki.cachyos.org/configuration/secure_boot_setup/&#34;&gt;wikissä&lt;/a&gt; oli ohjetta tähän ja sen kanssa lähdin tekemään tätä ja eihän se mennyt kerralla maaliin. Sitten ankaran Googletuksen ja tekoälyn kanssa käydyn keskustelun ja yritys-erehdys taktiikan kautta se lopulta lähti toimimaan.&lt;/p&gt;
&lt;p&gt;Tässä ehkä oli jotain tekemistä dualbootilla/liminellä/kaikella muulla, mutta lopulta pääsin tilanteeseen missä Secure boot oli päällä BIOSissa ja Windows sekä CachyOS kertoi sen olevan päällä.&lt;/p&gt;
&lt;p&gt;Tämän kanssa säätämiseen meni melkeinpä enemmän aikaa ja kirosanoja, kuin itse asennukseen.&lt;/p&gt;
&lt;h2 id=&#34;ekat-pelit&#34;&gt;Ekat pelit
&lt;/h2&gt;
&lt;p&gt;Tähänkin on osviittaa &lt;a href=&#34;https://wiki.cachyos.org/configuration/gaming/&#34;&gt;wikissä&lt;/a&gt; ja sen avulla pistettiinkin pelipaketit kuntoon ja saatiin Steami ja härvelit. Ihan ensimmäisenä koitin &lt;a href=&#34;https://store.steampowered.com/app/1145350/Hades_II/&#34;&gt;Hades II&lt;/a&gt; peliä ja se pyöri kuten odottaa saattoi - hyvin. Halusin vain lähinnä nähdä, että peli lähtee käyntiin ja toimii.&lt;/p&gt;
&lt;p&gt;Seuraavana päivänä latailinkin sitten epätieteellistä koetta varten Cyberpunk 2077 pelin niin Windowsille, kuin CachyOS:lle. Halusin nimittäin ajaa pelin oman benchmarkin molemmissa käyttöjärjestelmissä ja katsoa mitä eroa on vai onko mitään. Tämä ei tosiaankaan ole mitenkään tieteellinen koe, mutta antaa jonkinlaista osviittaa sillä ajoin molemmat kerran.&lt;/p&gt;
&lt;p&gt;Koneen speksit voi kaivella tuosta &lt;a href=&#34;https://markokaartinen.net/sarja/pelikone-lapparin-tilalle&#34;&gt;artikkelisarjasta&lt;/a&gt;, mutta resoluutiona oli 1440p molemmissa. Ajoin valmiilla Ultra asetuksilla ja sain 120fps kantturaan molemmat käyttikset, eli ei isoa eroa. Ultra Ray Tracing pääsin taas molemmilla 60fps kantturaan. Eli tässäkin oltiin samoissa. Kertonee, että peli pyörii aika lailla samalla tavalla molemmissa käyttöjärjestelmissä.&lt;/p&gt;
&lt;p&gt;Cyberpunkia en kauheammin ole viime aikoina pelannut, mutta halusin sen nyt ottaa tohon, kun tiesin siitä löytyvän valmiin oman benchmarkin. Jos pelaisin niin pelaisin ilman ray tracingiä muutenkin sillä toi perli on pirun nätti ilmankin ja onhan se kivempi jos on 120fps, kuin 60fps.&lt;/p&gt;
&lt;p&gt;Noh tuli mieleen, että mitäs jos pelailisin Fallout 76:sta. Tässä tulikin hieman ongelmaa eteen sillä hiiri perhana karkasi kakkosnäytölle hetkittäin. Tähän onneksi löytyi Internetistä apuja ja ongelma saatiin korjattua helposti. Tämän korjasi käytännössä laittamalla Steamin launch optionseihin &lt;code&gt;PROTON_ENABLE_WAYLAND=1 %command%&lt;/code&gt; - tässä miinuksena Steamin overlay ei toimi, mutta eipä isosti haittaa.&lt;/p&gt;
&lt;p&gt;Fallout 76 ei ole se ihan uusin eikä se optimoiduin peli Windowsillakaan. ProtonDB:stä löytyikin &lt;a href=&#34;https://www.protondb.com/app/1151340&#34;&gt;vinkkejä&lt;/a&gt; kommenteista ja otinkin osaa käyttöön. Sitten löysin &lt;a href=&#34;https://www.pcgamer.com/games/fallout/i-almost-quit-fallout-76-until-i-realized-bethesda-still-hides-its-most-important-setting-in-a-config-file/&#34;&gt;PC Gamerin&lt;/a&gt; artikkelista sopivia asetuksia vielä ja nytpä tuokin näyttää toimivan aika kivasti mitä pelailin tuossa.&lt;/p&gt;
&lt;p&gt;Mitäs noiden lisäksi pelaillaan?&lt;/p&gt;
&lt;h2 id=&#34;lopuksi-ne-lätinät&#34;&gt;Lopuksi ne lätinät
&lt;/h2&gt;
&lt;p&gt;Homma on rullannut oikein kivasti. Fonttien määreisiin en ehkä ole tyytyväinen ja jotenkin ne näyttää paremmalta esim. Windows puolella ja Macillä. Tätä hieman jo säädin ja sainkin paremmaksi, mutta pitänee hieman säätää lisää. &lt;strong&gt;Jos vinkkejä on niin saa huudella!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tämä touhu on ehkä herättänyt taas pitkästä aikaa tämmöisen pienen Linux säädön ja pelisäädön innostuksen. Ei ole vielä tullut kauheammin Windowsin puolella käytyä, en ole kyllä pelannut Battlefield 6:sta nyt. Saa nähdä mitä säädetään seuraavaksi tuohon.&lt;/p&gt;
&lt;p&gt;Ajatuksena olisi koittaa saada toimimaan myös ohjelmia mitä olen käyttänyt muutenkin eli esim. Fusion360 softaa 3D-mallinnukseen.&lt;/p&gt;
&lt;p&gt;Mielenkiintoista on myös ollut tutustua tuohon Arch puoleen ja esim. Arch User Repositoryyn (AUR) tuon CachyOS:n paru työkalulla. Sieltä löytyikin jo Bambu Studio 3D-printterille sekä Zen selain ja 1Password.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Jatketaan säätöä ja katsotaan mitä seuraavaksi!&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>Windows vai Linux? Miksei molemmat!</title>
      <link>https://markokaartinen.net/2026/windows-vai-linux-miksei-molemmat</link>
      <pubDate>Sun, 11 Jan 2026 16:59:00 +0200</pubDate>
      <guid>https://markokaartinen.net/2026/windows-vai-linux-miksei-molemmat</guid>
      <description>Pelikoneeseen asennetaan Windows 11 ja CachyOS Linux dualboot-ympäristöön. Miksi valitsin juuri CachyOS:n, miten dualboot toteutetaan ja mitä haasteita edessä? Seuraa projektin etenemistä artikkelisarjassa.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Päätös on tehty. On aika alkaa säätämään pelikoneen kanssa. Hieman Windowsin uudelleenasennusta tässä pohdiskelin ja sen takia sitten tuli mieleen, että samassa projektissa voisi pistää myös koko paletin uusiksi. Puhdas Windows ja puhdas Linux rinnakkain.&lt;/p&gt;
&lt;h2 id=&#34;miksi&#34;&gt;Miksi?
&lt;/h2&gt;
&lt;p&gt;Kysymys ennemmin että miksi ei? Kuten pohdiskelin &lt;a href=&#34;https://pelittaa.fi/t/linux-pelaaminen/36?u=zetakes&#34;&gt;Linux pelaaminen&lt;/a&gt; ketjussa niin Linux pelaaminen on kehittynyt hurjaa vauhtia viime aikoina ja osa kiitoksesta menee Valvelle sillä he on edistänyt tätä puolta isosti. Tässä taas syynä se, että heillä on Linuxin päällä pyörivä tuote nimeltä Steamdeck ja tulossa on &amp;quot;Steambox&amp;quot; tai millä nimellä se tulee olemaankaan.&lt;/p&gt;
&lt;p&gt;Sitten mennään myös siihen perinteiseen, että pidän säätämisestä ja ei tuo kokeilu tule hukkaan menemään. Tästä tuleekin ihan artikkeli sarja tänne blogiin ja se kantaa nimeä &lt;a href=&#34;https://markokaartinen.net/sarja/windows-ja-linux-pelikoneessa&#34;&gt;Windows ja Linux pelikoneessa&lt;/a&gt;. Tämähän on oikeastaan jatkoa sarjalle &lt;a href=&#34;https://markokaartinen.net/sarja/pelikone-lapparin-tilalle&#34;&gt;Pelikone läppärin tilalle&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Itsellä Linux tulee siis pelikoneeseen ja ajatus on nimenomaan pelata myös Linux puolella. Itse olin tätä onneksi hieman jo pohdiskellut aikanaan, kun konetta kasasin ja päädyin AMD näytönohjaimeen, joka onkin ainakin aikoinaan ollut paremmin tuettu Linux puolella.&lt;/p&gt;
&lt;h2 id=&#34;mikä-distro&#34;&gt;Mikä distro?
&lt;/h2&gt;
&lt;p&gt;Tämä olikin ehkä tässä vaiheessa se haastavin vaihe. Olen aiemmin ROG Ally käsikoneessa pyörittänyt &lt;a href=&#34;https://bazzite.gg/&#34;&gt;Bazzitea&lt;/a&gt; ja &lt;a href=&#34;https://store.steampowered.com/steamos/&#34;&gt;SteamOS&lt;/a&gt; käyttöjärjestelmiä. Bazziten taustalla on muistaakseni Fedora ja SteamOS taas Arch.&lt;/p&gt;
&lt;p&gt;Nyt kuitenkin ajattelin lähteä kokeilemaan &lt;a href=&#34;https://cachyos.org/&#34;&gt;CachyOS&lt;/a&gt; käyttöjärjestelmää. Tämä pyörii Arch Linuxin päällä ja on itselle sinänsä uusi kokemus sillä olen pääosin pyöritellyt Debian pohjaisia Linuxeja ja palvelin käytössä onkin useampi Ubuntu virtuaalipalvelin pyörimässä.&lt;/p&gt;
&lt;p&gt;CachyOS onkin nyt suht hyvässä nosteessa ja onkin kirjoitushetkellä &lt;a href=&#34;https://distrowatch.com/&#34;&gt;DistroWatchin&lt;/a&gt; 6kk suosilistan ensimmäinen heti &lt;a href=&#34;https://linuxmint.com/&#34;&gt;Mintin&lt;/a&gt; edellä. Mitä itse olen tässä hieman lueskellut niin CachyOS vaikuttaa mielenkiintoiselta senkin takia, että ilmeisesti on optimoitu suorituskykyä eri tavoin ja Archiin verrattuna on hieman helppokäyttöisempi. Ilmeisesti myös juuri pelaamiseen tämä on ollut nyt suosiossa juuri suorituskyvyn optimoinnin takia.&lt;/p&gt;
&lt;p&gt;Mikään ei myöskään estä vaihtamasta distroa jos siltä alkaa tuntumaan. Tuo pelikone kun ei ole ns. työkäytössä niin sillä voi hieman kokeilla.&lt;/p&gt;
&lt;p&gt;Työpöytänä tulen varmaan koittamaan KDE Plasmaa tai jos jollain on suositella selkeästi jotain muuta niin saa heittää viestiä! Näitäkin voinee suht helpolla työllä vaihtaa ihan ilman uudelleenasennustakin.&lt;/p&gt;
&lt;h2 id=&#34;miksi-dualboot&#34;&gt;Miksi dualboot?
&lt;/h2&gt;
&lt;p&gt;Kaikki pelit ei tule toimimaan Linuxilla. Osa vaatii anticheattia, jota ei ole saatavilla Linuxille. Ainakin Battlefield 6 on sellainen peli johon tarvitaan Windowsia. Siksi melkein pitää olla Windows tuossa rinnalla pyörimässä. Koitan kuitenkin pääasiallisesti käyttää Linuxia.&lt;/p&gt;
&lt;p&gt;Windows on myös melkein oltava siksi, että joskus pitää säätää Windowsin puolella jotain työhön liittyvää ja monesti tuo kone on se helpoin rasti. Muuten voisi tuolla emulaattorissa pyörittää Windowsia, mutta siinä ei sitten tuo peli puoli toimi.&lt;/p&gt;
&lt;p&gt;Dualboot on onneksi tänä päivänä helppo ratkaisu ja &lt;a href=&#34;https://wiki.cachyos.org/installation/boot_managers/&#34;&gt;Boot managereiksi&lt;/a&gt; on vaihtoehtoja. Ehkä lähden koittamaan itselle uutta &lt;a href=&#34;https://codeberg.org/Limine/Limine&#34;&gt;Limineä&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;loppulätinät&#34;&gt;Loppulätinät
&lt;/h2&gt;
&lt;p&gt;Tässä, kun tänä sunnuntaina aamulla aloitin tämän kirjoituksen niin tämä oli jo mielessä ollut vajaa pari viikkoa. Piti hieman pohdiskella, että tulenko tekemään ja jaksanko alkaa niin päädyin sitten, että kyllä alan tekemään ja kyllä jaksan.&lt;/p&gt;
&lt;p&gt;Nyt kun tässä illan kähmässä kirjoitan tätä loppuun niin olen asentanut Windows 11 käyttiksen uudelleen ja päivitin myös BIOSin joutessani. En tule rustailemaan Windowsin asennuksesta sen isommin sillä siinä ei nyt sinällään mitään uutta tai ihmeellistä ole.&lt;/p&gt;
&lt;p&gt;Seuraavaksi odottelen sitten omaa kovalevyä tuolle Cachylle ja pääsen sitten asentelemaan sitä. Oma kovalevy on omasta vinkkelistä melkein vaatimus niin ei sitten tule isompaa sekoilua osioiden kanssa. Vähän on semmoista tuntumaa ja juttua Internetissä, että tuo on muutenkin paras vaihtoehto dualbootille.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nyt onkin hyvä hetki pistää vinkkejä ja omia kokemuksia tulemaan!&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>SlimmeLezer&#43; sähkönkulutuksen seurannassa</title>
      <link>https://markokaartinen.net/2025/slimmelezer-sahkonkulutuksen-seurannassa</link>
      <pubDate>Sun, 23 Nov 2025 15:55:00 +0200</pubDate>
      <guid>https://markokaartinen.net/2025/slimmelezer-sahkonkulutuksen-seurannassa</guid>
      <description>SlimmeLezer+ on ESPHome pohjainen laite, joka kytketään sähkömittarin P1 HAN porttiin ja lähettää reaaliajassa tietoa sähkönkulutuksesta Home Assistanttiin.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Kun ostettiin tämä talo niin sähkönkulutuksen seuranta oli yksi asia mihin haluan lähteä kiinnittämään huomiota. Tähän sainkin heti suosituksen ja se oli SlimmeLezer+ laita, joka kytketään sähkömittariin ja näin saadaan sitten reaaliaikaista tietoa sähkönkulutuksesta Home Assistantin kautta.&lt;/p&gt;
&lt;h2 id=&#34;mikä-on-slimmelezer&#34;&gt;Mikä on SlimmeLezer+?
&lt;/h2&gt;
&lt;p&gt;SlimmeLezer on ESPHome pohjainen laite, joka kytketään suoraan sähkömittarin P1 HAN porttiin. Tämän jälkeen se lähettää reaaliajassa tietoa sähkönkulutuksesta Home Assistanttiin. Tämä myydään ilman koteloa ja itse toki 3D tulostin tälle kotelon. Posteineen tämä maksoi vajaa 35 euroa. Eli ei kovin arvokas investointi.&lt;/p&gt;
&lt;p&gt;SlimmeLezerin voit tilata suoraan heidän sivuilta osoitteesta: &lt;a href=&#34;https://www.zuidwijk.com/product/slimmelezer-plus/&#34;&gt;zuidwijk.com&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;slimmelezer-asennus-sähkömittariin&#34;&gt;SlimmeLezer+ asennus sähkömittariin
&lt;/h2&gt;
&lt;p&gt;Tämä ei suoraan vanhaan mittariin onnistunutkaan. Kuopion Energialle kuitenkin iso kiitos siitä, että mittarin vaihto uudempaan onnistui helposti ja nopeasti sekä vielä ilman kustannuksia. Uudemmassa mittarissa on siis tuo P1 HAN portti valmiina ja näin SlimmeLezer+ laite saatiin kiinni siihen.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;slimmelezer-sahkomittari.jpg&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;1916×2500&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2025/slimmelezer-sahkonkulutuksen-seurannassa/slimmelezer-sahkomittari_hu_c4af21b58f57387a.webp&#34; alt=&#34;SlimmeLezer+ kiinnitettynä sähkömittariin&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;2088&#34; data-name=&#34;slimmelezer-sahkomittari.jpg&#34; data-dim=&#34;1916×2500&#34;&gt;&lt;/figure&gt;&lt;h2 id=&#34;sähkönkulutuksen-seuranta-home-assistantissa&#34;&gt;Sähkönkulutuksen seuranta Home Assistantissa
&lt;/h2&gt;
&lt;p&gt;SlimmeLezer+ laite on ESPHome pohjainen ja näin se on helppo liittää Home Assistantiin. ESPHome integraation kautta laite löytyy automaattisesti ja sen jälkeen vain lisätään ESPHome laite Home Assistantiin. Tämän jälkeen sähkönkulutuksen seuranta onkin heti käytössä.&lt;/p&gt;
&lt;p&gt;Home Assistantissa on oma energia &amp;quot;dashboard&amp;quot;, johon, kun lisää sähkönkulutuksen niin saa sitten näkyviin sähkönkulutusta esim. tunneittain tai päivittäin tai miten nyt haluaakaan. Alla olevassa kuvassa on nyt esimerkkinä viikon ajalta päivittäinen sähkönkulutus.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;ha-sahkonkulutus-energia.png&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;2032×880&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2025/slimmelezer-sahkonkulutuksen-seurannassa/ha-sahkonkulutus-energia_hu_c93bc9ae0c877144.webp&#34; alt=&#34;Sähkönkulutus Home Assistantin energia dashboardilla&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;693&#34; data-name=&#34;ha-sahkonkulutus-energia.png&#34; data-dim=&#34;2032×880&#34;&gt;&lt;/figure&gt;&lt;p&gt;Itsellä, kun on yksittäisiä pistokkeita, jotka osaa mitata sähkönkulutusta niin ne on myös lisättynä tänne energia &amp;quot;dashboardille&amp;quot; ja näin saadaan myös yksittäisten laitteiden kulutusta näkyviin. Harmillisesti ilmalämpöpumppu ei ole itsellä seurannassa, mutta sen voisi ehkä joskus saadakin.&lt;/p&gt;
&lt;p&gt;Mutta alla oleva energiavirta kuvaaja onkin hauska, sillä näet miten paljon kulutuksesta on tällä hetkellä seuraamatonta ja miten paljon mikäkin seurattu osa kuluttaa.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;ha-energiavirta-energia.png&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;2036×814&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2025/slimmelezer-sahkonkulutuksen-seurannassa/ha-energiavirta-energia_hu_599075497bbdf585.webp&#34; alt=&#34;Sähkönkulutuksen energiavirta Home assistantissa&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;640&#34; data-name=&#34;ha-energiavirta-energia.png&#34; data-dim=&#34;2036×814&#34;&gt;&lt;/figure&gt;&lt;p&gt;Koska minulla on tiedossa reaaliaikainen sähkönkulutus ja pystyn ottamaan tämän ja eilisen päivän kulutuksen ja tein siitä sitten kortin. Tässä on myös otettu huomioon sähkönhinta sillä itsellä on nyt kiinteä sopimus pörssin sijaan sillä halusin ensimmäiseksi vuodeksi kiinnittää hinnan jotta opin hieman miten talo kuluttaa sähköä ja näin ei tule isoa yllätystä pörssisähköllä, jos talvella on kallista.&lt;/p&gt;
&lt;p&gt;Alla olevaan korttiin onkin huomioitu sähkönhinta ja siinä on myös siirron osuus huomioituna. Näin näen osviittaa minkälaista sähkölaskua on tulossa tältä kuulta.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;ha-sahkonkulutus.png&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;802×498&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2025/slimmelezer-sahkonkulutuksen-seurannassa/ha-sahkonkulutus_hu_6fae2851a1e33915.webp&#34; alt=&#34;Sähkönkulutuksen seurannan kortti Home Assistantissa&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;802&#34; height=&#34;498&#34; data-name=&#34;ha-sahkonkulutus.png&#34; data-dim=&#34;802×498&#34;&gt;&lt;/figure&gt;&lt;h2 id=&#34;ne-kuuluisat-loppulätinät&#34;&gt;Ne kuuluisat loppulätinät
&lt;/h2&gt;
&lt;p&gt;Tämä on kyllä erittäin helppo tapa seurata kulutusta, kun käytössä on jo Home Assistant. Käytännössä yhdellä piuhalla saadaan reaaliaikainen sähkönkulutuksen seuranta ja voit tehdä sitten mitä haluatkaan sillä datalla Home Assistantin puolella.&lt;/p&gt;
&lt;p&gt;Tulevaisuudessa olisi ajatus vielä laajentaa veden ja kaukolämmön seurantaan.&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>Vuotovahti kannattaa olla</title>
      <link>https://markokaartinen.net/2025/vuotovahti-kannattaa-olla</link>
      <pubDate>Tue, 18 Nov 2025 10:00:00 +0200</pubDate>
      <guid>https://markokaartinen.net/2025/vuotovahti-kannattaa-olla</guid>
      <description>Vuotovahti on pieni laite, joka tunnistaa veden läsnäolon ja lähettää ilmoituksen, jos vettä havaitaan paikassa, missä sitä ei pitäisi olla. Tässä artikkelissa kerron miksi vuotovahti kannattaa olla kotona ja miten se voi pelastaa isommalta vahingolta.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Vuotovahti on yksi niistä laitteista, mitä en välttämättä ensimmäisenä olisi ajatellut laittaa ja en laittanutkaan. Se tuli joka paikkaan vasti pari-kolme viikkoa sitten. Nyt kuitenkin sen arvon on huomannut ja näin suosittelenkin sitä kaikille.&lt;/p&gt;
&lt;h2 id=&#34;mikä-on-vuotovahti&#34;&gt;Mikä on vuotovahti?
&lt;/h2&gt;
&lt;p&gt;Vuotovahti on pieni laite, joka tunnistaa veden läsnäolon. Se asetetaan esimerkiksi pesukoneen tai astianpesukoneen viereen, tai paikkaan, jossa on riski vesivuodolle, kuten pesualtaan alle tai kylpyhuoneen nurkkaan. Kun vuotovahti havaitsee vettä, se lähettää ilmoituksen puhelimeesi tai kotiautomaatiojärjestelmääsi.&lt;/p&gt;
&lt;p&gt;Vuotovahdilla siis yksinkertaisesti varmistat, että saat tiedon veden läsnäolosta paikassa missä sitä ei haluaisi olevan.&lt;/p&gt;
&lt;h2 id=&#34;vuotovahti-osana-kotiautomaatiota&#34;&gt;Vuotovahti osana kotiautomaatiota
&lt;/h2&gt;
&lt;p&gt;Minulla on käytössä Home Assistant ja siinä on käytössä &lt;a href=&#34;https://markokaartinen.net/2025/smlight-slzb-06-zigbee2mqtt-home-assistanttiin&#34;&gt;SLZB-06&lt;/a&gt; Zigbee koordinaattori. Vuotovahdin valinta siis oli Zigbee yhteensopivat laitteet ja Ikealla tämmöinen onkin suoraan valikoimassa. &lt;a href=&#34;https://www.ikea.com/fi/fi/p/badring-vesivuotovahti-aelylaite-60504352/&#34;&gt;Ikea Badring&lt;/a&gt; on edullinen vuotovahti 9,99€ hinnalla ja sen saa suoraan Zigbee verkkoon kiinni Home Assistantin kautta.&lt;/p&gt;
&lt;p&gt;Itsellä onkin vuotovahti useammassa paikkaa kuten astianpesukoneen takana, keittiön allaskaapissa, teknisessä tilassa missä on kaukolämmön laitteisto sekä vesimittarin luona. Näin saan ilmoituksen heti jos jossain näissä paikoissa on vettä missä ei pitäisi olla.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;vuotovahdit.png&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;970×352&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2025/vuotovahti-kannattaa-olla/vuotovahdit_hu_9e8e8a73a2ac4b08.webp&#34; alt=&#34;Vuotovahdit Home Assistantissa&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;970&#34; height=&#34;352&#34; data-name=&#34;vuotovahdit.png&#34; data-dim=&#34;970×352&#34;&gt;&lt;/figure&gt;&lt;p&gt;Kun vuotovahti on osana Home Assistanttia tarvitsee tehdä vain automaatio. Itsellä on automaatio, joka lähettää Telegrammin kautta viestin meidän Koti ryhmään, jossa on mukana minä ja rouva niin molemmat saa ilmoituksen siitä.&lt;/p&gt;
&lt;p&gt;Ajatuksena on jossain välissä tuoda hieman vielä enemmän huomiota herättävää ilmoitusta tähän kuten äänimerkki ja/tai valojen käyttäytyminen hälytyksen tullessa. Tämänkaltainen ilmoitus kuten vettä paikassa missä ei saa olla on kuitenkin erittäin kriittinen. &lt;strong&gt;Jos tähän on hyviä (tai huonoja) ajatuksia niin saa pistää tulemaan!&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;vuotovahti-ilman-kotiautomaatiota&#34;&gt;Vuotovahti ilman kotiautomaatiota
&lt;/h2&gt;
&lt;p&gt;TÄhän minulla ei ole suoraa vastausta sillä olen Home Assistanttia käyttänyt muutenkin ja se on ollut helppo tapa hallita ja luoda automaatioita. Kuitenkin tällä saralla on vaihtoehtoja ja suosittelenkin tekemään pientä tutkimusta.&lt;/p&gt;
&lt;p&gt;Tuo Ikea Badring pitää ääntä itsessään, mutta ei sitä joka paikasta välttämättä kuule. Ikealla on oma ekosysteemi heidän &lt;a href=&#34;https://www.ikea.com/fi/fi/p/dirigera-aelykodin-hub-valkoinen-aelylaite-10503406/&#34;&gt;Digigera&lt;/a&gt; huvin kautta, mutta itsellä ei kokemusta.&lt;/p&gt;
&lt;p&gt;Jos jollain on tähän liittyen omia vinkkejä niin jaa toki muille jotka ei halua alkaa Home Assistantin kanssa säätämään.&lt;/p&gt;
&lt;h2 id=&#34;miten-vuotovahti-käytännössä-pelasti-isomman-vahingon&#34;&gt;Miten vuotovahti käytännössä pelasti isomman vahingon?
&lt;/h2&gt;
&lt;p&gt;Nyt lopuksi ns. tosielämän tarina, joka tapahtui ihan viime viikolla.&lt;/p&gt;
&lt;p&gt;Puoli 9 aikaan illalla saan Telegrammiin ilmoituksen teknisen tilan kosteudesta. Tässä ensimmäisenä oli mielessä, että nyt on kaukolämmön laitteissa vuoto tai jotain vastaavaa. No eikun alakertaan katsomaan mikä ongelma siellä on.&lt;/p&gt;
&lt;p&gt;Siellähän sitten odotti alla oleva näky...&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;tekninen-tila-vesi.jpg&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;2500×2500&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2025/vuotovahti-kannattaa-olla/tekninen-tila-vesi_hu_17ec4fc2aa69d86e.webp&#34; alt=&#34;Teknisen tilan lattialla ruskeaa vettä&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;1600&#34; data-name=&#34;tekninen-tila-vesi.jpg&#34; data-dim=&#34;2500×2500&#34;&gt;&lt;/figure&gt;&lt;p&gt;Lattialla oli kertynyt ruskeaa vettä ja paskahan siellä haisi. Kuvassa olen siirtänyt jo vesivuotovahdin pois ettei koko aikaa hälytä. Vuotovahti oli tuolla viemärin yläpuolella ja siksipä siis hälytti. Jos vuotovahtia ei olisi ollut tuossa niin tuota ei oltaisi välttämättä huomattu kuin seuraavana päivänä jos silloinkaan. Nyt siis voitiin lopettaa veden käyttö heti ja ei pääse ainakaan isompaa ongelmaa tulemaan.&lt;/p&gt;
&lt;p&gt;Tämä viemäri oli myös ainut mistä tuota vettä tuli &amp;quot;ylöspäin&amp;quot; ja näin siis saatiin ongelma rajattua ja ei päässyt isompaa haittaa tulemaan. Toki vessassa ei voinut käydä, mutta onneksi on naapuriapu olemassa. Tälle iltaa kun ei enää oikein saa putkaria/lokapalvelua tai se maksaisi sitten ilta/yölisää joten odoteltiin seuraavaan päivään.&lt;/p&gt;
&lt;p&gt;Seuraavana päivänä soitto tutulle putkarille ja sieltä suoraan sanottiin ettei voi todnäk tehdä mitään vaan suoraan lokapalvelu. Lokapalvelu saatiin sitten iltapäivällä tulemaan ja aukaisemaan tukos ja putsaamaan putket. Tämän jälkeen homma toimi taas kuten piti.&lt;/p&gt;
&lt;p&gt;Juurisyynä oli itseasiassa se, että tämä talo mikä ostettiin kolmisen kuukautta sitten on ollut tyhjillään ja ei ole aktiivisella käytöllä ollut. Nyt kun taloa ja putkistoa alettiin oikeasti käyttämään niin tuo tukos pääsi syntymään. Nyt kun nuo on putsattu niin ei pitäisi tulla ihan heti ongelmaksi, kun putkisto on normaalissa käytössä.&lt;/p&gt;
&lt;h2 id=&#34;loppu-lätinöitä&#34;&gt;Loppu lätinöitä
&lt;/h2&gt;
&lt;p&gt;Tässä siis yksi esimerkki siitä, miksi vuotovahti kannattaa olla. Pieni investointi, joka voi säästää isommilta vahingoilta ja kalliilta korjauksilta. Jos sinulla ei vielä ole vuotovahteja kotona, suosittelen lämpimästi hankkimaan niitä ja liittämään ne osaksi kotiautomaatiotasi tai ainakin varmistamaan, että saat ilmoituksen veden läsnäolosta ajoissa.&lt;/p&gt;
&lt;p&gt;Tässä nyt vielä koitan miettiä pitääkö jossain muualla olla vuotovahti. Pyykinpesukone on samassa tilassa suihkun kanssa ja muutenkin siellä missä on vettä muutenkin (suihku/sauna) niin ei ole järkevää jos ei ota pois sitä. WC tilassa voisi melkein olla ja autotallissakin voisi olla hyödyllinen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Jos jotain tästä lätinästä jäi mieleen niin hanki vuotovahti. Ihan sama millainen, mutta kunhan on joku!&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>Sähköfatbikeen uudet renkaat ja pyöräkärry</title>
      <link>https://markokaartinen.net/2025/sahkofatbikeen-uudet-renkaat-ja-pyorakarry</link>
      <pubDate>Wed, 09 Jul 2025 08:00:00 +0300</pubDate>
      <guid>https://markokaartinen.net/2025/sahkofatbikeen-uudet-renkaat-ja-pyorakarry</guid>
      <description>Nyt täysin jotain erilaista ja puuhataan hieman sähköfatbiken kanssa. Hankin nimittäin tähän uudet renkaat sisäkumeineen ja pyöräkärryn. Kaikkihan ei taas mene, kuin kuuluisassa Strömsössä, mutta lopulta saatiin homma maaliin.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Nyt täysin jotain erilaista ja puuhataan hieman sähköfatbiken kanssa. Hankin nimittäin tähän uudet renkaat sisäkumeineen ja pyöräkärryn. Kaikkihan ei taas mene, kuin kuuluisassa Strömsössä, mutta lopulta saatiin homma maaliin.&lt;/p&gt;
&lt;h2 id=&#34;hieman-taustaa&#34;&gt;Hieman taustaa
&lt;/h2&gt;
&lt;p&gt;Taustoitetaan hieman tätä pyörää ja tarinaa sillä tästä ei olekaan blogissa ollut juttua. Tämä on ostettu viime syksynä Verkkokauppa.comista, kun oli hyvä tarjous ja korottomasti sai vielä napattua niin tuli rouvan kanssa puoliksi hankittua tämä.&lt;/p&gt;
&lt;p&gt;Kyseessä on GZR Black Raw 3.0 sähköfatbike, joka on Verkkiksen omaa merkkiä (käsittääkseni) ja siinä oli mielestäni ihan hyvä tekniikka itsessään. Sanoisin myös, että näin puoli vuotta ajelleena toi on ollut hyvä ostos vaikka pientä säätöä onkin ollut. Talvella ei tullut tällä juurikaan ajeltua, mutta nyt keväällä ja kesällä on tullut ajettua enemmän.&lt;/p&gt;
&lt;p&gt;Tähän vielä taustana, että takaarengas oli valuvikainen ja siitä tuli tässä nyt takuuseen uusi. Tämän kanssa on muutakin säätöä ollut mm. takalokarit tuon takarenkaan takia meni hieman persiilleen ja siksi siinä on nyt tuommoinen lippa tyylinen, mutta en tätä lähde tässä nyt enempää avaamaan.&lt;/p&gt;
&lt;h2 id=&#34;renkaanvaihto-hommiin&#34;&gt;Renkaanvaihto hommiin
&lt;/h2&gt;
&lt;p&gt;Syy siihen miksi lähdin renkaita vaihtamaan on se, että nuo mukana tulleet VeeTire Snow Avalanche 26x4,8&amp;quot; renkaat olivat kyllä toimivat, mutta ovat enemmän talvikäyttöön ja ne ei rullaakkaan asfaltilla ihan niin hyvin.&lt;/p&gt;
&lt;p&gt;Kärkkäisellä oli sitten tarjouksessa CST 26x4.0&amp;quot; fatbiken renkaat 19.90€ kappale ja ajattelin, että no tilataan ja pistetään alle. Tähän kylkeen piti Motonetista napata 9.99€ hintaan pari sisäkumiakin.&lt;/p&gt;
&lt;p&gt;Pyörä huoltotelineeseen ja näin vuokrarivarissa terassilla on hitusen naftisti tilaa kiitos grillien ja pöytien, mutta siihen saatiin kuitenkin pyörä ilmaan ja päästiin puuhastelemaan.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;fatbike-1.jpg&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;2500×1875&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2025/sahkofatbikeen-uudet-renkaat-ja-pyorakarry/fatbike-1_hu_53e2978a62e2feea.webp&#34; alt=&#34;Sähköfatbike huoltotelineessä&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;1200&#34; data-name=&#34;fatbike-1.jpg&#34; data-dim=&#34;2500×1875&#34;&gt;&lt;/figure&gt;&lt;p&gt;Tässä näkeekin hieman eroa renkaissa ja vasemmalta löytyy uudet 26x4.0&amp;quot; renkaat ja oikealla vanhat 26x4.8&amp;quot; renkaat. Erohan on aika selkeä ja uudet onkin hieman kapeammat ja kuviointi kevyempi verrattuna noihin talvirenkaisiin.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;fatbike-2.jpg&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;1875×2500&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2025/sahkofatbikeen-uudet-renkaat-ja-pyorakarry/fatbike-2_hu_6d268859553b6c98.webp&#34; alt=&#34;Uudet ja vanhat renkaat rinnakkain&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;2133&#34; data-name=&#34;fatbike-2.jpg&#34; data-dim=&#34;1875×2500&#34;&gt;&lt;/figure&gt;&lt;p&gt;Renkaan vaihto oli suhteellisen helppoa sillä vanteet on suhteellisen leveät ja renkaatkin on helppo saada pois. Sisäkumeissa oli venttiilit valmiiksi kiinni, joten ei tarvinnut niitäkään vaihtaa.&lt;/p&gt;
&lt;p&gt;Isojen renkaiden kanssa on myös kiva puuhastella sillä ei ole pientä näpertelyäkään tämä. Fatbiken renkaat ottaa vaan oman aikansa, kun saa ilmaa niihin ja onneksi itsellä on sähköpumppu, jotta ei tartte itse pumppailla noita täyteen.&lt;/p&gt;
&lt;p&gt;Sitten olikin aika koeajon ja käväisin pikkulenkin ajelemassa ja rullasi kyllä huomattavasti paremmin asfaltilla, kuin nuo vanhat renkaat. Talveksi voikin sitten taas vaihdella nuo vanhat takaisin.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;fatbike-3.jpg&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;1875×2500&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2025/sahkofatbikeen-uudet-renkaat-ja-pyorakarry/fatbike-3_hu_7962d96aa9aa6253.webp&#34; alt=&#34;Sahkofatbike koeajolla ja taustalla siintää Puijon hyppyrimäet&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;2133&#34; data-name=&#34;fatbike-3.jpg&#34; data-dim=&#34;1875×2500&#34;&gt;&lt;/figure&gt;&lt;h2 id=&#34;pyöräkärry-käyttöön-vai&#34;&gt;Pyöräkärry käyttöön vai...
&lt;/h2&gt;
&lt;p&gt;Samalla, kun renkaat vaihdoin oli ajatus pistää pyöräkärry käyttöön. Tämä kärry tulikin hankittua ihan tätä varten, josko saisi ostoksia kuskattua.&lt;/p&gt;
&lt;p&gt;Tämä ei nyt mennyt niin kuin Strömsössä sillä en ollut itse ennen näiden kanssa säätänytkään ja eihän tuota pyöräkärryn kiinnikettä saanutkaan tähän laitettua.&lt;/p&gt;
&lt;p&gt;Tämä projekti venähti vielä hieman, kun sain veljeltä pari adapteria, mutta niilläkään ei saatu tuota kiinni sillä tuo läpiakseli on kiinteä ja sitä päätä ei saanutkaan irti siitä ilman väkivaltaa.&lt;/p&gt;
&lt;p&gt;Eka ajatus mulla oli tosiaan pistää tuo kärryn kiinnike niin, että läpiakseli menee siitä läpi. Se ei onnistunut, koska reikä oli liian pieni ja hyvä näin. Ei nimittäin tuo läpiakseli olisi yltänyt kunnolla kiinni jos siinä välissä olisi ollut tuo pyöräkärryn kiinnike.&lt;/p&gt;
&lt;p&gt;Loppujen lopuksi pistin tilaukseen Thulen läpiakselin, johon saa tuo kärryn kiinnikkeen laitettua. Tämän kun sai niin, tuo kiinnitys onnistui helposti ja kärry saatiin pyörän perään.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;fatbike-4.jpg&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;1875×2500&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2025/sahkofatbikeen-uudet-renkaat-ja-pyorakarry/fatbike-4_hu_384daa2e52294bae.webp&#34; alt=&#34;Sähköfatbike ja pyöräkärry&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;2133&#34; data-name=&#34;fatbike-4.jpg&#34; data-dim=&#34;1875×2500&#34;&gt;&lt;/figure&gt;</content:encoded>
    </item>
    <item>
      <title>Lemmini.fi - Seikkailu Lemmyverseen alkakoon!</title>
      <link>https://markokaartinen.net/2025/lemminifi-seikkailu-lemmyverseen-alkakoon</link>
      <pubDate>Wed, 12 Mar 2025 18:36:00 +0200</pubDate>
      <guid>https://markokaartinen.net/2025/lemminifi-seikkailu-lemmyverseen-alkakoon</guid>
      <description>Nyt alkoi kokeilut Lemmyn kanssa ja päädyin perustamaan Lemmini.fi nimisen Lemmy instanssin.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Tuli vihdoin aika alkaa kokeilut Lemmyn kanssa ja hypätään suoraan ns. syvään päätyyn. Päätin nimittäin pelkän Lemmy tunnuksen luomisen lisäksi perustaa avoimen Lemmy instanssin nimeltä Lemmini.fi&lt;/p&gt;
&lt;h2 id=&#34;mikä-ihmeen-lemmy&#34;&gt;Mikä ihmeen Lemmy?
&lt;/h2&gt;
&lt;p&gt;Lemmy on ilmainen ja avoimen lähdekoodin ohjelmisto, jota käytetään uutisseurantaan ja keskustelufoorumeiden alustana. Instanssit, joille Lemmy-ohjelmistot on asennettu kommunikoivat keskenään ActivityPub-protokollan avulla. Lähde: &lt;a href=&#34;https://fi.wikipedia.org/wiki/Lemmy_(ohjelmisto)&#34;&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Lemmy on siis avoimen lähdekoodin korvike Redditille.&lt;/p&gt;
&lt;p&gt;Samoin kuin Mastodon ja &lt;a href=&#34;https://markokaartinen.net/2025/pixelfed-vinkkeja&#34;&gt;Pixelfed&lt;/a&gt; Lemmy on osa fediversumia ja voit seurata ristiin rastiin.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://sopuli.xyz/&#34;&gt;Sopuli&lt;/a&gt; instanssin ylläpitäjä kirjoitti hyvän oppaan Lemmystä: &lt;a href=&#34;https://paper.wf/rynach/lemmy-opas&#34;&gt;https://paper.wf/rynach/lemmy-opas&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;lemminifi&#34;&gt;Lemmini.fi
&lt;/h2&gt;
&lt;p&gt;Tämä on siis minun ylläpitämä Lemmy instanssi ja on uusi lisä niihin softiin mitä ylläpidän. Ajatus on lähteä kokeilla tekemään suomalaisille suunnattua instanssia ja luoda sinne suomalaisia yhteisöjä - sellaisia mitä ei muilla vielä ole&lt;/p&gt;
&lt;p&gt;Lemmini nimi tulee sopuleista ja itse Lemmy sovelluksen nimi viittaa myös sopuleihin.&lt;/p&gt;
&lt;p&gt;Osoite on siis &lt;a href=&#34;https://lemmini.fi&#34;&gt;lemmini.fi&lt;/a&gt; ja instanssi on avoin kaikille!&lt;/p&gt;
&lt;h2 id=&#34;miksi-hostata-itse&#34;&gt;Miksi hostata itse?
&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Miksi ei?&lt;/strong&gt; Tässä tuli myös opiskeltua itselle uutta sillä päädyin tekemään asennuksen Ansiblella, jota suositeltiin. Tämä onkin sitten oma &amp;quot;suo&amp;quot; johon varmasti tulen tutustumaan lisää vielä.&lt;/p&gt;
&lt;p&gt;Itse hostaamalla tulee myös opittua sovelluksesta asioita mitä ei käyttäjänä välttämättä huomaakkaan.&lt;/p&gt;
&lt;h2 id=&#34;niin-mikä-seikkailu&#34;&gt;Niin mikä seikkailu?
&lt;/h2&gt;
&lt;p&gt;No, itse en aiemmin kauheammin Lemmyä ole käyttänyt ja nyt taitaa olla tulossa tai menossa uusi aalto &amp;quot;Reddit pakolaisia&amp;quot;. Oma mielenkiinto heräsi tässä vähän aikaa sitten ja olenkin Redditiä käyttänyt hyvän tovin ja se on ollut hieman nihkeää sen jälkeen kun Apollo sovellus lähti pois ja homma on oikeastaan mennyt alaspäin siitä.&lt;/p&gt;
&lt;p&gt;Seikkailulla tarkoitan myös sitä, että te - blogin lukijat - pääsette &lt;em&gt;nauttimaan&lt;/em&gt; tulevista blogipostauksista liittyen Lemmyyn.&lt;/p&gt;
&lt;p&gt;Tervetuloa Lemmyverseen, &lt;a href=&#34;https://lemmini.fi/&#34;&gt;Lemmini.fi&lt;/a&gt; instanssille ja ylipäätään tälle seikkailulle mukaan!&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>Pixelfed vinkkejä</title>
      <link>https://markokaartinen.net/2025/pixelfed-vinkkeja</link>
      <pubDate>Mon, 10 Mar 2025 15:33:00 +0200</pubDate>
      <guid>https://markokaartinen.net/2025/pixelfed-vinkkeja</guid>
      <description>Tässä artikkelissa on kerrottu vinkkejä Pixelfedin käyttöön ja hieman sen eroista Mastodoniin verrattuna sekä millaista sitä on ylläpitää.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Ylläpidän Pixl.fi nimistä Pixelfed instanssia ja tässä artikkelissa haluankin jakaa muutaman vinkin liittyen Pixelfediin.&lt;/p&gt;
&lt;h2 id=&#34;mikä-on-pixelfed&#34;&gt;Mikä on Pixelfed?
&lt;/h2&gt;
&lt;p&gt;Pixelfed on avoimen lähdekoodin sosiaalisen median alusta, joka on suunniteltu erityisesti kuvien jakamiseen. Se on osa fediversumia ja käyttää Activitypub protokollaa.&lt;/p&gt;
&lt;p&gt;Pixelfed on siis Instagramin &amp;quot;korvike&amp;quot; fediversumissa, jos nyt näin yksinkertaistetaan.&lt;/p&gt;
&lt;h2 id=&#34;miten-pixelfed-ja-mastodon-eroavat&#34;&gt;Miten Pixelfed ja Mastodon eroavat?
&lt;/h2&gt;
&lt;p&gt;Pixelfed keskittyy täysin kuviin ja tarinoihin, kun taas Mastodon on enemmän tekstipohjainen alusta. Mastodonissa voit jakaa tekstiä, kuvia ja videoita, mutta se ei ole yhtä keskittynyt kuvien jakamiseen kuin Pixelfed.&lt;/p&gt;
&lt;p&gt;Voit kuitenkin seurata ristiin Mastodon ja Pixelfed tilejä, joten voit jakaa sisältöä molemmissa alustoissa. Jos seuraat Pixelfedin kautta Mastodon käyttäjää niin näet häneltä vain kuvat.&lt;/p&gt;
&lt;p&gt;Itse jaan hieman harkitummin kuvia Pixelfedissä ja Mastodonissa sitten ei niin harkitusti...&lt;/p&gt;
&lt;h2 id=&#34;miten-aloittaa-pixelfedin-käyttö&#34;&gt;Miten aloittaa Pixelfedin käyttö?
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Luo tili&lt;/strong&gt;: Valitse instanssi, johon haluat liittyä. Voit luoda tilin esimerkiksi &lt;a href=&#34;https://pixl.fi&#34;&gt;pixl.fi&lt;/a&gt; (minun ylläpitämä) tai &lt;a href=&#34;https://pixelfed.social&#34;&gt;pixelfed.social&lt;/a&gt; (kehittäjän ylläpitämä) -instanssille. Listan instansseista löytyy osoitteesta: &lt;a href=&#34;https://pixelfed.org/servers&#34;&gt;pixelfed.org/servers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Täytä profiilisi&lt;/strong&gt;: Lisää profiilikuva ja lyhyt kuvaus itsestäsi.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aloita seuraaminen&lt;/strong&gt;: Voit seurata muita Pixelfed-käyttäjiä sekä muita Fediverse-alustoilla olevia tilejä, kuten Mastodon-käyttäjiä.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Jaa sisältöä&lt;/strong&gt;: Voit jakaa kuvia, videoita ja tarinoita. Muista käyttää hashtageja, jotta muut käyttäjät löytävät sisältösi helpommin.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Kuten Mastodonissa käyttäjätunnuksesi on muotoa &lt;code&gt;@nimimerkki@instanssi.tld&lt;/code&gt;, kannattaa siis ajatella näitä hieman sähköpostiosoitteen tavoin. Kahdella eri instanssilla voi olla @marko nimimimerkki, mutta ne voivat olla täysin eri henkilöitä.&lt;/p&gt;
&lt;h2 id=&#34;vinkkejä&#34;&gt;Vinkkejä
&lt;/h2&gt;
&lt;p&gt;Alla on muutama vinkki, jotka voivat auttaa sinua Pixelfedin kanssa.&lt;/p&gt;
&lt;h3 id=&#34;käytä-hashtageja&#34;&gt;Käytä hashtageja
&lt;/h3&gt;
&lt;p&gt;Hashtagit ovat erittäin tärkeitä Pixelfedissä, sillä ne auttavat muita käyttäjiä löytämään sisältösi. Käytä relevantteja hashtageja kuvissasi ja tarinoissasi, jotta voit tavoittaa laajemman yleisön.&lt;/p&gt;
&lt;h3 id=&#34;seuraa-muita-käyttäjiä&#34;&gt;Seuraa muita käyttäjiä
&lt;/h3&gt;
&lt;p&gt;Seuraamalla muita käyttäjiä voit löytää uusia ja mielenkiintoisia tilejä. Voit myös saada sitä kautta inspiraatioita omiin kuviisi.&lt;/p&gt;
&lt;h3 id=&#34;osallistu-keskusteluihin&#34;&gt;Osallistu keskusteluihin
&lt;/h3&gt;
&lt;p&gt;Pixelfedissä on mahdollista osallistua keskusteluihin muiden käyttäjien kanssa. Voit kommentoida ja tykätä muiden kuvista, mikä voi johtaa todella mielenkiintoisiin vuorovaikutuksiin.&lt;/p&gt;
&lt;h3 id=&#34;ole-kärsivällinen&#34;&gt;Ole kärsivällinen
&lt;/h3&gt;
&lt;p&gt;Pixelfed on vielä aktiivisen kehityksen alla, joten kaikki ominaisuudet eivät välttämättä toimi täydellisesti. Ole kärsivällinen ja anna kehittäjille aikaa parantaa alustaa.&lt;/p&gt;
&lt;p&gt;Pixelfedin kehittämiseen voit osallistua &lt;a href=&#34;https://github.com/pixelfed/&#34;&gt;GitHubissa&lt;/a&gt; ja sieltä löydät myös avoinna olevat issuet ja voit raportoida omia ongelmia.&lt;/p&gt;
&lt;h3 id=&#34;asenna-pixelfed-app&#34;&gt;Asenna Pixelfed app
&lt;/h3&gt;
&lt;p&gt;Pixelfedillä on oma sovellus Androidille ja iOS:lle ja ne löytyy kunkin alustan sovelluskaupasta nimellä &amp;quot;Pixelfed&amp;quot;. Alla vielä linkit näihin sovelluksiin:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://play.google.com/store/apps/details?id=com.pixelfed&#34;&gt;Virallinen Android -sovellus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://apps.apple.com/us/app/pixelfed/id1632519816&#34;&gt;Virallinen iPhone -sovellus&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;entäs-pixelfedin-ylläpitäminen&#34;&gt;Entäs Pixelfedin ylläpitäminen?
&lt;/h2&gt;
&lt;p&gt;Jos sinua kiinnostaa oman instanssin ylläpitäminen niin Pixelfedin &lt;a href=&#34;https://docs.pixelfed.org/&#34;&gt;dokkareista&lt;/a&gt; löytyy siihen ohjetta. Tässä varsinkin kannattaa muistaa tämän nuori ikä.&lt;/p&gt;
&lt;p&gt;Pixelfedin ylläpitäminen on haastavaa Mastodoniin verrattuna. Sillä Pixelfed kehittyy välillä hyvinkin vikkelään ja dokumentointi ei pysy mukana.&lt;/p&gt;
&lt;p&gt;Alusta asti kannattaa ainakin säätää media tallentumaan S3 tyyliseen pilvipalveluun. Näin ei tarvitse alkaa tekemään siirtoa myöhemmin.&lt;/p&gt;
&lt;p&gt;Jos aiot alkaa ylläpitämään julkista instanssia eli ottaa muita käyttäjiä sinne niin varaudu kysymyksiin. Niitä tulee sillä tässä varsinkin näkyy Pixelfedin nuori ikä ja se ettei kaikki toimi kuten on ajateltu.&lt;/p&gt;
&lt;p&gt;Jos taas aiot alkaa ylläpitämään omaan instanssia itselle niin anna mennä vaan. Minullakin pyörii kaartinen.photos instanssi. Tämä on ihan vain siksi, että sain &lt;code&gt;@marko@kaartinen.photos&lt;/code&gt; tunnuksen, kun on Mastodonissa &lt;code&gt;@marko@kaartinen.social&lt;/code&gt; sekä on muuten Matrixissa &lt;code&gt;@marko:kaartinen.social&lt;/code&gt; tunnus sillä sen sai konffattua kivasti.&lt;/p&gt;
&lt;h2 id=&#34;loppusanoja&#34;&gt;Loppusanoja
&lt;/h2&gt;
&lt;p&gt;Pixelfed on tosi lupaava vaihtoehto Instagramille, mutta ikävä kyllä vielä aika kesken. Se on saanut alkuvuonna ison boostin ja tuo kävijämäärän nousu näkyi myös Pixl.fi instanssilla.&lt;/p&gt;
&lt;p&gt;Toivon ainakin, että nyt Kickstarterin myötä Pixelfed lähtee kiitoon ja alkaa tulla paljon kaivattuja ominaisuuksia ja parannuksia niin työpöytäkäyttöön, kuin mobiiliin.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Joko sinä olet Pixelfedissä?&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>SMLIGHT SLZB-06 &amp; Zigbee2MQTT Home Assistanttiin</title>
      <link>https://markokaartinen.net/2025/smlight-slzb-06-zigbee2mqtt-home-assistanttiin</link>
      <pubDate>Tue, 18 Feb 2025 18:49:00 +0200</pubDate>
      <guid>https://markokaartinen.net/2025/smlight-slzb-06-zigbee2mqtt-home-assistanttiin</guid>
      <description>Tällä kertaa otetaan käsittelyyn Zigbee verkon pystytys ja nimenomaan käytetään hyödyksi Zigbee2MQTT siltaa ja Home Assistanttia. Koordinaattoriksi laitetaan SMLIGHT SLZB-06 laite.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Tällä kertaa otetaan käsittelyyn ZigBee verkon pystytys ja nimenomaan käytetään hyödyksi Zigbee2MQTT siltaa ja Home Assistanttia. Koordinaattoriksi laitetaan SMLIGHT SLZB-06 laite.&lt;/p&gt;
&lt;p&gt;Minulle tuli tämä tarpeeseen, kun järjesteltiin asuntoa hieman niin tuli tarve saada siirrettyä läppäripalvelin toiseen tilaan. Se kuitenkin piti äkkiä siirtää takaisin keskemmälle asuntoa sillä tuo antinen Sonoffin ZigBee koordinaattori oli USB:llä kiinni tuossa läppäripalvelimessa ja liian moni asia alkoi toimia huonommin. Laitoin sitten tilaukseen Power over Ethernetiä tukevan SMLIGHT SLZB-06 koordinattorin.&lt;/p&gt;
&lt;h2 id=&#34;smlight-slzb-06&#34;&gt;SMLIGHT SLZB-06
&lt;/h2&gt;
&lt;p&gt;Tämä päätyi minun ostoskoriin oikeastaan sen takia, että oli saanut kehuja Internetissä sekä isoimpana ominaisuutena on PoE tuki. Tämä siis saa virran ethernet kaapelista (jos siis on PoE injektori tai PoE kytkin). Tämä nimittäi helpottaa huomattavasti tämän sijoittelua sillä saan tämän yhdellä kaapelilla verkkoon ja virtoihin.&lt;/p&gt;
&lt;p&gt;Tämän asennus oli myöskin super helppoa sillä pistin vain verkkopiuhan kiinni PoE kytkimeen ja sen jälkeen määrittelin pfSense boxista tälle vielä kiinteän IP osoitteen niin eipähän sekään muutu.&lt;/p&gt;
&lt;p&gt;Tämän jälkeen kävin tuon hallintaisivuille (IP-osoitteen takana) katsomassa hieman määrityksiä ja päivittämässä tuoretta versiota sisään.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;slzb-dash.png&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;2498×1570&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2025/smlight-slzb-06-zigbee2mqtt-home-assistanttiin/slzb-dash_hu_7de42bfc95f4301c.webp&#34; alt=&#34;SMLIGHT SLZB-06 hallintasivu&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;1006&#34; data-name=&#34;slzb-dash.png&#34; data-dim=&#34;2498×1570&#34;&gt;&lt;/figure&gt;&lt;p&gt;Tuollahan on hallinnassa kohta mistä saat napattua suoraan konffeja Zigbee2MQTT:tä varten. Tämä löytyy Z2M and ZHA kohdasta ja näiden konffien avulla saat tämän koordinaattorin toimimaan omassa systeemissäsi.&lt;/p&gt;
&lt;p&gt;Valmistajan sivut: &lt;a href=&#34;https://smlight.tech/product/slzb-06/&#34;&gt;smlight.tech/product/slzb-06/&lt;/a&gt;&lt;br /&gt;
Ohjeet: &lt;a href=&#34;https://smlight.tech/manual/slzb-06/&#34;&gt;smlight.tech/manual/slzb-06/&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;zigbee2mqtt&#34;&gt;Zigbee2MQTT
&lt;/h2&gt;
&lt;p&gt;Tämäkin menee Dockeriin ja tämän kaverina menee myös Mosquitto kontti. Näiden kahden kanssa saadaan sitten Zigbee2MQTT silta toimimaan.&lt;/p&gt;
&lt;p&gt;Valitsin tuon Zigbee2MQTT sillan Home Assistantin ZHA yli oikeastaan sen takia, kun minulla oli ZHA käytössä ja se tuntui menevän rikki nyt viime aikoina. Jotkin pistokkeet ei menneet päälle HA dashboardin kautta ja oli muutakin hitautta. Epäilin syyksi, että joku on jossain ZHA:ssa jumissa ja pitäisi parittaa koko paletti uusiksi. Sen takia mietin, että sama lähteä tuon Zigbee2MQTT kelkkaan.&lt;/p&gt;
&lt;p&gt;Asennushan on suhteellisen simppeli sillä pistetään Docker kontti pystyyn ja määritetään asetukset. Tässä onkin vielä tuo minun &lt;code&gt;docker-compose.yml&lt;/code&gt; ja taas on &lt;code&gt;/opt/zigbee2mqtt&lt;/code&gt; kansiossa tuo oma asennus.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;version&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;3.8&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;services&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;mqtt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;eclipse-mosquitto:2.0&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;restart&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;unless-stopped&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;volumes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;- &lt;span class=&#34;s1&#34;&gt;&amp;#39;/opt/zigbee2mqtt/mosquitto-data:/mosquitto&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;environment&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;TZ=Europe/Helsinki&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;PUID=1000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;PGID=1000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ports&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;- &lt;span class=&#34;s1&#34;&gt;&amp;#39;1883:1883&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;- &lt;span class=&#34;s1&#34;&gt;&amp;#39;9001:9001&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;command&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;mosquitto -c /mosquitto-no-auth.conf&amp;#39;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;zigbee2mqtt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;container_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;zigbee2mqtt&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;restart&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;unless-stopped&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;koenkk/zigbee2mqtt&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;volumes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;/opt/zigbee2mqtt/zigbee2mqtt-data:/app/data&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;/run/udev:/run/udev:ro&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ports&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;- &lt;span class=&#34;m&#34;&gt;8082&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;8080&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;environment&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;TZ=Europe/Helsinki&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;PUID=1000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;PGID=1000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Alla onkin noita omia konffeja ja siivoilin siitä hieman ns. turhaa pois. Kannattaa tuon &lt;abbr title=&#34;Zigbee2MQTT&#34;&gt;Z2M&lt;/abbr&gt; ohjeita katsoa näihin. Nämähän on itsellä tuolla &lt;code&gt;zigbee2mqtt-data&lt;/code&gt; kansion &lt;code&gt;configuration.yaml&lt;/code&gt; tiedostossa.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;version&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;mqtt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;base_topic&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;zigbee2mqtt&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;server&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;mqtt://mqtt&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;serial&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;port&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;tcp://10.10.10.8:6638&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;baudrate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;115200&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;adapter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;zstack&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;frontend&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;enabled&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;homeassistant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;enabled&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;experimental_event_entities&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Sen jälkeen päästäänkin taas web käyttöliittymän kautta säätämään. Tärkeää on määrittää tuo koordinaattori, jotta &lt;abbr title=&#34;Zigbee2MQTT&#34;&gt;Z2M&lt;/abbr&gt; voi sitten käyttää sitä siksipä tuo kiinteä IP osoite lähiverkossa on todella hyvä olla tuolla koordinaattorilla.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;z2m-home.png&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;2500×1699&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2025/smlight-slzb-06-zigbee2mqtt-home-assistanttiin/z2m-home_hu_10c247bf6103b830.webp&#34; alt=&#34;Zigbee2MQTT hallintanäkymä&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;1087&#34; data-name=&#34;z2m-home.png&#34; data-dim=&#34;2500×1699&#34;&gt;&lt;/figure&gt;&lt;p&gt;Sen jälkeen ei tarvitse kuin paritella laitteet &lt;abbr title=&#34;Zigbee2MQTT&#34;&gt;Z2M&lt;/abbr&gt; kanssa. Se on helppoa sillä laitat vain &lt;abbr title=&#34;Zigbee2MQTT&#34;&gt;Z2M&lt;/abbr&gt; tilaan, jossa laitteet voi liittyä ja pistät aina laitteen paritustilaan. Heidän sivuilla on tosi hyvä kattaus laitteita ja miten ne saa paritustilaan.&lt;/p&gt;
&lt;p&gt;Kotisivut: &lt;a href=&#34;https://www.zigbee2mqtt.io/&#34;&gt;www.zigbee2mqtt.io&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;muuta-säätöä&#34;&gt;Muuta säätöä
&lt;/h2&gt;
&lt;p&gt;Home Assistantin päässä pitää tuo &lt;a href=&#34;https://www.home-assistant.io/integrations/mqtt/&#34;&gt;MQTT integraatio&lt;/a&gt; asentaa ja määrittää se. Sen jälkeen jokainen laite minkä lisäät &lt;abbr title=&#34;Zigbee2MQTT&#34;&gt;Z2M&lt;/abbr&gt; päässä tulee tuonne Home Assistantin MQTT puolelle.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;ha-mqtt.png&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;2082×836&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2025/smlight-slzb-06-zigbee2mqtt-home-assistanttiin/ha-mqtt_hu_87155bc68591558.webp&#34; alt=&#34;Home Assistant MQTT näkymä&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;642&#34; data-name=&#34;ha-mqtt.png&#34; data-dim=&#34;2082×836&#34;&gt;&lt;/figure&gt;&lt;p&gt;Tämä ei oikeastaan sen isommin säätöä tarvinnut. Isoin työmaa oli tosiaan parittaa nuo kaikki laitteet uudelleen. Samalla nimesin nuo hieman järkevämmin. Onneksi &lt;abbr title=&#34;Zigbee2MQTT&#34;&gt;Z2M&lt;/abbr&gt; sivuilla oli tosi hyvin ohjeita paritustilaan.&lt;/p&gt;
&lt;h2 id=&#34;miten-tämä-kombo-on-nyt-toiminut&#34;&gt;Miten tämä kombo on nyt toiminut?
&lt;/h2&gt;
&lt;p&gt;Lyhyesti sanottuna: &lt;strong&gt;Hyvin&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Ensimmäinen yllätys oli se, että pitkään ZHA kautta Home Assistantissa olleet Ikean Tretakt pistorasiat sai OTA päivityksen. Minulla oli OTA päivitykset myös ZHA puolella päällä ja ne välistä toimikin, mutta ilmeisesti ei ole noiden kohdalla toimineet.&lt;/p&gt;
&lt;p&gt;Toinen positiivinen asia on tuo kartta minkä saa tuolta. ZHA kartta oli, noh semmoinen oli. Tämä on huomattavasti parempi sillä laitetta klikkaamalla näet mihin se on liitoksissa ja voit havainnoida sinun oman kotisi ZigBee verkkoa helposti. Samoin karttaa voi zoomata jolloin saat kokokuvan tai vähän lähemmän kuvan omasta verkosta.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;z2m-map.png&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;2492×1152&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2025/smlight-slzb-06-zigbee2mqtt-home-assistanttiin/z2m-map_hu_e79774074da6ef7a.webp&#34; alt=&#34;Zigbee2MQTT kartta&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;740&#34; data-name=&#34;z2m-map.png&#34; data-dim=&#34;2492×1152&#34;&gt;&lt;/figure&gt;&lt;p&gt;Tuon hyvän kartan etuna on myös se, että sitä tulee käytettyä. Tulee hieman katsottua, että mikä laite on missäkin kiinni. Ei nimittäin kauheasti lämmitä jos esim. vuotovahti on yhdistynyt lamppuun joka sammutetaan kytkimestä ja näin ollen yhteys katkeaa.&lt;/p&gt;
&lt;h2 id=&#34;loppu-lätinää&#34;&gt;Loppu lätinää
&lt;/h2&gt;
&lt;p&gt;Tämäkin menee sarjaan: olisinpa alusta asti tehnyt näin. On tämä hieman parempi systeemi, kuin Home Assistantin sisäänrakennettu ZHA.&lt;/p&gt;
&lt;p&gt;Tuohan tämä taas yhden systeemin lisää tähän &amp;quot;himmeliin&amp;quot;, mutta ei tämä nyt vielä ainakaan ongelmalliselta vaikuta.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mitäs sitten säädetään?&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>Home Assistantin tietokannan vaihtaminen MariaDB ja InfluxDB tietokantoihin</title>
      <link>https://markokaartinen.net/2025/home-assistantin-tietokannan-vaihtaminen-mariadb-ja-influxdb-tietokantoihin</link>
      <pubDate>Sat, 15 Feb 2025 19:09:00 +0200</pubDate>
      <guid>https://markokaartinen.net/2025/home-assistantin-tietokannan-vaihtaminen-mariadb-ja-influxdb-tietokantoihin</guid>
      <description>Nyt mennään nörtimpään suuntaan ja pistetään Home Assistantin tietokantamoottoriksi MariaDB ja pitkäaikainen data sitten InfluxDB puolelle.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Nyt mennään hieman nörtimpään suuntaan ja lähdetään käymään läpi miten vaihdoin Home Assistantin tietokannan oletusarvoisesta SQLite tietokannasta MariaDB ja InfluxDB tietokantoihin. Näin jälkiviisaana tämä olisi ollut hyvä tehdä alusta asti.&lt;/p&gt;
&lt;p&gt;Tavoitteena on saada Home Assistant käyttämään MariaDB tietokantaa jossa olisi 7 tai 14 päivän verran dataa (en ole vielä päättänyt). Sitten pitkäaikainen data olisi InfluxDB tietokannassa ja Grafanan kautta selattavissa.&lt;/p&gt;
&lt;p&gt;Harvemmin tulee Home Assistantin kautta historiadataa katseltua ja nyt voin määritellä InfluxDB tietokantaan vain sen datan mitä haluan selata eli käytännössä lämpötiloja ja sähkön kulutustietoja. Tällä hetkellä pääkiinnostus on lämpötiloissa. Tätä voi kuitenkin säätää tulevaisuudessa jos tulee laitteita joiden arvoa haluan seurata.&lt;/p&gt;
&lt;p&gt;Parasta näiden Home Assistanttien ja avointen systeemien kanssa on se vapaus, että voin tehdä miten ja mitä haluaa.&lt;/p&gt;
&lt;p&gt;Sen vielä sanon ennen kuin alan säädöstä kertomaan, että päätin etten ala tuomaan SQLite kannasta tietoa sillä itsellä oli muutos menossa ZHA:sta Zigbee2MQTT ja siinä vaihdoin kaikkien ZigBee laitteiden nimet. Näin olisi pitänyt tehdä jotain yhdistelyä yms. säätöä mitä en olisi jaksanut.&lt;/p&gt;
&lt;h2 id=&#34;aloitetaan-säätö&#34;&gt;Aloitetaan säätö
&lt;/h2&gt;
&lt;p&gt;Minullahan on Home Assistant asennettuna Docker composen kautta ja jaankin tässä tuon minun &lt;code&gt;docker-compose.yml&lt;/code&gt; tiedoston sisällöt koskien tätä projektia. Samoin minulla on tämä asennus polussa &lt;code&gt;/opt/homeassistant&lt;/code&gt; joten jos otat mallia niin ota oma ympäristö huomioon.&lt;/p&gt;
&lt;p&gt;No niin aloitetaan. Luodaan ensin &lt;code&gt;.env&lt;/code&gt; tiedosto &lt;code&gt;/opt/homeassistant&lt;/code&gt; kansion juureen. Sinne pistetään hieman tunnuksia ja salasanoja.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-dotenv&#34; data-lang=&#34;dotenv&#34;&gt;MYSQL_ROOT_PASSWORD=&amp;#34;MariaDB root salasana&amp;#34;
MYSQL_HA_DATABASE=&amp;#34;MariaDB tietokannan nimi esim. homeassistant&amp;#34;
MYSQL_HA_USER=&amp;#34;MariaDB tietokannan käyttäjä esim. homeassistant&amp;#34;
MYSQL_HA_PASSWORD=&amp;#34;MariaDB homeassistant käyttäjän salasana&amp;#34;

INFLUXDB_USER=&amp;#34;InfluxDB käyttäjä esim. homeassistant&amp;#34;
INFLUXDB_PASSWORD=&amp;#34;InfluxDB käyttäjän salasana&amp;#34;
INFLUXDB_ORG=&amp;#34;InfluxDB organisaatio esim. Koti&amp;#34;
INFLUXDB_BUCKET=&amp;#34;InfluxDB bucket esim. homeassistant&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Sit voidaankin lisätä &lt;code&gt;docker-compose.yml&lt;/code&gt; tiedostoon kaikki mahdollinen. Kannattaa ensin pistää Home Assistant kontti alas jos sellainen vielä pyörii.&lt;/p&gt;
&lt;p&gt;Alla onkin minun tiedosto, jossa on määritettynä tosiaan seuraavat kontit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Home Assistant&lt;/li&gt;
&lt;li&gt;MariaDB&lt;/li&gt;
&lt;li&gt;InfluxDB&lt;/li&gt;
&lt;li&gt;AdminerEvo&lt;/li&gt;
&lt;li&gt;Grafana&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Minulla on myös luotuna kansiorakenne tuossa tiedostossa määritetyillä poluilla.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;version&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;3&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;services&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;homeassistant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;container_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;homeassistant&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;ghcr.io/home-assistant/home-assistant:stable&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;volumes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;/opt/homeassistant/config:/config&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;/etc/localtime:/etc/localtime:ro&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;/run/dbus:/run/dbus:ro&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;restart&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;unless-stopped&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;privileged&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;network_mode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;host&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;depends_on&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;influxdb2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;mariadb&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;mariadb&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;container_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;mariadb&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;mariadb&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;restart&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;unless-stopped&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ports&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;m&#34;&gt;3307&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3306&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;environment&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;TZ=Europe/Helsinki&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;MYSQL_DATABASE=${MYSQL_HA_DATABASE}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;MYSQL_USER=${MYSQL_HA_USER}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;MYSQL_PASSWORD=${MYSQL_HA_PASSWORD}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;volumes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;/opt/homeassistant/mariadb/data:/var/lib/mysql&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;/opt/homeassistant/mariadb/config/:/etc/mysql/conf.d&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;influxdb2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;container_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;influxdb2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;influxdb:2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;restart&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;unless-stopped&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ports&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;m&#34;&gt;8086&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;8086&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;environment&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;TZ=Europe/Helsinki&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;DOCKER_INFLUXDB_INIT_MODE=setup&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;DOCKER_INFLUXDB_INIT_USERNAME=${INFLUXDB_USER}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;DOCKER_INFLUXDB_INIT_PASSWORD=${INFLUXDB_PASSWORD}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;DOCKER_INFLUXDB_INIT_ORG=${INFLUXDB_ORG}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;DOCKER_INFLUXDB_INIT_BUCKET=${INFLUXDB_BUCKET}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;volumes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;/opt/homeassistant/influxdb/data:/var/lib/influxdb2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;/opt/homeassistant/influxdb/config/:/etc/influxdb2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;adminer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;container_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;adminer&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;ghcr.io/shyim/adminerevo:latest&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;restart&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;unless-stopped&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;depends_on&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;mariadb&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ports&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;m&#34;&gt;8180&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;8080&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;environment&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;TZ=Europe/Helsinki&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;ADMINER_DEFAULT_DRIVER=server&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;ADMINER_DEFAULT_SERVER=mariadb&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;ADMINER_DEFAULT_USER=${MYSQL_HA_USER}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;ADMINER_DEFAULT_PASSWORD=${MYSQL_HA_PASSWORD}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;ADMINER_DEFAULT_DB=${MYSQL_HA_DATABASE}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;grafana&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;container_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;grafana&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;user&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;1000:1000&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;environment&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;TZ=Europe/Helsinki&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;image&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;grafana/grafana:latest&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;restart&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;unless-stopped&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;volumes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;/opt/homeassistant/grafana:/var/lib/grafana&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;depends_on&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;influxdb2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ports&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;m&#34;&gt;3000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Vielä ennen kuin nostelin kontteja ylös niin piti tehdä pari lisäystä Home Assistantin &lt;code&gt;secrets.yaml&lt;/code&gt; tiedostoon, jotta saadaan pari määritystä sinnekin.&lt;/p&gt;
&lt;p&gt;Ensin pitää lisätä sinne MariaDB määre. Tuossa korvaa nuo isoilla kirjaimilla olevat omilla määreilläsi.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;mariadb&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;mysql://MYSQL_HA_USER:MYSQL_HA_PASSWORD@IP:PORTTI/MYSQL_HA_DATABASE?charset=utf8mb4&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nyt pitäisi ensin muokata pari riviä tuohon Home Assistantin &lt;code&gt;configuration.yaml&lt;/code&gt; tiedostoon, jotta saadaan MariaDB yhteys toimimaan.  Tuossa on recorder määre ja tähän löytyy dokumentointia Home Assistantin &lt;a href=&#34;https://www.home-assistant.io/integrations/recorder/&#34;&gt;sivuilta&lt;/a&gt;. Mulla on tuossa myös purgen päivien määrä. Oletuksena tuo on 10.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;recorder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;db_url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;!&lt;span class=&#34;l&#34;&gt;secret mariadb&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;purge_keep_days&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;history&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nyt voidaankin nostaa jo kontit ylös. Ja nyt pitäisi sinulle toimia MariaDB yhteys. Voit käydä katsomassa Adminerin kautta meneekö sinne dataa.&lt;/p&gt;
&lt;p&gt;Mutta nyt pitäisi sitten vielä InfluxDB saada toimimaan. Noh tätä varten sun pitää käydä luomassa Token siellä InfluxDB puolella. Se sitten käydään pistämässä taas sinne &lt;code&gt;secrets.yaml&lt;/code&gt; tiedostoon.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;influxdb_host&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;IPOSOITE&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;influxdb_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;InfluxDB puolella luotu token&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;influx_org&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;InfluxDB organisaatio minkä määritit myös Dockeriin&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Sitten vielä määritetään tuo InfluxDB yhteys Home Assistantin &lt;code&gt;configuration.yaml&lt;/code&gt; tiedostoon. Tästäkin on ohjetta vielä lisää Home Assistantin &lt;a href=&#34;https://www.home-assistant.io/integrations/influxdb/&#34;&gt;sivuilla&lt;/a&gt; ja itse olenkin määrittänyt sen alla olevaan tapaan.&lt;/p&gt;
&lt;p&gt;Minulla menee vain sensorit missä on nimissä _energy, _temperature ja _power loput. Nämä kiinnostaa minua eniten. Voin tarpeen mukaan muokata ja lisätä niitä.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;influxdb&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;api_version&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;ssl&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;host&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;!&lt;span class=&#34;l&#34;&gt;secret influxdb_host&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;port&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;8086&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;!&lt;span class=&#34;l&#34;&gt;secret influxdb_token&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;organization&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;!&lt;span class=&#34;l&#34;&gt;secret influx_org&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;bucket&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;homeassistant&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;tags&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;source&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;HomeAssistant&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;tags_attributes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;friendly_name&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;default_measurement&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;units&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;include&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;entity_globs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;sensor.*_energy&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;sensor.*_temperature&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;- &lt;span class=&#34;l&#34;&gt;sensor.*_power&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nyt voit halutessasi napata vielä kontit alas ja takas ylös. Tämä muutos voi myös mennä päälle käynnistämällä pelkkä HA uudestaan kehittäjän asetusten alta.&lt;/p&gt;
&lt;h2 id=&#34;entäs-sitten&#34;&gt;Entäs sitten
&lt;/h2&gt;
&lt;p&gt;No nyt voitkin alkaa säätämään. Tai no kunhan sitä dataa tulee niin voi alkaa isomminkin säätämään.&lt;/p&gt;
&lt;p&gt;Sinun pitää tietysti yhdistää Grafana ja InfluxDB, jolloin saat Grafanalla tehtyä vaikka sun minkälaista käppyrää ja säätöä... Siinä on kyllä hurjasti eri mahdollisuuksia ja työkaluja. En itsekään ole siitä vielä ihan kaikkea mahdollista potentiaalia kerennyt tutkimaan, mutta ekat graafit vaikuttaa jo tosi lupaavilta. Alla onkin nopeat säädöt mitä tein lämpötiloista.&lt;/p&gt;
&lt;figure class=&#34;kuva&#34;&gt;&lt;span class=&#34;kuva-ikkuna&#34; aria-hidden=&#34;true&#34;&gt;&lt;span class=&#34;kuva-nimi&#34;&gt;grafana.png&lt;/span&gt;&lt;span class=&#34;kuva-koko&#34;&gt;2490×1378&lt;/span&gt;&lt;/span&gt;&lt;img src=&#34;https://markokaartinen.net/2025/home-assistantin-tietokannan-vaihtaminen-mariadb-ja-influxdb-tietokantoihin/grafana_hu_afb5a7728f9dee85.webp&#34; alt=&#34;Grafana graafi eri lämpötiloista&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34; width=&#34;1600&#34; height=&#34;885&#34; data-name=&#34;grafana.png&#34; data-dim=&#34;2490×1378&#34;&gt;&lt;/figure&gt;&lt;p&gt;Tuon kanssa voisi säätää ja pitää säätää lisääkin. Nyt varsinkin kun alkaa tuota dataa olla siellä niin voi saada mielenkiintoisempiakin graafeja ja mitä nyt keksiikään.&lt;/p&gt;
&lt;p&gt;Noitahan voi upottaa myös Home Assistantin dashboardeille, kun säätää hieman konffeja taas, joten saisi noita helposti näkyviinkin.&lt;/p&gt;
&lt;h2 id=&#34;kannattiko&#34;&gt;Kannattiko?
&lt;/h2&gt;
&lt;p&gt;No oikeastaan joo. Voisi melkein tiputtaa tuon Home Assistantin MariaDBseen tallentavan datan määrän 7 päivään. Itsellä ei kuitenkaan ole tarve säilöä tuota dataa ja ei ole mitenkään ongelma jos se sattuu nyt katoamaankaan.&lt;/p&gt;
&lt;p&gt;Nyt pitäisi vielä melkein tehdä joku varmuuskopiointi MariaDB ja InfluxDB datalle. Ei ehkä huono ajatus tämäkään, tästähän tulee sitten varmaan blogia... 🤔&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://kaartinen.social/@marko&#34;&gt;Mastodonissa&lt;/a&gt; oli puhetta kuormasta ja oliko tästä nyt sinällään hyötyä. SQLitehän on toimiva ja nykyisillä nopeilla kiintolevyillä ei tuonkaan käyttö olisi ongelma. Varsinkin jos rajoittaa datan määrää tuolla ja sitten pistäisi juuri InfluxDB pitkäaikaisen datan säilytykseen. Kuormaa en ole kauheammin seurannut ennen tai jälkeen sillä tuolla läppäripalvelimella on resursseja käytettävissä ja sinällään siitä ei tällä hetkellä ole pulaa.&lt;/p&gt;
&lt;p&gt;Ei tämä varmaan kaikille kävisi sillä tuo SQLite on vain helpompi tapa toimia. Eikä tuo MariaDB ole mitenkään välttämätön. Itse jotenkin tykkään ehkä enemmän siitä, että on oma kanta kontti pyörimässä.&lt;/p&gt;
&lt;p&gt;Toki tässä tehdään asiasta taas hieman monimutkaisempi, mutta hei tämä on tätä selfhosted mentaliteettia, että tehdään koska voidaan ja siitä säätämisen ilosta. &lt;strong&gt;Tämä nyt sattuu olemaan ihan mukavaa puuhaa.&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
    </item>
    <item>
      <title>Mitä kotiverkossani oikein &#34;pyörii&#34;</title>
      <link>https://markokaartinen.net/2025/mita-kotiverkossani-oikein-pyorii</link>
      <pubDate>Fri, 14 Feb 2025 18:55:00 +0200</pubDate>
      <guid>https://markokaartinen.net/2025/mita-kotiverkossani-oikein-pyorii</guid>
      <description>Nyt alkaa artikkelisarja, jossa kerron hieman mitä kotiverkossani oikein pyörii. Samaan sarjaan menee tämän kotiverkon säätäminen ja siihen liittyvät artikkelit.</description>
      <content:encoded>&lt;p class=&#34;lead&#34;&gt;Nyt aloitetaan uusi sarja joka hieman sivuaa vanhempaa &lt;a href=&#34;https://markokaartinen.net/sarja/alykoti&#34;&gt;älykoti&lt;/a&gt; sarjaa. Tässä kuitenkin lähdetään hieman laajemmalta kantilta sillä minullahan kotiverkossa pyörii vaikka sun mitä.&lt;/p&gt;
&lt;p&gt;Tässä uudessa Selfhosted nimeä kantavassa artikkelisarjassa lähdetään pitkälle (siis pitkälle) matkalle yhdessä itse hostaamisen maailmaan. Katsotaan mitä kaikkea sitä täällä minun kotiverkossa pyörii.&lt;/p&gt;
&lt;p&gt;Toki tässä sarjassa taklataan erinäisiä ongelmia ja tämä olkoon jonkinlaista dokumentointia (avautumista) itselle ja infoa muille.&lt;/p&gt;
&lt;p&gt;Tässä ekassa osassa käydään pintapuolisesti läpi mitä täällä nyt tällä hetkellä pyörii. Sitten tulevissa osissa käydään läpi sitten yksittäisiä osia ja säätämisiä.&lt;/p&gt;
&lt;h2 id=&#34;palomuuri&#34;&gt;Palomuuri
&lt;/h2&gt;
&lt;p&gt;Aloitetaan siitä mikä hoitaa minulla dhcp virkaa ja muutenkin yksi tärkeä osa tätä verkkoa.&lt;/p&gt;
&lt;p&gt;Ostin pari vuotta sitten käytettynä eBaystä Fujitsu Futro S920 tietokoneen ja verkkokortin siihen. Siitä rakentelin sitten &lt;a href=&#34;https://www.pfsense.org/&#34;&gt;pfSense&lt;/a&gt; pohjaisen palomuurin ja se onkin hoitanut virkansa erittäin mallikkaasti.&lt;/p&gt;
&lt;p&gt;pfSense boxi hoitaakin myös lähiverkon dhcp palvelimen virkaa ja luo minulle oman 10.10.10.x lähiverkon. pfSense boxista saan halutessani avattua portteja tarkemmin ulkomaailmaan eli esim. jos haluan hostata jotain pelipalvelinta ja se kaipaa jotain tiettyä.&lt;/p&gt;
&lt;h2 id=&#34;läppäripalvelin&#34;&gt;Läppäripalvelin
&lt;/h2&gt;
&lt;p&gt;Palomuurikoneen jälkeen vanha kannettava, josta on tehty palvelin on tämän kodin tärkeimpiä työjuhtia. Tässä onkin tuoretta Ubuntua sisässä sillä itselle on tuo Ubuntu ja Debian pohjaiset Linuxit tutuimpia palvelinympäristössä.&lt;/p&gt;
&lt;p&gt;Tällä koneella nimittäin pyörii melkein kaikki tässä huushollissa tarvittava. Oikeastaan kaikki palvelut pyörii &lt;a href=&#34;https://www.docker.com/&#34;&gt;Docker&lt;/a&gt; konteissa ja siinä on apuna &lt;a href=&#34;https://docs.docker.com/compose/&#34;&gt;Docker compose&lt;/a&gt;, jolloin saan hieman jaettua kansioihin ja yml filuihin noita.&lt;/p&gt;
&lt;p&gt;Ei ole yhtä mega isoa &lt;code&gt;docker-compose.yml&lt;/code&gt; filua vaan olen koittanut hieman jakaa niitä osiin ja näin saada toisiinsa liittyvät kontit samaan &amp;quot;nippuun&amp;quot;.&lt;/p&gt;
&lt;p&gt;Läppäripohjaisen palvelimen &amp;quot;etu&amp;quot; on se, että siinä on periaatteessa pienimuotoinen akku matkassa ja virran katketessa se toimii. Tämä ei tietysti kauheasti lämmitä sillä jos koko talosta katkeaa virta niin katoaa nettikin.&lt;/p&gt;
&lt;h2 id=&#34;nassikka&#34;&gt;NASsikka
&lt;/h2&gt;
&lt;p&gt;Tämä verkko NAS onkin yksi uusimpia lisäyksiä verkkoon. Ostin nimittäin käytetyn ZyXEL NAS542 purkin johon pistin sitten 3x 4 teran levyä ja vielä olisi yksi paikka vapaanakin.&lt;/p&gt;
&lt;p&gt;Nämä on RAID5:ssä joten noista voi yksi hajota ja tilaa on käytettävissä noin 8 teraa. Yhdellä levyllä saisin tuon nostettua vielä 12 teraan.&lt;/p&gt;
&lt;p&gt;Tämä oli loistava hankinta sillä tuo vanha boxi toimii mun tarkoitukseen oikein hyvin ja se korvasi vanhan (siis tosi vanhan) koneen joka alkoi vedellä viimeisiään.&lt;/p&gt;
&lt;h2 id=&#34;langaton-verkko&#34;&gt;Langaton verkko
&lt;/h2&gt;
&lt;p&gt;Langaton verkko onkin itsellä &lt;a href=&#34;https://techspecs.ui.com/unifi/wifi/u6-plus?subcategory=all-wifi&#34;&gt;Ubiquiti U6+&lt;/a&gt; tukiasemien varaan rakennettu. Tätä varten mulla pyöriikin &lt;a href=&#34;https://hub.docker.com/r/linuxserver/unifi-network-application&#34;&gt;Unifin konttia MongoDB&lt;/a&gt; kanssa, jotta saan hallittua langatonta verkkoa näppärästi.&lt;/p&gt;
&lt;p&gt;Mulla on ylä- ja alakerrassa omat tukarit ja näillä onkin sitten riittävä kattavuus koko asuntoon ja parvekkeelle. Noissa U6+ purkeissa on toiminut hyvin mesh ominaisuus ja laitteet vaihteleekin ylä- ja alakerran tukarien välillä itsestään.&lt;/p&gt;
&lt;h2 id=&#34;kotiautomaatio&#34;&gt;Kotiautomaatio
&lt;/h2&gt;
&lt;p&gt;Tämä on ehkä se tärkein ja isoin osa tätä himmeliä mikä kotona oikein pyörii. Nimittäin kotiautomaatio... tämä loputon suo, johon saa aina lisää säätöä.&lt;/p&gt;
&lt;p&gt;Minulla homma pohjautuu &lt;a href=&#34;https://www.home-assistant.io/&#34;&gt;Home Assistanttiin&lt;/a&gt;. Siihen nimittäin saa yhdistettyä vaikka sun mitä. Tämän lisäksi olen päättänyt käyttää &lt;a href=&#34;https://fi.wikipedia.org/wiki/ZigBee&#34;&gt;ZigBee&lt;/a&gt; laitteita mahdollisuuksien mukaan sillä niitä saa esim. Ikeasta.&lt;/p&gt;
&lt;p&gt;ZigBeen säädin juuri äsken uusiksi. Asensin nimittäin vihdoin tuon SLZB-06 PoE koordinaattorin ja samalla sitten pistin &lt;a href=&#34;https://www.zigbee2mqtt.io/&#34;&gt;ZigBee2MQTT&lt;/a&gt; ja Mosquitto brokerin toimintaan. Tämä vaati kaiken parittamisen uudelleen, mutta oli se sen väärti sillä OTA päivityksiä tuli heti pariin kytkimeen.&lt;/p&gt;
&lt;p&gt;Ettei viimeaikainen säätö loppuisi niin vaihdoin tietokannan oletus SQLitestä &lt;a href=&#34;https://mariadb.org/&#34;&gt;MariaDB&lt;/a&gt; tietokantaan sekä samalla muutin asetuksista sen, että MariaDB:ssä on 7 päivän verran dataa. Historiatiedon pistin nimittäin menemään &lt;a href=&#34;https://www.influxdata.com/&#34;&gt;InfluxDB:seen&lt;/a&gt; ja sitä ihmettelen sitten &lt;a href=&#34;https://grafana.com/&#34;&gt;Grafanan&lt;/a&gt; avulla.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://docs.adminerevo.org/&#34;&gt;AdminerEvo&lt;/a&gt; kontti minulla on sitten ihan vain, että voin halutessani käydä katselemassa tuota MariaDB:tä, jos innostuin jotain hakemaan sieltä suoraan.&lt;/p&gt;
&lt;p&gt;Samoin odottamassa on &lt;a href=&#34;https://nodered.org/&#34;&gt;Node-RED&lt;/a&gt; kontti jos hieman monimutkaisempia säätöjä tekisin sen kanssa. Ehkä joku päivä.&lt;/p&gt;
&lt;p&gt;Sitten minulla on kotona pari ESP32 lastua. Toisessa on lämpötilasensori kiinni, joka menee sitten takapihalle. Toisessa on taas sitten etupihan sensori ja se bluetoothilla hakee saunasta olevasta Inkbird IBS-TH1 sensorista.&lt;/p&gt;
&lt;p&gt;Home Assistanttiin on myös kytketty paljon muuta. Tässä nyt pientä listaa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Robotti imuri&lt;/li&gt;
&lt;li&gt;3D-tulostin&lt;/li&gt;
&lt;li&gt;Kalenteri&lt;/li&gt;
&lt;li&gt;Pörssisähkön hintaa&lt;/li&gt;
&lt;li&gt;Säätä&lt;/li&gt;
&lt;li&gt;Bussiaikataulua&lt;/li&gt;
&lt;li&gt;Siitepölyä&lt;/li&gt;
&lt;li&gt;ZigBee lamppuja&lt;/li&gt;
&lt;li&gt;ZigBee lämpötilasensoreita&lt;/li&gt;
&lt;li&gt;ZigBee kytkimiä&lt;/li&gt;
&lt;li&gt;ZigBee liiketunnistimia&lt;/li&gt;
&lt;li&gt;ZigBee pistokkeita&lt;/li&gt;
&lt;li&gt;Sekä varmaan jotain muuta mitä unohtanut&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;muuta-mukavaa&#34;&gt;Muuta mukavaa
&lt;/h2&gt;
&lt;p&gt;Tämä menee sit osioon vähän kaikkea mainitsemisen arvoista mitä sattuu pyörimäänkään.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.plex.tv/&#34;&gt;Plex&lt;/a&gt; pyörii tietysti ja tuolta NASsin puolelta voidaankin katsoa elokuvia sekä sarjoja mitä jokunen sieltä löytyy.&lt;/p&gt;
&lt;p&gt;Pitäähän sitä selaimella päästä helposti muokkaamaan Home assistantin ja muita Docker konttien konffeja niin pyörii tietty &lt;a href=&#34;https://code.visualstudio.com/docs/remote/vscode-server&#34;&gt;Visual Studio Code Server&lt;/a&gt;, jolla näppärästi selaimella päästään editoriin.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.portainer.io/&#34;&gt;Portainer&lt;/a&gt; mulla on oikeastaan ihan sen takia, että voin sieltä käydä vilkuilemassa konttien tilaa ja lokeja. Sen nyt ehkä hitusen on korvannut &lt;a href=&#34;https://dozzle.dev/&#34;&gt;Dozzle&lt;/a&gt;, jota olen käyttänyt logien lukuun. En itse Portainerin kautta kontteja muuten hallitse. Joskus lähinnä debuggaamiseen käyttänyt sitä.&lt;/p&gt;
&lt;p&gt;Uusimpia lisäyksiä on &lt;a href=&#34;https://uptime.kuma.pet/&#34;&gt;Uptime Kuma&lt;/a&gt; ja konttien sekä kotiverkossa olevien laitteiden monitorointi. Mulla on tuolla kaikki kontit seurannassa sekä muutama palvelu ja laite erikseen monitoroinnista. Mikäli joku menee alas niin tulee Telegrammiin ilmoitusta siitä. Tämä on vaikuttanut toimivan hyvin sillä pari kertaa, kun olen seuratun ESP32 lastun pistänyt alas niin on tullut ilmoitusta.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/bastienwirtz/homer&#34;&gt;Homer&lt;/a&gt; taas toimii itsellä näppäränä &amp;quot;kotisivuna&amp;quot;, jonne olen linkitellyt näitä eri palveluita niin ei tarvitse ulkoa muistaa missäs portissa sitä mitäkin oli.&lt;/p&gt;
&lt;h2 id=&#34;loppusanoja&#34;&gt;Loppusanoja
&lt;/h2&gt;
&lt;p&gt;Jotain tästä nyt varmaan jäi uupumaan sillä tuota systeemiä on ihan jonkun verran tuolla pyörimässä...&lt;/p&gt;
&lt;p&gt;Otan muuten vastaan ideoita ja ehdotuksia! Mikäli sulla on jotain mukavaa, hassua, hauskaa tai jotain mielessä niin pistä viestiä!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Säädätkö sinä kotipalvelimen kanssa?&lt;/strong&gt;&lt;/p&gt;
</content:encoded>
    </item>
  </channel>
</rss>
