แแฆแแก แแแแ แแแแแฅแขแ แแแแแแก, แกแแแแแฃแแแแแชแแ แแ แฎแแแแก, แแแขแแ แแแข แขแแฅแแแแแแแแแแกแ แแ แฎแแแแแแฃแ แ แแแขแแแแฅแขแแก แกแฌแ แแคแ แแแแแแแแ แแแแก แฌแงแแแแแแ, แญแแแแแแ แกแแฎแแแแแก แแแแ แกแฃแ แฃแคแ แ แแฅแขแฃแแแฃแ แ แฎแแแแ. แแแแแแแแแก แกแแชแฎแแแ แแแแแแ แแแแจแแแแแแแแแ แชแแแแแแแแแ แแแแแชแแแ แฅแแแก แฎแแแแแแ แแแงแแแแแฃแแ แแ แแแแฃแกแขแ แแฃแแ แ แแแแแฃแชแแแก 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 - แแแแ แ-USB แแแแแแแก (6) แแแจแแแแแแ. แแแแแแฃแ แแแแขแ แแแแ แก แแฅแแก แฃแแแแแแฃแ แ แกแแแแแแขแแคแแแแชแแ แแแแแ แ, แ แแแแแแช แแฌแแ แแแ แแแแคแแแฃแ แแชแแแก แคแแแแจแ แแแ แแแแแ แแแจแแแแแกแแก แแ แแฃแชแแแแแแแแ แฆแ แฃแแแแแแแ แญแแแแแแ แกแแฎแแแก แกแแ แแแกแแแแแ แฃแ แแแแ แแแแแกแแแแก.
แญแแแแแแ แกแแฎแแแก แแแแขแ แแแแ แแก แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแ แจแแฅแแแแแแ แแ แกแขแแขแแแก แแแขแแ แแก แแแแ แแแแ แแชแแฃแแ แกแแกแขแแแแก แกแแคแฃแซแแแแแ Linux Raspbian Stretch. แแแ แจแแแแแแ แจแแแแแแ แซแแ แแแแแ แฅแแแกแแกแขแแแแแแกแแแ:
- แกแแ แแแ แแก แแ แแชแแกแ แญแแแแแแ แกแแฎแแแก แแฆแญแฃแ แแแแแแแกแแแ แแ แฆแ แฃแแแแแแ แฃแ แแแแ แแฅแแแแแแแกแแแแก;
- แแแแฎแแแ แแแแแก แแ แแคแแแฃแแ แแแขแแ แคแแแกแ แแแแขแ แแแแ แแก แแแแคแแแฃแ แแชแแแกแ แแ แแแแ แแชแแฃแแ แแแ แแแแขแ แแแแก แแแกแแงแแแแแแแ;
- แแแแแชแแแแ แแแแ แแแแขแ แแแแ แแก แแแแคแแแฃแ แแชแแแก แจแแกแแแแฎแแ.
แฒแแแแชแแแแ แแแแ แญแแแแแแ แกแแฎแแแก แแแแขแ แแแแ แ แแแแแ แแแแแ แฉแแจแแแแแฃแแ DBMS-แแก แกแแคแฃแซแแแแแ
แแ แแคแแแฃแแ แแแขแแ แคแแแกแ แญแแแแแแ แกแแฎแแแก แแแแขแ แแแแ แ, แ แแแแแแช แจแแแฃแจแแแแแฃแแแ PHP 7-แจแ แแแแ แ แฉแแ แฉแแก แแแแแงแแแแแแ
(แแแแฌแแแแฃแแแ แกแฃแ แแแแ แฃแคแ แ แแแฆแแแ แแแ แฉแแแแแแแแก แแแกแแฎแกแแแแแ)
แแ แแคแแแฃแแ แแแขแแ แคแแแกแแก แแแแแแ แ แคแฃแแฅแชแแแ แญแแแแแแ แกแแฎแแแก แแแฌแงแแแแแแแแแแก (IP แกแแแแแแแแแแ แแแแแ แแแ แแ แกแแแกแแ แแแ) แแแแขแ แแแแ แแแ แแแแแแจแแ แแแ. แแแ แแแแแแแชแแ แแแแฎแฃแแแแก แแแแขแ แแแแ แแก แแ แแแกแแแ แแแแแแจแแ แแแฃแแ แแแฌแงแแแแแแแแแแก แแแแคแแแฃแ แแชแแแก แแ แแแแแแแแ แ แแแแแแแ แแแแแก SQLite แแแแแชแแแแ แแแแแแแ. แแแแขแ แแแแ แแก แแแแคแแแฃแ แแชแแแก แจแแกแแชแแแแแแ, แแก แแแแแแแแก แกแแแแแขแ แแแ แแ แซแแแแแแแก JSON แคแแ แแแขแจแ แกแแ แแแ แแก แแ แแชแแกแแก RESTful API แแแขแแ แคแแแกแแก แแแจแแแแแแ.
แกแแ แแแ แแก แแ แแชแแกแ
แกแแ แแแ แแก แแ แแชแแกแ - แซแแ แแแแแ แแแแแแแแแขแ, แ แแแแแแช แแกแ แฃแแแแก แงแแแแ แซแแ แแแแ แกแแแฃแจแแแก แแแคแแ แแแชแแฃแแ แแ แแชแแกแแแแก แแแขแแแแขแแแแชแแแแ, แ แแแแแแแช แฅแแแแแ แญแแแแแแ แกแแฎแแแก แกแแคแฃแซแแแแก: แกแแแกแแ แฃแแ แแแแแชแแแแแแก แแแฆแแแ แแ แแแแฃแจแแแแแ, แฉแแจแแแแแฃแแ แแแแแแแก แแแฎแแแแแ แกแแแแแขแ แแแ แแแฅแแแแแแแแแก แแแชแแแ. แกแแ แแแ แแก แแ แแชแแกแแก แแแแแแแ แญแแแแแ แกแแฎแแแก แแฆแญแฃแ แแแแแแแกแแแ แฃแ แแแแ แแฅแแแแแแ, แฌแแ แแแแแแก แแแแแแฃแ แ แฌแแกแแแแก แจแแกแ แฃแแแแ, แแ แแคแแแฃแแ แแแขแแ แคแแแกแแแแ แแ แฆแ แฃแแแแแแ แแ แซแแแแแแแแก แแแฆแแแ แแ แแแแฃแจแแแแแ. แแแแกแแฎแแแแแ แญแแแแแ แกแแฎแแแก แแแแขแ แแแแ แจแ แกแแ แแแ แแก แแ แแชแแกแ แแแแแ แแแแแ, แ แแแแ แช C++-แจแ แจแแแฃแจแแแแแฃแแ แแ แแแแแกแแ แแฃแแแแแ แแแแแแแชแแ แแ แแแจแแแแฃแแแ แ แแแแ แช แชแแแแ แกแแ แแแกแ. systemd แแแแ แแชแแฃแแ แกแแกแขแแแ Linux Raspbian.
แกแแ แแแ แแก แแ แแชแแกแแก แซแแ แแแแแ แแแแแแแแ:
- แจแแขแงแแแแแแแแแแก แแแแแฏแแ แ;
- IP แแแแแ แแก แกแแ แแแ แ;
- Z-Wave แแแฌแงแแแแแแแแก แกแแ แแแ แ;
- แฌแแ แแแแแแก แแแแแแฃแ แ แฌแแกแแแแก แกแแ แแแ แ;
- แแแแขแ แแแแ แแก แแแแคแแแฃแ แแชแแแก แแแแแชแแแแ แแแแ แแ แแแแแแฃแ แ แฌแแกแแแแก แแแแแ;
- RESTful API แกแแ แแแ แ แแ แแคแแแฃแ แแแขแแ แคแแแกแแแ แฃแ แแแแ แแฅแแแแแแแกแแแแก;
- MQTT แแแแแแขแ แฆแ แฃแแแแแแ แฃแ แแแแ แแแแแกแแแแก.
แกแแ แแแ แแก แแ แแชแแกแแก แแแแแแแ แแแแแ แแแแแ แ แแแแ แช แชแแแแแฃแแ แซแแคแแแ, แ แแแแแแ แจแแ แแก แแแคแแ แแแชแแ แแแแแแชแแแ แจแแขแงแแแแแแแแแแก แกแแฎแแ JSON แคแแ แแแขแจแ (แแ แแแแแชแแแแ แกแขแ แฃแฅแขแฃแ แแแ, แ แแแแแแแช แฌแแ แแแแแแแแแ แแ แคแแ แแแขแก แแ แแชแแกแฃแ แแแฎแกแแแ แแแแจแ).
แกแแ แแแ แแก แแ แแชแแกแแก แแแแแแ แ แแแแแแแแแขแแ แจแแขแงแแแแแแแแแแก แแแแแฏแแ แ, แ แแแแแแช แแแแแกแชแแแก JSON แจแแขแงแแแแแแแแแก แงแแแแ แกแแ แแแ แแก แแ แแชแแกแแก แแแแแจแ. JSON แจแแขแงแแแแแแแแแแก แกแแแแคแแ แแแชแแ แแแแแแแก แขแแแแแ แแ แแแแจแแแแแแแแแ, แ แแแแแแแช แแแ แจแแฃแซแแแแ แแแแฆแแ, แแแชแแแฃแแแ แชแฎแ แแแจแ:
แแแฌแงแแแแแแแแก แขแแแ
แแฅแแ
แจแแขแงแแแแแแแแก แขแแแ
แแแฌแงแแแแแแแแก แแแแแแแ แแแแ
แแ แซแแแแแ
แแแแแ แ
onvif
แกแแแกแแ แฃแแ แแแแแชแแแแแ
on
แแแแแแ (แฉแแ แแแ/แแแแแ แแแ)
แกแแแกแแ แ
แขแแแฆแ
แแ แซแแแแแ
off
แฉแแฌแแ แ (แฉแแ แแแ/แแแแแ แแแ)
แแคแแฅแขแฃแ แแแ
แแแ
แแแแแแกแแแแแแฃแ แ แฌแแกแ
แแแแแแ (แฉแแ แแแ/แแแแแ แแแ)
แแแฌแงแแแแแแแ (แแแแแขแแแ/แฌแแจแแ)
แแแแแแกแแแแแแ
แแแแคแแแฃแ แแชแแแก แแแแแชแแแแแ
แฉแแฌแแ แ (แฉแแ แแแ/แแแแแ แแแ)
Bluetooth
แแแฌแงแแแแแแแแก แแแแแแแ แแแแ
แจแแชแแแแ
แแแ - แคแแ
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 แแแกแแฆแแแ-แแแแจแแแแแแแแก แฌแงแแแแแแก:
- แฃแแ แแก "แแแแแแแ แก";
- แแ แแ แแก แขแแแ "แแ แ_แแแแแแแ แ";
- แแแแแแแแ "แแแแแแแ";
- แฃแคแ แ "แแแแ";
- แแแแแแแ แแ แขแแแ "แแแแแแแ_แแ_แขแแแ";
- แแแขแ แแ แขแแแ "แแแแ_แแ_แขแแแ".
แจแแแแ แแแแก แจแแแแแแแ แจแแแซแแแแ แแ แแแแแแแแแ แแงแแก แแแแแแจแแ แแแฃแแ แแแแแแฃแ แ แแแแแแ แแก แแแแ แแขแแ แแแแก แแแแแงแแแแแแ:
- แแ "แแ"
- แแ "แแ";
- แแ แ "แแ แ".
แแแ แแแแ, แแแแ แแขแแ แแแแก แแ แแแแ แแแแแแแก แแแแแแฃแ แ แแแขแแชแแแ แฉแแฌแแ แแ, แจแแแแซแแแแ แจแแฅแแแแ แกแแแแแแ แ แแฃแแ แแแ แแแแแ แแแแ แ แแแแแแแแแ แแแ แแแแขแ แแ.
แแฃแกแขแแ แแแแแ แแแฅแแแแแแ, แ แแแแแแช แแแคแฃแซแแแแฃแแแ 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);
}
}
}
แแฅ pFact - แกแขแ แฃแฅแขแฃแ แ, แ แแแแแแช แจแแแชแแแก แแแกแแฆแแแ-แแแแจแแแแแแแแก แฌแงแแแแแแก JSON แจแแขแงแแแแแแแแกแแแ, m_แฌแแกแแแ - แฌแแ แแแแแแก แฌแแกแแแแก แกแแแแแแแแ แแแกแแแ. แคแฃแแฅแชแแแจแ แฎแแ แชแแแแแแแ แจแแแแแแแแแ แจแแขแงแแแแแแแแกแ แแ แฌแแ แแแแแแก แฌแแกแแก แจแแแแ แแแ reader.Parse(ruleStream, ruleHandler)แกแแ แฌแแกแแแแก แแแแญแแ แ แแ แแก แแแแแฅแขแ, แ แแแแแแช แจแแแชแแแก แแแแแแแก แแแแแแแกแ แแ แจแแแแ แแแแก แแแแ แแขแแ แแแก. sRuleId โ แฌแแกแแแแก แฃแแแแแแฃแ แ แแแแแขแแคแแแแขแแ แ, แ แแแแแก แฌแงแแแแแแแแช แจแแกแแซแแแแแแแ แฌแแกแแแแก แจแแแแฎแแ แแ แ แแแแฅแขแแ แแแ แญแแแแแแ แกแแฎแแแก แแแแขแ แแแแ แแก แแแแแชแแแแ แแแแแจแ. m_pActions โ แแแกแแแ แแแแแแฃแ แ แแแกแแแแแก แจแแแแแแแแ: JSON แจแแขแงแแแแแแแแแ, แ แแแแแแแช แจแแแชแแแก แจแแแแแแแก แฌแแกแแแแก แแแแแแแ แแ แจแแแแแแ แแแแแแแแแ แจแแขแงแแแแแแแแแแก แแแแแฏแแ แแแ, แ แแแ แแแแแแแขแแ แซแแคแแแแ แจแแซแแแ แแแแ แแแแฃแจแแแแแ.
RapidJSON แจแแกแ แฃแแแแ แจแแแแ แแแฃแแแ แคแฃแแฅแชแแแกแแแ strlen ()แแ แแแแแแแแฃแ แ แกแแกแขแแแฃแ แ แ แแกแฃแ แกแแก แแแแฎแแแแแแ แแซแแแแ แแ แแแแแแแแแแแก แฉแแจแแแแแฃแ แแแฌแงแแแแแแแแแจแ แแแแแงแแแแแแก แกแแจแฃแแแแแแก. JSON แคแแ แแแขแจแ แจแแขแงแแแแแแแแแแกแ แแ แแแแแแฃแ แ แฌแแกแแแแก แแแแแงแแแแแ แกแแจแฃแแแแแแก แแแซแแแแ แแแแแฎแแ แชแแแแแ แแแคแแ แแแชแแแก แแแชแแแแก แแแฅแแแแ แกแแกแขแแแ แญแแแแแแ แกแแฎแแแก แแแแขแ แแแแ แแก แงแแแแ แแแแแแแแแขแก แจแแ แแก.
Z-แขแแแฆแแก แกแแแกแแ แแแ แแ แแฅแขแแแแขแแ แแแ
แญแแแแแแ แกแแฎแแแก แแแแแแ แ แฃแแแ แแขแแกแแแ แแก แแ แแก, แ แแ แแแก แจแแฃแซแแแ แแแแแฃแแแแแแแแ แแแแแแแก แแแ แ แแแ แแแแก แกแฎแแแแแกแฎแแ แแแ แแแแขแ แ แแ แจแแแกแ แฃแแแก แกแแกแแ แแแแแ แคแฃแแฅแชแแแแ แกแแขแฃแแชแแแแแ แแแแแแแแแแ แ. แแแแกแแแแแก แกแแแกแแ แแแ แแ แแฅแขแแแแขแแ แแแ แแแแแแจแแ แแแฃแแแ แญแแแแแแ แกแแฎแแแก แแแแขแ แแแแ แแแ. แแแแแแแแ แ แแแ แกแแแจแ, แแก แแ แแก แฃแแแแแแ แแแฌแงแแแแแแแแแ, แ แแแแแแแช แแฃแจแแแแแ แแ แแขแแแแแแก แแแแแงแแแแแแ
แแฎแแ แแฅแแแ แจแแแแซแแแแ แแแแแแ แกแแแแแแ แแแแ แ แแแแแแแแแ แกแฎแแแแแกแฎแแ Z-Wave แแแฌแงแแแแแแแแแ แแแแแ แแ. แแแแแ แจแแแฎแแแแ แ แแแแแแแแ แแแแแแแแก:
- Zipato PAN16 แกแแแ แข แกแแแแขแก แจแแฃแซแแแ แแแแแแแก แจแแแแแแ แแแ แแแแขแ แแแ: แแแแฅแขแ แแแแแ แแแแก แแแฎแแแ แแแ (แแแขแกแ), แกแแแซแแแแ แ (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 แแแขแแ แคแแแกแแก แแแจแแแแแแ add แแ แซแแแแแ แจแแแแก แกแแ แแแ แแก แแ แแชแแกแจแ แแ แจแแแแแ แแแแแแแแแก แแแแแฏแแ แแก แแแแ Z-Wave แกแแ แแแ แแ, แ แแแแแแช แแงแแแแแก Z-Wave แฅแกแแแแก USB แแแแขแ แแแแ แก แแแฌแงแแแแแแแแแแก แแแแแขแแแแก แกแแแชแแแแฃแ แ แแแแแจแ. แจแแแแแแ, Z-Wave แแแฌแงแแแแแแแแแ แแฅแแแ แฃแแแ แแแแแแแแ แกแแ แแแกแแก แฆแแแแแแก แกแฌแ แแคแ แแแญแแ แแแแก แกแแ แแ (3 แแแญแแ แ 1,5 แฌแแแจแ). USB แแแแขแ แแแแ แ แแแแแจแแ แแแก แแแฌแงแแแแแแแแก แฅแกแแแแแ แแ แแแแแแแแก แแแคแแ แแแชแแแก แแแก แจแแกแแฎแแ Z-Wave แกแแ แแแ แแ. แแก, แแแแแก แแฎแ แแ, แฅแแแแก แแฎแแ แฉแแแแฌแแ แก SQLite แแแแแชแแแแ แแแแแจแ แแฎแแแ แแแฌแงแแแแแแแแก แแแ แแแแขแ แแแแ. แแแแกแแแฆแแ แฃแแ แแ แแแก แแแขแแ แแแแแก แจแแแแแ, แแ แแคแแแฃแแ แแแขแแ แคแแแกแ แแ แฃแแแแแ Z-Wave แแแฌแงแแแแแแแแแแก แกแแแก แแแแ แแแ, แแแแฎแฃแแแแก แแแคแแ แแแชแแแก แแแแแชแแแแ แแแแแแแ แแ แแฉแแแแแแก แแฎแแ แแแฌแงแแแแแแแแก แกแแแจแ. แแแแแแฃแแ แแแฌแงแแแแแแแ แแฆแแแก แแแแแก แฃแแแแแแฃแ แแแแแขแแคแแแแขแแ แก, แ แแแแแแช แแแแแแงแแแแแ แฌแแ แแแแแแก แแแกแแแแแก แฌแแกแแแจแ แแ แฆแ แฃแแแแจแ แแฃแจแแแแแกแแก. แแ แแแแแ แแแแแก แแแฅแแแแแแ แแแฉแแแแแแแ UML แแแแแ แแแแจแ:
(แแแแฌแแแแฃแแแ แกแฃแ แแแแ แฃแคแ แ แแแฆแแแ แแแ แฉแแแแแแแแก แแแกแแฎแกแแแแแ)
IP แแแแแ แแแแก แแแแแแจแแ แแแ
แฆแ แฃแแแแแแแ แญแแแแแแ แกแแฎแแแก แกแแกแขแแแ, แ แแแแแแช แแแแฎแแแฃแแแ แแ แกแขแแขแแแจแ, แแ แแก แฆแ แฃแแแแแแแ แแแแแ แแแแแแแแแแก แกแแกแขแแแแก แแแแแฎแแแแ, แ แแแแแแช แแกแแแ แจแแแฃแจแแแแแฃแแแ แแแขแแ แแก แแแแ , แ แแแแแแช แ แแแแแแแแ แฌแแแแ แแ แแก แแแแแ แแ แแ แแฅแแก แแ แแแแแ แแแกแขแแแแชแแ แ แฃแกแแแจแ.
แฆแ แฃแแแแแแแ แแแแแ แแแแแแแงแฃแ แแแแแก แกแแกแขแแแแแแกแแแแก, แแ แ-แแ แแ แแฌแแแแ แแ แแแแแแแ แแฆแญแฃแ แแแแแแแก แจแแแฆแฃแแฃแแ แแ แฉแแแแแ, แ แแแแแแแแแแช แแแขแแแ แแชแแ แจแแแซแแแแ แแแแฎแแ แชแแแแแแก. แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแ, แ แแแแแแช แแแกแฃแฎแแกแแแแแแแแ แฆแ แฃแแแแแแ แแแแแแจแแ แแแแแ, แแแแแแขแแแแแฃแแแ แแแแแแแแแแ แแก แจแแแแแ, แ แแช แแแจแแแแ แกแแ แแแแฃแ แแแแฎแแแแแแก แฃแงแแแแแก แแแก แแแแ แแขแฃแ แแก - แแ แแชแแกแแ แก แแ แแแแแกแฃแคแแแ แแแฎแกแแแ แแแแก แ แแแแแแแแแก. แแก แซแแ แแแแแแ แแแแแแ แขแแแก แฆแ แฃแแแแแแแ CCTV แแแแแ แแแแก แฃแคแ แ แแแฆแแ แคแแกแก แฉแแแฃแแแแ แแ IP แแแแแ แแแแแ แจแแแแ แแแแ. แแแ แแ แแแแกแ, แแแแแ แแก แคแแแแฃแ แกแแกแขแแแแกแ แแ แแแแแแแแ แแแแก แงแแแแ แกแแญแแ แ แแแกแขแ แฃแแแแขแแ แฌแแแแแแกแแแแก แกแแญแแ แแ CCTV แแแแแ แแแแก แแฌแแ แแแแแแ แแแแแแแแแแแแ แแแแแแแ แแแแแแแแก แฎแแแแ แซแแแแ แแขแแแ.
แแแแ แแก แแฎแ แแ, แงแแแแ แแแแแแแแ แแแ 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 แแ แแขแแแแแแ;
- ONVIF แแ แแขแแแแแแก แแแจแแแแแแ IP แแแแแ แแก แแแซแ แแแแแก แแแขแแฅแขแแ แแก แแแแ แฌแแ แขแแแแแ แแแแจแแ แแก แแแแงแแ แแแ แแ แแแกแ แแแ แแแแฃแแ แแแแแแแแฎแแ;
- แแกแแแแแก แแแแแฎแแแแแก แกแฃแ แแแแก แแแ แแแแฃแแแ แแแแแ แแ แแแ แแ แฆแ แฃแแแแจแ แแแแแแแแ MQTT แแ แแขแแแแแแก แแแจแแแแแแ;
- แแแแแ แแ แแฃแแแ แแแแแแแแแก แแแแแแแแ แแแ แฉแแฌแแ แ แชแแแแ แคแแแแแแแก แกแแฎแแ MP4 แคแแ แแแขแจแ แญแแแแแแ แกแแฎแแแก แแแแขแ แแแแ แแก SD แแ Flash แแแ แแแแ.
แแแแแ แแแแแ แแแแจแแ แแก แแแกแแแงแแ แแแแแ, แกแแ แแแ แแก แแ แแชแแกแจแ แแแแแ แแแแแแแแแก แขแ แแแกแแแแแ แแแแก, แแแแฃแจแแแแแแกแ แแ แฉแแฌแแ แแกแแแแก แแแแแแงแแแแแ แแแแแแแแแแแก แคแฃแแฅแชแแแแ.
แจแแกแ แฃแแแแแก แขแแกแขแแ แแแแก แแฅแกแแแ แแแแแขแจแ 3 แแแแแ แ แแงแ แแแแแแจแแ แแแฃแแ แแแแขแ แแแแ แแแ:
- HiWatch DS-I114W (แแแ แฉแแแแแแแ - 720p, แจแแแฃแแจแแแก แคแแ แแแขแ - H.264, แแแขแ แแแขแ - 1 Mb/s, แฎแแ G.711 mu-Law);
- แแแแ แแชแแคแ แฃแแ MDC-M6290FTD-1 (แแแ แฉแแแแแแแ - 1080p, แจแแแฃแแจแแแก แคแแ แแแขแ - H.264, แแแขแ แแแขแ - 1 แแ/แฌแ, แฎแแแก แแแ แแจแ);
- Dahua DH-IPC-HDW4231EMP-AS-0360B (แแแ แฉแแแแแแแ - 1080p, แจแแแฃแแจแแแก แคแแ แแแขแ - H.264, แแแขแแก แกแแฎแจแแ แ - 1.5 Mb/s, AAC แแฃแแแ).
แกแแแแแ แแแแแแ แแ แแแ แแฃแแแ แแแแแแแแแ แฆแ แฃแแแแจแ, แแฃแแแ แขแ แแแกแแแแแ แแแ แแแแฎแแ แชแแแแแ แแฎแแแแ แแ แแ แแแแแ แแแแ แแ แแแแแแแแ แแแ แแ แฅแแแแก แฉแแฌแแ แ แแแแแ แแฃแแ แแงแ. CPU แแแขแแแ แแแ แแงแ แแแแฎแแแแแแ 5%, แแแแ แแขแแฃแแ แแแฎแกแแแ แแแแก แแแฎแแแ แแแ แแงแ 32 MB (แแแแ แแ แแชแแกแแ), 56 MB (แกแฃแ OS แฉแแแแแแ).
แแแ แแแแ, แญแแแแแ แกแแฎแแแก แแแแขแ แแแแ แแแ แจแแแซแแแแ แแแแ แแแก แแแแฎแแแแแแ 20 - 30 แแแแแ แ (แแแแแแแแแแฃแแแ แแแ แฉแแแแแแแแแ แแ แแแขแแ แแขแแ), แ แแช แกแแแแแ แแกแแ แแแแแแแแแแแแแแแก แกแแกแขแแแแกแแแแก แกแแแกแแ แแฃแแแแแ แแแขแแฏแแกแแแแก แแ แแแขแแ แ แกแแฌแงแแแแกแแแแก. แแแแแแแแแแแก แจแแกแ แฃแแแแแกแแแแก, แ แแแแแแแช แฃแคแ แ แแแข แจแแกแ แฃแแแแแก แแแแแฎแแแก, แจแแแแซแแแแ แแแแแแงแแแแ nettop แแ แแแแแแแ แแแแแแ Intel แแ แแชแแกแแ แแ แแ Linux Debian Sarge OS-แแ. แแแแขแ แแแแ แ แแแแแแแ แกแแชแแแ แแแแ แแชแแแก แแแแแก แแ แแแกแ แแฃแจแแแแแก แจแแกแแฎแแ แแแแแชแแแแแ แแแแแฎแแแแแ.
แฆแ แฃแแแแแแ แฃแ แแแแ แแฅแแแแแแ
แฆแ แฃแแแแแ แแแคแฃแซแแแแฃแแ แญแแแแแแ แกแแฎแแ แแแแฎแแแก แแแแฎแแแ แแแแแก แแแแแชแแแแแก (แแแแแ แแ แกแแแกแแ แแก แแแแแแแแแ) แฆแ แฃแแแแจแ. แฆแ แฃแแแแแแแ แจแแแแฎแแแก แแ แฅแแขแแฅแขแฃแ แ แฃแคแ แ แแแขแแแฃแ แแ แแฅแแแแ แแแแฎแแแฃแแ แฉแแแแ แกแแ แแแก แจแแแแแ แกแขแแขแแแจแ. แแฎแแ แแแแแ แแแกแแฃแแ แแ แกแแแแคแแ แแแชแแ แจแแขแงแแแแแแแแแแก แแแแแชแแแแก แแแขแแ แคแแแกแแ แญแแแแแแ แกแแฎแแแก แแแแขแ แแแแ แแแแ แฆแ แฃแแแแจแ.
แแแแแแจแแ แแแฃแแ แแแฌแงแแแแแแแแแแก แแแแแแแ แแแแ แแ แกแแแกแแ แแก แแแแแแแแแ แแแแแแชแแแ แแ แแขแแแแแแก แกแแจแฃแแแแแแ
- QoS 0 - แแแฅแกแแแฃแ แแ แแฎแแ (แแแฌแแแแแแก แแแ แแแขแแ แแ แแ แแก);
- QoS 1 - แแ แแฎแแ แแแแแช (แแแฌแแแแแแก แแแแแกแขแฃแ แแแแ);
- QoS 2 - แแฃแกแขแแ แแ แแฎแแ (แแแแแขแแแแแ แแแฌแแแแแแก แแแแแกแขแฃแ แแแแ).
แฉแแแแก แจแแแแฎแแแแแจแ, แฉแแแ แแแงแแแแแ
แญแแแแแแ แกแแฎแแแก แแแแขแ แแแแ แแก แกแขแแขแฃแกแแก แจแแกแแฎแแ แจแแขแงแแแแแแแแแแก แแแแแกแแชแแแแ แแแแแแงแแแแแ แจแแแแฎแฃแแ แจแแขแงแแแแแแแแแแก แแแฅแแแแแแ
MQTT แแแแแแขแ แจแแแฅแแแ แแแแแแแแแแแก แแแแแแแแแขแแชแแแก แกแแคแฃแซแแแแแ
H.264 + AAC แแแแแ แแแแแแแแ แแแแแแแแแ แฆแ แฃแแแแจแ RTMP แแ แแขแแแแแแก แแแจแแแแแแ, แกแแแแช แแแแแ แกแแ แแแ แแแแก แแแแกแขแแ แ แแแกแฃแฎแแกแแแแแแแแ แแแ แแแแฃแจแแแแแแกแ แแ แจแแแแฎแแแแ. แแแแกแขแแ แจแ แแแขแแแ แแแแก แแแขแแแแแฃแ แแ แแแกแแแแฌแแแแแแแ แแ แงแแแแแแ แแแแแแแแ แแแขแแแ แแฃแแ แแแแแ แกแแ แแแ แแก แจแแกแแ แฉแแแแ, แญแแแแแแ แกแแฎแแแก แแแแขแ แแแแ แ แฃแแแแแแแก แฌแแแแกแฌแแ แแแแฎแแแแแก แฆแ แฃแแแแก แแแขแแแ แแแแก แแแแแแกแแ แก แแ แแฎแแแแ แแแแก แจแแแแแ แแแแแแแแก แแแแแ แแแแแแก.
แแแกแแแแ
แกแขแแขแแแจแ แแแแฎแแแฃแแ แแงแ Raspberry Pi 3 B+ แแแแ แแแแแแแฃแขแแ แแ แแแคแฃแซแแแแฃแแ แญแแแแแแ แกแแฎแแแก แแแแขแ แแแแ แแก แแ แแ แแแแแ แแขแฃแแ แแแแแ แแแ, แ แแแแแกแแช แจแแฃแซแแแ แแแคแแ แแแชแแแก แแแฆแแแ, แแแแฃแจแแแแแ แแ แแแแขแ แแแแก แแฆแญแฃแ แแแแแแ Z-Wave แแ แแขแแแแแแก แแแจแแแแแแ, แแแขแแ แแฅแชแแ IP แแแแแ แแแแแ ONVIF แแ แแขแแแแแแก แแแจแแแแแแ แแ แแกแแแ แแแแแชแแแแ แแแชแแแ แแ แแแชแแแ. แแ แซแแแแแแแก แฆแ แฃแแแแแแ แกแแ แแแกแแแ MQTT แแ RTMP แแ แแขแแแแแแแแ. แฌแแ แแแแแแก แแแแแแฃแ แ แซแ แแแ แจแแแฅแแแ JSON แคแแ แแแขแจแ แฌแแ แแแแแแแแแ แแแแแแฃแ แ แฌแแกแแแแกแ แแ แคแแฅแขแแแแก แจแแแแ แแแแก แกแแคแฃแซแแแแแ.
แญแแแแแแ แกแแฎแแแก แแแแขแ แแแแ แ แแแแแแแ แแแแแก แกแแชแแแ แแแแ แแชแแแก แแแกแแแแแกแ แแ แแแกแแแแแก แ แแแแแแแก แ แแแแแแแแ แแแแแแแก.
แแแแขแ แแแแ แแก แจแแแแแแ แแแ แกแแ แแแแแแแก แกแฎแแ แขแแแแก แแแฌแงแแแแแแแแแแก (RF, Bluetooth, WiFi, แกแแแแแแแแ) แแแแแแจแแ แแแแก. แแแแฎแแแ แแแแแแแก แแแฎแแ แฎแแแฃแแแแแกแแแแก, แกแแแกแแ แแแแกแ แแ IP แแแแแ แแแแก แจแแแ แแแแแก แแ แแชแแแฃแ แ แแแแแแชแแแ แแแแแแฃแ แแแแแแแชแแแจแ. แแกแแแ แแ แกแแแแแก แแแแแแ แกแแ แแแ แแก แแ แแชแแกแแก แแแแแก แแแขแแแแแแชแแแกแ แแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แแแแ แแชแแฃแ แกแแกแขแแแแจแ แแแ แขแแ แแแแกแแแแก
แฌแงแแ แ: www.habr.com