Newer
Older
homeassistant-infra / docs / MQTT_IBSYSTEM_INTEGRATION.md
Wojciech Konieczny 21 days ago 4 KB Docs: MQTT IBSystem integracja z HA
# Integracja IBSystem2MQTT z Home Assistant

## ✅ Status: Aktywna

**Data konfiguracji:** 2026-02-07 01:45  
**Serwer:** 192.168.50.243 (IBSystem)  
**HA:** 192.168.50.151 (TEST)  
**Skrypt:** `/ibsystem/ibsystem2mqtt_v5.py`  
**Config:** `/ibsystem/config.yaml`  

---

## 📊 Statystyka

- **336 encji** zintegrowanych z HA
- **2 modały IBSystem** (RS0)
  - ID1: Pompa ciepła / Heat pump controller
  - ID3: Moduł IO / IO Module
- **Aktualizacja:** co 2 sekundy
- **HTTP Diagnostyka:** http://192.168.50.243:8080

---

## 🏗️ Topiki MQTT

### Struktura
```
homeassistant/sensor/ibsystem_RS0_ID1_xxx
homeassistant/sensor/ibsystem_RS0_ID3_xxx
homeassistant/switch/ibsystem_RS0_ID3_xxx
```

### Ważne sensory ID1 (Heat Pump)

| Sensor | Opis | Wartość |
|--------|------|---------|
| `power_on_off` | Stan zasilania | 0-6 (mod status) |
| `mode` | Tryb pracy | 0-3 |
| `tbh_power` | Moc TBH | W |
| `power_output_lo` | Moc grzania (LO) | W |
| `power_output_hi` | Moc grzania (HI) | W |
| `setting_t1s` | Temperatura setpoint | °C×100 |
| `setting_ts` | Temperatura bieżąca | °C |

### Przełączniki ID3 (IO Module)

| Switch | Opis |
|--------|------|
| `output_do_0` | Wyjście cyfrowe 0 |
| `output_do_1` | Wyjście cyfrowe 1 |
| `output_do_2` | Wyjście cyfrowe 2 |
| `output_do_3` | Wyjście cyfrowe 3 |
| `output_do_4` | Wyjście cyfrowe 4 |

---

## 🔧 Konfiguracja

### config.yaml

```yaml
mqtt:
  brokers:
    - name: "ha"
      host: "192.168.50.151"
      port: 1883
  user: "mqtt"
  password: "mqtt123"
  prefix: "ibsystem"
  ha_prefix: "homeassistant"

ibsystem:
  host: "127.0.0.1"
  port: 2001
  rs: 0
  max_ids: 40
  full_ids: [1]
  timeout_ms: 10000

polling:
  interval_sec: 2.0
  parallel_workers: 8

logging:
  level: "INFO"
  file: "/tmp/ibsystem2mqtt.log"

http:
  enabled: true
  host: "0.0.0.0"
  port: 8080
```

---

## 🚀 Uruchomienie

### Proces
```bash
# Na 192.168.50.243 (serwer IBSystem)
cd /ibsystem
python3 ibsystem2mqtt_v5.py -c /ibsystem/config.yaml
```

### Automatyczne uruchomienie (systemd)

Aby uruchomić przy starcie systemu:

```bash
sudo nano /etc/systemd/system/ibsystem2mqtt.service
```

```ini
[Unit]
Description=IBSystem to MQTT Bridge
After=network.target

[Service]
Type=simple
User=wk
WorkingDirectory=/ibsystem
ExecStart=/usr/bin/python3 /ibsystem/ibsystem2mqtt_v5.py -c /ibsystem/config.yaml
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
```

```bash
sudo systemctl daemon-reload
sudo systemctl enable ibsystem2mqtt
sudo systemctl start ibsystem2mqtt
```

---

## 📝 Logi

**Bieżące logi:**
```bash
ssh wk@192.168.50.243 "tail -f /tmp/ibsystem2mqtt.log"
```

**Diagnostyka HTTP:**
```bash
curl http://192.168.50.243:8080
```

---

## 🔌 Użycie w HA

### Automatyzacje

```yaml
trigger:
  - platform: mqtt
    topic: homeassistant/sensor/ibsystem_RS0_ID1_tbh_power
condition:
  - condition: numeric_state
    entity_id: sensor.ibsystem_rs0_id1_rs0_id1_tbh_power
    above: 5000
action:
  - service: notify.persistent_notification
    data:
      title: "⚠️ TBH moc wysoka"
      message: "TBH zużywa {{ trigger.payload_json.state }}W"
```

### Template Sensory

```yaml
template:
  - sensor:
      - name: "IBSystem Pompa Moc Całkowita"
        unique_id: ibsystem_total_power
        unit_of_measurement: "W"
        state: |
          {% set lo = states('sensor.ibsystem_rs0_id1_rs0_id1_power_output_lo') | int(0) %}
          {% set hi = states('sensor.ibsystem_rs0_id1_rs0_id1_power_output_hi') | int(0) %}
          {% set tbh = states('sensor.ibsystem_rs0_id1_rs0_id1_tbh_power') | int(0) %}
          {{ lo + hi + tbh }}
```

---

## 🐛 Rozwiązywanie problemów

### Problem: Brak połączenia z MQTT
```bash
ssh wk@192.168.50.243 "tail -20 /tmp/ibsystem2mqtt.log"
```
- Sprawdzić czy port 1883 jest dostępny z 192.168.50.243
- Sprawdzić credentials mqtt w HA

### Problem: Brak danych
```bash
# Sprawdzić czy ibls działa
ssh wk@192.168.50.243 "/ibsystem/ibls -a 127.0.0.1 -p 2001 -c 'search 0/1'"
```

---

## 📚 Referencje

- **Skrypt:** `ha-configs/ibsystem2mqtt_v5.py`
- **Config:** `/ibsystem/config.yaml`
- **IBSystem Docs:** `/ibsystem/`