Smart Home
7 maja 2026
⏱ 22 min czytania
Home Assistant – centrum inteligentnego domu za darmo
Wymagania: Raspberry Pi 4/5 (min. 4GB RAM) lub dowolny PC z 4GB RAM | Koszt: 0 zł za oprogramowanie
Home Assistant (HA) to najpopularniejsze oprogramowanie open-source do zarządzania smart home – ponad 70 000 gwiazdek na GitHubie i ponad 3000 integracji z urządzeniami. Działa lokalnie na Twoim sprzęcie: Twoje dane nie wychodzą z domu, system działa nawet bez internetu i nie ma żadnych miesięcznych opłat.
📡
Protokoły
WiFi, Zigbee, Z-Wave, BT
Instalacja Home Assistant OS na Raspberry Pi
Metoda rekomendowana: Home Assistant OS (HAOS) – dedykowany system operacyjny zoptymalizowany pod HA, z automatycznymi aktualizacjami i wbudowanym supervisor.
1
Pobierz obraz i wgraj na kartę SD / SSD
Pobierz Raspberry Pi Imager, wybierz „Use custom image" i wskaż pobrany plik haos_rpi5-xx.img.xz z github.com/home-assistant/operating-system/releases. Zalecamy SSD zamiast karty SD – większa trwałość i szybkość.
2
Pierwsze uruchomienie
Po 3–5 minutach od uruchomienia otwórz http://homeassistant.local:8123 (lub http://IP_PI:8123). Przejdziesz przez kreator tworzenia konta administratora i wykrywania urządzeń.
3
Dodaj integracje
Settings → Devices & Services → Add Integration. Wpisz nazwę urządzenia (np. IKEA, Philips Hue, Sonoff, Google, Spotify) i postępuj z konfiguratorem. Wiele urządzeń wykrywa się automatycznie w sieci lokalnej.
Przykładowa automatyzacja YAML
Home Assistant obsługuje automatyzacje przez GUI lub bezpośrednio w pliku YAML. Poniżej automatyzacja: wieczorem o 21:00 przyciemnia światła w salonie i włącza tryb kina jeśli telewizor jest włączony.
# configuration.yaml lub automations.yaml
automation:
- alias: "Wieczorny tryb relaksu"
description: "Przyciemnia światła gdy TV jest włączony po 21:00"
trigger:
- platform: time
at: "21:00:00"
condition:
- condition: state
entity_id: media_player.samsung_tv
state: "on"
action:
- service: light.turn_on
target:
entity_id: light.salon
data:
brightness_pct: 20
color_temp: 400 # ciepła biel (Kelvin odwrotny)
transition: 5 # sekundy
- service: notify.mobile_app_moj_telefon
data:
message: "🌙 Tryb wieczorny aktywowany"
Dashboard (Lovelace) – przykładowy layout
# ui-lovelace.yaml
title: Dom
views:
- title: Główny
cards:
- type: weather-forecast
entity: weather.home
- type: entities
title: Światła
entities:
- entity: light.salon
name: Salon
- entity: light.sypialnia
name: Sypialnia
- type: gauge
entity: sensor.temperatura_salon
name: Temperatura
min: 15
max: 30
severity:
green: 18
yellow: 25
red: 28
- type: history-graph
entities:
- entity: sensor.zuzycie_pradu_watt
hours_to_show: 24
title: Zużycie prądu (24h)
Tasmota
1 maja 2026
⏱ 14 min czytania
Tasmota na gniazdkach WiFi – lokalna kontrola, zero chmury
Tanie gniazdka WiFi z Aliexpress lub lokalnych sklepów (Sonoff, Gosund, Nous, Blitzwolf) zazwyczaj działają przez chmurę producenta w Chinach. Tasmota to alternatywne oprogramowanie open-source, które instalujesz na chipie ESP8266/ESP32 wewnątrz urządzenia. Po flashowaniu gniazdko działa w pełni lokalnie przez MQTT lub HTTP – żadna komunikacja nie wychodzi poza Twoją sieć.
Kompatybilne urządzenia
| Urządzenie | Chip | Metoda flash | Uwagi |
| Sonoff Basic R2/R3 | ESP8266 | OTA lub piny UART | Najłatwiejsze do modyfikacji |
| Sonoff Mini R2 | ESP8266 | OTA (DIY mode) | Bez lutowania |
| Nous A1 | ESP8266 | OTA | Pomiar prądu |
| Gosund SP111 | ESP8266 | Serial UART | Wymaga otwarcia obudowy |
| Shelly 1/1PM | ESP8266 | OTA (natywny web) | Ma własne świetne oprogramowanie |
Flash przez OTA (bez kabelka – dla Sonoff Mini R2)
1
Włącz tryb DIY na Sonoff Mini R2
Przytrzymaj przycisk przez 5 sekund do momentu szybkiego migania diody. Urządzenie tworzy własną sieć WiFi ITEAD-xxxxx.
2
Połącz się z siecią WiFi urządzenia i wyślij firmware
# Pobierz tasmota-lite.bin z github.com/arendst/Tasmota/releases
# Wyślij przez curl (lub użyj tasmotizer - GUI)
curl -X POST http://10.10.7.1/ota -F "file=@tasmota-lite.bin"
3
Skonfiguruj WiFi i MQTT
Po restarcie urządzenie tworzy sieć tasmota-XXXX. Połącz się, otwórz 192.168.4.1, podaj dane WiFi. Następnie w panelu webowym: Configuration → Configure MQTT.
Konfiguracja MQTT dla Home Assistant
# W panelu webowym Tasmota: Configuration → Configure MQTT
# Host: 192.168.1.100 (IP Raspberry Pi z Mosquitto)
# Port: 1883
# User: mqtt_user
# Pass: mqtt_haslo
# Topic: tasmota/%06X (automatycznie)
# Full Topic: %prefix%/%topic%/
# Tasmota automatycznie pojawi się w Home Assistant
# jeśli HA jest połączony z tym samym brokerem MQTT
Sterowanie przez HTTP (bez MQTT)
# Włącz gniazdko
curl http://192.168.1.50/cm?cmnd=Power%20On
# Wyłącz gniazdko
curl http://192.168.1.50/cm?cmnd=Power%20Off
# Przełącz stan
curl http://192.168.1.50/cm?cmnd=Power%20Toggle
# Odczyt stanu (JSON)
curl http://192.168.1.50/cm?cmnd=Status%208
# Zwraca: {"StatusSNS":{"Time":"...","ENERGY":{"Voltage":231,"Current":0.45,"Power":103,...}}}
Porównanie
18 kwietnia 2026
⏱ 11 min czytania
Zigbee vs Z-Wave vs WiFi – co wybrać do smart home?
Trzy dominujące protokoły bezprzewodowe w smart home mają różne zastosowania, zasięgi, koszty i kompatybilności. Wybór zależy od wielkości domu, budżetu i preferencji co do ekosystemu urządzeń.
| Cecha | Zigbee | Z-Wave | WiFi (ESP8266/ESP32) |
| Częstotliwość | 2.4 GHz | 868/908 MHz | 2.4 / 5 GHz |
| Zasięg | 10–100 m (mesh) | 30–100 m (mesh) | 30–50 m |
| Topologia sieci | Mesh | Mesh | Punkt-punkt |
| Pobór energii | Bardzo niski | Bardzo niski | Wysoki (nieodpowiedni dla baterii) |
| Max urządzeń | 65000+ | 232 | Ograniczony przez router |
| Cena urządzeń | Niska (5–30 zł) | Wysoka (80–200 zł) | Bardzo niska (3–20 zł) |
| Coordinator/Hub | Koordynator USB (~50 zł) | Kontroler USB (~150 zł) | Brak – router WiFi |
| Interferencje WiFi | Tak (ten sam pasmo) | Nie | Tak |
| Home Assistant | Natywnie (ZHA, Z2M) | Natywnie (Z-Wave JS) | ESPHome, Tasmota |
💡 Rekomendacja iPraktyk.pl: Zacznij od Zigbee + koordynator USB (np. Sonoff Zigbee 3.0 USB Dongle Plus) z Zigbee2MQTT. Najtańsze urządzenia (IKEA TRÅDFRI, Tuya, Aqara), ogromna baza kompatybilnych produktów i świetna integracja z Home Assistant. Z-Wave warto rozważyć gdy masz dużo urządzeń i problemy z interferencjami 2.4 GHz.
MQTT
10 kwietnia 2026
⏱ 13 min czytania
Mosquitto MQTT Broker – serce komunikacji IoT w domu
MQTT (Message Queuing Telemetry Transport) to lekki protokół publish-subscribe idealny dla IoT. Urządzenia (klienci) wysyłają wiadomości do tematów (topics) na broker, a inne urządzenia subskrybują te tematy i reagują. Mosquitto to najpopularniejszy broker MQTT – lekki, szybki i dostępny jako pakiet w niemal każdej dystrybucji Linuxa.
Instalacja Mosquitto na Raspberry Pi / Ubuntu
sudo apt update
sudo apt install -y mosquitto mosquitto-clients
# Włącz i uruchom serwis
sudo systemctl enable --now mosquitto
# Sprawdź status
sudo systemctl status mosquitto
Konfiguracja z uwierzytelnianiem
# Utwórz plik haseł
sudo mosquitto_passwd -c /etc/mosquitto/passwd mqtt_user
# Edytuj konfigurację
sudo nano /etc/mosquitto/conf.d/local.conf
# /etc/mosquitto/conf.d/local.conf
listener 1883
allow_anonymous false
password_file /etc/mosquitto/passwd
# Opcjonalnie – listener WebSocket (dla dashboardów webowych)
listener 9001
protocol websockets
sudo systemctl restart mosquitto
Testowanie MQTT z terminala
# Subskrybuj temat (okno 1)
mosquitto_sub -h localhost -u mqtt_user -P twoje_haslo \
-t "dom/salon/temperatura" -v
# Publikuj wiadomość (okno 2)
mosquitto_pub -h localhost -u mqtt_user -P twoje_haslo \
-t "dom/salon/temperatura" -m "22.5"
# Wildcards – subskrybuj wszystkie tematy z "dom/"
mosquitto_sub -h localhost -u mqtt_user -P twoje_haslo \
-t "dom/#" -v
Przykład – Arduino/ESP8266 publikuje temperaturę do MQTT
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <DHT.h>
const char* SSID = "TwojeSIECI";
const char* WIFI_PASS = "TwojeHaslo";
const char* MQTT_SRV = "192.168.1.100";
const char* MQTT_USR = "mqtt_user";
const char* MQTT_PSS = "twoje_haslo";
DHT dht(4, DHT22);
WiFiClient espClient;
PubSubClient mqtt(espClient);
void reconnect() {
while (!mqtt.connected()) {
if (mqtt.connect("sensor-salon", MQTT_USR, MQTT_PSS)) {
Serial.println("MQTT połączony");
} else {
delay(5000);
}
}
}
void setup() {
WiFi.begin(SSID, WIFI_PASS);
while (WiFi.status() != WL_CONNECTED) delay(500);
mqtt.setServer(MQTT_SRV, 1883);
dht.begin();
}
void loop() {
if (!mqtt.connected()) reconnect();
mqtt.loop();
float temp = dht.readTemperature();
float hum = dht.readHumidity();
if (!isnan(temp)) {
mqtt.publish("dom/salon/temperatura", String(temp, 1).c_str());
mqtt.publish("dom/salon/wilgotnosc", String(hum, 1).c_str());
}
delay(30000); // co 30 sekund
}