====== MQTT w Smart Home ======
\\
===== Struktura =====
| ssh | | | | główny kanał |
| | blinds | | | rolety |
| | | set | | polecenie nastawienia rolety |
| | | run | | informacja o postępie ruchu rolety |
| | | | id | ID rolety [0-5] |
| | devices | | | urządzenia |
| | | status | | informacje o stanie urządzenia |
| | | | id | ID urządzenia |
| | sensors | | | odczyty z czujników |
| | | id | | ID czujnika |
\\
\\
===== JSON =====
JSON w MQTT Smart Home \\
\\
==== Odczyty z czujników ====
ssh/sensors/_id_
{
"id": 1,
"temperature": 31.13,
"humidity": 25.24,
"pressure": 1003.76
}
**id** - ID czujnika (jest też w temacie) \\
**temperature** - tempertatura w °C \\
**humidity** - wilgotność względna (Rh) w % \\
**pressure** - ciśnienie w hPa \\
\\
==== Nastawienie rolety ====
ssh/blinds/set/_id_
{
"set": 0,
"speed": 100,
"calibrate": true
}
**set** - poziom na jaki ma byś ustawiona (0 - całkowicie otwarta; 100 - całkowicie zamknięta) \\
**speed** - prędkość przesuwania rolety (100 - maksymalna; 70 - minimalna (poniżej silnik ma już za małą moc)) \\
**calibrate** - czy najpierw skalibrować roletę (true/false) \\
\\
==== Postęp ruchu rolety ====
ssh/blinds/run/_id_
{
"id": 5,
"set": 10,
"step": 8
}
**id** - ID rolety (jest też w temacie) \\
**set** - docelowy poziom rolety \\
**step** - aktualny poziom rolety \\
\\
==== Informacje o urządzeniu ====
ssh/devices/status/_id_
{
"device": {
"id": 11,
"name": "ssh_device_11",
"type": "ESP32-D0WDQ6",
"online": true,
"temperature:": 29.69
},
"wifi": {
"ssid": "sshs",
"hostname": "ssh_device_11",
"ip": "192.168.4.111",
"mac": "aa:bb:cc:dd:ee:ff",
"signal": -68
},
"cpu": {
"cores": 2,
"mhz": 240,
"temperature": 54.44
},
"meta": {
"boottime": 1725802593,
"timestamp": 1725820697
}
}
{
"device":
{
"id": 1,
"name": "sshs",
"type": "Raspberry Pi",
"online": true
},
"cpu":
{
"cores": 4,
"mhz": 1200,
"load": 6.4,
"temperature": 59.6
},
"memory":
{
"total": 909,
"used": 193,
"free": 648
},
"disk":
{
"total": 14667,
"used": 3631,
"free": 10406
},
"process":
{
"apache2": 48273,
"mariadb": 607,
"fail2ban": 516,
"mosquitto": 4252,
"openvpn": 797
},
"vpn_clients":
[
{
"name": "......",
"remote_ip": "111.222.333.444:56789",
"virtual_ip": "11.22.33.44",
"bytes_received": "533MiB",
"bytes_sent": "71GiB",
"connected_since": 1725757272
}
],
"wifi_clients":
[
{
"hostname": "ssh_device_11",
"ip": "192.168.4.111",
"mac": "aa:bb:cc:dd:ee:ff"
},
{
"hostname": "ssh_device_21",
"ip": "192.168.4.222",
"mac": "aa:bb:cc:dd:ee:ff"
}
],
"meta":
{
"boottime": 1724567404,
"timestamp": 1725821153
}
}
**device** - ogólne informacje \\
- **id** - ID urządzenia (jest też w temacie) \\
- **name** - nazwa \\
- **type** - typ \\
- **online** - czy urządzenie jest online (true/false) / false wysyłane w wiadomości testamencie \\
- **temperature** - temperatura wewnątrz urządzenia (gdy w obudowie urządzenia ESP jest dodatkowy czujnik temperatury) \\
**wifi** - informacje o połączeniu WiFi \\
- **ssid** - nazwa sieci \\
- **hostname** - nazwa urządzenia w sieci \\
- **ip** - IP \\
- **mac** - MAC \\
- **signal** - [[inne:sygnal_wifi#granice_poziomow_dbm|poziom sygnału]] \\