jakub@quanetra:~/projects$ ssh pi@homestats

Ikona HomeStats

Raspberry Pi · Matter · SQLite

Twój dom mierzy się sam.
I zostawia to u siebie.

Kolektor odpytuje czujniki Matter co minutę i dopisuje pomiary do SQLite na Raspberry Pi. Ten sam komputer wystawia w sieci domowej dziesięć widoków: od odpowiedzi „co dzieje się teraz”, przez przebiegi, rytm i zależności, po koszt energii, zdarzenia, raport i surowe wiersze. Żadnej chmury, konta ani abonamentu.

+--[ dashboard ]--+HOMESTATS — pulpit, okno 24 h
Pulpit HomeStats: nagłówek, filtry zakresu i sekcja „na żywo”
[sprzęt]Raspberry Pi 64-bit
[czujniki]Matter 1.3+
[baza]SQLite, lokalnie
[odczyt]co 1 minutę
$ homestats --live salon1 MIN

Kolorowa ilustracja tekstowa: cztery przebiegi pomiarów z salonu, pod nimi wpis o wietrzeniu i licznik zapytań do chmury równy zeru.

// features

Jedna baza, jedno Pi,
dziesięć pytań do domu.

+--[01]--+

Pomiar co minutę

Kolektor pyta każdy czujnik Matter raz na minutę i zapisuje odczyt z nazwą urządzenia, endpointem i jednostką. Nazwa siedzi w osobnej tabeli, więc jej zmiana obejmuje całą historię — czujnik nie rozdwaja się na wykresach.

+--[02]--+

Wyliczone z tego, co jest

Z temperatury i wilgotności biorą się punkt rosy, wilgotność bezwzględna i temperatura odczuwalna — bez nowego czujnika i dla całej historii wstecz. Z mocy gniazdka: zużycie, koszt po Twojej taryfie, pobór jałowy i cykl pracy.

+--[03]--+

Okno, które sam wybierasz

6 h, 24 h, 7 dni, 30 dni albo dowolny przedział. Jeden pasek steruje wszystkimi widokami danych: porównaniem z poprzednim okresem, profilem z wcześniejszych siedmiu dni, agregacją i eksportem CSV.

+--[04]--+

43 panele, ale nie jedna ściana

Interfejs jest podzielony według pytań: Teraz, Przebiegi, Dom, Rytm, Porównania, Energia, Zdarzenia i Raport. Każdy panel ma numer i własne miejsce w bocznej szynie, a skrót pod filtrami od razu podaje najważniejsze wnioski dla bieżącej strony.

+--[05]--+

Świeżość widać od razu

Gdy najstarszy czujnik milczy dłużej niż próg z Konfiguracji, wchodzi czerwony baner na przyciemnionym tle: strona przestaje udawać, że pokazuje stan obecny. Ten sam baner, w bursztynie, mówi o błędzie pobierania.

+--[06]--+

Stała czasowa budynku

Z nocnego stygnięcia wychodzi jedna liczba: jak dom trzyma ciepło. Liczona wobec zmierzonej różnicy temperatur, jeśli zaznaczysz, który czujnik stoi na zewnątrz — Matter tego nie zgłasza, a z samych pomiarów rozstrzygnąć się nie da.

LIVE://WALL_MODE+--[ now ]--+15 MIN
Tryb ścienny HomeStats: sam widok na żywo, bez nawigacji

// right_now

„Za chwilę" zamiast
„było o 3:00".

Pulpit opisuje okno, a dom dzieje się teraz — to dwie różne rzeczy i sekcja „Na żywo” jest dla tej drugiej. Każda seria dostaje zdanie: ile wynosi, w którą stronę idzie i za ile minut przy obecnym tempie dojdzie do progu. Puls mówi, ile czujników odpowiada, a gdy zamilkną wszystkie naraz — mówi wprost, że to Raspberry Pi albo sieć, a nie czujniki.

15 min okno stanu serii2 h horyzont zapowiedzi

// analysis

Sześć pytań,
których przebieg nie zadaje.

Linia mówi, co działo się po kolei. Te panele pytają o czas ponad granicą, wspólny ruch, pleśń, rachunek, wietrzenie i fizykę wilgotnego powietrza.

01DURATIONLOCAL
Krzywa uporządkowana wartości w oknie

Krzywa uporządkowana

Ile czasu wartość leżała ponad granicą — a nie jak często się pojawiała. To dwie różne rzeczy i tylko pierwsza odpowiada na „ile godzin w tym miesiącu CO₂ było ponad tysiąc”.

02MATRIXLOCAL
Macierz korelacji między pomiarami

Macierz korelacji

Wszystkie pary pomiarów naraz, czujnik po czujniku. Stąd widać, że wilgotność w sypialni chodzi za temperaturą, a pył za oknem nie ma z żadnym z nich wiele wspólnego.

03MOULDLOCAL
Tabela ryzyka pleśni dla pomieszczeń

Ryzyko pleśni

Wilgotność liczona przy najzimniejszej powierzchni w domu, a nie w środku pokoju: grzybnia rośnie już przy 80%, czyli długo zanim na ścianie pojawi się woda, o której mówi wykroplenie.

04ENERGYLOCAL
Panel zużycia energii i kosztu

Zużycie i koszt

Kilowatogodziny, koszt po Twojej taryfie, pobór jałowy i cykl pracy urządzenia — z rozbiciem rachunku na to, co poszło na samo stanie w gnieździe, a co na pracę.

05AIRINGLOCAL
Panel wykrytego wietrzenia z czasem, skutecznością i kosztem cieplnym

Wietrzenie bez kontaktronu

Szybki, utrzymujący się spadek CO₂ zostaje oznaczony jako prawdopodobne wietrzenie. Panel podaje czas, skuteczność i koszt cieplny, ale zachowuje uczciwe „prawdopodobne” — ten sam ślad może zostawić przeciąg albo wyjście domowników.

06PSYCHROLOCAL
Wykres zależności temperatury i wilgotności z liniami punktu rosy

Temperatura razem z wilgotnością

Punkty pomiarowe na wykresie psychrometrycznym, linie stałego punktu rosy i prostokąt komfortu. Widać, czy powietrze naprawdę nabrało wody, czy tylko zrobiło się chłodniejsze.

Poza nimi: gradienty między czujnikami, zmierzona krotność wymiany powietrza z zaniku CO₂, rozkłady dzień po dniu, pudełka dni tygodnia, nakładka kolejnych dób, tempo nagrzewania domu i różnica dwóch czujników w czasie.

EVENTS://TIMELINE+--[ 22 series ]--+BY WEIGHT
Oś czasu zdarzeń HomeStats z pasami dla każdej serii

// event_channel

Dziewiętnaście rodzajów zdarzeń
z jednego zestawu pomiarów.

Obok odchylenia od profilu dobowego i wyjścia poza próg stoją: trwała zmiana poziomu, dryf kalibracji między dwoma czujnikami, kombinacja wartości z osobna normalnych, front atmosferyczny z ciśnienia, otwarte okno odczytane bez czujnika CO₂ i obecność domowników oszacowana z tempa jego narastania. Zdarzenia kilku czujników mające wspólną chwilę zwijają się w incydent, a te sięgające końca okna stoją osobno, pod nagłówkiem „dzieje się teraz”, z licznikiem minut zamiast godziny zakończenia.

19 rodzajów w kanale4 pytania zadawane gniazdku

// report

Te same liczby,
ułożone w zdania.

Raport streszcza okno prozą, z jedną regułą bez wyjątków: żadnego zdania bez liczby. Obok niego stoi jakość danych — kompletność, przerwy, rozdzielczość i zamarznięcia wszystkich serii w jednej tabeli, uporządkowane od najsłabszej. Bo to ona rozstrzyga, ile z opisywanego okresu w ogóle zmierzono.

  • ✓ średnia i porównanie z wczoraj o tej porze
  • ✓ godziny ponad progiem, nie liczba przekroczeń
  • ✓ najsłabsza seria i najdłuższa przerwa w danych
  • ✓ koszt energii w oknie, po Twojej taryfie
Raport HomeStats: podsumowanie okna w zdaniach
Tabela jakości danych: kompletność, przerwy i rozdzielczość serii

// beside_the_dashboard

Jedna aplikacja,
sześć różnych pytań.

01/przebiegiSQLITE
Podstrona Przebiegi z szeregiem wykresów pomiarów

Przebiegi

Dziewięć metryk na osobnych wykresach, z warstwami min–maks, poprzednim okresem i profilem z siedmiu dni. Każdy wykres można przybliżyć i otworzyć na pełnym ekranie.

02/domSQLITE
Podstrona Dom z analizami budynku i powietrza

Dom

Panele wynikające z fizyki budynku: gradienty, wymiana powietrza, pleśń, wietrzenie, stała czasowa oraz wspólny obraz temperatury i wilgotności.

03/rytmSQLITE
Podstrona Rytm z mapą godzin i analizą cykli

Rytm

Mapa godzin, profil dobowy, dni tygodnia, nakładka okresów, rozkłady dzień po dniu i kalendarz roczny pokazują, co się powtarza, a co było jednorazowe.

04/porownaniaSQLITE
Podstrona Porównania z tabelą i wykresami zależności

Porównania

Siedem paneli od tabeli i histogramu po korelację i różnicę dwóch czujników. To miejsce do sprawdzania hipotez, nie tylko oglądania przebiegu.

05/konfiguracjaSQLITE
Podstrona konfiguracji HomeStats

Konfiguracja

Klimat mieszkania, próg alarmu o ciszy, miejsce czujników, progi komfortu per czujnik i kubatury pomieszczeń. Wszystko zapisywane w bazie na Raspberry Pi, więc telefon i laptop czytają te same ustawienia.

06/daneSQLITE
Podstrona z tabelą surowych odczytów

Dane

Tabela surowych odczytów prosto z bazy, ze stronicowaniem i sortowaniem po stronie SQLite. Do tego eksport bieżącego okna do CSV, jednym przyciskiem z paska nad pulpitem.

Jedno ustawienie zmienia pięć rzeczy naraz: czujnik oznaczony jako zewnętrzny przestaje być oceniany progami pokoju, wypada z kafelka „warunki w normie”, przestaje udawać powierzchnię do wykroplenia i nie zasypuje kanału zdarzeniami o pogodzie — za to wnosi stałą czasową budynku i podpowiedź, kiedy otworzyć okno.

// privacy

Dom, który nie
melduje się nigdzie.

$ homestats --network-check

✓ konta i logowanie do usługi 0

✓ pomiary wysyłane do chmury 0

✓ telemetria i analityka 0

✓ abonament za własne dane 0

status: wszystko zostaje na Raspberry Pi

Jeden plik, jedna maszyna

Pomiary idą do homestats.sqlite w katalogu projektu. Kopia zapasowa to skopiowanie jednego pliku, a retencja surowych odczytów i agregatu godzinowego ustawia się osobno — godzina waży sześćdziesiąt razy mniej niż minuta, więc historia może zostać na lata po tym, jak minuty znikną.

Bez logowania — i to jest granica

Kto widzi port serwera w sieci domowej, ten widzi wszystkie pomiary. To świadoma decyzja dla instalacji w mieszkaniu i zarazem powód, dla którego tego portu nie wystawia się do internetu.

Instalator, który się cofa

Jeden skrypt stawia usługi systemd, buduje serwer i sprawdza /api/health. Gdy aktualizacja padnie w połowie, przywraca usługi, które działały przed jej uruchomieniem — dom nie zostaje bez monitoringu dlatego, że coś nie poszło z instalacją.

jakub@quanetra:~/projects/homestats$ status

Czujniki i tak mierzą.
Chodzi o to, kto to czyta.

HomeStats · działa lokalnie