Czujniki, które mierzą Twój realny świat
Sensmos to sieć małych urządzeń — nodów — zbudowanych na płytce ESP32. Node stoi u Ciebie w domu i mierzy to, co się dzieje wokół: napięcie w gniazdku, siłę WiFi, temperaturę, wilgotność, cokolwiek do niego podłączysz. Odczyty widzisz w aplikacji i na wspólnej mapie, a node może na nie reagować lokalnie — alertem, automatyzacją albo przez Home Assistant. Bez chmury i bez zakładania konta.
GALU to token, którym sieć płaci za utrzymywanie noda online. Nie musisz się nim interesować, żeby korzystać z Sensmosa — ale to, co uzbierasz, jest naprawdę Twoje: portfel i klucze mieszkają na Twoim telefonie, nie u nas.
Mierzy
Node zbiera odczyty z czujników i publikuje je jako „encje".
Dzieli się
Dane trafiają do sieci i na żywą mapę; możesz je też udostępniać sąsiadom.
Zarabia
Co dobę naliczane są nagrody GALU proporcjonalnie do wkładu.
Od czujnika do tokena
Node pakuje publiczne odczyty i wysyła je do sieci. Raz na dobę sieć podlicza, kto ile dołożył — ten dobowy cykl nazywamy epoką — i przyznaje GALU. Wszystko widzisz w aplikacji; wypłata na własny portfel to jedno dotknięcie.
Nody potrafią też rozmawiać między sobą (subskrypcje danych) oraz z Home Assistant — bez chmury, lokalnie w Twojej sieci.
Twój node bada internet — dom↔dom
Twój node robi jeszcze jedną rzecz, zupełnie w tle: razem z resztą sieci mierzy, jak naprawdę działa internet — widziany z mieszkań, nie z serwerowni. Speedtest mówi, jak szybkie jest Twoje łącze do najbliższego serwera testowego; Sensmos sprawdza, co dzieje się na trasach między zwykłymi domami, przez prawdziwe routery i osiedlowe łącza. Niczego nie konfigurujesz i niczego nie poczujesz.
Pomiar dom↔dom (punch)
Sieć dobiera dwa nody w parę, a sam pomiar leci bezpośrednio między nimi — bez żadnego serwera pośrodku. Wynik: prawdziwe opóźnienie, jitter i straty pakietów, takie, jakich doświadczają domy, nie datacentra.
Cykl sond
Co kilka minut node odpytuje usługi i sąsiadów czterema sposobami: icmp, tcp, dns, http. Gdy cel milczy, node śledzi trasę pakietów (traceroute), żeby ustalić, gdzie giną.
Zlecone monitory
Sieć sama rozdziela nodom pomiary usług — czy strona działa i jak szybko odpowiada, mierzone z wielu krajów naraz. Twój node po prostu je wykonuje; nic tu nie konfigurujesz. Własne pomiary robisz skryptami (sekcja „Co potrafi node").
Wyniki na żywo
Wszystko ląduje na mapie: opóźnienia między krajami, pajęczyna świeżych pomiarów, i ranking nodów — score 0–100 z opóźnień, strat i liczby partnerów pomiaru.
Nie masz noda? Wyślij dane, które już masz
Nie masz ESP32? Nie szkodzi. Wszystko, co potrafi wysłać żądanie HTTP — Home Assistant, ESPHome, skrypt na Raspberry Pi — może publikować odczyty na mapie jako node programowy (fioletowy), na żywo, z historią i wykresami. To ścieżka „tylko dane": bez portfela, bez GALU, bez rejestracji. Dobre na spróbowanie, zanim kupisz płytkę.
ESPHome
Komponent i kilka linijek YAML — wskazujesz sensory, a one lecą na mapę. Działa też odczyt: pobierasz dane innego noda jako swój sensor. Repo →
Home Assistant
Integracja HACS, tryb „tylko dane": wybierasz encje HA i publikujesz je na mapie — albo podglądasz dowolny node jako sensory w HA. Repo →
Dowolne źródło
Jeden POST /v1/ingest z kluczem (≥32 znaki) i listą wartości. Skrypt, serwer, Raspberry Pi — cokolwiek mówi HTTP.
Słaby sprzęt bez RAM na TLS (np. duży stos BLE)? W ESPHome dodaj insecure: true — wysyłka po zwykłym HTTP.
Od pustej płytki do działającego noda
Cała droga od zera: kupujesz płytkę, wgrywasz firmware z przeglądarki, instalujesz aplikację i łączysz jedno z drugim przez Bluetooth. Bez lutowania, bez kompilowania, bez zakładania konta.
SENSMOS-xxxxxx — wybierz go z listy.SENSMOS-xxxxxx przy pierwszym starcie albo po przytrzymaniu przycisku serwisowego.Zarabiaj, wydawaj, wypłacaj
Portfel powstaje przy pierwszym nodzie i mieszka na Twoim telefonie — my nie mamy do niego dostępu. GALU nalicza się za czas online i aktywność nodów.
Bez darmowych punktów
Na start nie dostajesz darmowych środków — nikt nie dostaje. Płatnych funkcji sieci możesz używać od razu, „na kredyt" (saldo schodzi na minus, do limitu), ale wypłacisz dopiero to, co realnie zarobisz: nagrody najpierw spłacają minus, reszta jest Twoja. Dzięki temu każdy GALU w obiegu ma pokrycie w prawdziwej pracy nodów.
Wydane GALU nie znikają: wracają do puli nagród, a część jest spalana. Każda nagroda ma pokrycie w tokenach zdeponowanych w kontrakcie on-chain — sieć nie drukuje „wirtualnych" punktów.
Deposit
Wpłać GALU z portfela do sieci — zasila pulę, z której nody płacą za usługi.
Claim
Wypłać zarobione GALU z sieci na swój portfel (on-chain, Polygon).
MetaMask
Wyeksportuj klucz portfela (po PIN-ie noda) i podłącz go do MetaMask.
Promień pokrycia i unikalność regionu
Sieć premiuje nody tam, gdzie ich brakuje. Prosta zasada: im mniej sąsiadów w Twojej okolicy, tym wyższy mnożnik nagród. Samotny node w regionie dostaje 1.5×; node w gęstym skupisku — 0.8×:
Jak to liczymy: algorytm schodzi po drabinie promieni od 200 km w dół i zatrzymuje się na pierwszym szczeblu, na którym liczba żywych sąsiadów (prawdziwych nodów z potwierdzoną pozycją, online w ostatniej dobie) mieści się w limicie. Dzięki temu samotny node z odległym miastem „za miedzą" nie jest karany za tamto skupisko, a nody offline po dobie przestają się liczyć — mnożniki odbudowują się same.
Więcej niż czujnik
Pomiary to dopiero początek. Node ma na pokładzie kilka narzędzi, które robią z niego małą, lokalną automatykę — wszystko działa na samej płytce, bez chmury:
Encje
Odczyty publiczne (pub.*) i własne (own.*) — podgląd w aplikacji i na mapie.
Skrypty
Proste automatyzacje na nodzie: „jeśli napięcie spadnie poniżej X → zrób Y" (do 4 kroków).
Akcje wiadomości
Gdy node odbierze wiadomość → wyślij push, zapisz dane lub uruchom skrypt.
Subskrypcje
Kupuj dane innego noda — pojawią się u Ciebie jako osobne encje.
Własny monitoring
Akcja ping w skrypcie mierzy Twój serwer lub usługę i robi z wyniku encję — domowy uptime-monitor. (Globalne sondy zleca sieć — tych nie konfigurujesz.)
Fetch z web
Node pobiera wartość z dowolnego API (HTTP GET + ścieżka JSON) i używa jej jak odczytu czujnika. Gotowe przepisy na Shelly i Fronius: Integracje.
Twój LAN w kieszeni — bez VPN
Node i tak cały czas utrzymuje połączenie wychodzące do sieci — tym samym kanałem możesz z telefonu wejść do swojego domowego LAN-u, z dowolnego miejsca na świecie. Bez publicznego IP, bez przekierowania portów, także za CGNAT — czyli tam, gdzie VPN po prostu nie wchodzi w grę.
Terminal SSH
Terminal do maszyn w Twojej sieci, prosto z telefonu. SSH jest szyfrowany end-to-end w aplikacji — node i sieć przekazują wyłącznie zaszyfrowane bajty.
Panel Home Assistant
Podgląd i sterowanie encjami Twojego HA — bez wystawiania Home Assistanta na internet.
Strony urządzeń
Panele WWW urządzeń w Twoim LAN (HTTP) dostępne przez tunel noda.
W aplikacji: Nody → wybierz node → integracje → Terminal. Tam znajdziesz przełącznik „Remote access na nodzie" — domyślnie wyłączony.
Dostęp ma wyłącznie właściciel noda — każde otwarcie tunelu jest podpisywane Twoim portfelem. Node akceptuje wyłącznie adresy prywatne (LAN) — przez tunel fizycznie nie da się wyjść na publiczny internet. Zasoby są przydzielane dopiero przy otwarciu sesji i zwalniane po jej zamknięciu.
Kompromis: node z włączonym remote access jest rzadziej wybierany do monitorów sieci (sieć preferuje wtedy innych kandydatów) — apka poinformuje Cię o tym przy włączaniu.
Sieć Cię informuje
Gdy zdarzy się coś ważnego (alarm, spadek napięcia, wiadomość), node może wysłać powiadomienie push na Twój telefon. Skonfigurujesz to w sekcji „Akcje" w ustawieniach noda — tytuł i treść z podpowiedziami (np. nadawca, treść wiadomości).
Integracja bez chmury
Sensmos działa z Home Assistant lokalnie (HACS). Dane nodów pojawiają się jako sensory HA, a dane z HA możesz „wkarmić" do noda — z automatycznym przeliczaniem jednostek. Bez brokera, bez chmury.
Twoje klucze, Twoje urządzenie
Klucz na telefonie
Klucz portfela nigdy nie opuszcza Twojego urządzenia; node ma własny klucz generowany lokalnie.
Ceremonia trust
Krótkie potwierdzenie przez Bluetooth, że to fizyczne urządzenie — chroni sieć przed symulatorami.
Kopia portfela
Zaszyfrowaną kopię portfela można trzymać na nodzie i odzyskać przez Bluetooth (po PIN-ie).
Przycisk serwisowy
Przytrzymanie przycisku na nodzie → tryb Bluetooth (zmiana WiFi, odzysk) lub reset.
Prywatność pozycji
Publiczna pozycja noda jest domyślnie rozmyta (fuzz). Tryb ghost zdejmuje node z mapy całkowicie — dalej uczestniczy w sieci, z obniżoną nagrodą. Adres IP nigdy nie jest publikowany.
Podpisane komendy i OTA
Komendy sieci (restart, aktualizacja) są podpisane kluczem sieci i jednorazowym nonce — node odrzuca wszystko inne. Firmware OTA weryfikuje SHA-256 i podpis; nieudany flash sam się cofa.
API noda, encje i konfiguracja
Każdy node wystawia w Twojej sieci lokalne HTTP API — możesz nim sterować ze skryptu, integracji lub własnego narzędzia. Wszystkie wywołania (poza /info) wymagają nagłówka Authorization: Bearer <PIN>.
/info/config/data/status/data/nativepub.*/data{entity_id, value, unit} — dodaj jeden odczyt/data/batch{entities:[…]} — wiele odczytów naraz/config/scripts/config/messages/message/inbox/message/ack/message/send{to, message_id, payload} — wyślij wiadomość do innego noda/node/log/remote/available/remote/subscribe{esp_id, days, prefix} — subskrybuj dane innego noda/remote/data/wallet/balance/wallet/proof/node/ble_mode/factory-resetEncje grupowane są po prefiksie w entity_id — prefiks decyduje, gdzie odczyt trafia i czy idzie do sieci.
pub.*natywne pomiary z whitelisty — widoczne na mapie, liczą się do nagródown.*Twoje dane / z integracji — wysyłane do sieci, ale nie publiczne na mapiesub.* · get.* · msg.*subskrypcje, pobrania z web, wiadomości — bufor lokalnytmp.*bufor roboczy skryptów — znika po restarcieSkrypty (do 4 kroków)
Reguła {if, action, cooldown_s, data}. Akcje: webhook, push, send (wiadomość do innego noda), calc, aggregate, ping, fetch, report.
Akcje wiadomości
Trigger po message_id (lub *) → webhook / prefix (zapis do {prefix}.*) / script. Do 3 slotów.
Subskrypcje danych
POST /remote/subscribe {esp_id, days, prefix} — dane innego noda spływają do bufora jako <prefix>.*. Rozliczane dobowo.
Integracja (webhook out)
integration_url — node POST-uje zdarzenia (message_received, batch_sent, sub_received, ws_connected) jako {device_id, action, data}.
gps_lat, gps_lon, fuzzpozycja z GPS apki (city liczone serwerowo) — ręcznie się nie ustawiapinPIN do API i Bluetooth — koniecznie zmień domyślnypush_tokentoken telefonu do powiadomień pushintegration_urladres wychodzącego webhooka (np. Home Assistant)Przy pierwszym starcie (lub po przytrzymaniu przycisku) node wchodzi w tryb BLE jako SENSMOS-xxxxxx. Aplikacja używa komend: auth (PIN, zapamiętywany przy pierwszym połączeniu), register (właściciel + WiFi + podpis challenge-response), trust_round/trust_sign (ceremonia atestacji), factory_reset. WiFi i Bluetooth nigdy nie działają naraz — przełączenie zawsze przez restart urządzenia.
Szczegóły kryptografii (klucze secp256k1, podpisywanie batchy, ceremonia trust przeciw symulatorom) — patrz sekcja Bezpieczeństwo.
Częste pytania
Czy potrzebuję wiedzy technicznej?
Nie. Firmware wgrywasz z przeglądarki, node dodajesz w aplikacji przez Bluetooth i podajesz WiFi. Resztą zajmuje się aplikacja.
Ile to kosztuje?
Płytka ESP32 to kilka dolarów w dowolnym sklepie z elektroniką. Firmware i aplikacja są darmowe, node pobiera poniżej 1 W prądu. Żadnych opłat ani subskrypcji.
Skąd pobrać aplikację? Jest wersja na iOS?
Android: sensmos.apk — instalujesz raz, potem aplikacja sama proponuje aktualizacje. Wersji na iOS nie ma.
Co jeśli zgubię telefon?
Jeśli wcześniej zapisałeś kopię portfela na nodzie, odzyskasz go na nowym telefonie przez Bluetooth (po PIN-ie noda). Możesz też wyeksportować klucz do MetaMask.
Czy mogę wypłacić GALU od razu?
Możesz wypłacić tylko to, co zarobisz powyżej ewentualnego długu. Nie ma darmowych środków na start.
Czy node musi działać 24/7?
Nie musi, ale im wyższy uptime, tym wyższa nagroda. Node liczony jest proporcjonalnie do czasu online.
Czy moje dane są prywatne?
Publiczne encje trafiają do sieci i na mapę. Dane „własne" zostają lokalnie, chyba że sam je udostępnisz.
Aplikacja nie znajduje noda przez Bluetooth
Najczęstsza przyczyna: na Androidzie 11 i starszych skanowanie Bluetooth wymaga włączonej lokalizacji (GPS). Włącz lokalizację i Bluetooth, trzymaj telefon blisko noda i odśwież skan. Node rozgłasza się jako SENSMOS-xxxxxx przy pierwszym starcie albo po przytrzymaniu przycisku serwisowego.
Jakiej sieci WiFi potrzebuję?
2,4 GHz. ESP32 nie łączy się z sieciami 5 GHz.
Jak aktualizuję firmware?
Wcale — node robi to sam (OTA). Pobiera podpisany obraz, sprawdza sumę SHA-256 i restartuje się; nieudana aktualizacja cofa się automatycznie.
Wgrałem firmware od nowa i node ma nowe ID
Przy dodawaniu w aplikacji włącz „Odtwórz ID noda" i wybierz z listy swój node offline — płytka przejmie starą tożsamość i historię. Wymaga świeżego firmware i ponownej atestacji.
Czy pomiary internetu obciążają moje łącze?
Nie — to pojedyncze pakiety, rzędu kilku KB na minutę. Nie zauważysz ich nawet na słabym łączu.
Czy sieć publikuje mój adres IP?
Nie. Na mapie widać pozycję (z rozmyciem), kraj i wyniki pomiarów — adres IP nie jest publikowany.