ΠΠ½Π΅Ρ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π±ΡΡΠ·ΠΎΡΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½Π° ΠΌΠΈΠΊΡΠΎΠ΅Π»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠ°ΡΠ°, ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΠΊΠ°Π½Π°Π»ΠΈ, ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡΠ΅ ΠΈ ΠΈΠ·ΠΊΡΡΡΠ²Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π»Π΅ΠΊΡ, ΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠΌΠ½ΠΈΡΠ΅ Π΄ΠΎΠΌΠΎΠ²Π΅ ΡΡΠ°Π²Π° Π²ΡΠ΅ ΠΏΠΎ-Π°ΠΊΡΡΠ°Π»Π½Π°. Π§ΠΎΠ²Π΅ΡΠΊΠΈΡΡ Π΄ΠΎΠΌ Π΅ ΠΏΡΠ΅ΡΡΡΠΏΡΠ» Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΎΡ ΠΊΠ°ΠΌΠ΅Π½Π½Π°ΡΠ° Π΅ΡΠ° Π½Π°ΡΠ°ΠΌ, Π° Π² Π΅ΡΠ°ΡΠ° Π½Π° ΠΠ½Π΄ΡΡΡΡΠΈΠ°Π»Π½Π°ΡΠ° ΡΠ΅Π²ΠΎΠ»ΡΡΠΈΡ 4.0 ΠΈ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ Π½Π° Π½Π΅ΡΠ°ΡΠ° Π΅ ΡΡΠ°Π½Π°Π» ΡΠ΄ΠΎΠ±Π΅Π½, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½. ΠΠ° ΠΏΠ°Π·Π°ΡΠ° ΠΈΠ΄Π²Π°Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π²ΡΡΡΠ°Ρ Π°ΠΏΠ°ΡΡΠ°ΠΌΠ΅Π½Ρ ΠΈΠ»ΠΈ ΡΠ΅Π»ΡΠΊΠ° ΠΊΡΡΠ° Π² ΡΠ»ΠΎΠΆΠ½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½ΠΈ ΠΎΡ Π²ΡΡΠΊΠ° ΡΠΎΡΠΊΠ° Π½Π° ΡΠ²Π΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΌΠ°ΡΡΡΠΎΠ½. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠΎΠ²Π΅ΠΊ-ΠΌΠ°ΡΠΈΠ½Π° Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ - Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ Π·Π° ΡΠ°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅Ρ ΠΈ ΡΠΈΠ½ΡΠ΅Π·, ΡΠΎΠ²Π΅ΠΊ Π³ΠΎΠ²ΠΎΡΠΈ Ρ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ Π½Π° ΡΠΎΠ΄Π½ΠΈΡ ΡΠΈ Π΅Π·ΠΈΠΊ.
ΠΡΠΊΠΎΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π½ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΠΏΠ°Π·Π°ΡΠ°, ΡΠ° Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π²ΠΈΠ΄Π΅ΠΎΠ½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅, ΡΠΈΠΈΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΡΠ° ΠΎΡΡΠ·Π½Π°Π»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΡΡΠ»ΠΎΡΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ.
ΠΠ°ΡΠ΅ΡΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π΅ ΠΏΠΎΠΊΠ°Π½Π΅Π½ΠΎ Π½Π° ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ ΡΡΠΈ ΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡΡ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° ΠΎΠ±Π»Π°ΡΠ½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ, Π»ΠΈΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° ΠΎΡ Π°Π²ΡΠΎΡΠ° ΠΈ ΠΏΡΡΠ½Π°ΡΠ° Π² Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ. ΠΡΡΠ²Π°ΡΠ° ΡΡΠ°ΡΠΈΡ Π΅ ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½Π° Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π½ΠΎΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΎ Π² ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠΌ, Π²ΡΠΎΡΠ°ΡΠ° Π΅ Π·Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΎΠ±Π»Π°ΡΠ½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π½Π°ΠΊΡΠ°Ρ, ΡΡΠ΅ΡΠ°ΡΠ° Π΅ Π·Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π΅Π½ ΡΠ΅Π»Π΅ΡΠΎΠ½ ΠΈ ΡΡΠ°ΡΠΈΠΎΠ½Π°ΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Π£ΠΌΠ½ΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ Π·Π° Π΄ΠΎΠΌΠ°
ΠΡΡΠ²ΠΎ, Π½Π΅ΠΊΠ° Π΄Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΌΠ΅Π½ Π΄ΠΎΠΌ ΠΎΡ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ Π°ΠΏΠ°ΡΡΠ°ΠΌΠ΅Π½Ρ, Π»ΡΡΠ½Π° ΠΊΡΡΠ° ΠΈΠ»ΠΈ Π²ΠΈΠ»Π°. ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΠΊΠ°ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ Π² ΠΆΠΈΠ»ΠΈΡΠ΅ΡΠΎ:
- ΡΠ΅Π½Π·ΠΎΡΠΈ, ΠΈΠ·ΠΌΠ΅ΡΠ²Π°ΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° Π²ΡΠ½ΡΠ½Π°ΡΠ° ΡΡΠ΅Π΄Π°;
- ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ, Π΄Π΅ΠΉΡΡΠ²Π°ΡΠΈ Π²ΡΡΡ Ρ Π²ΡΠ½ΡΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ;
- ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½ΠΈΡΡΠ° Π½Π° ΡΠ΅Π½Π·ΠΎΡΠΈΡΠ΅ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ ΠΈΠ·Π΄Π°Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΊΡΠΌ Π·Π°Π΄Π²ΠΈΠΆΠ²Π°ΡΠΈΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ.
Π‘Π»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΠΈΠ³ΡΡΠ° ΠΏΠΎΠΊΠ°Π·Π²Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ, ΠΊΠΎΠΉΡΠΎ ΡΡΠ΄ΡΡΠΆΠ° ΡΠ΅Π½Π·ΠΎΡΠΈ Π·Π° ΡΠ΅Ρ Π½Π° Π²ΠΎΠ΄Π° (1) Π² Π±Π°Π½ΡΡΠ°, ΡΠ΅Π½Π·ΠΎΡΠΈ Π·Π° ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° (2) ΠΈ ΠΎΡΠ²Π΅ΡΠ»Π΅Π½ΠΈΠ΅ (3) Π² ΡΠΏΠ°Π»Π½ΡΡΠ°, ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ ΠΊΠΎΠ½ΡΠ°ΠΊΡ (4) Π² ΠΊΡΡ Π½ΡΡΠ° ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠ½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΌΠ΅ΡΠ° (5) Π² ΠΊΠΎΡΠΈΠ΄ΠΎΡΠ°.
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΈΡΠΎΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π±Π΅Π·ΠΆΠΈΡΠ½ΠΈ ΡΠ΅Π½Π·ΠΎΡΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠ΅ RF433, Z-Wave, ZigBee, Bluetooth ΠΈ WiFi. ΠΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΈΠΌ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° ΡΠ° Π»Π΅ΡΠ½Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π½ΠΈΡΠΊΠ° ΡΠ΅Π½Π° ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ. ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΡΠ΅ ΡΡΡΠ΅ΠΌΡΡ Π΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡ ΡΠ²ΠΎΠΈΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° ΠΌΠ°ΡΠΎΠ²ΠΈΡ ΠΏΠ°Π·Π°Ρ ΠΈ Π΄Π° Π³ΠΈ Π½Π°ΠΏΡΠ°Π²ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° ΡΡΠ΅Π΄Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π».
Π‘Π΅Π½Π·ΠΎΡΠΈΡΠ΅ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ, ΠΊΠ°ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ ΡΡΠ΅Π· Π±Π΅Π·ΠΆΠΈΡΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ° Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ (6) - ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠΌΠΏΡΡΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π² Π΅Π΄Π½Π° ΠΌΡΠ΅ΠΆΠ° ΠΈ Π³ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°.
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π½ΡΠΊΠΎΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Ρ ΡΠ΅Π½Π·ΠΎΡ, Π·Π°Π΄Π²ΠΈΠΆΠ²Π°Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ ΡΠ΅ΠΏΡΠ΅Π» ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½ Π΄Π° ΡΠ΅ Π²ΠΊΠ»ΡΡΠ²Π° ΠΈΠ»ΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π° ΡΠΏΠΎΡΠ΅Π΄ Π³ΡΠ°ΡΠΈΠΊ, Π° ΠΎΠ±Π»Π°ΡΠ½Π° ΠΊΠ°ΠΌΠ΅ΡΠ° Π·Π° Π²ΠΈΠ΄Π΅ΠΎΠ½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π° Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΡΠΈΠ³Π½Π°Π» Π½Π° Π΄Π΅ΡΠ΅ΠΊΡΠΎΡ Π·Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅. Π Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ Π±Π΅Π· ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ, Π½ΠΎ Π·Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ Π³ΡΠ²ΠΊΠ°Π²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
ΠΠ° Π΄Π° ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ ΠΊΡΠΌ Π³Π»ΠΎΠ±Π°Π»Π½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΡΡΠ΅Ρ (7), ΠΊΠΎΠΉΡΠΎ ΠΎΡΠ΄Π°Π²Π½Π° ΡΠ΅ Π΅ ΠΏΡΠ΅Π²ΡΡΠ½Π°Π» Π² ΠΏΠΎΠ·Π½Π°Ρ Π΄ΠΎΠΌΠ°ΠΊΠΈΠ½ΡΠΊΠΈ ΡΡΠ΅Π΄ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ Π΄ΠΎΠΌ. ΠΠΌΠ° ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π² ΠΏΠΎΠ»Π·Π° Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ° Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ - Π°ΠΊΠΎ Π²ΡΡΠ·ΠΊΠ°ΡΠ° Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΠ΅ Π·Π°Π³ΡΠ±ΠΈ, ΡΠΎΠ³Π°Π²Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡΡ Π΄ΠΎΠΌ ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½ΠΎΡΠΌΠ°Π»Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π±Π»ΠΎΠΊ, ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ Π²ΡΡΡΠ΅ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ°, Π° Π½Π΅ Π² ΠΎΠ±Π»Π°ΡΠ½Π°ΡΠ° ΡΡΠ»ΡΠ³Π°.
ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ
ΠΠΎΠ½ΡΡΠΎΠ»Π΅ΡΡΡ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΎΠ±Π»Π°ΡΠ΅Π½ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ, ΡΠ°Π·Π³Π»Π΅Π΄Π°Π½ Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ, Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π΅Π΄Π½ΠΎΠΏΠ»Π°ΡΠΊΠΎΠ² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠΌΠΏΡΡΡΡ
Π‘Π³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎ - ΠΌΠΈΠΊΡΠΎΠΊΠΎΠΌΠΏΡΡΡΡΡΡ (1) ΡΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠ° Π² ΠΏΠ»Π°ΡΡΠΌΠ°ΡΠΎΠ² ΠΊΠΎΡΠΏΡΡ (2), ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠ°Ρ 8 GB microSD ΠΊΠ°ΡΡΠ° ΠΏΠ°ΠΌΠ΅Ρ ΡΡΡ ΡΠΎΡΡΡΠ΅Ρ (3) ΠΈ USB Z-Wave ΠΌΡΠ΅ΠΆΠΎΠ² ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ (4) ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΡΠ΅ ΡΠ»ΠΎΡΠΎΠ²Π΅. ΠΠΎΠ½ΡΡΠΎΠ»Π΅ΡΡΡ Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ Π΅ ΡΠ²ΡΡΠ·Π°Π½ ΠΊΡΠΌ Π΅Π»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠ°ΡΠ° ΠΌΡΠ΅ΠΆΠ° ΡΡΠ΅Π· Π·Π°Ρ
ΡΠ°Π½Π²Π°Ρ Π°Π΄Π°ΠΏΡΠ΅Ρ 5V, 2.1A (5) ΠΈ USB-micro-USB ΠΊΠ°Π±Π΅Π» (6). ΠΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ ΠΈΠΌΠ° ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π΅Π½ Π½ΠΎΠΌΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ» ΠΏΡΠΈ ΠΏΡΡΠ²ΠΎΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ.
Π‘ΠΎΡΡΡΠ΅ΡΡΡ Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ Π°Π²ΡΠΎΡΠ° Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Linux Raspbian Stretch. Π‘ΡΡΡΠΎΠΈ ΡΠ΅ ΠΎΡ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈ:
- ΡΡΡΠ²ΡΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΎ Π΄ΠΎΠΌΠ°ΡΠ½ΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ ΠΈ ΠΎΠ±Π»Π°ΠΊ;
- Π³ΡΠ°ΡΠΈΡΠ΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ°;
- Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ°.
Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½Π° Π‘Π£ΠΠ
ΠΡΠ°ΡΠΈΡΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΡΡ Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ Π² PHP 7 Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ°ΠΌΠΊΠ°
(ΡΡΠ°ΠΊΠ½Π΅ΡΠ΅ Π²ΡΡΡ
Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π·Π° Π΄Π° Π³ΠΎ ΠΎΡΠ²ΠΎΡΠΈΡΠ΅ Π² ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° ΡΠ΅Π·ΠΎΠ»ΡΡΠΈΡ)
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π½Π° GUI Π΅ Π΄Π° ΡΠ²ΡΡΠ·Π²Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΎ Π΄ΠΎΠΌΠ°ΡΠ½ΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ (IP ΠΊΠ°ΠΌΠ΅ΡΠΈ ΠΈ ΡΠ΅Π½Π·ΠΎΡΠΈ) ΠΊΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ°. Π£Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΈ ΡΠ΅ΠΊΡΡΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ° ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ ΠΊΡΠΌ Π½Π΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΡ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ SQLite. ΠΠ° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ°, ΡΠΎΠΉ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ JSON ΡΡΠ΅Π· RESTful API Π½Π° ΡΡΡΠ²ΡΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ.
Π‘ΡΡΠ²ΡΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ
Π‘ΡΡΠ²ΡΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ - ΠΊΠ»ΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΡΠ»Π°ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠΎΡΠΌΠΈΡΠ°Ρ ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠΌ: ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ΅Π½Π·ΠΎΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ°. Π¦Π΅Π»ΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ Π΅ Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π° Ρ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΎ Π΄ΠΎΠΌΠ°ΡΠ½ΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅, Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°, Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΎΡ Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΠΎΠ±Π»Π°ΠΊΠ°. Π‘ΡΡΠ²ΡΡΠ½ΠΈΡΡ ΠΏΡΠΎΡΠ΅Ρ Π² ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΊΠ°ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ½ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΎ Π² C ++ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΎ ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π½Π° ΡΡΠ»ΡΠ³Π° systemd ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Linux Raspbian.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π½Π° ΡΡΡΠ²ΡΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ ΡΠ°:
- ΠΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ;
- IP ΠΊΠ°ΠΌΠ΅ΡΠ° ΡΡΡΠ²ΡΡ;
- Z-Wave ΡΡΡΠ²ΡΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°;
- Π‘ΡΡΠ²ΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°;
- ΠΠ°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ° ΠΈ Π±Π»ΠΎΠΊ ΠΎΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°;
- RESTful API ΡΡΡΠ²ΡΡ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ;
- MQTT ΠΊΠ»ΠΈΠ΅Π½Ρ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΎΠ±Π»Π°ΠΊΠ°.
ΠΠ»ΠΎΠΊΠΎΠ²Π΅ΡΠ΅ Π½Π° ΡΡΡΠ²ΡΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΠΎΡΠΎΡΠΈ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Ρ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ JSON (ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°ΡΠΈ ΡΠΎΠ·ΠΈ ΡΠΎΡΠΌΠ°Ρ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°).
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π° ΡΡΡΠ²ΡΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ Π΅ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΉΡΠΎ Π½Π°ΡΠΎΡΠ²Π° JSON ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΡΠΌ Π²ΡΠΈΡΠΊΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π² ΡΡΡΠ²ΡΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ. Π’ΠΈΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° Π² JSON ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ°Ρ, ΡΠ° ΠΈΠ·Π±ΡΠΎΠ΅Π½ΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°:
deviceType
ΠΏΡΠΎΡΠΎΠΊΠΎΠ»
messageType
deviceState
ΠΊΠΎΠΌΠ°Π½Π΄Π°
ΡΡΠ°Ρ
ONVIF
ΡΠ΅Π½Π·ΠΎΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ
on
ΠΏΠΎΡΠΎΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ (Π²ΠΊΠ»./ΠΈΠ·ΠΊΠ».)
ΡΠ΅Π½Π·ΠΎΡ
zwave
ΠΊΠΎΠΌΠ°Π½Π΄Π°
ΠΎΡ
Π·Π°ΠΏΠΈΡ (Π²ΠΊΠ»./ΠΈΠ·ΠΊΠ».)
Π΅ΡΠ΅ΠΊΡΠΎΡ
mqtt
businessLogicRule
ΠΏΠΎΡΠΎΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ (Π²ΠΊΠ»./ΠΈΠ·ΠΊΠ».)
ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ (ΠΠΎΠ±Π°Π²ΡΠ½Π΅/ΠΡΠ΅ΠΌΠ°Ρ
Π²Π°Π½Π΅)
businessLogic
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ
Π·Π°ΠΏΠΈΡ (Π²ΠΊΠ»./ΠΈΠ·ΠΊΠ».)
Bluetooth
deviceState
Π³ΡΠ΅ΡΠΊΠ°
WiFi
rf
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ Π΄Π΅ΡΠ΅ΠΊΡΠΎΡ Π·Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ°ΠΌΠ΅ΡΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:
{
"vendor": "*****",
"version": "3.0.0",
"timestampMs": "1566293475475",
"clientType": "gateway",
"deviceId": "1616453d-30cd-44b7-9bf0-************",
"deviceType": "camera",
"protocol": "onvif",
"messageType": "sensorData",
"sensorType": "camera",
"label": "motionDetector",
"sensorData": "on"
}
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°
ΠΠ° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ Π΄ΠΈΡΠΏΠ΅ΡΠ΅ΡΠ°, Π±Π»ΠΎΠΊΡΡ Π½Π° ΡΡΡΠ²ΡΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ ΡΠ΅ Π°Π±ΠΎΠ½ΠΈΡΠ° Π·Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠΈΠΏ. ΠΠ±ΠΎΠ½Π°ΠΌΠ΅Π½ΡΡΡ Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΡ ΡΠΈΠΏΠ° "ΠΠΊΠΎ...ΡΠΎΠ³Π°Π²Π°...", ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ JSON, ΠΈ Π²ΡΡΠ·ΠΊΠ° ΠΊΡΠΌ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠ° Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π±Π»ΠΎΠΊΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΡΡΡΠ²ΡΡΡΡ Π½Π° IP ΠΊΠ°ΠΌΠ΅ΡΠ°ΡΠ° Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΎΡ GUI ΠΈ ΠΎΠ±Π»Π°ΠΊΠ°, ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ:
{
"if": {
"and": [{
"equal": {
"deviceId": "1616453d-30cd-44b7-9bf0-************"
}
},
{
"equal": {
"messageType": "command"
}
}
]
},
"then": {
"result": "true"
}
}
ΠΠΊΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡΡΠ°, ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ Π² Π°Π½ΡΠ΅ΡΠ΅Π΄Π΅Π½Ρ (Π»ΡΠ²Π°ΡΠ° ΡΡΡΠ°Π½Π°) ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° ΡΠ° Π²Π΅ΡΠ½ΠΈ, ΡΠΎΠ³Π°Π²Π° ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΎ (Π΄ΡΡΠ½Π° ΡΡΡΠ°Π½Π°) ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΠ»ΠΎΡΠΎ Π½Π° JSON ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠ½ΡΠ΅ΡΠ΅Π΄Π΅Π½ΡΡΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΠ°Π²Π½ΡΠ²Π°Ρ JSON Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ:
- Π΅ ΡΠ°Π²Π½ΠΎ Π½Π° "ΡΠ°Π²Π½ΠΎ";
- Π½Π΅ Π΅ ΡΠ°Π²Π½ΠΎ Π½Π° "not_equal";
- ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ "ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ";
- ΠΏΠΎΠ²Π΅ΡΠ΅ "ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠΎ";
- ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎ Π½Π° "ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ_ΠΈΠ»ΠΈ_ΡΠ°Π²Π½ΠΎ";
- ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠΎ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎ Π½Π° "ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠΎ_ΠΈΠ»ΠΈ_ΡΠ°Π²Π½ΠΎ".
Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ Π½Π° Π±ΡΠ»Π΅Π²Π° Π°Π»Π³Π΅Π±ΡΠ°:
- Π "ΠΈ";
- ΠΠΠ "ΠΈΠ»ΠΈ";
- ΠΠ "Π½Π΅".
ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, Π·Π°ΠΏΠΈΡΠ²Π°ΠΉΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ ΠΈ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΈ Π² ΠΏΠΎΠ»ΡΠΊΠ° Π½ΠΎΡΠ°ΡΠΈΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΎΡΠΌΠΈΡΠ°ΡΠ΅ Π΄ΠΎΡΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Ρ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ.
ΠΠ±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΡΡΠΈΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° JSON ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ JSON, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ²ΡΡΠ΅Π½ Π±Π»ΠΎΠΊ Π·Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π·Π½Π°Π½ΠΈΡ ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·Π²ΠΎΠ΄ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΠ΅Π½Π·ΠΎΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈ ΡΠ΅Π½Π·ΠΎΡΠΈ.
ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΡΠ·Π΄Π°Π²Π° ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΡΠΏΠΎΡΠ΅Π΄ ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: "ΠΠΊΠΎ ΡΠ΅Π½Π·ΠΎΡΡΡ Π·Π° ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π½Π° Π²Ρ ΠΎΠ΄Π½Π°ΡΠ° Π²ΡΠ°ΡΠ° ΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²Π°, ΡΠΎΠ³Π°Π²Π° Π²ΠΊΠ»ΡΡΠ΅ΡΠ΅ ΡΠ²Π΅ΡΠ»ΠΈΠ½Π°ΡΠ° Π² ΠΊΠΎΡΠΈΠ΄ΠΎΡΠ°". ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΡΠ΅Π½Π·ΠΎΡΠΈ (ΡΠ΅Π½Π·ΠΎΡ Π·Π° ΠΎΡΠ²Π°ΡΡΠ½Π΅) ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ (ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ ΠΊΠΎΠ½ΡΠ°ΠΊΡ ΠΈΠ»ΠΈ ΡΠΌΠ°ΡΡ Π»Π°ΠΌΠΏΠ°) ΠΎΡ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π² JSON ΡΠΎΡΠΌΠ°Ρ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π΄ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ° Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠΌ. Π’ΠΎΠ·ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°Π½ ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π² ΡΡΠ΅ΡΠ°ΡΠ° ΡΡΠ°ΡΠΈΡ ΠΎΡ Π½Π°ΡΠΈΡ ΡΠΈΠΊΡΠ», ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ.
ΠΠ±ΡΡΠ΄Π΅Π½ΠΈΡΡ ΠΏΠΎ-Π³ΠΎΡΠ΅ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΡΠΌ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°
void CRuleEngine::Process(PProperties pFact)
{
m_pActions->clear();
rapidjson::Reader reader;
for(TStringMap::value_type& rRule : m_Rules)
{
std::string sRuleId = rRule.first;
std::string sRuleBody = rRule.second;
CRuleHandler ruleHandler(pFact);
rapidjson::StringStream ruleStream(sRuleBody.c_str());
rapidjson::ParseResult parseResult = reader.Parse(ruleStream, ruleHandler);
if(!parseResult)
{
m_Logger.LogMessage(
NLogger2::ePriorityLevelError,
std::string("JSON parse error"),
"CRuleEngine::Process()",
std::string("RuleId: ") + sRuleId);
}
PProperties pAction = ruleHandler.GetAction();
if(pAction)
{
pAction->Set("ruleId", sRuleId);
m_pActions->push_back(pAction);
}
}
}
Π’ΡΠΊ pΠ€Π°ΠΊΡ - ΡΡΡΡΠΊΡΡΡΠ°, ΡΡΠ΄ΡΡΠΆΠ°ΡΠ° Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡ-ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΎΡ JSON ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, m_ΠΡΠ°Π²ΠΈΠ»Π° β Π½ΠΈΠ·ΠΎΠ² ΠΌΠ°ΡΠΈΠ² ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°. Π‘ΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π²Ρ ΠΎΠ΄ΡΡΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΎΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡΡΠ° reader.Parse(ruleStream, ruleHandler)ΠΡΠ΄Π΅ΡΠΎ ruleHandler Π΅ ΠΎΠ±Π΅ΠΊΡ, ΡΡΠ΄ΡΡΠΆΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° Π±ΡΠ»Π΅Π²ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈΡΠ΅ Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅. sRuleId - ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΉΡΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ. m_pActions - ΠΌΠ°ΡΠΈΠ² Ρ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΈΠ·Π²ΠΎΠ΄Π°: JSON ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ ΠΎΡ Π±Π°Π·Π°ΡΠ° ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΠΊ ΠΊΡΠΌ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½ΠΈΡΠΊΠΈΡΠ΅ Π½Π° Π°Π±ΠΎΠ½Π°ΡΠΈΡΠ΅ Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π³ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ.
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° RapidJSON Π΅ ΡΡΠ°Π²Π½ΠΈΠΌΠ° Ρ ΡΡΠ½ΠΊΡΠΈΡΡΠ° strlen(), Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΡΠ°Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΡΠ² Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ JSON Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π³ΡΠ²ΠΊΠ°Π²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ.
Π‘Π΅Π½Π·ΠΎΡΠΈ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Z-Wave
ΠΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠΌ Π΅, ΡΠ΅ ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎ Π΄Π° ΠΈΠ·ΠΌΠ΅ΡΠ²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° Π²ΡΠ½ΡΠ½Π°ΡΠ° ΡΡΠ΅Π΄Π° ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΡΡΠ°. ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΡΠ΅Π½Π·ΠΎΡΠΈΡΠ΅ ΠΈ Π·Π°Π΄Π²ΠΈΠΆΠ²Π°ΡΠΈΡΠ΅ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΈ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ° Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ. Π ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠΎΠ²Π° ΡΠ° Π±Π΅Π·ΠΆΠΈΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°
ΠΠ½Π΅Ρ Π½Π° ΠΏΠ°Π·Π°ΡΠ° ΠΈΠΌΠ° Π΄ΠΎΡΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Z-Wave ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ°ΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΉΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ:
- Π£ΠΌΠ½ΠΈΡΡ ΠΊΠΎΠ½ΡΠ°ΠΊΡ Zipato PAN16 ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΌΠ΅ΡΠ²Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ: ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ Π½Π° Π΅Π»Π΅ΠΊΡΡΠΎΠ΅Π½Π΅ΡΠ³ΠΈΡ (kWh), ΠΌΠΎΡΠ½ΠΎΡΡ (W), Π½Π°ΠΏΡΠ΅ΠΆΠ΅Π½ΠΈΠ΅ (V) ΠΈ ΡΠΎΠΊ (A) Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ°. Π Π°Π·ΠΏΠΎΠ»Π°Π³Π° ΠΈ Ρ Π²Π³ΡΠ°Π΄Π΅Π½ ΠΊΠ»ΡΡ, Ρ ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠ΅ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡ Π΅Π»Π΅ΠΊΡΡΠΎΡΡΠ΅Π΄;
- Π‘Π΅Π½Π·ΠΎΡΡΡ Π·Π° ΡΠ΅Ρ Neo Coolcam ΠΎΡΠΊΡΠΈΠ²Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π·Π»ΡΡΠ° ΡΠ΅ΡΠ½ΠΎΡΡ ΡΡΠ΅Π· Π·Π°ΡΠ²Π°ΡΡΠ½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ Π½Π° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΎΠ½Π΄Π°;
- ΠΠ΅ΡΠ΅ΠΊΡΠΎΡΡΡ Π·Π° Π΄ΠΈΠΌ Zipato PH-PSG01 ΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°ΡΡΠΈΡΠΈ Π΄ΠΈΠΌ Π½Π°Π²Π»ΡΠ·Π°Ρ Π² ΠΊΠ°ΠΌΠ΅ΡΠ°ΡΠ° Π½Π° Π³Π°Π·ΠΎΠ°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°;
- Π‘Π΅Π½Π·ΠΎΡΡΡ Π·Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Neo Coolcam Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΈΠ½ΡΡΠ°ΡΠ΅ΡΠ²Π΅Π½ΠΎΡΠΎ ΠΈΠ·Π»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΎΠ²Π΅ΡΠΊΠΎΡΠΎ ΡΡΠ»ΠΎ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΈΠΌΠ° ΡΠ΅Π½Π·ΠΎΡ Π·Π° ΡΠ²Π΅ΡΠ»ΠΈΠ½Π° (Lx);
- ΠΡΠ»ΡΠΈΡΠ΅Π½Π·ΠΎΡ Philio PST02-A ΠΈΠ·ΠΌΠ΅ΡΠ²Π° ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° (Β°C), ΠΎΡΠ²Π΅ΡΠ΅Π½ΠΎΡΡ (%), ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π½Π° Π²ΡΠ°ΡΠ°, ΡΠΎΠ²Π΅ΡΠΊΠΎ ΠΏΡΠΈΡΡΡΡΠ²ΠΈΠ΅ Π² ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ;
- ΠΡΠ΅ΠΆΠΎΠ² ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Z-Wave USB Stick ZME E UZB1, ΠΊΡΠΌ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ ΡΠ΅Π½Π·ΠΎΡΠΈΡΠ΅.
ΠΠ½ΠΎΠ³ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ° ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΡΡ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π½Π° Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΡΠ΅ΡΡΠΎΡΠ°, Π² ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅, ΠΏΠΎ ΠΏΡΠΎΡΡ Π½Π°ΡΠΈΠ½, Π½ΡΠΌΠ° Π΄Π° ΡΠ΅ Π²ΠΈΠΆΠ΄Π°Ρ Π΅Π΄ΠΈΠ½ Π΄ΡΡΠ³ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅. ΠΡΠΌ Π΅Π΄ΠΈΠ½ Z-Wave ΠΌΡΠ΅ΠΆΠΎΠ² ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ²ΡΡΠ·Π°Π½ΠΈ Π΄ΠΎ 232 ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π·Π° Π°ΠΏΠ°ΡΡΠ°ΠΌΠ΅Π½Ρ ΠΈΠ»ΠΈ ΡΠ΅Π»ΡΠΊΠ° ΠΊΡΡΠ°. ΠΠ° ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎΡΠΎ ΠΏΠΎΠΊΡΠΈΡΠΈΠ΅ Π½Π° Π·Π°ΠΊΡΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ ΠΊΠΎΠ½ΡΠ°ΠΊΡ ΠΊΠ°ΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΠ΅Π» Π½Π° ΡΠΈΠ³Π½Π°Π»Π°.
Π ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ, ΠΎΠ±ΡΡΠ΄Π΅Π½ Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ ΠΏΠ°ΡΠ°Π³ΡΠ°Ρ, Z-Wave ΡΡΡΠ²ΡΡΡΡ Π΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ Ρ Z-Wave ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΡΠ΅Π½Π·ΠΎΡΠΈ, ΡΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°
{
"vendor": "*****",
"version": "3.0.0",
"timestampMs": "1566479791290",
"clientType": "gateway",
"deviceId": "20873eb0-dd5e-4213-a175-************",
"deviceType": "sensor",
"protocol": "zwave",
"messageType": "sensorData",
"homeId": "0xefa0cfa7",
"nodeId": "20",
"sensorType": "METER",
"label": "Voltage",
"sensorData": "229.3",
"units": "V"
}
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π΄ΠΎ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½ΠΈΡΠΊΠΈΡΠ΅ Π½Π° Π°Π±ΠΎΠ½Π°ΡΠΈΡΠ΅ Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π³ΠΎ ΠΏΠΎΠ»ΡΡΠ°Ρ. ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ Π°Π±ΠΎΠ½Π°Ρ Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ²ΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΡΠ²ΠΏΠ°Π΄Π° ΡΡΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΠ»Π΅ΡΠΎ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π² ΠΏΡΠ΅Π΄Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΡΠ°ΡΡΠΈ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°. Π Π΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΈΠ·Π²ΠΎΠ΄Π°, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊΡΠΌ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ° ΠΈ ΠΎΡΡΠ°ΠΌ ΠΊΡΠΌ Z-Wave ΡΡΡΠ²ΡΡΠ°, ΠΊΠΎΠΉΡΠΎ Π³ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ° ΠΈ Π³ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΊΡΠΌ Z-Wave ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ USB ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ Π²Π»ΠΈΠ·Π°Ρ Π² ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Π²ΡΠ² Π²ΡΠ½ΡΠ½Π°ΡΠ° ΡΡΠ΅Π΄Π° ΠΈ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΠΌΠ½ΠΈΡΡ Π΄ΠΎΠΌ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΠΎΠ»Π΅Π·Π½Π° ΡΠ°Π±ΠΎΡΠ°.
(ΡΡΠ°ΠΊΠ½Π΅ΡΠ΅ Π²ΡΡΡ
Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π·Π° Π΄Π° Π³ΠΎ ΠΎΡΠ²ΠΎΡΠΈΡΠ΅ Π² ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° ΡΠ΅Π·ΠΎΠ»ΡΡΠΈΡ)
Π‘Π²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° Z-Wave ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π² Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ. ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΡΡΡ ΡΠΏΠΈΡΡΠΊΠ° Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ ΡΡΠ°ΠΊΠ½Π΅ΡΠ΅ Π²ΡΡΡ Ρ Π±ΡΡΠΎΠ½Π° βΠΠΎΠ±Π°Π²ΡΠ½Π΅β. ΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ ΠΏΡΠ΅Π· RESTful API ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π²Π»ΠΈΠ·Π° Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ° ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΎΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄ΠΎ Z-Wave ΡΡΡΠ²ΡΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΡΡΠ°Π²Ρ Z-Wave USB ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ Z-Wave ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ΅ΡΠΈΡ ΠΎΡ Π±ΡΡΠ·ΠΈ Π½Π°ΡΠΈΡΠΊΠ°Π½ΠΈΡ (3 Π½Π°ΡΠΈΡΠΊΠ°Π½ΠΈΡ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° 1,5 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ) Π½Π° ΡΠ΅ΡΠ²ΠΈΠ·Π½ΠΈΡ Π±ΡΡΠΎΠ½. USB ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΡΡ ΡΠ²ΡΡΠ·Π²Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ ΠΊΡΠΌ ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π½Π΅Π³ΠΎ ΠΊΡΠΌ Z-Wave ΡΡΡΠ²ΡΡΠ°. Π’ΠΎΠ²Π° ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π° ΡΡΠ·Π΄Π°Π²Π° Π½ΠΎΠ² Π·Π°ΠΏΠΈΡ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ SQLite Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° Π½ΠΎΠ²ΠΎΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ. ΠΡΠ°ΡΠΈΡΠ½ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ»Π΅Π΄ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅ Π²ΡΡΡΠ° ΠΊΡΠΌ ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΡΡΡ ΡΠΏΠΈΡΡΠΊ Π½Π° Z-Wave ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π° Π½ΠΎΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π² ΡΠΏΠΈΡΡΠΊΠ°. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π²ΡΡΠΊΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ ΠΈΠ·Π²ΠΎΠ΄ ΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Π² ΠΎΠ±Π»Π°ΠΊΠ°. Π Π°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠΎΠ·ΠΈ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° UML Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°ΡΠ°:
(ΡΡΠ°ΠΊΠ½Π΅ΡΠ΅ Π²ΡΡΡ
Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π·Π° Π΄Π° Π³ΠΎ ΠΎΡΠ²ΠΎΡΠΈΡΠ΅ Π² ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° ΡΠ΅Π·ΠΎΠ»ΡΡΠΈΡ)
Π‘Π²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° IP ΠΊΠ°ΠΌΠ΅ΡΠΈ
Π Π°Π·Π³Π»Π΅Π΄Π°Π½Π°ΡΠ° Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΎΠ±Π»Π°ΡΠ΅Π½ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ Π΅ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΠΎΠ±Π»Π°ΡΠ½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Π²ΠΈΠ΄Π΅ΠΎΠ½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅, ΡΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° ΠΎΡ Π°Π²ΡΠΎΡΠ°, ΠΊΠΎΡΡΠΎ Π΅ Π½Π° ΠΏΠ°Π·Π°ΡΠ° ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΈ Π² Π ΡΡΠΈΡ.
ΠΡΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π²ΠΈΠ΄Π΅ΠΎΠ½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΎΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ ΠΈΠ·Π±ΠΎΡ Π½Π° ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅, Ρ ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ. Π‘ΠΎΡΡΡΠ΅ΡΡΡ, ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Ρ ΠΎΠ±Π»Π°ΠΊΠ°, Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Π²ΡΡΡΠ΅ Π² Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΠΌΠ΅ΡΠ°ΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π²Π΅Π΄Π½Π°Π³Π° Π½Π°Π»Π°Π³Π° ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ ΠΊΡΠΌ Π½Π΅ΠΉΠ½ΠΈΡ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ΅Π½ ΠΏΡΠ»Π½Π΅ΠΆ - ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π° ΠΏΠ°ΠΌΠ΅Ρ. Π’ΠΎΠ²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΠΎΠ±ΡΡΠ½ΡΠ²Π° ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠ°ΡΠ° ΡΠ΅Π½Π° Π½Π° ΠΊΠ°ΠΌΠ΅ΡΠΈΡΠ΅ Π·Π° ΠΎΠ±Π»Π°ΡΠ½ΠΎ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡΠ΅ IP ΠΊΠ°ΠΌΠ΅ΡΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π΄ΡΠ»ΡΠ³ Π΅ΡΠ°ΠΏ Π½Π° ΠΏΡΠ΅Π³ΠΎΠ²ΠΎΡΠΈ Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡΠ΅ Π·Π° ΠΊΠ°ΠΌΠ΅ΡΠΈ Π·Π° Π²ΠΈΠ΄Π΅ΠΎΠ½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅, Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π° ΠΊΠ°ΠΌΠ΅ΡΠ°ΡΠ° ΠΈ Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°.
ΠΡ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, Π²ΡΠΈΡΠΊΠΈ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈ IP ΠΊΠ°ΠΌΠ΅ΡΠΈ ΠΈΠΌΠ°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ (ΠΏΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΊΠΎΡΠ΄Π΅ΡΠΈ). ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° ΡΡΠ΅Π· ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΈ ΠΈΠ·Π»ΡΡΠ²Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎΡΠΎΡΠΈ ΠΎΡ IP ΠΊΠ°ΠΌΠ΅ΡΠΈ ΠΊΡΠΌ ΠΎΠ±Π»Π°ΠΊΠ°, ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π²ΠΈΠ΄Π΅ΠΎΠ½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π°ΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ Π²Π΅ΡΠ΅ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π» ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Π²ΠΈΠ΄Π΅ΠΎΠ½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅, Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° ΠΏΡΠΎΡΡΠΈ IP ΠΊΠ°ΠΌΠ΅ΡΠΈ, ΡΠΎΠ³Π°Π²Π° ΡΡΠ°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° Ρ ΡΠ°Π·ΡΠΈΡΠΈΡΠ΅ ΠΈ Π΄Π° Ρ ΠΏΡΠ΅Π²ΡΡΠ½Π΅ΡΠ΅ Π² ΠΏΡΠ»Π½ΠΎΠΏΡΠ°Π²Π΅Π½ ΠΎΠ±Π»Π°ΡΠ΅Π½ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ.
ΠΠ°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π·Π° IP ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π²ΠΈΠ΄Π΅ΠΎΠ½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ Π²Π΅ΡΠ΅ ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ Π½Π° IP ΠΊΠ°ΠΌΠ΅ΡΠΈ Π±Π΅Π· ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π΅
$ wsdl2h -o onvif.h
https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl
https://www.onvif.org/ver10/events/wsdl/event.wsdl
https://www.onvif.org/ver10/media/wsdl/media.wsdl
https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl
$ soapcpp2 -Cwvbj -c++11 -d cpp_files/onvif -i onvif.h
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π½Π°Π±ΠΎΡ ΠΎΡ Π·Π°Π³Π»Π°Π²Π½ΠΈ "*.h" ΠΈ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ "*.cpp" Π½Π° Π΅Π·ΠΈΠΊΠ° C ++, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° GCC ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ°. ΠΠΎΡΠ°Π΄ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠ΄ΡΡ Π΅ Π³ΠΎΠ»ΡΠΌ ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ. ΠΠΈΠΊΡΠΎΠΊΠΎΠΌΠΏΡΡΡΡΡΡ Raspberry Pi 3 ΠΌΠΎΠ΄Π΅Π» B+ ΠΈΠΌΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, Π·Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈ ΡΠΎΠ·ΠΈ ΠΊΠΎΠ΄, Π½ΠΎ Π² ΡΠ»ΡΡΠ°ΠΉ, ΡΠ΅ ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ ΠΏΡΠ΅Π½Π°ΡΡΠ½Π΅ Π½Π° ΠΊΠΎΠ΄Π° ΠΊΡΠΌ Π΄ΡΡΠ³Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π½Π°ΡΠ° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΠ΅ΡΡΡΡΠΈ.
IP ΠΊΠ°ΠΌΠ΅ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ONVIF, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π±ΠΎΡΡΡ Π² Π»ΠΎΠΊΠ°Π»Π½Π° ΠΌΡΠ΅ΠΆΠ°, ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ ΠΊΡΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° ΠΌΡΠ»ΡΠΈΠΊΠ°ΡΡ Π³ΡΡΠΏΠ° Ρ Π°Π΄ΡΠ΅Ρ 239.255.255.250. ΠΠΌΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»
Π Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π·Π° ΡΡΡΡΠ΅Π½Π΅ Π½Π° IP ΠΊΠ°ΠΌΠ΅ΡΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° PHP, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠ΅Π± ΡΡΠ»ΡΠ³ΠΈ ΡΡΠ΅Π· XML ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΡΠΈ ΠΈΠ·Π±ΠΎΡ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΠΌΠ΅Π½ΡΡΠΎ Π£ΡΡΡΠΎΠΉΡΡΠ²Π° > IP ΠΊΠ°ΠΌΠ΅ΡΠΈ > Π‘ΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΡΡ Π·Π° ΡΡΡΡΠ΅Π½Π΅ Π½Π° IP ΠΊΠ°ΠΌΠ΅ΡΠΈ, ΠΏΠΎΠΊΠ°Π·Π²Π°ΠΉΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°:
(ΡΡΠ°ΠΊΠ½Π΅ΡΠ΅ Π²ΡΡΡ
Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π·Π° Π΄Π° Π³ΠΎ ΠΎΡΠ²ΠΎΡΠΈΡΠ΅ Π² ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° ΡΠ΅Π·ΠΎΠ»ΡΡΠΈΡ)
ΠΠΎΠ³Π°ΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠ°ΠΌΠ΅ΡΠ° ΠΊΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅, ΡΠΏΠΎΡΠ΅Π΄ ΠΊΠΎΠΈΡΠΎ ΡΡ ΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π° Ρ ΠΎΠ±Π»Π°ΠΊΠ°. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π½Π° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΌΡ ΡΠ΅ ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π° ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ, ΡΡΠ΅Π· ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½ Π² ΠΎΠ±Π»Π°ΠΊΠ° Π² Π±ΡΠ΄Π΅ΡΠ΅.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ JSON, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° Π΄ΠΎΠ±Π°Π²Π΅Π½Π°ΡΠ° ΠΊΠ°ΠΌΠ΅ΡΠ° ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΎ Π΄ΠΎ ΡΡΡΠ²ΡΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ ΡΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° RESTful API, ΠΊΡΠ΄Π΅ΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΠΊΠ°ΠΌΠ΅ΡΠ°ΡΠ° ΡΠ΅ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Ρ ΠΈ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ Π²ΡΠ² Π²ΡΡΡΠ΅ΡΠ½Π°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ SQLite ΠΈ ΡΠ΅ ΡΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π½ΠΈΡΠΊΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°:
- ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° RTSP Π²ΡΡΠ·ΠΊΠ° Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π°ΡΠ΄ΠΈΠΎ ΠΏΠΎΡΠΎΡΠΈ;
- Π°ΡΠ΄ΠΈΠΎ ΡΡΠ°Π½ΡΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΠΎΡ G.711 mu-Law, G.711 A-Law, G.723 ΠΈ Π΄Ρ. Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ AAC;
- ΡΡΠ°Π½ΡΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎΡΠΎΡΠΈ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ H.264 ΠΈ Π°ΡΠ΄ΠΈΠΎ Π² AAC ΡΠΎΡΠΌΠ°Ρ Π²ΡΠ² FLV ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΈ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ΡΠΎ ΠΌΡ Π² ΠΎΠ±Π»Π°ΠΊΠ° ΡΡΠ΅Π· RTMP ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°;
- Π£ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠ° Ρ ΠΊΡΠ°ΠΉΠ½Π°ΡΠ° ΡΠΎΡΠΊΠ° Π½Π° Π΄Π΅ΡΠ΅ΠΊΡΠΎΡΠ° Π·Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π½Π° IP ΠΊΠ°ΠΌΠ΅ΡΠ°ΡΠ° ΠΏΠΎ ONVIF ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅;
- ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΠ½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π΅Π½ ΠΏΡΠ΅Π³Π»Π΅Π΄ (ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π΅Π½ ΠΏΡΠ΅Π³Π»Π΅Π΄) ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ ΠΌΡ Π² ΠΎΠ±Π»Π°ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° MQTT;
- Π»ΠΎΠΊΠ°Π»Π΅Π½ Π·Π°ΠΏΠΈΡ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π°ΡΠ΄ΠΈΠΎ ΠΏΠΎΡΠΎΡΠΈ ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² MP4 ΡΠΎΡΠΌΠ°Ρ Π½Π° SD ΠΈΠ»ΠΈ Flash ΠΊΠ°ΡΡΠ°ΡΠ° Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ.
ΠΠ° ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠ° Ρ ΠΊΠ°ΠΌΠ΅ΡΠΈ, ΠΏΡΠ΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ Π·Π°ΠΏΠΈΡ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎΡΠΎΡΠΈ Π² ΡΡΡΠ²ΡΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°
Π Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ° Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° 3 ΠΊΠ°ΠΌΠ΅ΡΠΈ Π±ΡΡ Π° ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ°:
- HiWatch DS-I114W (ΡΠ΅Π·ΠΎΠ»ΡΡΠΈΡ - 720p, ΡΠΎΡΠΌΠ°Ρ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ - H.264, Π±ΠΈΡΡΠ΅ΠΉΡ - 1 Mb / s, Π·Π²ΡΠΊ G.711 mu-Law);
- Microdigital MDC-M6290FTD-1 (ΡΠ΅Π·ΠΎΠ»ΡΡΠΈΡ - 1080p, ΡΠΎΡΠΌΠ°Ρ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ - H.264, Π±ΠΈΡΡΠ΅ΠΉΡ - 1 Mb / s, Π±Π΅Π· Π·Π²ΡΠΊ);
- Dahua DH-IPC-HDW4231EMP-AS-0360B (ΡΠ΅Π·ΠΎΠ»ΡΡΠΈΡ - 1080p, ΡΠΎΡΠΌΠ°Ρ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ - H.264, Π±ΠΈΡΡΠ΅ΠΉΡ - 1.5 Mb/s, AAC Π°ΡΠ΄ΠΈΠΎ).
Π ΡΡΠΈΡΠ΅ ΠΏΠΎΡΠΎΠΊΠ° Π±ΡΡ
Π° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ°, Π°ΡΠ΄ΠΈΠΎΡΠΎ Π±Π΅ΡΠ΅ ΡΡΠ°Π½ΡΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΎ ΡΠ°ΠΌΠΎ ΠΎΡ Π΅Π΄Π½Π° ΠΊΠ°ΠΌΠ΅ΡΠ° ΠΈ Π·Π°ΠΏΠΈΡΡΡ Π½Π° Π»ΠΎΠΊΠ°Π»Π΅Π½ Π°ΡΡ
ΠΈΠ² Π±Π΅ΡΠ΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½. ΠΠ°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° Π±Π΅ΡΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 5%, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° RAM Π±Π΅ΡΠ΅ 32 MB (Π½Π° ΠΏΡΠΎΡΠ΅Ρ), 56 MB (ΠΎΠ±ΡΠΎ Ρ ΠΠ‘).
Π’Π°ΠΊΠ° ΠΊΡΠΌ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ°Ρ ΠΎΠΊΠΎΠ»ΠΎ 20-30 ΠΊΠ°ΠΌΠ΅ΡΠΈ (Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ ΠΈ Π±ΠΈΡΡΠ΅ΠΉΡΠ°), ΠΊΠΎΠ΅ΡΠΎ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Π²ΠΈΠ΄Π΅ΠΎΠ½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠΈΠ΅ΡΠ°ΠΆΠ½Π° Π²ΠΈΠ»Π° ΠΈΠ»ΠΈ ΠΌΠ°Π»ΡΠΊ ΡΠΊΠ»Π°Π΄. ΠΡΠΈ Π·Π°Π΄Π°ΡΠΈ, ΠΏΡΠΈ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π½Π΅ΡΡΠΎΠΏ Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄ΡΠ΅Π½ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Intel ΠΈ Linux Debian Sarge. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΡΡ Π΅ Π² ΠΏΡΠΎΠ±Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ, ΠΊΠ°ΡΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΌΡ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΡΠΎΡΠ½ΡΠ²Π°Π½ΠΈ.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΎΠ±Π»Π°ΠΊΠ°
ΠΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡΡ Π΄ΠΎΠΌ Π² ΠΎΠ±Π»Π°ΠΊΠ° ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ (Π²ΠΈΠ΄Π΅ΠΎ ΠΈ ΡΠ΅Π½Π·ΠΎΡΠ½ΠΈ ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½ΠΈΡ) Π² ΠΎΠ±Π»Π°ΠΊΠ°. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°Π½Π° ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π² ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΠ°ΡΠΈΡ ΠΎΡ Π½Π°ΡΠ°ΡΠ° ΡΠ΅ΡΠΈΡ. Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ ΠΊΡΠΌ ΠΎΠ±Π»Π°ΠΊΠ°.
Π‘ΡΡΡΠΎΡΠ½ΠΈΡΡΠ° Π½Π° ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ ΡΠ΅Π½Π·ΠΎΡΠ½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½ΠΈΡ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΡΡΠ΅Π· ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°
- QoS 0 - ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ Π²Π΅Π΄Π½ΡΠΆ (Π±Π΅Π· Π³Π°ΡΠ°Π½ΡΠΈΡ Π·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ°);
- QoS 1 - ΠΏΠΎΠ½Π΅ Π²Π΅Π΄Π½ΡΠΆ (Ρ ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ°);
- QoS 2 - ΡΠΎΡΠ½ΠΎ Π²Π΅Π΄Π½ΡΠΆ (Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ°).
Π Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΡΠΎΠ²Π° Π΅ Π±ΡΠΎΠΊΠ΅ΡΡΡ MQTT
ΠΠ° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡΡ Π½Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ.
MQTT ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°
ΠΠ΅Π΄ΠΈΠΉΠ½ΠΈΡΠ΅ ΠΏΠΎΡΠΎΡΠΈ H.264 + AAC ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π² ΠΎΠ±Π»Π°ΠΊΠ° ΡΡΠ΅Π· RTMP ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΠΊΡΠ΄Π΅ΡΠΎ ΠΊΠ»ΡΡΡΠ΅Ρ ΠΎΡ ΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΈ ΡΡΡΠ²ΡΡΠΈ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΡΡΡ Π½Π°ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅. ΠΠ° ΠΎΠΏΡΠΈΠΌΠ°Π»Π½ΠΎ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΈ ΠΈΠ·Π±ΠΎΡ Π½Π° Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ ΠΌΠ΅Π΄ΠΈΠ΅Π½ ΡΡΡΠ²ΡΡ, ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΡΡ Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ ΠΏΡΠ°Π²ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π° Π·Π°ΡΠ²ΠΊΠ° ΠΊΡΠΌ ΠΎΠ±Π»Π°ΡΠ½ΠΈΡ Π±Π°Π»Π°Π½ΡΡΠΎΡ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ Π΅Π΄Π²Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΈΡ ΠΏΠΎΡΠΎΠΊ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΡΠ°ΡΠΈΡΡΠ° ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π° Π΅Π΄Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌΠ°ΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠΌΠΏΡΡΡΡΠ° Raspberry Pi 3 B+, ββΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°, ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ²Π° ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Z-Wave, Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π° Ρ IP ΠΊΠ°ΠΌΠ΅ΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ONVIF, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° ΠΎΠ±ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Ρ ΠΎΠ±Π»Π°ΡΠ½Π°ΡΠ° ΡΡΠ»ΡΠ³Π° ΡΡΠ΅Π· ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ MQTT ΠΈ RTMP. Π Π°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π» Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈ ΡΠ°ΠΊΡΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ JSON.
Π‘Π΅Π³Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΡΡ Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠΌ Π΅ Π² ΠΎΠΏΠΈΡΠ½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠΎΡΡΠΆΠ΅Π½ΠΈΡ Π² ΠΠΎΡΠΊΠ²Π° ΠΈ ΠΠΎΡΠΊΠΎΠ²ΡΠΊΠ° ΠΎΠ±Π»Π°ΡΡ.
Π ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ° ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΡ Π΄ΡΡΠ³ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ (RF, Bluetooth, WiFi, ΠΊΠ°Π±Π΅Π»Π½ΠΈ). ΠΠ° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΡΠ° Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π½Π·ΠΎΡΠΈ ΠΈ IP ΠΊΠ°ΠΌΠ΅ΡΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅Ρ
Π²ΡΡΠ»Π΅Π½Π° Π² ΠΌΠΎΠ±ΠΈΠ»Π½ΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΌΠ° ΠΈ ΠΈΠ΄Π΅ΠΈ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ° ΠΈ ΠΏΡΠ΅Π½Π°ΡΡΠ½Π΅ Π½Π° ΡΠΎΡΡΡΠ΅Ρ ΠΊΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com