рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕

рдЖрдЬ, рдорд╛рдпрдХреНрд░реЛрдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХреНрд╕, рдХрдореНрдпреБрдирд┐рдХреЗрд╢рди рдЪреЕрдиреЗрд▓, рдЗрдВрдЯрд░рдиреЗрдЯ рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдЖрдгрд┐ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддреЗрдЪреНрдпрд╛ рдЬрд▓рдж рд╡рд┐рдХрд╛рд╕рд╛рдореБрд│реЗ, рд╕реНрдорд╛рд░реНрдЯ рдШрд░рд╛рдВрдЪрд╛ рд╡рд┐рд╖рдп рдЕрдзрд┐рдХрд╛рдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛрдд рдЖрд╣реЗ. рдкрд╛рд╖рд╛рдг рдпреБрдЧрд╛рдкрд╛рд╕реВрди рдорд╛рдирд╡реА рдШрд░рд╛рдВрдордзреНрдпреЗ рд▓рдХреНрд╖рдгреАрдп рдмрджрд▓ рдЭрд╛рд▓реЗ рдЖрд╣реЗрдд рдЖрдгрд┐ рдФрджреНрдпреЛрдЧрд┐рдХ рдХреНрд░рд╛рдВрддреА 4.0 рдЖрдгрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рдСрдл рдерд┐рдВрдЧреНрдЬрдЪреНрдпрд╛ рдпреБрдЧрд╛рдд рддреЗ рдЖрд░рд╛рдорджрд╛рдпрдХ, рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрдгрд┐ рд╕реБрд░рдХреНрд╖рд┐рдд рдЭрд╛рд▓реЗ рдЖрд╣реЗ. рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рд╡рд╛рдкрд░реВрди рдЬрдЧрд╛рддреАрд▓ рдХреЛрдареВрдирд╣реА рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЬрдЯрд┐рд▓ рдорд╛рд╣рд┐рддреА рдкреНрд░рдгрд╛рд▓реАрдордзреНрдпреЗ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдХрд┐рдВрд╡рд╛ рджреЗрд╢рд╛рдЪреНрдпрд╛ рдШрд░рд╛рдЪреЗ рд░реВрдкрд╛рдВрддрд░ рдХрд░рдгрд╛рд░реЗ рдЙрдкрд╛рдп рдмрд╛рдЬрд╛рд░рд╛рдд рдпреЗрдд рдЖрд╣реЗрдд. рд╢рд┐рд╡рд╛рдп, рдорд╛рдирд╡реА-рдорд╢реАрди рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджрд╛рд╕рд╛рдареА рдпрд╛рдкреБрдвреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдВрдЪреЗ рдЬреНрдЮрд╛рди рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА - рдЙрдЪреНрдЪрд╛рд░ рдУрд│рдЦрдгреЗ рдЖрдгрд┐ рд╕рдВрд╢реНрд▓реЗрд╖рдг рдЕрд▓реНрдЧреЛрд░рд┐рджрдордореБрд│реЗ, рдПрдЦрд╛рджреА рд╡реНрдпрдХреНрддреА рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдореВрд│ рднрд╛рд╖реЗрдд рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдорд╢реА рдмреЛрд▓рддреЗ.

рд╕рдзреНрдпрд╛ рдмрд╛рдЬрд╛рд░рд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдХрд╛рд╣реА рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рд╕рд┐рд╕реНрдЯреАрдо рдХреНрд▓рд╛рдЙрдб рд╡реНрд╣рд┐рдбрд┐рдУ рдкрд╛рд│рдд рдареЗрд╡рдгреЗ рдкреНрд░рдгрд╛рд▓реАрдЪрд╛ рддрд╛рд░реНрдХрд┐рдХ рд╡рд┐рдХрд╛рд╕ рдЖрд╣реЗ, рдЬреНрдпрд╛рдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдирд╛ рдХреЗрд╡рд│ рджреЗрдЦрд░реЗрдЦреАрд╕рд╛рдареАрдЪ рдирд╡реНрд╣реЗ рддрд░ рджреВрд░рд╕реНрде рд╡рд╕реНрддреВрдВрдЪреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡рд╕рдорд╛рд╡реЗрд╢рдХ рд╕рдорд╛рдзрд╛рдирд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЬрд╛рдгрд╡рд▓реА.

рдЖрдореНтАНрд╣реА рддреБрдордЪреНтАНрдпрд╛ рд▓рдХреНрд╖реНтАНрдпрд╛рдВрд╕рд╛рдареА рддреАрди рд▓реЗрдЦрд╛рдВрдЪреА рдорд╛рд▓рд┐рдХрд╛ рд╕рд╛рджрд░ рдХрд░рдд рдЖрд╣реЛрдд, рдЬреЗ рддреБрдореНтАНрд╣рд╛рд▓рд╛ рдХреНтАНрд▓рд╛рдЙрдб рд╕реНтАНрдорд╛рд░реНрдЯ рд╣реЛрдо рд╕рд┐рд╕реНтАНрдЯрдордЪреНтАНрдпрд╛ рд╕рд░реНрд╡ рдореБрдЦреНтАНрдп рдШрдЯрдХрд╛рдВрдмрджреНрджрд▓ рд╕рд╛рдВрдЧрддреАрд▓, рдЬреЗ рд▓реЗрдЦрдХрд╛рдиреЗ рд╡реНтАНрдпрдХреНтАНрддреАрд╢: рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗрдд рдЖрдгрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗрдд. рдкрд╣рд┐рд▓рд╛ рд▓реЗрдЦ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдордордзреНрдпреЗ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЯрд░реНрдорд┐рдирд▓ рдХреНрд▓рд╛рдпрдВрдЯ рдЙрдкрдХрд░рдгрд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдкрд┐рдд рдЖрд╣реЗ, рджреБрд╕рд░рд╛ рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬ рдЖрдгрд┐ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рдЖрдгрд┐ рд╢реЗрд╡рдЯреА, рдореЛрдмрд╛рдЗрд▓ рдЖрдгрд┐ рд╕реНрдерд┐рд░ рдЙрдкрдХрд░рдгрд╛рдВрд╡рд░ рд╕рд┐рд╕реНрдЯрдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреНрд▓рд╛рдпрдВрдЯ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд╕рд╛рдареА рд╕рдорд░реНрдкрд┐рдд рдЖрд╣реЗ.

рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдЙрдкрдХрд░рдгреЗ

рдкреНрд░рдердо, рд╕рд╛рдорд╛рдиреНрдп рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ, рдбрдЪрд╛ рдХрд┐рдВрд╡рд╛ рдХреЙрдЯреЗрдЬрдордзреВрди рд╕реНрдорд╛рд░реНрдЯ рдШрд░ рдХрд╕реЗ рдмрдирд╡рд╛рдпрдЪреЗ рдпрд╛рдмрджреНрджрд▓ рдмреЛрд▓реВрдпрд╛. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдирд┐рдпрдорд╛рдиреБрд╕рд╛рд░, рдЦрд╛рд▓реАрд▓ рдЙрдкрдХрд░рдгреЗ рдШрд░рд╛рдд рдареЗрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:

  1. рд╡рд┐рд╡рд┐рдз рдкрд░реНрдпрд╛рд╡рд░рдгреАрдп рдорд╛рдкрджрдВрдб рдореЛрдЬрдгрд╛рд░реЗ рд╕реЗрдиреНрд╕рд░;
  2. рдмрд╛рд╣реНрдп рд╡рд╕реНрддреВрдВрд╡рд░ рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд░реЗ рдЕреЕрдХреНрдЯреНрдпреБрдПрдЯрд░;
  3. рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдЬреЛ рд╕реЗрдиреНрд╕рд░ рдореЛрдЬрдорд╛рдк рдЖрдгрд┐ рдПрдореНрдмреЗрдбреЗрдб рд▓реЙрдЬрд┐рдХрдиреБрд╕рд╛рд░ рдЧрдгрдирд╛ рдХрд░рддреЛ рдЖрдгрд┐ рдЕреЕрдХреНрдЯреНрдпреБрдПрдЯрд░реНрд╕рдирд╛ рдЖрджреЗрд╢ рдЬрд╛рд░реА рдХрд░рддреЛ.

рдЦрд╛рд▓реАрд▓ рдЖрдХреГрддреА рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдордЪреЗ рдЖрдХреГрддреА рджрд░реНрд╢рд╡рддреЗ, рдЬреНрдпрд╛рд╡рд░ рдмрд╛рдерд░реВрдордордзреНрдпреЗ рдкрд╛рдгреА рдЧрд│рддреАрд╕рд╛рдареА рд╕реЗрдиреНрд╕рд░ (1) рдмрд╛рдерд░реВрдордордзреНрдпреЗ, рддрд╛рдкрдорд╛рди (2) рдЖрдгрд┐ рд▓рд╛рдЗрдЯрд┐рдВрдЧ (3) рдмреЗрдбрд░реВрдордордзреНрдпреЗ, рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рд╕реЙрдХреЗрдЯ (4) рд╕реНрд╡рдпрдВрдкрд╛рдХрдШрд░рд╛рдд рдЖрдгрд┐ рдПрдХ рд╣реЙрд▓рд╡реЗрдордзреНрдпреЗ рд╡реНрд╣рд┐рдбрд┐рдУ рдкрд╛рд│рдд рдареЗрд╡рдгрд╛рд░рд╛ рдХреЕрдореЗрд░рд╛ (5).

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕

рд╕рдзреНрдпрд╛, RF433, Z-Wave, ZigBee, Bluetooth рдЖрдгрд┐ WiFi рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд╛рдкрд░реВрди рдХрд╛рд░реНрдпрд░рдд рд╡рд╛рдпрд░рд▓реЗрд╕ рд╕реЗрдиреНрд╕рд░ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рд╡рд░ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд. рддреНрдпрд╛рдВрдЪреЗ рдореБрдЦреНрдп рдлрд╛рдпрджреЗ рдореНрд╣рдгрдЬреЗ рд╕реНрдерд╛рдкрдирд╛ рдЖрдгрд┐ рд╡рд╛рдкрд░ рд╕реБрд▓рднрддрд╛, рддрд╕реЗрдЪ рдХрдореА рдХрд┐рдВрдордд рдЖрдгрд┐ рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣рддрд╛, рдХрд╛рд░рдг рдЙрддреНрдкрд╛рджрдХ рддреНрдпрд╛рдВрдЪреА рдЙрдкрдХрд░рдгреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рд╡рд░ рдмрд╛рдЬрд╛рд░рдкреЗрдареЗрдд рдЖрдгрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рд╕рд░рд╛рд╕рд░реА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рд╡реЗрд╢рдпреЛрдЧреНрдп рдмрдирд╡рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рдпрддреНрдирд╢реАрд▓ рдЖрд╣реЗрдд.

рд╕реЗрдиреНрд╕рд░реНрд╕ рдЖрдгрд┐ рдЕтАНреЕрдХреНрдЯреНрдпреБрдПрдЯрд░, рдирд┐рдпрдорд╛рдиреБрд╕рд╛рд░, рд╡рд╛рдпрд░рд▓реЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕рджреНрд╡рд╛рд░реЗ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░ (6) рд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рдЕрд╕рддрд╛рдд - рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдпрдХреНрд░реЛ рдХреЙрдореНрдкреНрдпреБрдЯрд░ рдЬреЛ рдпрд╛ рд╕рд░реНрд╡ рдЙрдкрдХрд░рдгрд╛рдВрдирд╛ рдПрдХрд╛рдЪ рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ рдПрдХрддреНрд░ рдХрд░рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреЗ рдирд┐рдпрдВрддреНрд░рдг рдХрд░рддреЛ.

рддрдерд╛рдкрд┐, рдХрд╛рд╣реА рдЙрдкрд╛рдп рдПрдХрд╛рдЪ рд╡реЗрд│реА рд╕реЗрдиреНрд╕рд░, рдПрдХ рдЕреЕрдХреНрдЯреНрдпреБрдПрдЯрд░ рдЖрдгрд┐ рдХрдВрдЯреНрд░реЛрд▓рд░ рдПрдХрддреНрд░ рдХрд░реВ рд╢рдХрддрд╛рдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдкреНрд▓рдЧ рд╢реЗрдбреНрдпреВрд▓рдиреБрд╕рд╛рд░ рдЪрд╛рд▓реВ рдХрд┐рдВрд╡рд╛ рдмрдВрдж рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдЖрдгрд┐ рдХреНрд▓рд╛рдЙрдб рд╡реНрд╣рд┐рдбрд┐рдУ рдкрд╛рд│рдд рдареЗрд╡рдгрд╛рд░рд╛ рдХреЕрдореЗрд░рд╛ рдореЛрд╢рди рдбрд┐рдЯреЗрдХреНрдЯрд░ рд╕рд┐рдЧреНрдирд▓рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╡реНрд╣рд┐рдбрд┐рдУ рд░реЗрдХреЙрд░реНрдб рдХрд░реВ рд╢рдХрддреЛ. рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкреНрдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рдЖрдкрдг рд╡реЗрдЧрд│реНрдпрд╛ рдирд┐рдпрдВрддреНрд░рдХрд╛рд╢рд┐рд╡рд╛рдп рдХрд░реВ рд╢рдХрддрд╛, рдкрд░рдВрддреБ рдЕрдиреЗрдХ рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрд╕рд╣ рдПрдХ рд▓рд╡рдЪрд┐рдХ рдкреНрд░рдгрд╛рд▓реА рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рд▓рд╛ рдЬрд╛рдЧрддрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХрд╢реА рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА, рдирд┐рдпрдорд┐рдд рдЗрдВрдЯрд░рдиреЗрдЯ рд░рд╛рдЙрдЯрд░ (7) рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ, рдЬреЛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдШрд░рд╛рдд рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдШрд░рдЧреБрддреА рдЙрдкрдХрд░рдг рдмрдирд▓рд╛ рдЖрд╣реЗ. рдпреЗрдереЗ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ рдЖрдгрдЦреА рдПрдХ рдпреБрдХреНрддрд┐рд╡рд╛рдж рдЖрд╣реЗ - рдЬрд░ рдЗрдВрдЯрд░рдиреЗрдЯрдЪреЗ рдХрдиреЗрдХреНрд╢рди рддреБрдЯрд▓реЗ рдЕрд╕реЗрд▓ рддрд░, рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡реЗрдордзреНрдпреЗ рдирд╕реВрди рдХрдВрдЯреНрд░реЛрд▓рд░рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рд▓реЙрдЬрд┐рдХ рдмреНрд▓реЙрдХрдореБрд│реЗ рд╕рд╛рдорд╛рдиреНрдпрдкрдгреЗ рдХрд╛рд░реНрдп рдХрд░рдд рд░рд╛рд╣реАрд▓.

рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░

рдпрд╛ рд▓реЗрдЦрд╛рдд рдЪрд░реНрдЪрд╛ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рд╕рд┐рд╕реНрдЯрдорд╕рд╛рдареА рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕рд┐рдВрдЧрд▓-рдмреЛрд░реНрдб рдорд╛рдпрдХреНрд░реЛ рдХреЙрдореНрдкреНрдпреБрдЯрд░рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рд░рд╛рд╕реНрдкрдмреЗрд░реА Pi 3 рдореЙрдбреЗрд▓ B+, рдЬреЗ рдорд╛рд░реНрдЪ 2018 рдордзреНрдпреЗ рд░рд┐рд▓реАрдЬ рдЭрд╛рд▓реЗ рд╣реЛрддреЗ рдЖрдгрд┐ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдЯрд╛рд╕реНрдХрд╕рд╛рдареА рдкреБрд░реЗрд╢реА рд╕рдВрд╕рд╛рдзрдиреЗ рдЖрдгрд┐ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЖрд╣реЗ. рдпрд╛рдордзреНрдпреЗ 53-рдмрд┐рдЯ ARMv64-A рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдХреНрд╡рд╛рдб-рдХреЛрд░ рдХреЙрд░реНрдЯреЗрдХреНрд╕-A8 рдкреНрд░реЛрд╕реЗрд╕рд░, 1.4 GHz, рддрд╕реЗрдЪ 1 GB RAM, Wi-Fi 802.11ac, рдмреНрд▓реВрдЯреВрде 4.2 рдЖрдгрд┐ USB 2.0 рджреНрд╡рд╛рд░реЗ рдСрдкрд░реЗрдЯреАрдВрдЧ рдПрдХ рдЧрд┐рдЧрд╛рдмрд┐рдЯ рдЗрдерд░рдиреЗрдЯ рдЕрдбреЕрдкреНрдЯрд░ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ. .

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕

рдХрдВрдЯреНрд░реЛрд▓рд░ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдгреЗ рдЕрдЧрджреА рд╕реЛрдкреЗ рдЖрд╣реЗ - рдорд╛рдпрдХреНрд░реЛ рдХреЙрдореНрдкреНрдпреБрдЯрд░ (1) рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХрдЪреНрдпрд╛ рдХреЗрд╕рдордзреНрдпреЗ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ (2), рдирдВрддрд░ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рд╕рд╣ рдорд╛рдпрдХреНрд░реЛрдПрд╕рдбреА рд╕реНрд╡рд░реВрдкрд╛рдд 8 GB рдореЗрдорд░реА рдХрд╛рд░реНрдб (3) рдЖрдгрд┐ USB Z-Wave рдиреЗрдЯрд╡рд░реНрдХ рдХрдВрдЯреНрд░реЛрд▓рд░ (4) рдордзреНрдпреЗ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрд▓реЙрдЯ. рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░ 5V, 2.1A рдкреЙрд╡рд░ рдЕрдбреЕрдкреНрдЯрд░ (5) рдЖрдгрд┐ USB - рдорд╛рдпрдХреНрд░реЛ-USB рдХреЗрдмрд▓ (6) рджреНрд╡рд╛рд░реЗ рд╡реАрдЬ рдкреБрд░рд╡рдареНрдпрд╛рд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рдЖрд╣реЗ. рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдЯреНрд░реЛрд▓рд░рдХрдбреЗ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдУрд│рдЦ рдХреНрд░рдорд╛рдВрдХ рдЕрд╕рддреЛ, рдЬреЛ рдкреНрд░рдердо рд▓реЙрдиреНрдЪ рдХреЗрд▓реНрдпрд╛рд╡рд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЕрд╕рддреЛ рдЖрдгрд┐ рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рд╕реЗрд╡рд╛рдВрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЛ.

рдпрд╛ рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд▓реЗрдЦрдХрд╛рдиреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ рд▓рд┐рдирдХреНрд╕ рд░рд╛рд╕реНрдкрдмрд┐рдпрди рд╕реНрдЯреНрд░реЗрдЪ. рдпрд╛рдд рдЦрд╛рд▓реАрд▓ рдореБрдЦреНрдп рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ:

  • рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдЙрдкрдХрд░рдгреЗ рдЖрдгрд┐ рдХреНрд▓рд╛рдЙрдбрд╕рд╣ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджрд╛рд╕рд╛рдареА рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛;
  • рдХрдВрдЯреНрд░реЛрд▓рд░рдЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЖрдгрд┐ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕;
  • рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбреЗрдЯрд╛рдмреЗрд╕.

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕

рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдореНрдмреЗрдбреЗрдб рдбреАрдмреАрдПрдордПрд╕рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рд▓рд╛рдЧреВ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ SQLite рдЖрдгрд┐ рд╕рд┐рд╕реНрдЯрдо рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рд╕рд╣ SD рдХрд╛рд░реНрдбрд╡рд░реАрд▓ рдлрд╛рдЗрд▓ рдЖрд╣реЗ. рд╣реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╛рдареА рд╕реНрдЯреЛрд░реЗрдЬ рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░рддреЗ - рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ рдЙрдкрдХрд░рдгреЗ рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рджреНрдп рд╕реНрдерд┐рддреАрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА, рддрд╛рд░реНрдХрд┐рдХ рдЙрддреНрдкрд╛рджрди рдирд┐рдпрдорд╛рдВрдЪрд╛ рдПрдХ рдмреНрд▓реЙрдХ, рддрд╕реЗрдЪ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реА рдорд╛рд╣рд┐рддреА (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕реНрдерд╛рдирд┐рдХ рд╡реНрд╣рд┐рдбрд┐рдУ рд╕рдВрдЧреНрд░рд╣рдгрд╛рдЪреА рдлрд╛рдЗрд▓ рдирд╛рд╡реЗ). рдХрдВрдЯреНрд░реЛрд▓рд░ рд░реАрдмреВрдЯ рдХреЗрд▓реНрдпрд╛рд╡рд░, рд╣реА рдорд╛рд╣рд┐рддреА рдЬрддрди рдХреЗрд▓реА рдЬрд╛рддреЗ, рдЬреНрдпрд╛рдореБрд│реЗ рдкреЙрд╡рд░ рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреЗ рд╢рдХреНрдп рд╣реЛрддреЗ.

рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдорд╛рдпрдХреНрд░реЛрдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд╛рдкрд░реВрди PHP 7 рдордзреНрдпреЗ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ рд╕рдбрдкрд╛рддрд│. рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ. lighttpd, рддреНрдпрд╛рдЪреНрдпрд╛ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рдирд╛рдореБрд│реЗ рдЖрдгрд┐ рдХрдореА рд╕рдВрд╕рд╛рдзрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдВрдореБрд│реЗ рдЕрдиреЗрдХрджрд╛ рдПрдореНрдмреЗрдбреЗрдб рдЙрдкрдХрд░рдгрд╛рдВрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ.

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕
(рдЪрд┐рддреНрд░ рдЙрдЪреНрдЪ рд░рд┐рдЭреЛрд▓реНрдпреВрд╢рдирдордзреНрдпреЗ рдЙрдШрдбрдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рд╡рд░ рдХреНрд▓рд┐рдХ рдХрд░рд╛)

рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлреЗрд╕рдЪреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдореНрд╣рдгрдЬреЗ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдЙрдкрдХрд░рдгреЗ (рдЖрдпрдкреА рдкрд╛рд│рдд рдареЗрд╡рдгрд╛рд░реЗ рдХреЕрдореЗрд░реЗ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░) рдХрдВрдЯреНрд░реЛрд▓рд░рд╢реА рдЬреЛрдбрдгреЗ. рд╡реЗрдм рдНрдкреНрд▓рд┐рдХреЗрд╢рди SQLite рдбреЗрдЯрд╛рдмреЗрд╕рдордзреВрди рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рдЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЖрдгрд┐ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддреА рд╡рд╛рдЪрддреЗ. рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА, рддреЗ рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреНрдпрд╛ RESTful API рдЗрдВрдЯрд░рдлреЗрд╕рджреНрд╡рд╛рд░реЗ JSON рд╕реНрд╡рд░реВрдкрд╛рдд рдирд┐рдпрдВрддреНрд░рдг рдЖрджреЗрд╢ рдкрд╛рдард╡рддреЗ.

рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛

рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ - рдПрдХ рдкреНрд░рдореБрдЦ рдШрдЯрдХ рдЬреЛ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдордЪрд╛ рдЖрдзрд╛рд░ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдорд╛рд╣рд┐рддреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рд╡рд░ рд╕рд░реНрд╡ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдХрд░рддреЛ: рд╕рдВрд╡реЗрджреА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреЗ, рдПрдореНрдмреЗрдбреЗрдб рд▓реЙрдЬрд┐рдХрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдирд┐рдпрдВрддреНрд░рдг рдХреНрд░рд┐рдпрд╛ рдЬрд╛рд░реА рдХрд░рдгреЗ. рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рдЙрджреНрджреЗрд╢ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдЗрдХреНрд╡рд┐рдкрдореЗрдВрдЯрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреЗ, рдЙрддреНрдкрд╛рджрди рд▓реЙрдЬрд┐рдХрд▓ рдирд┐рдпрдорд╛рдВрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреЗ, рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрдгрд┐ рдХреНрд▓рд╛рдЙрдбрдХрдбреВрди рдЖрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рдЖрдгрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреЗ рд╣рд╛ рдЖрд╣реЗ. рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рдордзреАрд▓ рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ C++ рдордзреНрдпреЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреНрдпрд╛ рд░реВрдкрд╛рдд рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ рд╕реНрд╡рддрдВрддреНрд░ рд╕реЗрд╡рд╛ рдореНрд╣рдгреВрди рд▓реЙрдиреНрдЪ рдХреЗрд▓реА рдЬрд╛рддреЗ. systemd рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд▓рд┐рдирдХреНрд╕ рд░рд╛рд╕реНрдкрдмрд┐рдпрди.

рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреЗ рдореБрдЦреНрдп рдмреНрд▓реЙрдХреНрд╕ рдЖрд╣реЗрдд:

  1. рд╕рдВрджреЗрд╢ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ;
  2. рдЖрдпрдкреА рдХреЕрдореЗрд░рд╛ рд╕рд░реНрд╡реНрд╣рд░;
  3. Z-рд╡реЗрд╡реНрд╣ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рд╕рд░реНрд╡реНрд╣рд░;
  4. рдЙрддреНрдкрд╛рджрди рддрд╛рд░реНрдХрд┐рдХ рдирд┐рдпрдорд╛рдВрдЪреЗ рд╕рд░реНрд╡реНрд╣рд░;
  5. рдХрдВрдЯреНрд░реЛрд▓рд░рдЪреНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдгрд┐ рддрд╛рд░реНрдХрд┐рдХ рдирд┐рдпрдорд╛рдВрдЪрд╛ рдмреНрд▓реЙрдХ;
  6. рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлреЗрд╕рд╕рд╣ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджрд╛рд╕рд╛рдареА RESTful API рд╕рд░реНрд╡реНрд╣рд░;
  7. рдХреНрд▓рд╛рдЙрдбрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА MQTT рдХреНрд▓рд╛рдпрдВрдЯ.

рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░реЛрд╕реЗрд╕ рдмреНрд▓реЙрдХреНрд╕ рд╕реНрд╡рддрдВрддреНрд░ рдереНрд░реЗрдбреНрд╕ рдореНрд╣рдгреВрди рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдЬреНрдпрд╛рдордзреАрд▓ рдорд╛рд╣рд┐рддреА JSON рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ (рдХрд┐рдВрд╡рд╛ рдкреНрд░реЛрд╕реЗрд╕ рдореЗрдорд░реАрдордзреНрдпреЗ рдпрд╛ рдлреЙрд░рдореЕрдЯрдЪреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдгрд╛рд░реА рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕) рдореЗрд╕реЗрдЬрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдЯреНрд░рд╛рдиреНрд╕рдлрд░ рдХреЗрд▓реА рдЬрд╛рддреЗ.

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕

рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рдореБрдЦреНрдп рдШрдЯрдХ рдЖрд╣реЗ рд╕рдВрджреЗрд╢ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ, рдЬреЗ рд╕рд░реНрд╡ рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмреНрд▓реЙрдХреНрд╕рд╡рд░ JSON рд╕рдВрджреЗрд╢рд╛рдВрдирд╛ рд░реВрдЯ рдХрд░рддреЗ. JSON рд╕рдВрджреЗрд╢ рдорд╛рд╣рд┐рддреА рдлреАрд▓реНрдбрдЪреЗ рдкреНрд░рдХрд╛рд░ рдЖрдгрд┐ рддреЗ рд╕реНрд╡реАрдХрд╛рд░реВ рд╢рдХрдгрд╛рд░реА рдореВрд▓реНрдпреЗ рдЯреЗрдмрд▓рдордзреНрдпреЗ рд╕реВрдЪреАрдмрджреНрдз рдЖрд╣реЗрдд:

рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдкреНрд░рдХрд╛рд░
рдкреНрд░реЛрдЯреЛрдХреЙрд▓
рд╕рдВрджреЗрд╢ рдкреНрд░рдХрд╛рд░
рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рд░рд╛рдЬреНрдп
рдЖрджреЗрд╢

рдХреЕрдореЗрд░рд╛
onvif
рд╕реЗрдиреНрд╕рд░ рдбреЗрдЯрд╛
on
рдкреНрд░рд╡рд╛рд╣рд┐рдд (рдЪрд╛рд▓реВ/рдмрдВрдж)

рд╕реЗрдиреНрд╕рд░
zwave
рдЖрджреЗрд╢
рдмрдВрдж
рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧ (рдЪрд╛рд▓реВ/рдмрдВрдж)

рдкреНрд░рднрд╛рд╡реА
рдПрдордХреЕрдЯ
рд╡реНрдпрд╡рд╕рд╛рдп рд▓реЙрдЬрд┐рдХ рдирд┐рдпрдо
рдкреНрд░рд╡рд╛рд╣рд┐рдд (рдЪрд╛рд▓реВ/рдмрдВрдж)
evice(рдЬреЛрдбрд╛/рдХрд╛рдвреВрди рдЯрд╛рдХрд╛)

рд╡реНрдпрд╡рд╕рд╛рдп рддрд░реНрдХ
рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдбреЗрдЯрд╛
рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧ (рдЪрд╛рд▓реВ/рдмрдВрдж)

рдмреНрд▓реВрдЯреВрде
рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рд░рд╛рдЬреНрдп
рддреНрд░реБрдЯреА

рд╡рд╛рдпрдлрд╛рдп

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 рдХреА-рд╡реНрд╣реЕрд▓реНрдпреВ рдЬреЛрдбреНрдпрд╛рдВрдЪреА рддреБрд▓рдирд╛ рдХрд░рддрд╛рдд:

  1. "рд╕рдорд╛рди" рд╕рдорд╛рди;
  2. "not_equal" рдЪреНрдпрд╛ рд╕рдорд╛рди рдирд╛рд╣реА;
  3. рдХрдореА "рдХрдореА";
  4. рдЕрдзрд┐рдХ "рдореЛрдареЗ";
  5. "less_or_equal" рдкреЗрдХреНрд╖рд╛ рдХрдореА рдХрд┐рдВрд╡рд╛ рд╕рдорд╛рди;
  6. "рдЧреНрд░реЗрдЯрд░_рдХрд┐рдВрд╡рд╛_рд╕рдорд╛рди" рдкреЗрдХреНрд╖рд╛ рдореЛрдареЗ рдХрд┐рдВрд╡рд╛ рд╕рдорд╛рди.

рдмреБрд▓рд┐рдпрди рдмреАрдЬрдЧрдгрд┐рдд рдСрдкрд░реЗрдЯрд░ рд╡рд╛рдкрд░реВрди рддреБрд▓рдирд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХрдореЗрдХрд╛рдВрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЕрд╕реВ рд╢рдХрддрд╛рдд:

  1. рдЖрдгрд┐ "рдЖрдгрд┐"
  2. рдХрд┐рдВрд╡рд╛ "рдХрд┐рдВрд╡рд╛";
  3. "рдирд╛рд╣реА".

рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдкреЛрд▓рд┐рд╢ рдиреЛрдЯреЗрд╢рдирдордзреНрдпреЗ рдСрдкрд░реЗрдЯрд░ рдЖрдгрд┐ рдСрдкрд░реЗрдВрдб рд▓рд┐рд╣реВрди, рдЖрдкрдг рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╣ рдмрд░реНтАНрдпрд╛рдЪ рдЬрдЯрд┐рд▓ рдкрд░рд┐рд╕реНрдерд┐рддреА рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛.

рддрдВрддреЛрддрдВрдд рд╕рдорд╛рди рдпрдВрддреНрд░рдгрд╛, JSON рд╕рдВрджреЗрд╢ рдЖрдгрд┐ JSON рд╕реНрд╡рд░реВрдкрд╛рддреАрд▓ рдЙрддреНрдкрд╛рджрди рдирд┐рдпрдорд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд, рдЙрддреНрдкрд╛рджрди рд▓реЙрдЬрд┐рдХ рд╕рд░реНрд╡реНрд╣рд░ рдмреНрд▓реЙрдХрдордзреНрдпреЗ рдЬреНрдЮрд╛рдирд╛рдЪреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рд╕реЗрдиреНрд╕рд░рдЪреНрдпрд╛ рд╕рдВрд╡реЗрджреА рдбреЗрдЯрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рддрд╛рд░реНрдХрд┐рдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛рдврдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ.

рдореЛрдмрд╛рдИрд▓ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд╛рдкрд░реВрди, рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдкрд░рд┐рд╕реНрдерд┐рддреА рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЛ рдЬреНрдпрд╛рдиреБрд╕рд╛рд░ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрд╛рд░реНрдп рдХрд░рдд рдЕрд╕рд╛рд╡реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде: тАЬрдкреБрдврдЪрд╛ рджрд░рд╡рд╛рдЬрд╛ рдЙрдШрдбрдгреНрдпрд╛рд╕рд╛рдареА рд╕реЗрдиреНрд╕рд░ рдЯреНрд░рд┐рдЧрд░ рдЭрд╛рд▓рд╛ рдЕрд╕реЗрд▓ рддрд░ рд╣реЙрд▓рд╡реЗрдордзреНрдпреЗ рд▓рд╛рдИрдЯ рдЪрд╛рд▓реВ рдХрд░рд╛тАЭ. рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕рдордзреВрди рд╕реЗрдиреНрд╕рд░ (рдУрдкрдирд┐рдВрдЧ рд╕реЗрдиреНрд╕рд░) рдЖрдгрд┐ рдЕреЕрдХреНрдЯреНрдпреБрдПрдЯрд░ (рд╕реНрдорд╛рд░реНрдЯ рд╕реЙрдХреЗрдЯ рдХрд┐рдВрд╡рд╛ рд╕реНрдорд╛рд░реНрдЯ рд▓реЕрдореНрдк) рдЪреЗ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рд╡рд╛рдЪрддреЛ рдЖрдгрд┐ JSON рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рд▓реЙрдЬрд┐рдХрд▓ рдирд┐рдпрдо рддрдпрд╛рд░ рдХрд░рддреЛ, рдЬреЛ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рд▓рд╛ рдкрд╛рдард╡рд▓рд╛ рдЬрд╛рддреЛ. рдЖрдордЪреНрдпрд╛ рдорд╛рд▓рд┐рдХреЗрдЪреНрдпрд╛ рддрд┐рд╕рд░реНтАНрдпрд╛ рд▓реЗрдЦрд╛рдд рдпрд╛ рдпрдВрддреНрд░рдгреЗрдЪреА рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╡рд╛рд░ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реА рдЬрд╛рдИрд▓, рдЬрд┐рдереЗ рдЖрдореНрд╣реА рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреНрд▓рд╛рдпрдВрдЯ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдмрджреНрджрд▓ рдмреЛрд▓реВ.

рд╡рд░ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реЗрд▓реА рдЙрддреНрдкрд╛рджрди рд▓реЙрдЬрд┐рдХ рдпрдВрддреНрд░рдгрд╛ рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░реВрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реА рдЖрд╣реЗ рд░реЕрдкрд┐рдбрдЬреЗрдПрд╕рдУрдПрди тАФ C++ рдордзреНрдпреЗ JSON рдлреЙрд░рдореЕрдЯрд╕рд╛рдареА SAX рдкрд╛рд░реНрд╕рд░. рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╡рд╛рдЪрди рдЖрдгрд┐ рдЙрддреНрдкрд╛рджрди рдирд┐рдпрдорд╛рдВрдЪреНрдпрд╛ рдЕтАНреЕрд░реЗрдЪреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреВрд░реНрд╡рд╡рд░реНрддреАрдВрдордзреНрдпреЗ рдбреЗрдЯрд╛ рддреБрд▓рдирд╛ рдлрдВрдХреНрд╢рди рд╕рд╣рдЬрдкрдгреЗ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ:

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 рд╕рдВрджреЗрд╢рд╛рддреАрд▓ рдХреА-рд╡реНрд╣реЕрд▓реНрдпреВ рдЬреЛрдбреНрдпрд╛ рдЕрд╕рд▓реЗрд▓реА рд░рдЪрдирд╛, рдореА_рдирд┐рдпрдо тАФ рдЙрддреНрдкрд╛рджрди рдирд┐рдпрдорд╛рдВрдЪреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕреЕрд░реЗ. рдЗрдирдХрдорд┐рдВрдЧ рдореЗрд╕реЗрдЬ рдЖрдгрд┐ рдЙрддреНрдкрд╛рджрди рдирд┐рдпрдо рдпрд╛рдВрдЪреА рддреБрд▓рдирд╛ рдлрдВрдХреНрд╢рдирдордзреНрдпреЗ рдХреЗрд▓реА рдЬрд╛рддреЗ рд╡рд╛рдЪрдХ. рдкрд╛рд░реНрд╕(рдирд┐рдпрдо рдкреНрд░рд╡рд╛рд╣, рдирд┐рдпрдо рд╣рдБрдбрд▓рд░)рдХреБрдареЗ рдирд┐рдпрдо рд╣рд╛рддрд╛рд│рдгрд╛рд░рд╛ рдмреБрд▓рд┐рдпрди рдЖрдгрд┐ рддреБрд▓рдирд╛ рдСрдкрд░реЗрдЯрд░рдЪреЗ рддрд░реНрдХ рдЕрд╕рд▓реЗрд▓реА рдПрдХ рд╡рд╕реНрддреВ рдЖрд╣реЗ. sRuleId тАФ рдПрдХ рдЕрдирдиреНрдп рдирд┐рдпрдо рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ, рдЬреНрдпрд╛рдореБрд│реЗ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдирд┐рдпрдо рд╕рдВрдЧреНрд░рд╣рд┐рдд рдЖрдгрд┐ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ. m_pActions тАФ рддрд╛рд░реНрдХрд┐рдХ рдЕрдиреБрдорд╛рдирд╛рдВрдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдорд╛рдВрд╕рд╣ рдПрдХ рдЕреЕрд░реЗ: рдирд┐рдпрдо рдмреЗрд╕рдЪреЗ рдкрд░рд┐рдгрд╛рдо рдЕрд╕рд▓реЗрд▓реЗ JSON рд╕рдВрджреЗрд╢ рдЖрдгрд┐ рдкреБрдвреЗ рд╕рдВрджреЗрд╢ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХрд╛рдХрдбреЗ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рддрд╛рдд рдЬреЗрдгреЗрдХрд░реВрди рд╕рджрд╕реНрдп рдереНрд░реЗрдб рддреНрдпрд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реВ рд╢рдХрддреАрд▓.

RapidJSON рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдлрдВрдХреНрд╢рдирд╢реА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рдпреЗрддреЗ strlen(), рдЖрдгрд┐ рдХрд┐рдорд╛рди рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрди рдЖрд╡рд╢реНрдпрдХрддрд╛ рдПрдореНрдмреЗрдбреЗрдб рдЙрдкрдХрд░рдгрд╛рдВрдордзреНрдпреЗ рдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рдгреНрдпрд╛рд╕ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд. JSON рдлреЙрд░рдореЕрдЯрдордзреАрд▓ рд╕рдВрджреЗрд╢ рдЖрдгрд┐ рддрд╛рд░реНрдХрд┐рдХ рдирд┐рдпрдорд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рдЪреНрдпрд╛ рд╕рд░реНрд╡ рдШрдЯрдХрд╛рдВрдордзреАрд▓ рдорд╛рд╣рд┐рддреАрдЪреА рджреЗрд╡рд╛рдгрдШреЗрд╡рд╛рдг рдХрд░рдгреНрдпрд╛рдЪреА рд▓рд╡рдЪрд┐рдХ рдкреНрд░рдгрд╛рд▓реА рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЛ.

Z-рд╡реЗрд╡реНрд╣ рд╕реЗрдиреНрд╕рд░реНрд╕ рдЖрдгрд┐ рдЕреЕрдХреНрдЯреНрдпреБрдПрдЯрд░реНрд╕

рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдордЪрд╛ рдореБрдЦреНрдп рдлрд╛рдпрджрд╛ рдореНрд╣рдгрдЬреЗ рддреЛ рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ рдмрд╛рд╣реНрдп рд╡рд╛рддрд╛рд╡рд░рдгрд╛рддреАрд▓ рд╡рд┐рд╡рд┐рдз рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдореЛрдЬреВ рд╢рдХрддреЛ рдЖрдгрд┐ рдкрд░рд┐рд╕реНрдерд┐рддреАрдиреБрд╕рд╛рд░ рдЙрдкрдпреБрдХреНрдд рдХрд╛рд░реНрдпреЗ рдХрд░реВ рд╢рдХрддреЛ. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╕реЗрдиреНрд╕рд░ рдЖрдгрд┐ рдЕреЕрдХреНрдЯреНрдпреБрдПрдЯрд░ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рдЖрд╣реЗрдд. рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдЖрд╡реГрддреНрддреАрдд, рд╣реА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд╛рдкрд░реВрди рдЪрд╛рд▓рдгрд╛рд░реА рд╡рд╛рдпрд░рд▓реЗрд╕ рдЙрдкрдХрд░рдгреЗ рдЖрд╣реЗрдд рдЭреЗрдб-рд╡реЗрд╡реНрд╣ рд╡рд┐рд╢реЗрд╖ рдЖрд╡рдВрдЯрд┐рдд рд╡рд╛рд░рдВрд╡рд╛рд░рддрд╛ рд╡рд░ 869 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЭ рд░рд╢рд┐рдпрд╛рд╕рд╛рдареА. рдСрдкрд░реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреЗ рдЬрд╛рд│реАрдЪреНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ рдПрдХрддреНрд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдЬреНрдпрд╛рдордзреНрдпреЗ рдХрд╡реНрд╣рд░реЗрдЬ рдХреНрд╖реЗрддреНрд░ рд╡рд╛рдврд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд┐рдЧреНрдирд▓ рд░рд┐рдкреАрдЯрд░ рдЕрд╕рддрд╛рдд. рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рдордзреНрдпреЗ рд╡рд┐рд╢реЗрд╖ рдКрд░реНрдЬрд╛ рдмрдЪрдд рдореЛрдб рджреЗрдЦреАрд▓ рдЕрд╕рддреЛ - рддреЗ рдмрд╣реБрддреЗрдХ рд╡реЗрд│ рд╕реНрд▓реАрдк рдореЛрдбрдордзреНрдпреЗ рдШрд╛рд▓рд╡рддрд╛рдд рдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рдВрдЪреА рд╕реНрдерд┐рддреА рдмрджрд▓рддреЗ рддреЗрд╡реНрд╣рд╛рдЪ рдорд╛рд╣рд┐рддреА рдкрд╛рдард╡рддреЗ, рдЬреНрдпрд╛рдореБрд│реЗ рдЕрдВрдЧрднреВрдд рдмреЕрдЯрд░реАрдЪреЗ рдЖрдпреБрд╖реНрдп рд▓рдХреНрд╖рдгреАрдп рд╡рд╛рдвреВ рд╢рдХрддреЗ.

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕

рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрддрд╛ рдмрд╛рдЬрд╛рд░рд╛рдд рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╡рд┐рд╡рд┐рдз Z-Wave рдЙрдкрдХрд░рдгреЗ рд╕рд╛рдкрдбрддреАрд▓. рдЪрд▓рд╛ рдХрд╛рд╣реА рдЙрджрд╛рд╣рд░рдгреЗ рдкрд╛рд╣реВ рдпрд╛:

  1. Zipato PAN16 рд╕реНрдорд╛рд░реНрдЯ рд╕реЙрдХреЗрдЯ рдЦрд╛рд▓реАрд▓ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдореЛрдЬреВ рд╢рдХрддреЛ: рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХрд▓ рдиреЗрдЯрд╡рд░реНрдХрдордзреАрд▓ рд╡рд┐рдЬреЗрдЪрд╛ рд╡рд╛рдкрд░ (kWh), рдкреЙрд╡рд░ (W), рд╡реНрд╣реЛрд▓реНрдЯреЗрдЬ (V) рдЖрдгрд┐ рдХрд░рдВрдЯ (A). рдпрд╛рдд рдЕрдВрдЧрднреВрдд рд╕реНрд╡рд┐рдЪ рджреЗрдЦреАрд▓ рдЖрд╣реЗ рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рдЖрдкрдг рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ рд╡рд┐рджреНрдпреБрдд рдЙрдкрдХрд░рдг рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реВ рд╢рдХрддрд╛;
  2. рдирд┐рдУ рдХреВрд▓рдХреЕрдо рд▓реАрдХ рд╕реЗрдиреНрд╕рд░ рд░рд┐рдореЛрдЯ рдкреНрд░реЛрдмрдЪреЗ рд╕рдВрдкрд░реНрдХ рдмрдВрдж рдХрд░реВрди рд╕рд╛рдВрдбрд▓реЗрд▓реНрдпрд╛ рджреНрд░рд╡рд╛рдЪреА рдЙрдкрд╕реНрдерд┐рддреА рдУрд│рдЦрддреЛ;
  3. рдЬреЗрд╡реНрд╣рд╛ рдзреБрд░рд╛рдЪреЗ рдХрдг рдЧреЕрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪреЗрдВрдмрд░рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛рдд рддреЗрд╡реНрд╣рд╛ Zipato PH-PSG01 рд╕реНрдореЛрдХ рд╕реЗрдиреНрд╕рд░ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддреЛ;
  4. рдирд┐рдУ рдХреВрд▓рдХреЕрдо рдореЛрд╢рди рд╕реЗрдиреНрд╕рд░ рдорд╛рдирд╡реА рд╢рд░реАрд░рд╛рддреАрд▓ рдЗрдиреНрдлреНрд░рд╛рд░реЗрдб рд░реЗрдбрд┐рдПрд╢рдирдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЛ. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд рдПрдХ рдкреНрд░рдХрд╛рд╢ рд╕реЗрдиреНрд╕рд░ рдЖрд╣реЗ (Lx);
  5. рдорд▓реНрдЯреАрд╕реЗрдиреНрд╕рд░ рдлрд┐рд▓рд┐рдУ PST02-A рддрд╛рдкрдорд╛рди (┬░C), рдкреНрд░рдХрд╛рд╢ (%), рджрд░рд╡рд╛рдЬрд╛ рдЙрдШрдбрдгреЗ, рдЦреЛрд▓реАрдд рдПрдЦрд╛рджреНрдпрд╛ рд╡реНрдпрдХреНрддреАрдЪреА рдЙрдкрд╕реНрдерд┐рддреА рдореЛрдЬрддреЗ;
  6. Z-Wave USB Stick ZME E UZB1 рдиреЗрдЯрд╡рд░реНрдХ рдХрдВрдЯреНрд░реЛрд▓рд░, рдЬреНрдпрд╛рд▓рд╛ рд╕реЗрдиреНрд╕рд░ рдЬреЛрдбрд▓реЗрд▓реЗ рдЖрд╣реЗрдд.

рд╣реЗ рдЦреВрдк рдорд╣рддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдХреА рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕ рдЖрдгрд┐ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕рдорд╛рди рд╡рд╛рд░рдВрд╡рд╛рд░рддреЗрд╡рд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд, рдЕрдиреНрдпрдерд╛ рддреЗ рдХрдиреЗрдХреНрд╢рдирдЪреНрдпрд╛ рдХреНрд╖рдгреА рдПрдХрдореЗрдХрд╛рдВрдирд╛ рджрд┐рд╕рдгрд╛рд░ рдирд╛рд╣реАрдд. рдПрдХрд╛ рдЭреЗрдб-рд╡реЗрд╡реНрд╣ рдиреЗрдЯрд╡рд░реНрдХ рдХрдВрдЯреНрд░реЛрд▓рд░рд╢реА 232 рдкрд░реНрдпрдВрдд рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рдЬреЗ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдХрд┐рдВрд╡рд╛ рджреЗрд╢рд╛рдЪреНрдпрд╛ рдШрд░рд╛рд╕рд╛рдареА рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ. рдиреЗрдЯрд╡рд░реНрдХ рдХрд╡реНрд╣рд░реЗрдЬ рдХреНрд╖реЗрддреНрд░рд╛рдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рд╕реЙрдХреЗрдЯ рд╕рд┐рдЧреНрдирд▓ рд░рд┐рдкреАрдЯрд░ рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕

рдорд╛рдЧреАрд▓ рдкрд░рд┐рдЪреНрдЫреЗрджрд╛рдордзреНрдпреЗ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпреЗрдордзреНрдпреЗ, Z-рд╡реЗрд╡реНрд╣ рд╕рд░реНрд╡реНрд╣рд░ Z-рд╡реЗрд╡реНрд╣ рдЙрдкрдХрд░рдгрд╛рдВрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ. рд╕реЗрдиреНрд╕рд░реНрд╕рдХрдбреВрди рдорд╛рд╣рд┐рддреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреЗ рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░рддреЗ OpenZWave C++ рдордзреНрдпреЗ, рдЬреЗ Z-Wave рдиреЗрдЯрд╡рд░реНрдХ USB рдХрдВрдЯреНрд░реЛрд▓рд░рд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА рдЗрдВрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рдЖрдгрд┐ рд╡рд┐рд╡рд┐рдз рд╕реЗрдиреНрд╕рд░реНрд╕ рдЖрдгрд┐ рдЕреЕрдХреНрдЯреНрдпреБрдПрдЯрд░реНрд╕рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддреЗ. рд╕реЗрдиреНрд╕рд░рджреНрд╡рд╛рд░реЗ рдореЛрдЬрд▓реЗрд▓реЗ рдкрд░реНрдпрд╛рд╡рд░рдгреАрдп рдкреЕрд░рд╛рдореАрдЯрд░рдЪреЗ рдореВрд▓реНрдп Z-Wave рд╕рд░реНрд╡реНрд╣рд░рджреНрд╡рд╛рд░реЗ JSON рд╕рдВрджреЗрд╢рд╛рдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рд░реЗрдХреЙрд░реНрдб рдХреЗрд▓реЗ рдЬрд╛рддреЗ:

{
	"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 рдирд┐рдпрдВрддреНрд░рдХрд╛рдХрдбреЗ рдкрд╛рдард╡рддрд╛рдд. рдордЧ рддреЗ рдЕреЕрдХреНрдЯреНрдпреБрдПрдЯрд░рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛рдд, рдЬреНрдпрд╛рдореБрд│реЗ рдкрд░реНрдпрд╛рд╡рд░рдгреАрдп рд╡рд╕реНрддреВрдВрдЪреА рд╕реНрдерд┐рддреА рдмрджрд▓рддреЗ рдЖрдгрд┐ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдЙрдкрдпреБрдХреНрдд рдХрд╛рд░реНрдп рдХрд░рддреЗ.

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕
(рдЪрд┐рддреНрд░ рдЙрдЪреНрдЪ рд░рд┐рдЭреЛрд▓реНрдпреВрд╢рдирдордзреНрдпреЗ рдЙрдШрдбрдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рд╡рд░ рдХреНрд▓рд┐рдХ рдХрд░рд╛)

рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рдЪреНрдпрд╛ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлреЗрд╕рдордзреНрдпреЗ Z-рд╡реЗрд╡реНрд╣ рдЙрдкрдХрд░рдгреЗ рдЬреЛрдбрдгреЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рдЪреНрдпрд╛ рд╕реВрдЪреАрд╕рд╣ рдкреГрд╖реНрдард╛рд╡рд░ рдЬрд╛ рдЖрдгрд┐ "рдЬреЛрдбрд╛" рдмрдЯрдгрд╛рд╡рд░ рдХреНрд▓рд┐рдХ рдХрд░рд╛. RESTful API рдЗрдВрдЯрд░рдлреЗрд╕рджреНрд╡рд╛рд░реЗ рдЕреЕрдб рдХрдорд╛рдВрдб рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рдЖрдгрд┐ рдирдВрддрд░ рд╕рдВрджреЗрд╢ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХрд╛рджреНрд╡рд╛рд░реЗ Z-Wave рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рддреЗ, рдЬреЗ Z-Wave рдиреЗрдЯрд╡рд░реНрдХ USB рдХрдВрдЯреНрд░реЛрд▓рд░рд▓рд╛ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рд╢реЗрд╖ рдореЛрдбрдордзреНрдпреЗ рдареЗрд╡рддреЗ. рдкреБрдвреЗ, Z-Wave рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рд╡рд░ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реЗрд╡рд╛ рдмрдЯрдгрд╛рдЪреНрдпрд╛ рджреНрд░реБрдд рджрд╛рдмрд╛рдВрдЪреА рдорд╛рд▓рд┐рдХрд╛ (3 рд╕реЗрдХрдВрджрд╛рдд 1,5 рджрд╛рдмрд╛) рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. USB рдХрдВрдЯреНрд░реЛрд▓рд░ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рд▓рд╛ рдиреЗрдЯрд╡рд░реНрдХрд╢реА рдЬреЛрдбрддреЛ рдЖрдгрд┐ Z-Wave рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рддреНрдпрд╛рдмрджреНрджрд▓рдЪреА рдорд╛рд╣рд┐рддреА рдкрд╛рдард╡рддреЛ. рддреНрдпрд╛ рдмрджрд▓реНрдпрд╛рдд, рдирд╡реАрди рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рдЪреНрдпрд╛ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╣ SQLite рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдПрдХ рдирд╡реАрди рдПрдВрдЯреНрд░реА рддрдпрд╛рд░ рдХрд░рддреЗ. рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡реЗрд│реЗрдЪреНрдпрд╛ рдЕрдВрддрд░рд╛рдирдВрддрд░, рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ Z-Wave рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рд╕реВрдЪреА рдкреГрд╖реНрдард╛рд╡рд░ рдкрд░рдд рдпреЗрддреЛ, рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдорд╛рд╣рд┐рддреА рд╡рд╛рдЪрддреЛ рдЖрдгрд┐ рд╕реВрдЪреАрдордзреНрдпреЗ рдирд╡реАрди рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЛ. рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рд▓рд╛ рд╕реНрд╡рддрдГрдЪрд╛ рдЕрджреНрд╡рд┐рддреАрдп рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЛ, рдЬреЛ рдЙрддреНрдкрд╛рджрди рдЕрдиреБрдорд╛рди рдирд┐рдпрдорд╛рдВрдордзреНрдпреЗ рдЖрдгрд┐ рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ рдХрд╛рдо рдХрд░рддрд╛рдирд╛ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ. рдпрд╛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдордЪреЗ рдСрдкрд░реЗрд╢рди рдпреВрдПрдордПрд▓ рдЖрдХреГрддреАрдордзреНрдпреЗ рджрд░реНрд╢рд╡рд┐рд▓реЗ рдЖрд╣реЗ:

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕
(рдЪрд┐рддреНрд░ рдЙрдЪреНрдЪ рд░рд┐рдЭреЛрд▓реНрдпреВрд╢рдирдордзреНрдпреЗ рдЙрдШрдбрдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рд╡рд░ рдХреНрд▓рд┐рдХ рдХрд░рд╛)

рдЖрдпрдкреА рдХреЕрдореЗрд░реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдд рдЖрд╣реЗ

рдпрд╛ рд▓реЗрдЦрд╛рдд рдЪрд░реНрдЪрд╛ рдХреЗрд▓реЗрд▓реА рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рд╕рд┐рд╕реНрдЯрдо рд╣реА рдХреНрд▓рд╛рдЙрдб рд╡реНрд╣рд┐рдбрд┐рдУ рджреЗрдЦрд░реЗрдЦ рдкреНрд░рдгрд╛рд▓реАрдЪреЗ рдЕрдкрдЧреНрд░реЗрдб рдЖрд╣реЗ, рд▓реЗрдЦрдХрд╛рдиреЗ рджреЗрдЦреАрд▓ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЬреА рдЕрдиреЗрдХ рд╡рд░реНрд╖рд╛рдВрдкрд╛рд╕реВрди рдмрд╛рдЬрд╛рд░рд╛рдд рдЖрд╣реЗ рдЖрдгрд┐ рд░рд╢рд┐рдпрд╛рдордзреНрдпреЗ рдЕрдиреЗрдХ рд╕реНрдерд╛рдкрдирд╛ рдЖрд╣реЗрдд.

рдХреНрд▓рд╛рдЙрдб рд╡реНрд╣рд┐рдбрд┐рдУ рдкрд╛рд│рдд рдареЗрд╡рдгреЗ рдкреНрд░рдгрд╛рд▓реАрд╕рд╛рдареА, рдПрдХ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рдореНрд╣рдгрдЬреЗ рдЙрдкрдХрд░рдгрд╛рдВрдЪреА рдорд░реНрдпрд╛рджрд┐рдд рдирд┐рд╡рдб рдЬреНрдпрд╛рд╕рд╣ рдПрдХрддреНрд░реАрдХрд░рдг рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдХреНрд▓рд╛рдЙрдбрд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд╡реНрд╣рд┐рдбрд┐рдУ рдХреЕрдореЗрд░рд╛рдордзреНрдпреЗ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рддреНрдпрд╛рдЪреНрдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░рд╡рд░ - рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрдгрд┐ рд╡рд┐рдирд╛рдореВрд▓реНрдп рдореЗрдорд░реАрдЪреА рд░рдХреНрдХрдо рддрд╛рдмрдбрддреЛрдм рдЧрдВрднреАрд░ рдорд╛рдЧрдгреА рдХрд░рддреЗ. рд╣реЗ рдореБрдЦреНрдпрддрдГ рдирд┐рдпрдорд┐рдд IP рдХреЕрдореЗрд▒реНрдпрд╛рдВрдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдХреНрд▓рд╛рдЙрдб CCTV рдХреЕрдореЗрд░реНтАНрдпрд╛рдВрдЪреА рдЬрд╛рд╕реНрдд рдХрд┐рдВрдордд рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдХреЕрдореЗрд░рд╛ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЖрдгрд┐ рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдХрд╛рд╕ рд╕рд╛рдзрдирд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рд╕реАрд╕реАрдЯреАрд╡реНрд╣реА рдХреЕрдореЗрд░рд╛ рдЙрддреНрдкрд╛рджрдХ рдХрдВрдкрдиреНрдпрд╛рдВрд╢реА рд╡рд╛рдЯрд╛рдШрд╛рдЯреАрдЪрд╛ рдПрдХ рд▓рд╛рдВрдм рдЯрдкреНрдкрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕

рджреБрд╕рд░реАрдХрдбреЗ, рд╕рд░реНрд╡ рдЖрдзреБрдирд┐рдХ рдЖрдпрдкреА рдХреЕрдореЗрд░реНтАНрдпрд╛рдВрдордзреНрдпреЗ рдЗрддрд░ рдЙрдкрдХрд░рдгреЗ (рд╡рд┐рд╢реЗрд╖рддрдГ рд╡реНрд╣рд┐рдбрд┐рдУ рд░реЗрдХреЙрд░реНрдбрд░) рд╕рд╣ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджрд╛рд╕рд╛рдареА рдорд╛рдирдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрд╣реЗрдд. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдорд╛рдирдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓рджреНрд╡рд╛рд░реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдгрд╛рд░реНтАНрдпрд╛ рдЖрдгрд┐ IP рдХреЕрдореЗрд░реНтАНрдпрд╛рдВрдХрдбреВрди рдХреНрд▓рд╛рдЙрдбрд╡рд░ рд╡реНрд╣рд┐рдбрд┐рдУ рдкреНрд░рд╡рд╛рд╣ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рд╡реЗрдЧрд│реНрдпрд╛ рдирд┐рдпрдВрддреНрд░рдХрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХреНрд▓рд╛рдЙрдб рд╡реНрд╣рд┐рдбрд┐рдУ рдкрд╛рд│рдд рдареЗрд╡рдгреЗ рдкреНрд░рдгрд╛рд▓реАрд╕рд╛рдареА рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ рдлрд╛рдпрджреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЛ. рд╢рд┐рд╡рд╛рдп, рдЬрд░ рдХреНрд▓рд╛рдпрдВрдЯрдиреЗ рдЖрдзреАрдкрд╛рд╕реВрди рд╕рд╛рдзреНрдпрд╛ рдЖрдпрдкреА рдХреЕрдореЗрд░реНтАНрдпрд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╡реНрд╣рд┐рдбрд┐рдУ рдкрд╛рд│рдд рдареЗрд╡рдгреЗ рдкреНрд░рдгрд╛рд▓реА рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реА рдЕрд╕реЗрд▓, рддрд░ рддреЗ рд╡рд┐рд╕реНрддреГрдд рдХрд░рдгреЗ рдЖрдгрд┐ рдкреВрд░реНрдг рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдордордзреНрдпреЗ рдмрджрд▓рдгреЗ рд╢рдХреНрдп рд╣реЛрдИрд▓.

рдЖрдпрдкреА рд╡реНрд╣рд┐рдбрд┐рдУ рдкрд╛рд│рдд рдареЗрд╡рдгреЗ рдкреНрд░рдгрд╛рд▓реАрд╕рд╛рдареА рд╕рд░реНрд╡рд╛рдд рд▓реЛрдХрдкреНрд░рд┐рдп рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рдЖрддрд╛ рдЕрдкрд╡рд╛рджрд╛рд╢рд┐рд╡рд╛рдп рд╕рд░реНрд╡ рдЖрдпрдкреА рдХреЕрдореЗрд░рд╛ рдЙрддреНрдкрд╛рджрдХрд╛рдВрджреНрд╡рд╛рд░реЗ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ. рдУрдПрдирд╡реНрд╣реАрдЖрдпрдПрдл рдкреНрд░реЛрдлрд╛рдЗрд▓ рдПрд╕, рдЬреНрдпрд╛рдВрдЪреЗ рддрдкрд╢реАрд▓ рд╡реЗрдм рд╕реЗрд╡рд╛ рд╡рд░реНрдгрди рднрд╛рд╖реЗрдд рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЖрд╣реЗрдд рдбрдмреНрд▓реНрдпреВрдПрд╕рдбреАрдПрд▓. рдЯреВрд▓рдХрд┐рдЯрдордзреАрд▓ рдЙрдкрдпреБрдХреНрддрддрд╛ рд╡рд╛рдкрд░рдгреЗ gSOAP рдЖрдпрдкреА рдХреЕрдореЗрд░реНтАНрдпрд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рд╕реЗрд╡рд╛рдВрд╕рд╛рдареА рд╕реНрддреНрд░реЛрдд рдХреЛрдб рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ:

$ 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++ рдордзреНрдпреЗ рд╣реЗрдбрд░ тАЬ*.hтАЭ рдЖрдгрд┐ рд╕реНрддреНрд░реЛрдд тАЬ*.cppтАЭ рдлрд╛рдЗрд▓реНрд╕рдЪрд╛ рд╕рдВрдЪ рдорд┐рд│рддреЛ, рдЬреНрдпрд╛ рдереЗрдЯ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд┐рдВрд╡рд╛ рд╡реЗрдЧрд│реНрдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рдареЗрд╡рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдЖрдгрд┐ GCC рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд╛рдкрд░реВрди рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рдЕрдиреЗрдХ рдлрдВрдХреНрд╢рдиреНрд╕рдореБрд│реЗ, рдХреЛрдб рдореЛрдард╛ рдЖрд╣реЗ рдЖрдгрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. Raspberry Pi 3 рдореЙрдбреЗрд▓ B+ рдорд╛рдпрдХреНрд░реЛрдХреЙрдореНрдкреНрдпреБрдЯрд░рдордзреНрдпреЗ рд╣рд╛ рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреБрд░реЗрд╢реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдХреЛрдб рджреБрд╕рд░реНтАНрдпрд╛ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдкреЛрд░реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рдпреЛрдЧреНрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЖрдгрд┐ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрдиреЗ рдирд┐рд╡рдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рд╕реНрдерд╛рдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░ рдХрд╛рд░реНрдпрд░рдд рдЕрд╕рддрд╛рдирд╛ ONVIF рдорд╛рдирдХрд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрдгрд╛рд░реЗ IP рдХреЕрдореЗрд░реЗ рдкрддреНрддреНрдпрд╛рд╕рд╣ рд╡рд┐рд╢реЗрд╖ рдорд▓реНрдЯреАрдХрд╛рд╕реНрдЯ рдЧрдЯрд╛рд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рдЕрд╕рддрд╛рдд. 239.255.255.250. рдПрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрд╣реЗ рдбрдмреНрд▓реНрдпреВрдПрд╕-рдбрд┐рд╕реНрдХрд╡реНрд╣рд░реА, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрдерд╛рдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░реАрд▓ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рдЪрд╛ рд╢реЛрдз рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.

рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рдЪрд╛ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ PHP рдордзреНрдпреЗ рдЖрдпрдкреА рдХреЕрдореЗрд░реНтАНрдпрд╛рдВрд╕рд╛рдареА рд╢реЛрдз рдХрд╛рд░реНрдп рд▓рд╛рдЧреВ рдХрд░рддреЛ, рдЬреЗ XML рд╕рдВрджреЗрд╢рд╛рдВрджреНрд╡рд╛рд░реЗ рд╡реЗрдм рд╕реЗрд╡рд╛рдВрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддрд╛рдирд╛ рдЕрддрд┐рд╢рдп рд╕реЛрдпреАрдЪреЗ рдЕрд╕рддреЗ. рдореЗрдиреВ рдЖрдпрдЯрдо рдирд┐рд╡рдбрддрд╛рдирд╛ рдЙрдкрдХрд░рдгреЗ > рдЖрдпрдкреА рдХреЕрдореЗрд░реЗ > рд╕реНрдХреЕрдирд┐рдВрдЧ рдЖрдпрдкреА рдХреЕрдореЗрд░реЗ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд▓рд╛рдБрдЪ рдХреЗрд▓рд╛ рдЖрд╣реЗ, рдкрд░рд┐рдгрд╛рдо рдЯреЗрдмрд▓рдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЛ:

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕
(рдЪрд┐рддреНрд░ рдЙрдЪреНрдЪ рд░рд┐рдЭреЛрд▓реНрдпреВрд╢рдирдордзреНрдпреЗ рдЙрдШрдбрдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рд╡рд░ рдХреНрд▓рд┐рдХ рдХрд░рд╛)

рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдХрдВрдЯреНрд░реЛрд▓рд░рдордзреНрдпреЗ рдХреЕрдореЗрд░рд╛ рдЬреЛрдбрддрд╛, рддреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛ рдЬреНрдпрд╛рдиреБрд╕рд╛рд░ рддреЛ рдХреНрд▓рд╛рдЙрдбрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзреЗрд▓. рддрд╕реЗрдЪ рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░, рддреНрдпрд╛рд▓рд╛ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рдирд┐рдпреБрдХреНрдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рддреЗ рдирдВрддрд░ рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ рд╕рд╣рдЬрдкрдгреЗ рдУрд│рдЦрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕

рдкреБрдвреЗ, рдЬреЛрдбрд▓реЗрд▓реНрдпрд╛ рдХреЕрдореЗрд▒реНрдпрд╛рдЪреЗ рд╕рд░реНрд╡ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ JSON рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рд╕рдВрджреЗрд╢ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ RESTful API рдХрдорд╛рдВрдбрджреНрд╡рд╛рд░реЗ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рдЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпреЗрд▓рд╛ рдкрд╛рдард╡рд▓рд╛ рдЬрд╛рддреЛ, рдЬрд┐рдереЗ рдХреЕрдореЗрд░рд╛ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдбреАрдХреЛрдб рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдЕрдВрддрд░реНрдЧрдд SQLite рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд╕реЗрд╡реНрд╣ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдЦрд╛рд▓реАрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдереНрд░реЗрдб рд▓рд╛рдБрдЪ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ:

  1. рд╡реНрд╣рд┐рдбрд┐рдУ рдЖрдгрд┐ рдСрдбрд┐рдУ рдкреНрд░рд╡рд╛рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА RTSP рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ;
  2. G.711 mu-Law, G.711 A-Law, G.723, рдЗ. рдлреЙрд░рдореЕрдЯреНрд╕рдордзреВрди рдЯреНрд░рд╛рдиреНрд╕рдХреЛрдбрд┐рдВрдЧ рдСрдбрд┐рдУ. AAC рд╕реНрд╡рд░реВрдкрд╛рдд;
  3. H.264 рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рд╡реНрд╣рд┐рдбрд┐рдУ рдкреНрд░рд╡рд╛рд╣ рдЖрдгрд┐ AAC рдлреЙрд░рдореЕрдЯрдордзреАрд▓ рдСрдбрд┐рдУ FLV рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдЯреНрд░рд╛рдиреНрд╕рдХреЛрдб рдХрд░рдгреЗ рдЖрдгрд┐ RTMP рдкреНрд░реЛрдЯреЛрдХреЙрд▓рджреНрд╡рд╛рд░реЗ рдХреНрд▓рд╛рдЙрдбрд╡рд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдгреЗ;
  4. ONVIF рдкреНрд░реЛрдЯреЛрдХреЙрд▓рджреНрд╡рд╛рд░реЗ IP рдХреЕрдореЗрд░рд╛ рдореЛрд╢рди рдбрд┐рдЯреЗрдХреНрдЯрд░рдЪреНрдпрд╛ рдПрдВрдбрдкреЙрдЗрдВрдЯрд╢реА рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рд╡реЗрд│реЛрд╡реЗрд│реА рдорддрджрд╛рди рдХрд░рдгреЗ;
  5. рд╡реЗрд│реЛрд╡реЗрд│реА рд▓рдШреБрдкреНрд░рддрд┐рдорд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдкреНрд░рддрд┐рдорд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрдгрд┐ MQTT рдкреНрд░реЛрдЯреЛрдХреЙрд▓рджреНрд╡рд╛рд░реЗ рдХреНрд▓рд╛рдЙрдбрд╡рд░ рдкрд╛рдард╡рдгреЗ;
  6. рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рдЪреНрдпрд╛ SD рдХрд┐рдВрд╡рд╛ рдлреНрд▓реЕрд╢ рдХрд╛рд░реНрдбрд╡рд░ MP4 рд╕реНрд╡рд░реВрдкрд╛рдд рд╕реНрд╡рддрдВрддреНрд░ рдлрд╛рдЗрд▓реНрд╕рдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рд╡реНрд╣рд┐рдбрд┐рдУ рдЖрдгрд┐ рдСрдбрд┐рдУ рдкреНрд░рд╡рд╛рд╣рд╛рдВрдЪреЗ рд╕реНрдерд╛рдирд┐рдХ рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧ.

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕

рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рдХреЕрдореЗрд░реЗ, рдЯреНрд░рд╛рдиреНрд╕рдХреЛрдб, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдгрд┐ рд░реЗрдХреЙрд░реНрдб рд╡реНрд╣рд┐рдбрд┐рдУ рдкреНрд░рд╡рд╛рд╣рд╛рдВрд╢реА рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд▓рд╛рдпрдмреНрд░рд░реАрддреАрд▓ рдХрд╛рд░реНрдпреЗ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддрд╛рдд. рдПрдлрдПрдлрдПрдордкреАрдИрдЬреА 4.1.0.

рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЪрд╛рдЪрдгреА рдкреНрд░рдпреЛрдЧрд╛рдд, 3 рдХреЕрдореЗрд░реЗ рдирд┐рдпрдВрддреНрд░рдХрд╛рд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рд╣реЛрддреЗ:

  1. HiWatch DS-I114W (рд░рд┐рдЭреЛрд▓реНрдпреВрд╢рди - 720p, рдХреЙрдореНрдкреНрд░реЗрд╢рди рдлреЙрд░рдореЕрдЯ - H.264, рдмрд┐рдЯрд░реЗрдЯ - 1 Mb/s, рд╕рд╛рдЙрдВрдб G.711 mu-Law);
  2. рдорд╛рдпрдХреНрд░реЛрдбрд┐рдЬрд┐рдЯрд▓ MDC-M6290FTD-1 (рд░рд┐рдЭреЛрд▓реНрдпреВрд╢рди - 1080p, рдХреЙрдореНрдкреНрд░реЗрд╢рди рдлреЙрд░рдореЕрдЯ - H.264, рдмрд┐рдЯрд░реЗрдЯ - 1 Mb/s, рдЖрд╡рд╛рдЬ рдирд╛рд╣реА);
  3. Dahua DH-IPC-HDW4231EMP-AS-0360B (рд░рд┐рдЭреЛрд▓реНрдпреВрд╢рди - 1080p, рдХреЙрдореНрдкреНрд░реЗрд╢рди рдлреЙрд░рдореЕрдЯ - H.264, рдмрд┐рдЯрд░реЗрдЯ - 1.5 Mb/s, AAC рдСрдбрд┐рдУ).

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕

рд╕рд░реНрд╡ рддреАрди рдкреНрд░рд╡рд╛рд╣ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдХреНрд▓рд╛рдЙрдбрд╡рд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рд╣реЛрддреЗ, рдСрдбрд┐рдУ рдЯреНрд░рд╛рдиреНрд╕рдХреЛрдбрд┐рдВрдЧ рдлрдХреНрдд рдПрдХрд╛ рдХреЕрдореЗрд░реНтАНрдпрд╛рд╡рд░реВрди рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрдгрд┐ рд╕реНрдерд╛рдирд┐рдХ рд╕рдВрдЧреНрд░рд╣рдг рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧ рдЕрдХреНрд╖рдо рдХреЗрд▓реЗ рдЧреЗрд▓реЗ. CPU рд▓реЛрдб рдЕрдВрджрд╛рдЬреЗ 5%, RAM рд╡рд╛рдкрд░ 32 MB (рдкреНрд░рддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛), 56 MB (OS рд╕рд╣ рдПрдХреВрдг) рд╣реЛрддрд╛.

рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЕрдВрджрд╛рдЬреЗ 20 - 30 рдХреЕрдореЗрд░реЗ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рд╢реА рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд (рд░рд┐рдЭреЛрд▓реНрдпреВрд╢рди рдЖрдгрд┐ рдмрд┐рдЯрд░реЗрдЯрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди), рдЬреЗ рддреАрди рдордЬрд▓реА рдХреЙрдЯреЗрдЬ рдХрд┐рдВрд╡рд╛ рд▓рд╣рд╛рди рдЧреЛрджрд╛рдорд╛рд╕рд╛рдареА рд╡реНрд╣рд┐рдбрд┐рдУ рдкрд╛рд│рдд рдареЗрд╡рдгреЗ рдкреНрд░рдгрд╛рд▓реАрд╕рд╛рдареА рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ. рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдВрд╕рд╛рдареА, рддреБрдореНрд╣реА рдорд▓реНрдЯреА-рдХреЛрд░ рдЗрдВрдЯреЗрд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрдгрд┐ Linux Debian Sarge OS рд╕рд╣ рдиреЗрдЯрдЯреЙрдк рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛. рдХрдВрдЯреНрд░реЛрд▓рд░рдЪреЗ рд╕рдзреНрдпрд╛ рдЪрд╛рдЪрдгреА рдСрдкрд░реЗрд╢рди рд╕реБрд░реВ рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рдирд╛рд╡рд░реАрд▓ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓.

рдореЗрдШрд╛рд╢реА рд╕рдВрд╡рд╛рдж

рдХреНрд▓рд╛рдЙрдб-рдЖрдзрд╛рд░рд┐рдд рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪрд╛ рдбреЗрдЯрд╛ (рд╡реНрд╣рд┐рдбрд┐рдУ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░ рдореЛрдЬрдорд╛рдк) рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ. рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬрдЪреНрдпрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреА рдЖрдордЪреНрдпрд╛ рдорд╛рд▓рд┐рдХреЗрддреАрд▓ рдкреБрдвреАрд▓ рд▓реЗрдЦрд╛рдд рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╡рд╛рд░ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реА рдЬрд╛рдИрд▓. рдЖрддрд╛ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рдХрдбреВрди рдХреНрд▓рд╛рдЙрдбрд╡рд░ рдорд╛рд╣рд┐рддреА рд╕рдВрджреЗрд╢ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЗрдВрдЯрд░рдлреЗрд╕рдмрджреНрджрд▓ рдмреЛрд▓реВрдпрд╛.

рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЙрдкрдХрд░рдгрд╛рдВрдЪреА рд╕реНрдерд┐рддреА рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░ рдореЛрдЬрдорд╛рдк рдкреНрд░реЛрдЯреЛрдХреЙрд▓рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдПрдордХреНрдпреВрдЯреАрдЯреА, рдЬреЗ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рд╛рдзреЗрдкрдгрд╛рдореБрд│реЗ рдЖрдгрд┐ рдКрд░реНрдЬрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдореБрд│реЗ рдЕрдиреЗрдХрджрд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рдСрдл рдерд┐рдВрдЧреНрдЬ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ. MQTT рдХреНрд▓рд╛рдпрдВрдЯ-рд╕рд░реНрд╡реНрд╣рд░ рдореЙрдбреЗрд▓ рд╡рд╛рдкрд░рддреЗ, рдЬреЗрдереЗ рдХреНрд▓рд╛рдпрдВрдЯ рдмреНрд░реЛрдХрд░рдордзреАрд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╖рдпрд╛рдВрдЪреЗ рд╕рджрд╕реНрдпрддреНрд╡ рдШреЗрддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреЗ рд╕рдВрджреЗрд╢ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛рдд. рдмреНрд░реЛрдХрд░ рд╕рд░реНрд╡ рд╕рджрд╕реНрдпрд╛рдВрдирд╛ QoS (рд╕реЗрд╡реЗрдЪреА рдЧреБрдгрд╡рддреНрддрд╛) рд╕реНрддрд░рд╛рджреНрд╡рд╛рд░реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд┐рдпрдорд╛рдВрдиреБрд╕рд╛рд░ рд╕рдВрджреЗрд╢ рдкрд╛рдард╡рддреЛ:

  • QoS 0 - рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рдПрдХрджрд╛ (рдбрд┐рд▓рд┐рд╡реНрд╣рд░реАрдЪреА рд╣рдореА рдирд╛рд╣реА);
  • QoS 1 - рдХрд┐рдорд╛рди рдПрдХрджрд╛ (рд╡рд┐рддрд░рдг рдкреБрд╖реНрдЯреАрдХрд░рдгрд╛рд╕рд╣);
  • QoS 2 - рдЕрдЧрджреА рдПрдХрджрд╛ (рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рддрд░рдг рдкреБрд╖реНрдЯреАрдХрд░рдгрд╛рд╕рд╣).

рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдЖрдореНрд╣реА рд╡рд╛рдкрд░рддреЛ рдЧреНрд░рд╣рдг рдордЪреНрдЫрд░. рд╡рд┐рд╖рдпрд╛рдЪреЗ рдирд╛рд╡ рд╣реЗ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рдЪреЗ рдпреБрдирд┐рдХ рдЖрдпрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░ рдЖрд╣реЗ. рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпреЗрддреАрд▓ MQTT рдХреНрд▓рд╛рдпрдВрдЯ рдпрд╛ рд╡рд┐рд╖рдпрд╛рдЪреА рд╕рджрд╕реНрдпрддрд╛ рдШреЗрддреЛ рдЖрдгрд┐ рд╕рдВрджреЗрд╢ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХрд╛рдХрдбреВрди рдпреЗрдгрд╛рд░реЗ JSON рд╕рдВрджреЗрд╢ рддреНрдпрд╛рдд рднрд╛рд╖рд╛рдВрддрд░рд┐рдд рдХрд░рддреЛ. рдпрд╛рдЙрд▓рдЯ, MQTT рдмреНрд░реЛрдХрд░рдХрдбреВрди рдЖрд▓реЗрд▓реЗ рдореЗрд╕реЗрдЬ рдореЗрд╕реЗрдЬ рдореЕрдиреЗрдЬрд░рдХрдбреЗ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рддрд╛рдд, рдЬреЗ рдирдВрддрд░ рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рджрд╕реНрдпрд╛рдВрдирд╛ рдорд▓реНрдЯреАрдкреНрд▓реЗрдХреНрд╕ рдкрд╛рдард╡рддрд╛рдд:

рдХреНрд▓рд╛рдЙрдб рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо. рднрд╛рдЧ 1: рдХрдВрдЯреНрд░реЛрд▓рд░ рдЖрдгрд┐ рд╕реЗрдиреНрд╕рд░реНрд╕

рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рдЪреНрдпрд╛ рд╕реНрдерд┐рддреАрдмрджреНрджрд▓ рд╕рдВрджреЗрд╢ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЬрддрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рдВрджреЗрд╢рд╛рдВрдЪреА рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ рд░рд╛рдЦреВрди рдареЗрд╡рд▓реЗрд▓реЗ рд╕рдВрджреЗрд╢ MQTT рдкреНрд░реЛрдЯреЛрдХреЙрд▓. рд╣реЗ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдкреЙрд╡рд░ рдлреЗрд▓реНрдпреБрдЕрд░ рджрд░рдореНрдпрд╛рди рд░реАрдХрдиреЗрдХреНрд╢рдирдЪреНрдпрд╛ рд╡реЗрд│реЗрдЪреЗ рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.

MQTT рдХреНрд▓рд╛рдпрдВрдЯ рд▓рд╛рдпрдмреНрд░рд░реА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЧреНрд░рд╣рдг рдкрд╛рд╣реЛ C++ рднрд╛рд╖реЗрдд.

H.264 + AAC рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╡рд╛рд╣ RTMP рдкреНрд░реЛрдЯреЛрдХреЙрд▓рджреНрд╡рд╛рд░реЗ рдХреНрд▓рд╛рдЙрдбрд╡рд░ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рддрд╛рдд, рдЬреЗрдереЗ рдореАрдбрд┐рдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рдЪрд╛ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдгрд┐ рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЕрд╕рддреЛ. рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рд▓реЛрдбрдЪреЗ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рд╡рд┐рддрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдХрдореАрдд рдХрдореА рд▓реЛрдб рдХреЗрд▓реЗрд▓рд╛ рдореАрдбрд┐рдпрд╛ рд╕рд░реНрд╡реНрд╣рд░ рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА, рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреНрд▓рд╛рдЙрдб рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░рд▓рд╛ рдкреНрд░рд╛рдердорд┐рдХ рд╡рд┐рдирдВрддреА рдХрд░рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдирдВрддрд░рдЪ рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╡рд╛рд╣ рдкрд╛рдард╡рддреЛ.

рдирд┐рд╖реНрдХрд░реНрд╖

рд▓реЗрдЦрд╛рдд рд░рд╛рд╕реНрдкрдмреЗрд░реА Pi 3 B+ рдорд╛рдпрдХреНрд░реЛрдХреЙрдореНрдкреНрдпреБрдЯрд░рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рдЪреНрдпрд╛ рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ Z-Wave рдкреНрд░реЛрдЯреЛрдХреЙрд▓рджреНрд╡рд╛рд░реЗ рдорд╛рд╣рд┐рддреА рдкреНрд░рд╛рдкреНрдд рдХрд░реВ рд╢рдХрддреЗ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реВ рд╢рдХрддреЗ рдЖрдгрд┐ рдЙрдкрдХрд░рдгреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реВ рд╢рдХрддреЗ, ONVIF рдкреНрд░реЛрдЯреЛрдХреЙрд▓рджреНрд╡рд╛рд░реЗ рдЖрдпрдкреА рдХреЕрдореЗрд░реНтАНрдпрд╛рдВрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзреВ рд╢рдХрддреЗ рдЖрдгрд┐ рдбреЗрдЯрд╛рдЪреА рджреЗрд╡рд╛рдгрдШреЗрд╡рд╛рдг рджреЗрдЦреАрд▓ рдХрд░реВ рд╢рдХрддреЗ. рдХреНрд▓рд╛рдЙрдбрд╕рд╣ рдЖрджреЗрд╢. MQTT рдЖрдгрд┐ RTMP рдкреНрд░реЛрдЯреЛрдХреЙрд▓рджреНрд╡рд╛рд░реЗ рд╕реЗрд╡рд╛. JSON рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рд╕рд╛рджрд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рддрд╛рд░реНрдХрд┐рдХ рдирд┐рдпрдо рдЖрдгрд┐ рддрдереНрдпрд╛рдВрдЪреНрдпрд╛ рддреБрд▓рдиреЗрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЙрддреНрдкрд╛рджрди рд▓реЙрдЬрд┐рдХ рдЗрдВрдЬрд┐рди рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ.

рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░рдЪреА рд╕рдзреНрдпрд╛ рдореЙрд╕реНрдХреЛ рдЖрдгрд┐ рдореЙрд╕реНрдХреЛ рдкреНрд░рджреЗрд╢рд╛рддреАрд▓ рдЕрдиреЗрдХ рд╕рд╛рдЗрдЯреНрд╕рд╡рд░ рдЪрд╛рдЪрдгреА рд╕реБрд░реВ рдЖрд╣реЗ.

рдХрдВрдЯреНрд░реЛрд▓рд░рдЪреА рдкреБрдвреАрд▓ рдЖрд╡реГрддреНрддреА рдЗрддрд░ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕ (рдЖрд░рдПрдл, рдмреНрд▓реВрдЯреВрде, рд╡рд╛рдпрдлрд╛рдп, рд╡рд╛рдпрд░реНрдб) рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдЖрдЦрдд рдЖрд╣реЗ. рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реЛрдпреАрд╕рд╛рдареА, рд╕реЗрдиреНрд╕рд░ рдЖрдгрд┐ рдЖрдпрдкреА рдХреЕрдореЗрд░реЗ рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЛрдмрд╛рдЗрд▓ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдордзреНрдпреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реА рдЬрд╛рдИрд▓. рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░реЛрд╕реЗрд╕ рдХреЛрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдкреЛрд░реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреЗрдЦреАрд▓ рдХрд▓реНрдкрдирд╛ рдЖрд╣реЗрдд рдУрдкрдирдбрдмреНрд▓реНрдпреВрдЖрд░рдЯреА. рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╡реЗрдЧрд│реНрдпрд╛ рдХрдВрдЯреНрд░реЛрд▓рд░рд╡рд░ рдмрдЪрдд рдХрд░рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдордЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд┐рдпрдорд┐рдд рдШрд░рдЧреБрддреА рд░рд╛рдЙрдЯрд░рдордзреНрдпреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдИрд▓.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛