ืืืึทื ื, ืืึทื ืง ืฆื ืื ืืื ืึทื ืืืืืงืืื ื ืคืื ืืืงืจืึธืขืืขืงืืจืึธื ืืงืก, ืงืึธืืื ืืงืึทืฆืืข ืืฉืึทื ืึทืื, ืืื ืืขืจื ืขืฅ ืืขืงื ืึทืืึทืืืฉืื ืืื ืึทืจืืืคืืกืืึทื ืื ืืขืืืืืขื ืกืข, ืื ืืขืืข ืคืื โโืงืืื ืืึธืืขืก ืืื ืฉืืื ืืขืจ ืืื ืืขืจ ืืึทืืืึทืืืง. ืืขื ืืฉืืขื ืืึธืืกืื ื ืืื ืึทื ืืขืจืืึธื ืืึทืืืึทืืืง ืขื ืืขืจืื ืืขื ืืื ื ืื ืฉืืืื ืึทืืข ืืื ืืื ืืขืจ ืชืงืืคื ืคืื ืื ืืืกืืจืืึทื ืจืขืืืืืืฆืืข 4.0 ืืื ืื ืืื ืืขืจื ืขื ืคืื ืืืื ืืก, ืขืก ืืื ืืขืืืืจื ืืึทืงืืืขื, ืคืึทื ืืงืฉืึทื ืึทื ืืื ืืืืขืจ. ืกืึทืืืฉืึทื ื ืงืืืขื ืฆื ืื ืืึทืจืง ืืืึธืก ืืืขื ืื ืึท ืืืืื ืื ื ืึธืืขืจ ืึท ืืึทื ื ืืืื ืืื ืงืึธืืคึผืืขืงืก ืืื ืคึฟืึธืจืืึทืฆืืข ืกืืกืืขืืขื ืงืึทื ืืจืึธืืื ืคึฟืื ืขืจืืขืฅ ืืื ืืขืจ ืืืขืื ืืื ืึท ืกืืึทืจืืคืึธื ืข. ืืขืจืฆื, ืืขื ืืฉ-ืืึทืฉืื ืื ืืขืจืึทืงืฉืึทื ืืึทืจืฃ ื ืื ืืขืจ ืืืืกื ืคืื ืคึผืจืึธืืจืึทืืืื ื ืฉืคึผืจืึทืื - ืืึทื ืง ืฆื ืจืืื ืืขืจืงืขื ืื ื ืืื ืกืื ืืขื ืึทืืืขืจืืืึทืื, ืึท ืืขื ืืฉ ืจืขืื ืฆื ืึท ืงืืื ืืืื ืืื ืืืืขืจ ืืขืืืืจื ืฉืคึผืจืึทื.
ืขืืืขืืข ืงืืื ืืืื ืกืืกืืขืืขื ืืขืจืืืืึทื ืืืืฃ ืื ืืึทืจืง ืืขื ืขื ืึท ืืึทืืืฉืืงืึทื ืึทื ืืืืืงืืื ื ืคืื ืืืึธืืงื ืืืืืขื ืกืขืจืืืืืืึทื ืก ืกืืกืืขืืขื, ืื ืืขืืืขืืึธืคึผืขืจืก ืคืื ืืืึธืก ืืึธืื ืืืื ืืขืืขื ืื ื ืืื ืคึฟืึทืจ ืึท ืคืืืฉืืขื ืืืง ืืืืืื ื ื ืื ืืืืื ืคึฟืึทืจ ืืึธื ืืืึธืจืื ื, ืึธืืขืจ ืืืื ืคึฟืึทืจ ืึธื ืคืืจืื ื ืืืืึทื ืึทืืืืฉืขืงืฅ.
ืืืจ ืคืึธืจืฉืืขืื ืฆื ืืืื ืืคืืขืจืงืืึทืืงืืื ืึท ืกืขืจืืข ืคืื โโโโืืจืื ืึทืจืืืงืืขื, ืืืึธืก ืืืขื ืืึธืื ืืืจ ืืืขืื ืึทืืข ืื ืืืืคึผื ืงืึทืืคึผืึธืื ืึทื ืฅ ืคืื ืึท ืืืึธืืงื ืกืืึทืจื ืืืื ืกืืกืืขื, ืคึผืขืจืกื ืึทืื ืืขืืืขืืึธืคึผืขื ืืืจื ืืขืจ ืืืืจ ืืื ืฉืืขืื ืืื ืึธืคึผืขืจืึทืฆืืข. ืืขืจ ืขืจืฉืืขืจ ืึทืจืืืงื ืืื ืืขืืึทืงืืืืึทื ืฆื ืื ืืืึธืงืืึทื ืงืืืขื ื ืืืกืจืืื ืืื ืกืืึทืืืจื ืืื ืึท ืกืืึทืจื ืืืื, ืืขืจ ืฆืืืืืืขืจ ืฆื ืื ืึทืจืงืึทืืขืงืืฉืขืจ ืคืื ืื ืืืึธืืงื ืกืืึธืจืืืืฉ ืืื ืืึทืื ืคึผืจืึทืกืขืกืื ื ืกืืกืืขื, ืืื ืืขืกืึธืฃ ืื ืืจืื ืฆื ืื ืงืืืขื ื ืึทืคึผืืึทืงืืืฉืึทื ืคึฟืึทืจ ืึธื ืคืืจืื ื ืื ืกืืกืืขื ืืืืฃ ืจืืจืขืืืืืง ืืื ืกืืืืฉืึทื ืขืจื ืืขืืืืกืขืก.
ืกืืึทืจื ืืืื ืืืกืจืืื
ืขืจืฉืืขืจ, ืืึธืื ืก ืจืขืื ืืืขืื ืืื ืฆื ืืึทืื ืึท ืงืืื ืืืื ืคืื ืึท ืคึผืจืึธืกื ืืืืื ืื ื, ืืึทืืฉืึท ืึธืืขืจ ืืืึทืืงืข. ืฆื ืืึธื ืืึธืก, ืืื ืึท ืืขืจืฉื, ืขืก ืืื ื ืืืืืง ืฆื ืฉืืขืื ืื ืคืืืืขื ืืข ืืืกืจืืื ืืื ืืขืจ ืืืื:
- ืกืขื ืกืึธืจืก ืืืึธืก ืืขืกืื ืคืึทืจืฉืืื ืื ืืืืืจืึทื ืืขื ืึทื ืคึผืึทืจืึทืืขืืขืจืก;
- ืึทืงืืืืืืขืจื ืึทืงืืื ื ืืืืฃ ืคืื ืืจืืืกื ืืืง ืึทืืืืฉืขืงืฅ;
- ืึท ืงืึธื ืืจืึธืืืขืจ ืืืึธืก ืคึผืขืจืคืึธืจืื ืืฉืืื ืืช ืืื ืืืื ืืื ืกืขื ืกืขืจ ืืขืืฉืขืจืืึทื ืฅ ืืื ืขืืืขืืื ืืึธืืืง, ืืื ืึทืจืืืกืืขืื ืงืึทืืึทื ืื ืฆื ืึทืงืืืืืืขืจื.
ืื ืคืืืืขื ืืข ืคืืืืจ ืืืืืื ืึท ืืืึทืืจืึทืืข ืคืื โโืึท ืงืืื ืืืื, ืืืืฃ ืืืึธืก ืขืก ืืขื ืขื ืกืขื ืกืึธืจืก ืคึฟืึทืจ ืืืึทืกืขืจ ืืืงืึทืืืฉ (1) ืืื ืื ืงืืึธืืขื, ืืขืืคึผืขืจืึทืืืจ (2) ืืื ืืืืืื ื (3) ืืื ืื ืฉืืึธืคืฆืืืขืจ, ืึท ืงืืื ืืึธืืขื (4) ืืื ืืขืจ ืงืื ืืื ืึท ืืืืืขื ืกืขืจืืืืืืึทื ืก ืึทืคึผืึทืจืึทื (5) ืืื ืื ืืึธืืืืื.
ืืขืจืืืืึทื, ืืืืืจืืืก ืกืขื ืกืึธืจืก ืึทืคึผืขืจืืืืื ื ืืื ืื RF433, Z-Wave, ZigBee, ืืืืขืืึธืึธืื ืืื WiFi ืคึผืจืึธืืึธืงืึธืืก ืืขื ืขื ืืืืืืื ืืขื ืืฆื. ืืืืขืจ ืืืืคึผื ืึทืืืืึทื ืืืืืฉืื ืืขื ืขื ืื ืคืื ืื ืกืืึทืืืจืื ื ืืื ื ืืฆื, ืืื ืืขืืื ื ืืื ื ืืืขืจืืง ืคึผืจืืึทื ืืื ืจืืืืืึทืืืืึทืื, ืืืืึทื ืืึทื ืืึทืคืึทืงืืฉืขืจืขืจื ืืขื ืขื ืฉืืจืขืืื ื ืฆื ืืจืขื ืืขื ืืืืขืจ ืืขืืืืกืขืก ืฆื ืื ืืึทืกืข ืืึทืจืง ืืื ืืึทืื ืืื ืฆืืืจืืืืขื ืคึฟืึทืจ ืื ืืืจืืฉื ืืืืขื ืืึทื ืืฆืขืจ.
ืกืขื ืกืึธืจืก ืืื ืึทืงืืืืืืขืจื, ืืื ืึท ืืขืจืฉื, ืืขื ืขื ืคืืจืืื ืื ืืืจื ืึท ืืืืืจืืืก ืฆืืืื ื ืฆื ืึท ืงืืื ืืืื ืงืึธื ืืจืึธืืืขืจ (6) - ืึท ืกืคึผืขืฉืึทืืืืื ืืืงืจืึธืงืึธืืคึผืืืขืจ ืืืึธืก ืงืึทืืืืื ื ืึทืืข ืื ืืขืืืืกืขืก ืืื ืึท ืืืื ื ืขืฅ ืืื ืงืึธื ืืจืึธื ืืื.
ืึธืืขืจ, ืขืืืขืืข ืกืึทืืืฉืึทื ื ืงืขื ืขื ืคืึทืจืืื ืื ืึท ืกืขื ืกืขืจ, ืึท ืึทืงืืืึทืืึธืจ ืืื ืึท ืงืึธื ืืจืึธืืืขืจ ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืึท ืงืืื ืฆืึทืคึผื ืงืขื ืขื ืืืื ืคึผืจืึธืืืจืึทืื ืฆื ืงืขืจ ืืืืฃ ืึธืืขืจ ืึทืืืขืง ืืืื ืึท ืคึผืืึทื, ืืื ืึท ืืืึธืืงื ืืืืืขื ืกืขืจืืืืืืึทื ืก ืึทืคึผืึทืจืึทื ืงืขื ืขื ืจืขืงืึธืจืืืจื ืืืืืขื ืืืืืจื ืืืืฃ ืึท ืืึทืืืขืืื ื ืืขืืขืงืืึธืจ ืกืืื ืึทื. ืืื ืื ืกืืืคึผืืึทืกื ืงืึทืกืขืก, ืืืจ ืงืขื ืขื ืืึธื ืึธื ืึท ืืึทืืื ืืขืจ ืงืึธื ืืจืึธืืืขืจ, ืึธืืขืจ ืฆื ืฉืึทืคึฟื ืึท ืคืืขืงืกืึทืืึทื ืกืืกืืขื ืืื ืคืืืข ืกืื ืขืจืืึธืื, ืขืก ืืื ื ืืืืืง.
ืฆื ืคืึทืจืืื ืื ืื ืกืืึทืจื ืืืื ืงืึธื ืืจืึธืืืขืจ ืฆื ืื ืืืืืืืข ื ืขืฅ, ืึท ืจืขืืืืขืจ ืืื ืืขืจื ืขื ืจืึทืืืขืจ (7) ืงืขื ืขื ืืืื ืืขืืืืื ื, ืืืึธืก ืืื ืืึทื ื ืืขืืืืจื ืึท ืคึผืจืึธืกื ืืืืืืขืืื ื ืึทืคึผืคึผืืืึทื ืกืข ืืื ืงืืื ืืืื. ืืึธ ืืื ื ืึธื ืึท ืึทืจืืืืขื ื ืืื ืืืืืืข ืคืื โโืึท ืกืืึทืจื ืืืื ืงืึธื ืืจืึธืืืขืจ - ืืืื ืื ืงืฉืจ ืฆื ืื ืืื ืืขืจื ืขื ืืื ืคืึทืจืคืึทืื, ืื ืงืืื ืืืื ืืืขื ืคืึธืจืืขืฆื ืฆื ืึทืจืืขืื ืืื ื ืึธืจืืึทื ืืึทื ืง ืฆื ืื ืืึธืืืง ืืืึธืง ืกืืึธืจื ืืื ืื ืงืึธื ืืจืึธืืืขืจ, ืืื ื ืืฉื ืืื ืื ืืืึธืืงื ืืื ืกื.
ืกืืึทืจื ืืืื ืงืึธื ืืจืึธืืืขืจ
ืื ืงืึธื ืืจืึธืืืขืจ ืคึฟืึทืจ ืื ืืืึธืืงื ืงืืื ืืืื ืกืืกืืขื ืืืกืงืึทืกื ืืื ืืขื ืึทืจืืืงื ืืื ืืขืืืขืืึธืคึผืขื ืืืืืจื ืืืืฃ ืึท ืืืื-ืืจืขื ืืืงืจืึธืงืึธืืคึผืืืขืจ
ืึทืกืขืืืึทื ืื ืงืึทื ืืจืึธืืืขืจ ืืื ืืืืขืจ ืคึผืฉืื - ืื ืืืงืจืึธืงืึธืืคึผืืืขืจ (1) ืืื ืืื ืกืืึทืืืจื ืืื ืึท ืคึผืืึทืกืืืง ืคืึทื (2), ืืื ืึท 8 ืืืืืืืื ืืึผืจืื ืงืึธืจื ืืื ืืืงืจืึธืกื ืคึฟืึธืจืืึทื ืืื ืืืืืืืืืจื (3) ืืื ืึท ืืกื ื-ืืืึทืืืข ื ืขืฅ ืงืึธื ืืจืึธืืืขืจ (4) ืืขื ืขื ืืื ืกืืึทืืืจื ืืื ืื ืงืึธืจืึทืกืคึผืึทื ืืื ื ืกืืึธืฅ. ืื ืงืืื ืืืื ืงืึธื ืืจืึธืืืขืจ ืืื ืคืืจืืื ืื ืฆื ืื ืืึทืื ืฆืืฉืืขืื ืืืจื ืึท 5 ืื, 2.1 ืึท ืืึทืื ืึทืืึทืคึผืืขืจ (5) ืืื ืึท ืืกื - ืืืงืจืึธ-ืืกื ืงืึทืืืข (6). ืืขืืขืจ ืงืึธื ืืจืึธืืืขืจ ืืื ืึท ืืื ืฆืืง ืืขืืืืืืึทืฆืืข ื ืืืขืจ, ืืืึธืก ืืื ืืขืฉืจืืื ืืื ืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืขืงืข ืืืขื ืขืจืฉืืขืจ ืืึธื ืืฉื ืืื ืืื ื ืืืืืง ืฆื ืื ืืขืจืึทืงื ืืื ืืืึธืืงื ืกืืึทืจื ืืืื ืืึทืืื ืื ืืก.
ืื ืืืืืืืืืจื ืคึฟืึทืจ ืงืืื ืืืื ืงืึธื ืืจืึธืืืขืจ ืืื ืืขืืืขืืึธืคึผืขื ืืืจื ืืขืจ ืืืืจ ืคืื ืืขื ืึทืจืืืงื ืืืืืจื ืืืืฃ ืื ืึธืคึผืขืจืืืืื ื ืกืืกืืขื Linux Raspbian Stretch. ืขืก ืืืฉืืืื ืคืื ืื ืคืืืืขื ืืข ืืืืคึผื ืกืึทืืกืืกืืึทืื:
- ืกืขืจืืืขืจ ืคึผืจืึธืฆืขืก ืคึฟืึทืจ ืื ืืขืจืึทืงืฉืึทื ืืื ืงืืื ืืืื ืืืกืจืืื ืืื ืื ืืืึธืืงื;
- ืืจืึทืคืืงืึทื ืืึทื ืืฆืขืจ ืฆืืืื ื ืคึฟืึทืจ ืืึทืฉืืขืืืงื ืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืื ืึทืคึผืขืจืืืืื ื ืคึผืึทืจืึทืืขืืขืจืก ืคืื ืื ืงืึธื ืืจืึธืืืขืจ;
- ืืึทืืึทืืืืก ืคึฟืึทืจ ืกืืึธืจืื ื ืงืึทื ืืจืึธืืืขืจ ืงืึทื ืคืืืืขืจืืืฉืึทื.
Database ืกืืึทืจื ืืืื ืงืึธื ืืจืึธืืืขืจ ืืื ืืืคึผืืึทืืขื ืึทื ืืืืืจื ืืืืฃ ืึทื ืขืืืขืืื ืืืืก
GUI ืกืืึทืจื ืืืื ืงืึธื ืืจืึธืืืขืจ ืืขืืืขืืึธืคึผืขื ืืื PHP 7 ืืื ืึท ืืืงืจืึธืคืจืึทืืขืืืึธืจืง
(ืืจืืงื ืืืืฃ ืื ืืืื ืฆื ืขืคืขื ืขื ืขืก ืืื ืืขืืขืจ ืืึทืืืึธืืข)
ืื ืืืืคึผื ืคึฟืื ืงืฆืืข ืคืื โโืื ืืจืึทืคืืงืึทื ืฆืืืื ื ืืื ืฆื ืคืึทืจืืื ืื ืกืืึทืจื ืืืื ืืืกืจืืื (IP ืกืขืจืืืืืืึทื ืก ืงืึทืืขืจืึทืก ืืื ืกืขื ืกืึธืจืก) ืฆื ืื ืงืึธื ืืจืึธืืืขืจ. ืื ืืืขื ืึทืคึผืืึทืงืืืฉืึทื ืืืืขื ื ืื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืื ืงืจืึทื ื ืฉืืึทื ืคืื ืื ืงืึธื ืืจืึธืืืขืจ ืืื ืืืืืืืกืึทื ืคืืจืืื ืื ืฆื ืขืก ืคึฟืื ืื SQLite ืืึทืืึทืืืืก. ืฆื ืืืืฉื ืื ืงืึทื ืืจืึธืืืขืจ ืงืึทื ืคืืืืขืจืืืฉืึทื, ืขืก ืกืขื ืื ืงืึธื ืืจืึธื ืงืึทืืึทื ืื ืืื JSON ืคึฟืึธืจืืึทื ืืืจื ืื RESTful API ืฆืืืื ื ืคืื ืื ืกืขืจืืืขืจ ืคึผืจืึธืฆืขืก.
ืกืขืจืืืืจืขืจ ืคึผืจืึธืฆืขืก
ืกืขืจืืืืจืขืจ ืคึผืจืึธืฆืขืก - ืึท ืฉืืืกื ืงืึธืืคึผืึธื ืขื ื ืืืึธืก ืคึผืขืจืคืึธืจืื ืึทืืข ืื ืืืืคึผื ืึทืจืืขื ืืืืฃ ืึธืืึทืืืืืื ื ืื ืืื ืคึฟืึธืจืืึทืฆืืข ืคึผืจืึทืกืขืกืึทื ืืืึธืก ืืขื ืขื ืื ืืงืขืจ ืคืื ืึท ืงืืื ืืืื: ืจืืกืืืืื ื ืืื ืคึผืจืึทืกืขืกืื ื ืกืขื ืกืขืจื ืืึทืื, ืึทืจืืืกืืขืื ืงืึธื ืืจืึธื ืึทืงืฉืึทื ื ืืืคึผืขื ืืื ื ืืืืฃ ืื ืขืืืขืืื ืืึธืืืง. ืืขืจ ืฆืื ืคืื ืื ืกืขืจืืืขืจ ืคึผืจืึธืฆืขืก ืืื ืฆื ืื ืืขืจืึทืงื ืืื ืกืืึทืจื ืืืื ืืืกืจืืื, ืืืกืคืืจื ืืึทืืืฉืืงืึทื ืึผืืืื ืคืื ืคึผืจืึธืืืงืฆืืข, ืืึทืงืืืขื ืืื ืคึผืจืึธืฆืขืก ืงืึทืืึทื ืื ืคึฟืื ืื ืืจืึทืคืืงืึทื ืฆืืืื ื ืืื ืื ืืืึธืืงื. ืืขืจ ืกืขืจืืืขืจ ืคึผืจืึธืฆืขืก ืืื ืื ืกืืึทืจื ืืืื ืงืึธื ืืจืึธืืืขืจ ืืื ืืขืจ ืืึทืืจืึทืืืื ื ืืื ืืืคึผืืึทืืขื ืึทื ืืื ืึท ืืืืื-ืืจืขืืื ืึทืคึผืืึทืงืืืฉืึทื ืืขืืืขืืึธืคึผืขื ืืื C ++ ืืื ืืึธื ืืฉื ืืื ืึท ืืึทืืื ืืขืจ ืืื ืกื systemd ืึธืคึผืขืจืืืืื ื ืกืืกืืขื ืืื ืืงืก ืจืึทืกืคึผืืืึทื.
ืื ืืืืคึผื ืืืึทืงืก ืคืื ืื ืกืขืจืืืขืจ ืคึผืจืึธืฆืขืก ืืขื ืขื:
- ืึธื ืืึธื ืืึทื ืึทืืขืจ;
- IP ืึทืคึผืึทืจืึทื ืกืขืจืืืขืจ;
- ื-ืืืึทืืืข ืืืื ืกืขืจืืืขืจ;
- ืกืขืจืืืืจืขืจ ืคืื ืคึผืจืึธืืืงืฆืืข ืืึทืืืฉืืงืึทื ืึผืืืื;
- ืืึทืืึทืืึทืกืข ืคืื โโืงืึทื ืคืืืืขืจืืืฉืึทื ืคืื ืื ืงืึธื ืืจืึธืืืขืจ ืืื ืืืึธืง ืคืื ืืึทืืืฉืืงืึทื ืึผืืืื;
- RESTful API ืกืขืจืืืขืจ ืคึฟืึทืจ ืื ืืขืจืึทืงืฉืึทื ืืื ืื ืืจืึทืคืืงืึทื ืฆืืืื ื;
- MQTT ืงืืืขื ื ืคึฟืึทืจ ืื ืืขืจืึทืงืืื ื ืืื ืื ืืืึธืืงื.
ืกืขืจืืืืจืขืจ ืคึผืจืึธืฆืขืก ืืืึทืงืก ืืขื ืขื ืืืคึผืืึทืืขื ืึทื ืืื ืืึทืืื ืืขืจ ืคึฟืขืืขื, ืืื ืคึฟืึธืจืืึทืฆืืข ืฆืืืืฉื ืืืึธืก ืืื ืืจืึทื ืกืคืขืจื ืืื ืื ืคืึธืจืขื ืคืื ืึทืจืืืงืืขื ืืื JSON ืคึฟืึธืจืืึทื (ืึธืืขืจ ืืึทืื ืกืืจืึทืงืืฉืขืจื ืจืขืคึผืจืืืขื ืืื ื ืืขื ืคึฟืึธืจืืึทื ืืื ืคึผืจืึธืฆืขืก ืืึผืจืื).
ืืขืจ ืืืืคึผื ืงืึธืืคึผืึธื ืขื ื ืคืื ืื ืกืขืจืืืขืจ ืคึผืจืึธืฆืขืก ืืื ืึธื ืืึธื ืคืึทืจืืืึทืืืขืจ, ืืืึธืก ืจืืฅ JSON ืึทืจืืืงืืขื ืฆื ืึทืืข ืกืขืจืืืขืจ ืคึผืจืึธืฆืขืก ืืืึทืงืก. ืื ืืืืคึผืก ืคืื JSON ืึธื ืืึธื ืืื ืคึฟืึธืจืืึทืฆืืข ืคืขืืืขืจ ืืื ืื ืืืึทืืืขืก ืืื ืงืขื ืขื ืึธื ื ืขืืขื ืืขื ืขื ืืืกืืขื ืืื ืื ืืืฉ:
deviceType
ืคึผืจืึธืืึธืงืึธื
messageType
deviceState
ืืึทืคืขื
ืึทืคึผืึทืจืึทื
onvif
sensorData
on
ืกืืจืืืื ื (ืืืืฃ / ืึทืืืขืง)
ืกืขื ืกืขืจ
zwave
ืืึทืคืขื
ืึทืืืขืง
ืจืขืงืึธืจืืื ื (ืืืืฃ / ืึทืืืขืง)
ืขืคืคืขืงืืึธืจ
ืืงืื
businessLogicRule
ืกืืจืืืื ื (ืืืืฃ / ืึทืืืขืง)
evice (ืืืื / ืึทืจืึธืคึผื ืขืืขื)
BusinessLogic
ืงืึธื ืคืืืืจืึทืืืึธื ืืึทืืึท
ืจืขืงืึธืจืืื ื (ืืืืฃ / ืึทืืืขืง)
ืืืืขืืึธืึธืื
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 ืฉืืืกื-ืืืขืจื ืคึผืขืจื:
- ืืืืื "ืืืืึทื";
- ื ืื ืืืืึทื ืฆื "ื ืื_ืืงืืืึทื";
- ืืืืื ืืงืขืจ "ืืืืื ืืงืขืจ";
- ืืขืจ "ืืจืขืกืขืจ";
- ืืืืื ืืงืขืจ ืืื ืึธืืขืจ ืืืืึทื ืฆื "less_or_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);
}
}
}
ืืึธ pFact - ืึท ืกืืจืืงืืืจ ืืื ืฉืืืกื-ืืืขืจื ืคึผืขืจื ืคืื ืึท JSON ืึธื ืืึธื, ื_ืจืืืขืก - ืฉืืจืืงื ืืขื ืืข ืคืื โโืคึผืจืึธืืืงืฆืืข ืึผืืืื. ืืขืจ ืคืึทืจืืืืึทื ืคืื ืื ืื ืงืึทืืื ื ืึธื ืืึธื ืืื ืื ืคึผืจืึธืืืงืฆืืข ืืขืจืฉื ืืื ืืืจืืืขืงืึธืื ืืื ืื ืคืื ืงืฆืืข reader.Parse(ruleStream, ruleHandler)ืืื ruleHandler ืืื ืึท ืืืืคืขืฅ ืืื ืื ืืึธืืืง ืคืื ืืึธืึธืืขืึทื ืืื ืคืึทืจืืืืึทื ืึธืคึผืขืจืืืืขืจื. sRuleId - ืึท ืืื ืฆืืง ืืขืจืฉื ืืืขื ืืืคืืขืจ, ืืึทื ืง ืฆื ืืืึธืก ืขืก ืืื ืืขืืืขื ืฆื ืงืจืึธื ืืื ืจืขืืึทืืืจื ืึผืืืื ืืื ืื ืกืืึทืจื ืืืื ืงืึธื ืืจืึธืืืขืจ ืืึทืืึทืืืืก. ื_ืคึผืึทืงืืืึธื ืก - ืึท ืืขื ืืข ืืื ืื ืจืขืืืืืึทืื ืคืื ืืึทืืืฉืืงืึทื ืื ืคืขืจืึทื ืก: JSON ืึทืจืืืงืืขื ืืื ืงืึธื ืกืขืงืืืขื ืฅ ืคืื ืื ืืขืจืฉื ืืึทืืข ืืื ืืขืฉืืงื ืืืืึทืืขืจ ืฆื ืืขืจ ืึธื ืืึธื ืคืึทืจืืืึทืืืขืจ ืึทืืื ืึทื ืึทืืึธื ืขื ื ืคึฟืขืืขื ืงืขื ืขื ืคึผืจืึธืฆืขืก ืืื.
ืื ืคืึธืจืฉืืขืืื ื ืคืื RapidJSON ืืื ืคืึทืจืืืืึทืืืขื ืืื ืื ืคืื ืงืฆืืข ืกืืจืืขื (), ืืื ืื ืืื ืืืื ืกืืกืืขื ืืืื ืจืขืงืืืืจืขืืขื ืฅ ืืึธืื ืื ื ืืฆื ืคืื ืืขื ืืืืืืึธืืขืง ืืื ืขืืืขืืื ืืขืืืืกืขืก. ืื ื ืืฆื ืคืื ืึทืจืืืงืืขื ืืื ืืึทืืืฉืืงืึทื ืึผืืืื ืืื JSON ืคึฟืึธืจืืึทื ืึทืืึทืื ืืืจ ืฆื ืื ืกืืจืืืขื ื ืึท ืคืืขืงืกืึทืืึทื ืกืืกืืขื ืคืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืงืกื ืฆืืืืฉื ืึทืืข ืงืึทืืคึผืึธืื ืึทื ืฅ ืคืื ืื ืกืืึทืจื ืืืื ืงืึธื ืืจืึธืืืขืจ.
ื-ืืืึทืืืข ืกืขื ืกืึธืจืก ืืื ืึทืงืืืืืืขืจื
ืืขืจ ืืืืคึผื ืืืึทืืข ืคืื โโืึท ืงืืื ืืืื ืืื ืึทื ืขืก ืงืขื ืขื ืื ืืืคึผืขื ืืึทื ืืื ืืขืกืื ืคืึทืจืฉืืื ืคึผืึทืจืึทืืขืืขืจืก ืคืื ืื ืคืื ืืจืืืกื ืืืง ืกืืืืืืข ืืื ืืืจืืคืืจื ื ืืฆืืง ืคืึทื ืืงืฉืึทื ื ืืืคึผืขื ืืื ื ืืืืฃ ืื ืกืืืืึทืฆืืข. ืฆื ืืึธื ืืึธืก, ืกืขื ืกืึธืจืก ืืื ืึทืงืืืืืืขืจื ืืขื ืขื ืงืึธื ื ืขืงืืขื ืฆื ืื ืกืืึทืจื ืืืื ืงืึธื ืืจืึธืืืขืจ. ืืื ืื ืงืจืึทื ื ืืืขืจืกืืข, ืืึธืก ืืขื ืขื ืืืืืจืืืก ืืขืืืืกืขืก ืืืึธืก ืึทืจืืขืื ืืื ืืขื ืคึผืจืึธืืึธืงืึธื
ืืืจ ืงืขื ืขื ืืืฆื ืืขืคึฟืื ืขื ืึท ืคืขืจืื ืืจืืืก ื ืืืขืจ ืคืื ืคืึทืจืฉืืืขื ืข Z-Wave ืืขืืืืกืขืก ืืืืฃ ืืขื ืืึทืจืง. ืืึธืืืจ ื ืขืืขื ืึท ืงืืง ืืื ืขืืืขืืข ืืืืฉืคืืื:
- ืื Zipato PAN16 ืงืืื ืืึธืืขื ืงืขื ืขื ืืขืกืื ืื ืคืืืืขื ืืข ืคึผืึทืจืึทืืขืืขืจืก: ืขืืขืงืืจืข ืงืึทื ืกืึทืืฉืึทื (ืงืืื), ืืึทืื (ืื), ืืืึธืืืืืืืฉ (V) ืืื ืงืจืึทื ื (ื) ืืื ืื ืขืืขืงืืจืืงืึทื ื ืขืฅ. ืขืก ืืืื ืืื ืึท ืืขืืืื-ืืื ืืึทืฉืืืืขื ืืื ืืืึธืก ืืืจ ืงืขื ืขื ืงืึธื ืืจืึธืืืจื ืื ืคืืจืืื ืื ืขืืขืงืืจืืงืึทื ืึทืคึผืคึผืืืึทื ืกืข;
- ืื ื ืขืึธ ืงืึธืึธืืงืึทื ืจืื ืขื ืกืขื ืกืขืจ ืืืืขืงืฅ ืื ืืืึทืืืึทื ืคืื ืกืคึผืืื ืคืืืกืืง ืืืจื ืงืืึธืืืื ื ืื ืงืึธื ืืึทืงืื ืคืื ืื ืืืืึทื ืืึธื ื;
- ืื Zipato PH-PSG01 ืจืืื ืกืขื ืกืขืจ ืืื ืืจืืืขืจื ืืืขื ืจืืื ืคึผืึทืจืืืงืึทืื ืึทืจืืึทื ืื ืืึทื ืึทื ืึทืืืืขืจ ืงืึทืืขืจ;
- ืื ื ืขืึธ ืงืึธืึธืืงืึทื ืืึทืืืขืืื ื ืกืขื ืกืขืจ ืึทื ืึทืืืืขืก ืื ืื ืคืจืขืจืขื ืจืึทืืืึทืฆืืข ืคืื โโืืขื ืืขื ืืฉ ืืืฃ. ืืื ืืขืจืฆื, ืขืก ืืื ืึท ืืืื ืกืขื ืกืขืจ (Lx);
- ืืืืืืกืขื ืกืึธืจ Philio PST02-A ืืืืืขื ืืขืืคึผืขืจืึทืืืจ (ยฐC), ืืืื (%), ืืืจ ืขืคื, ืืืึทืืืึทื ืคืื ืึท ืืขื ืืฉ ืืื ืื ืฆืืืขืจ;
- Z-Wave USB Stick ZME E UZB1 ื ืขืฅ ืงืึธื ืืจืึธืืืขืจ, ืฆื ืืืึธืก ืกืขื ืกืึธืจืก ืืขื ืขื ืงืึธื ื ืขืงืืขื.
ืขืก ืืื ืืืืขืจ ืืืืืืืง ืึทื ืื ืืขืืืืกืขืก ืืื ืื ืงืึธื ืืจืึธืืืขืจ ืึทืจืืขืื ืืื ืืขืจ ืืขืืืืงืขืจ ืึธืคืืงืืึทื, ืึทื ืืขืจืฉ ืืื ืืืขืื ื ืืฉื ืืขื ืืขืืขืจ ืื ืืขืจืข ืืื ืืขื ืืึธืืขื ื ืคืื ืงืฉืจ. ืึทืจืืืฃ ืฆื 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 ื ืขืฅ ืืกื ืงืึธื ืืจืึธืืืขืจ. ืืขืจื ืึธื ืืื ืึทืจืืึทื ืื ืึทืงืืืึทืืึธืจ, ืืืึธืก ืขื ืืขืจืื ืืขื ืื ืฉืืึทื ืคืื ืื ืืืืืจืึทื ืืขื ืึทื ืึทืืืืฉืขืงืฅ, ืืื ืื ืงืืื ืืืื ืึทืืื ืคึผืขืจืคืึธืจืื ื ืืฆืืง ืึทืจืืขื.
(ืืจืืงื ืืืืฃ ืื ืืืื ืฆื ืขืคืขื ืขื ืขืก ืืื ืืขืืขืจ ืืึทืืืึธืืข)
ืงืึทื ืขืงืืื ื Z-Wave ืืขืืืืกืขืก ืืื ืืืจืืืขืงืึธืื ืืื ืื ืืจืึทืคืืงืึทื ืฆืืืื ื ืคืื ืื ืกืืึทืจื ืืืื ืงืึธื ืืจืึธืืืขืจ. ืฆื ืืึธื ืืึธืก, ืืืื ืฆื ืื ืืืึทื ืืื ืึท ืจืฉืืื ืคืื ืืขืืืืกืขืก ืืื ืืื ืื "ืืืื" ืงื ืขืคึผื. ืื ืืืื ืืึทืคึฟืขื ืืืจื ืื RESTful API ืฆืืืื ื ืืืื ืืจืืื ืื ืกืขืจืืืขืจ ืคึผืจืึธืฆืขืก ืืื ืืื ืืขืฉืืงื ืืืจื ืื ืึธื ืืึธื ืคืึทืจืืืึทืืืขืจ ืฆื ืื Z-Wave ืกืขืจืืืขืจ, ืืืึธืก ืฉืืขืื ืื Z-Wave ื ืขืฅ ืืกื ืงืึธื ืืจืึธืืืขืจ ืืื ืึท ืกืคึผืขืฆืืขื ืืึธืืข ืคึฟืึทืจ ืึทืืื ื ืืขืืืืกืขืก. ืืขืจื ืึธื, ืืืืฃ ืื Z-Wave ืืืื ืืืจ ืืึทืจืคึฟื ืฆื ืืึทืื ืึท ืกืขืจืืข ืคืื โโืฉื ืขื ืคึผืจืขืกืขืก (3 ืืจืืงื ืืื 1,5 ืกืขืงืื ืืขืก) ืคืื ืื ืกืขืจืืืืก ืงื ืขืคึผื. ืื ืืกื ืงืึธื ืืจืึธืืืขืจ ืงืึทื ืขืงืฅ ืื ืืืื ืฆื ืื ื ืขืฅ ืืื ืกืขื ืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืขืก ืฆื ืื Z-Wave ืกืขืจืืืขืจ. ืืึธืก, ืืื ืงืขืจ, ืงืจืืืืฅ ืึท ื ืืึทืข ืคึผืึธืืืฆืืข ืืื ืื SQLite ืืึทืืึทืืืืก ืืื ืื ืคึผืึทืจืึทืืขืืขืจืก ืคืื ืื ื ืืึทืข ืืืื. ื ืึธื ืึท ืกืคึผืขืกืืคืืขื ืฆืืื ืืขืืึทืืขื, ืื ืืจืึทืคืืงืึทื ืฆืืืื ื ืงืขืจื ืฆื ืื Z-Wave ืืืื ืจืฉืืื ืืืึทื, ืืืืขื ื ืืื ืคึฟืึธืจืืึทืฆืืข ืคืื โโืื ืืึทืืึทืืืืก ืืื ืืืกืคึผืืืื ืื ื ืืึทืข ืืืื ืืื ืืขืจ ืจืฉืืื. ืืขืืขืจ ืืืื ืืืงืืื ืืืื ืืืืืขื ืข ืืื ืฆืืง ืืืขื ืืืคืืขืจ, ืืืึธืก ืืื ืืขื ืืฆื ืืื ืคึผืจืึธืืืงืฆืืข ืืื ืคืืจืึทื ืก ืึผืืืื ืืื ืืืขื ืืจืืขืื ืืื ืื ืืืึธืืงื. ืื ืึธืคึผืขืจืึทืฆืืข ืคืื โโโโืืขื ืึทืืืขืจืืืึทื ืืื ืืขืืืืื ืืื ืื UML ืืืึทืืจืึทืืข:
(ืืจืืงื ืืืืฃ ืื ืืืื ืฆื ืขืคืขื ืขื ืขืก ืืื ืืขืืขืจ ืืึทืืืึธืืข)
ืงืึทื ืขืงืืื ื 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
ืืื ืึท ืจืขืืืืืึทื, ืืืจ ืืึทืงืืืขื ืึท ืกืืื ืคืื ืืขืืขืจ "*. ื" ืืื ืืงืืจ "*. ืงืคึผืคึผ" ืืขืงืขืก ืืื C ++, ืืืึธืก ืงืขื ืขื ืืืื ืืขืฉืืขืื ืืืืึทื ืืื ืึท ืึทืคึผืืึทืงืืืฉืึทื ืึธืืขืจ ืึท ืืึทืืื ืืขืจ ืืืืืืึธืืขืง ืืื ืงืึทืืคึผืืืื ืืื ืื GCC ืงืึทืืคึผืืืืขืจ. ืจืขืื ืฆื ืืขืจ ืคืืืข ืคืึทื ืืงืฉืึทื ื, ืื ืงืึธื ืืื ืืจืืืก ืืื ืจืืงืืืืืขืจื ื ืึธื ืึทืคึผืืึทืืึทืืืืฉืึทื. ืื Raspberry Pi 3 ืืึธืืขื ื + ืืืงืจืึธืงืึธืืคึผืืืขืจ ืืื ืืขื ืื ืคืึธืจืฉืืขืืื ื ืฆื ืืืกืคืืจื ืืขื ืงืึธื, ืึธืืขืจ ืืืื ืขืก ืืื ืึท ื ืืื ืฆื ืึทืจืืืขืจืคืืจื ืื ืงืึธื ืฆื ืื ืื ืืขืจ ืคึผืืึทืืคืึธืจืืข, ืขืก ืืื ื ืืืืืง ืฆื ืืืืกืงืืืึทืื ืื ืจืืืืืง ืคึผืจืึทืกืขืกืขืจ ืึทืจืงืึทืืขืงืืฉืขืจ ืืื ืกืืกืืขื ืจืขืกืืจืกื.
IP ืงืึทืืขืจืึทืก ืืืึธืก ืฉืืืฆื ืื ONVIF ื ืึธืจืืึทื, ืืืขื ืึทืคึผืขืจืืืืื ื ืืืืฃ ืึท ืืืืข ื ืขืฅ, ืืขื ืขื ืคืืจืืื ืื ืฆื ืึท ืกืคึผืขืฆืืขื ืืืืืืงืึทืกื ืืจืืคึผืข ืืื ืื ืึทืืจืขืก 239.255.255.250. ืขืก ืืื ืึท ืคึผืจืึธืืึธืงืึธื
ืื ืืจืึทืคืืงืึทื ืฆืืืื ื ืคืื ืื ืงืืื ืืืื ืงืึธื ืืจืึธืืืขืจ ืืืคึผืืึทืืึทื ืฅ ืึท ืืืื ืคืื ืงืฆืืข ืคึฟืึทืจ IP ืงืึทืืขืจืึทืก ืืื PHP, ืืืึธืก ืืื ืืืืขืจ ืืึทืงืืืขื ืืืขื ืื ืืขืจืึทืงืืื ื ืืื ืืืขื ืืึทืืื ืื ืืก ืืืจื ืงืกืื ืึทืจืืืงืืขื. ืืืขื ืกืึทืืขืงืืื ื ืืขื ืื ืืืื ืืขืืืืกืขืก> IP ืงืึทืืขืจืึทืก> ืกืงืึทื ืื ื ืืขืจ ืึทืืืขืจืืืึทื ืคึฟืึทืจ ืืืื ืคึฟืึทืจ IP ืงืึทืืขืจืึทืก ืืื ืืึธื ืืฉื, ืืืืึทืื ืืืง ืื ืจืขืืืืืึทื ืืื ืื ืคืึธืจืขื ืคืื ืึท ืืืฉ:
(ืืจืืงื ืืืืฃ ืื ืืืื ืฆื ืขืคืขื ืขื ืขืก ืืื ืืขืืขืจ ืืึทืืืึธืืข)
ืืืขื ืืืจ ืืืืื ืึท ืึทืคึผืึทืจืึทื ืฆื ืื ืงืึธื ืืจืึธืืืขืจ, ืืืจ ืงืขื ืขื ืกืคึผืขืฆืืคืืฆืืจื ืื ืกืขืืืื ืืก ืืืื ืืืึธืก ืขืก ืืืขื ืื ืืขืจืึทืงื ืืื ืื ืืืึธืืงื. ืืืื ืืื ืืขื ืืื ืข, ืขืก ืืื ืืืืืึธืืึทืืืฉ ืึทืกืืื ื ืึท ืืื ืฆืืง ืืืื ืืืขื ืืืคืืขืจ, ืืืจื ืืืึธืก ืขืก ืงืขื ืขื ืฉืคึผืขืืขืจ ืืืื ืืืืื ืืืืขื ืึทืคืืื ืืื ืื ืืืึธืืงื.
ืืขืจื ืึธื, ืึท ืึธื ืืึธื ืืื ืืืฉืขื ืขืจืืืืึทื ืืื JSON ืคึฟืึธืจืืึทื ืืื ืึทืืข ืื ืคึผืึทืจืึทืืขืืขืจืก ืคืื ืื ืฆืืืขืืืืื ืึทืคึผืึทืจืึทื ืืื ืืขืฉืืงื ืฆื ืื ืกืขืจืืืขืจ ืคึผืจืึธืฆืขืก ืคืื ืื ืกืืึทืจื ืืืื ืงืึธื ืืจืึธืืืขืจ ืืืจื ืื RESTful API ืืึทืคึฟืขื, ืืื ืื ืึทืคึผืึทืจืึทื ืคึผืึทืจืึทืืขืืขืจืก ืืขื ืขื ืืขืงืึธืืขื ืืื ืืขืจืืืขืืืขื ืืื ืื ืื ืขืจืืขื SQLite ืืึทืืึทืืืืก, ืืื ืืืื ืืขื ืืฆื ืฆื ืงืึทืืขืจ ืื ืคืืืืขื ืืข ืคึผืจืึทืกืขืกืื ื ืคึฟืขืืขื:
- ืืจืื ืื ืึท RTSP ืคึฟืึทืจืืื ืืื ื ืฆื ืืึทืงืืืขื ืืืืืขื ืืื ืึทืืืืึธ ืกืืจืืื;
- ืืจืึทื ืกืงืึธืืื ื ืึทืืืืึธ ืคึฟืื G.711 mu-Law, G.711 A-Law, G.723, ืขืืง ืคึฟืึธืจืืึทืืืจืื ืืขื. ืฆื ืึทืึทืง ืคึฟืึธืจืืึทื;
- ืืจืึทื ืกืงืึธืืื ื ืืืืืขื ืกืืจืืื ืืื H.264 ืคึฟืึธืจืืึทื ืืื ืึทืืืืึธ ืืื ืึทืึทืง ืคึฟืึธืจืืึทื ืืื ืึท FLV ืงืึทื ืืืื ืขืจ ืืื ืืจืึทื ืกืืืืื ื ืขืก ืฆื ืื ืืืึธืืงื ืืืจื ืื RTMP ืคึผืจืึธืืึธืงืึธื;
- ืืจืื ืื ืึท ืคึฟืึทืจืืื ืืื ื ืืื ืื ืขื ืืคึผืืื ื ืคืื ืื IP ืึทืคึผืึทืจืึทื ืืึทืืืขืืื ื ืืขืืขืงืืึธืจ ืืืจื ืื ONVIF ืคึผืจืึธืืึธืงืึธื ืืื ืคึผืืจืืึทืืืงืื ืคึผืึธืืืื ื ืขืก;
- ืคึผืืจืืึทืืืงืื ืืืฉืขื ืขืจืืืืื ื ืึท ืืึทืื ืืื ืคืึธืจืืืกืืงืข ืืืืึทืืื ื ืืืื ืืื ืฉืืงื ืขืก ืฆื ืื ืืืึธืืงื ืืืจื ืื MQTT ืคึผืจืึธืืึธืงืึธื;
- ืืืืข ืจืขืงืึธืจืืื ื ืคืื ืืืืืขื ืืื ืึทืืืืึธ ืกืืจืืื ืืื ืื ืคืึธืจืขื ืคืื ืืึทืืื ืืขืจ ืืขืงืขืก ืืื MP4 ืคึฟืึธืจืืึทื ืืืืฃ ืึท ืกื ืึธืืขืจ ืคืืึทืฉ ืงืึธืจื ืคืื ืึท ืงืืื ืืืื ืงืึธื ืืจืึธืืืขืจ.
ืฆื ืคืึทืจืืืืื ืึท ืงืฉืจ ืืื ืงืึทืืขืจืึทืก, ืืจืึทื ืกืงืึธืืข, ืคึผืจืึธืฆืขืก ืืื ืจืขืงืึธืจืืืจื ืืืืืขื ืกืืจืืื ืืื ืื ืกืขืจืืืขืจ ืคึผืจืึธืฆืขืก, ืคืึทื ืืงืฉืึทื ื ืคืื ืืขืจ ืืืืืืึธืืขืง ืืขื ืขื ืืขื ืืฆื
ืืื ืืขืจ ืคืึธืจืฉืืขืืื ื ืืขืกืืื ื ืขืงืกืคึผืขืจืืืขื ื, 3 ืงืึทืืขืจืึทืก ืืขื ืขื ืคืืจืืื ืื ืฆื ืื ืงืึธื ืืจืึธืืืขืจ:
- ืืืืืึทืืืฉ ืืก-ื114ืื (ืืึทืืืึธืืข - 720 ืคึผ, ืงืึทืืคึผืจืขืฉืึทื ืคึฟืึธืจืืึทื - ื.264, ืืืืจืึทืืข - 1 ืื / s, ืืขืืื ื ื.711 ืื-ืืขืืขืฅ);
- ืืืงืจืึธืืืืืืึทื ืืืง-ื6290ืคืื-1 (ืืึทืืืึธืืข - 1080 ืคึผ, ืงืึทืืคึผืจืขืฉืึทื ืคึฟืึธืจืืึทื - ื.264, ืืืืจืึทืืข - 1 ืื / s, ืงืืื ืืขืืื ื);
- Dahua DH-IPC-HDW4231EMP-AS-0360B (ืืึทืืืึธืืข - 1080 ืคึผ, ืงืึทืืคึผืจืขืฉืึทื ืคึฟืึธืจืืึทื - ื.264, ืืืืจืึทืืข - 1.5 ืื / s, ืึทืึทืง ืึทืืืืึธ).
ืึทืืข ืืจืื ืกืืจืืื ืืขื ืขื ืกืืืืึทืืืืื ืืึทืกืื ืจืขืืืืืึทื ืฆื ืื ืืืึธืืงื, ืึทืืืืึธ ืืจืึทื ืกืงืึธืืื ื ืืื ืืืจืืืขืงืึธืื ืคึฟืื ืืืืื ืืืื ืึทืคึผืึทืจืึทื, ืืื ืื ืืืืข ืึทืจืงืืืื ืจืขืงืึธืจืืื ื ืืื ืคืึทืจืงืจืืคึผืื. ืงืคึผื ืืืืึทืืึทืืืืฉืึทื ืืื ืืขืืืขื ืืขืขืจืขื 5%, ืืึทืจืึทื ืืึทื ืืฅ ืืื ืืขืืืขื 32 ืืขืืืืืืื (ืคึผืขืจ ืคึผืจืึธืฆืขืก), 56 ืืขืืืืืืื (ืืึทื ืฅ ืึทืจืืึทื ืืขืจืขืื ื ืึทืก).
ืืืื, ืืขืขืจืขื 20 - 30 ืงืึทืืขืจืึทืก ืงืขื ืขื ืืืื ืงืึธื ื ืขืงืืขื ืฆื ืื ืงืืื ืืืื ืงืึธื ืืจืึธืืืขืจ (ืืืคึผืขื ืืื ื ืืืืฃ ืืึทืืืึธืืข ืืื ืืืืจืึทืืข), ืืืึธืก ืืื ืืขื ืื ืคึฟืึทืจ ืึท ืืืืืขื ืกืขืจืืืืืืึทื ืก ืกืืกืืขื ืคึฟืึทืจ ืึท ืืจืื-ืกืืึธืจื ืืืึทืืงืข ืึธืืขืจ ืึท ืงืืืื ืืืขืจืืึทืืก. ืคึฟืึทืจ ืืึทืกืงืก ืืืึธืก ืืึทืจืคื ืืขืจ ืคืึธืจืฉืืขืืื ื, ืืืจ ืงืขื ืขื ื ืืฆื ืึท ื ืขืืืึธืคึผ ืืื ืึท ืืึทืืื-ืืึทืจืฅ ืื ืืขื ืคึผืจืึทืกืขืกืขืจ ืืื Linux Debian Sarge OS. ืืขืจ ืงืึธื ืืจืึธืืืขืจ ืืื ืืขืจืืืืึทื ืืืจืืืขืงืึธืื ืคึผืจืึธืฆืขืก ืึธืคึผืขืจืึทืฆืืข, ืืื ืืึทืื ืืืขืื ืืืึทื ืคืึธืจืฉืืขืืื ื ืืืขื ืืืื ืืขืจืืืึทื ืืืงื.
ืื ืืขืจืึทืงืฉืึทื ืืื ืื ืืืึธืืงื
ื ืืืึธืืงื-ืืืืืจื ืงืืื ืืืื ืกืืึธืจื ืืึทื ืืฆืขืจ ืืึทืื (ืืืืืขื ืืื ืกืขื ืกืขืจ ืืขืืฉืขืจืืึทื ืฅ) ืืื ืื ืืืึธืืงื. ืื ืึทืจืงืึทืืขืงืืฉืขืจ ืคืื ืืืึธืืงื ืกืืึธืจืืืืฉ ืืืขื ืืืื ืืืกืงืึทืกื ืืื ืืขืจ ืืขืืึทื ืืื ืืขืจ ืืืืึทืืขืจ ืึทืจืืืงื ืืื ืืื ืืืขืจ ืกืขืจืืข. ืืืฆื ืืึธืื ืก ืจืขืื ืืืขืื ืื ืฆืืืื ื ืคึฟืึทืจ ืืจืึทื ืกืืืืื ื ืืื ืคึฟืึธืจืืึทืฆืืข ืึทืจืืืงืืขื ืคืื ืื ืงืืื ืืืื ืงืึธื ืืจืึธืืืขืจ ืฆื ืื ืืืึธืืงื.
ืื ืฉืืึทืื ืคืื ืงืึธื ื ืขืงืืขื ืืขืืืืกืขืก ืืื ืกืขื ืกืขืจ ืืขืืฉืขืจืืึทื ืฅ ืืขื ืขื ืืจืึทื ืกืืืืืขื ืืืจื ืืขื ืคึผืจืึธืืึธืงืึธื
- QoS 0 - ืืึทืงืกืืืื ืึทืืึธื (ืงืืื ืขืงืกืคึผืจืขืก ืืึทืจืึทื ืืืจื);
- QoS 1 - ืืคึผืืืช ืึทืืึธื (ืืื ืขืงืกืคึผืจืขืก ืืึทืฉืืขืืืงืื ื);
- QoS 2 - ืคึผืื ืงื ืึทืืึธื (ืืื ื ืึธื ืขืงืกืคึผืจืขืก ืืึทืฉืืขืืืงืื ื).
ืืื ืืื ืืืขืจ ืคืึทื, ืืืจ ื ืืฆื
ืฆื ืึทืจืืืขืจืคืืจื ืึทืจืืืงืืขื ืืืขืื ืื ืกืืึทืืืก ืคืื ืื ืกืืึทืจื ืืืื ืงืึธื ืืจืึธืืืขืจ, ืื ืืขืงืึทื ืืืึทื ืคืื ืืขืจืืืขืืืขื ืึทืจืืืงืืขื ืืื ืืขื ืืฆื
ืืขืจ MQTT ืงืืืขื ื ืืื ืืขืืืขืืึธืคึผืขื ืืืืืจื ืืืืฃ ืื ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื ืื ืืืืืืึธืืขืง
ื.264 + ืึทืึทืง ืืขืืืข ืกืืจืืื ืืขื ืขื ืืขืฉืืงื ืฆื ืื ืืืึธืืงื ืืืจื ืื RTMP ืคึผืจืึธืืึธืงืึธื, ืืื ืึท ืงื ืืื ืคืื ืืืืืึท ืกืขืจืืืขืจืก ืืื ืคืึทืจืึทื ืืืืึธืจืืืขื ืคึฟืึทืจ ืคึผืจืึทืกืขืกืื ื ืืื ืกืืึธืจืื ื ืืื. ืฆื ืึธืคึผืืืืึทื ืคืึทืจืฉืคึผืจืืืื ืื ืืึทืกืข ืืื ืืขื ืงื ืืื ืืื ืืืืกืงืืืึทืื ืื ืงืืขื ืกืืขืจ ืืึธืืืื ืืขืืืข ืกืขืจืืืขืจ, ืื ืกืืึทืจื ืืืื ืงืึธื ืืจืึธืืืขืจ ืืืื ืึท ืคึผืจืืืืืึทื ืขืจื ืืขืื ืฆื ืื ืืืึธืืงื ืืึทืกืข ืืึทืืึทื ืกืขืจ ืืื ืืืืื ื ืึธื ืืขื ืกืขื ืื ืื ืืืืืึท ืืืึทื.
ืกืึธืฃ
ืืขืจ ืึทืจืืืงื ืืืืึทืืึทื ื ืืืื ืกืคึผืขืฆืืคืืฉ ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื ืึท ืกืืึทืจื ืืืื ืงืึธื ืืจืึธืืืขืจ ืืืืืจื ืืืืฃ ืื Raspberry Pi 3 B+ ืืืงืจืึธืงืึธืืคึผืืืขืจ, ืืืึธืก ืงืขื ืขื ืืึทืงืืืขื, ืคึผืจืึทืกืขืกืื ื ืืื ืคึฟืึธืจืืึทืฆืืข ืืื ืงืึธื ืืจืึธื ืืืกืจืืื ืืืจื ืื Z-Wave ืคึผืจืึธืืึธืงืึธื, ืื ืืขืจืึทืงื ืืื IP ืงืึทืืขืจืึทืก ืืืจื ืื ONVIF ืคึผืจืึธืืึธืงืึธื, ืืื ืืืื ืืืขืงืกื ืืึทืื ืืื ืงืึทืืึทื ืื ืืื ืื ืืืึธืืงื ืืื ืกื ืืืจื MQTT ืืื RTMP ืคึผืจืึธืืึธืงืึธืืก. ื ืคึผืจืึธืืืงืฆืืข ืืึธืืืง ืืึธืืึธืจ ืืื ืืขืืืขืืึธืคึผืขื ืืืืืจื ืืืืฃ ืึท ืคืึทืจืืืืึทื ืคืื ืืึทืืืฉืืงืึทื ืึผืืืื ืืื ืคืืงืื ืืขืจืืื ืื ืืื JSON ืคึฟืึธืจืืึทื.
ืืขืจ ืกืืึทืจื ืืืื ืงืึธื ืืจืึธืืืขืจ ืืื ืืขืจืืืืึทื ืืืจืืืขืงืึธืื ืคึผืจืึธืฆืขืก ืึธืคึผืขืจืึทืฆืืข ืืื ืขืืืขืืข ืืืืืืขื ืืื ืืึธืกืงืืืข ืืื ืื ืืึธืกืงืืืข ืืขืื ื.
ืืขืจ ืืืืึทืืขืจ ืืืขืจืกืืข ืคืื โโืื ืงืึธื ืืจืึธืืืขืจ ืคึผืืึทื ื ืฆื ืคืึทืจืืื ืื ืื ืืขืจืข ืืืืคึผืก ืคืื ืืขืืืืกืขืก (ืจืฃ, ืืืืขืืึธืึธืื, ืืืืคื, ืืืืืขืจื). ืคึฟืึทืจ ืื ืงืึทื ืืืื ืืึทื ืก ืคืื ื ืืฆืขืจืก, ืื ืคึผืจืึธืฆืขืืืจ ืคึฟืึทืจ ืงืึทื ืขืงืืื ื ืกืขื ืกืึธืจืก ืืื IP ืงืึทืืขืจืึทืก ืืืขื ืืืื ืืจืึทื ืกืคืขืจื ืฆื ืื ืจืืจืขืืืืืง ืึทืคึผืืึทืงืืืฉืึทื. ืขืก ืืขื ืขื ืืืื ืืืืืึทื ืคึฟืึทืจ ืึธืคึผืืืืืืื ื ืื ืกืขืจืืืขืจ ืคึผืจืึธืฆืขืก ืงืึธื ืืื ืคึผืึธืจืืื ื ืื ืืืืืืืืืจื ืฆื ืื ืึธืคึผืขืจืืืืื ื ืกืืกืืขื
ืืงืืจ: www.habr.com