🏠

Smart Home DIY

Home Assistant, Tasmota, MQTT i Zigbee – zbuduj inteligentny dom z pełną kontrolą nad danymi, bez abonamentów i chmury producenta.

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.

🔌
Integracji
3000+
🌍
Użytkowników
600k+
💰
Koszt oprog.
0 zł
📡
Protokoły
WiFi, Zigbee, Z-Wave, BT
☁️
Chmura
Opcjonalna
🔒
Prywatność
100% lokalna

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ądzenieChipMetoda flashUwagi
Sonoff Basic R2/R3ESP8266OTA lub piny UARTNajłatwiejsze do modyfikacji
Sonoff Mini R2ESP8266OTA (DIY mode)Bez lutowania
Nous A1ESP8266OTAPomiar prądu
Gosund SP111ESP8266Serial UARTWymaga otwarcia obudowy
Shelly 1/1PMESP8266OTA (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ń.

CechaZigbeeZ-WaveWiFi (ESP8266/ESP32)
Częstotliwość2.4 GHz868/908 MHz2.4 / 5 GHz
Zasięg10–100 m (mesh)30–100 m (mesh)30–50 m
Topologia sieciMeshMeshPunkt-punkt
Pobór energiiBardzo niskiBardzo niskiWysoki (nieodpowiedni dla baterii)
Max urządzeń65000+232Ograniczony przez router
Cena urządzeńNiska (5–30 zł)Wysoka (80–200 zł)Bardzo niska (3–20 zł)
Coordinator/HubKoordynator USB (~50 zł)Kontroler USB (~150 zł)Brak – router WiFi
Interferencje WiFiTak (ten sam pasmo)NieTak
Home AssistantNatywnie (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
}