HomeKit рдФрд░ ioBroker рдЪрд▓реЛ рдШрд░ рдкрд░ рджреЛрд╕реНрдд рдмрдирд╛рддреЗ рд╣реИрдВ


рдирд┐рд╕реНрд╕рдВрджреЗрд╣, рдРрдкреНрдкрд▓ рдЖрдИрдУрдПрд╕ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдореЛрдмрд╛рдЗрд▓ рдУрдПрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдмрдирд╛ рд╣реБрдЖ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдзреБрдирд┐рдХ рд╕реНрд╡рдЪрд╛рд▓рди рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЗрд╕ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдФрд░ рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╣реЛрдордХрд┐рдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ iPhone / iPad / iWatch рд╕реНрдХреНрд░реАрди рд╕реЗ рд╕реНрдорд╛рд░реНрдЯ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдХ (macOS Mojave)ред


рдЕрдзрд┐рдХрд╛рдВрд╢ рдСрдЯреЛрдореЗрд╢рди рд╕рд┐рд╕реНрдЯрдо (рдореБрдЭреЗ "рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо" рдорд╛рд░реНрдХреЗрдЯрд┐рдВрдЧ рдирд╛рдо рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ) рдореЗрдВ рд╣реЛрдордХрд┐рдЯ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╢рд╛рдорд┐рд▓ рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╣рдореЗрд╢рд╛ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд╣реЛрдо (рдпрд╛ рдИрд╡) рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреИрд╕реЗ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдпрд╛ рдЬрд╛рдПред


рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ ioBroker рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдпреЗ рд╣реЗрд░рдлреЗрд░ рдХреИрд╕реЗ рдХрд░реЗрдВ (рдпрд╣ рдПрдХ рдУрдкрди рдФрд░ рдлреНрд░реА рдСрдЯреЛрдореЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рд╣реИ)ред рд▓реЗрдХрд┐рди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рднреА рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдирд╣реАрдВ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХреБрдЫ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕реЗ рдЬрд╛рдирдХрд░, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


"рдХреБрдЫ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рдЬрд╛рдирдиреЗ рд╕реЗ рдХреБрдЫ рддрдереНрдпреЛрдВ рдХреА рдЕрдЬреНрдЮрд╛рдирддрд╛ рдХреА рднрд░рдкрд╛рдИ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣реЛ рдЬрд╛рддреА рд╣реИред"
рдХреНрд▓рд╛рдЙрдб рдПрдбреНрд░рд┐рдпрди рд╣реЗрд▓реНрд╡реЗрдЯрд┐рдпрд╕


ioBrokerред рдбреНрд░рд╛рдЗрд╡рд░, рдЙрдкрдХрд░рдг, рдФрд░ рдХрд╝рд╛рдиреВрди


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ ioBroker рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ ioBroker рд╕рд┐рд╕реНрдЯрдо рдореЙрдбреНрдпреВрд▓рд░ рд╣реИ, рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЙрдбреНрдпреВрд▓ рдХреЛ рдбреНрд░рд╛рдЗрд╡рд░ (рдпрд╛ рдПрдбреЗрдкреНрдЯрд░) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдбреНрд░рд╛рдЗрд╡рд░ рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╛ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдХреАрдХрд░рдг рдореЙрдбреНрдпреВрд▓ рд╣реИ, рдЬреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдпрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХрдЬреБрдЯ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдПрдХ рдпрд╛ рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ ioBroker рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ "рдбреНрд░реИрдЧ" рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рднрд┐рдиреНрди рд╣реИред


рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдЕрджреНрд╡рд┐рддреАрдп рдФрд░ рдЕрдиреБрдкрдпреЛрдЧреА рд╣реИ, рдЗрд╕рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдФрд░ рдХреНрд╖рдорддрд╛рдПрдВ рд╣реИрдВред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, ioBroker рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╣реА рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЙрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд░рд╛рдЬреНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рд░рд╛рдЬреНрдп рдПрдХ рдЖрдВрддрд░рд┐рдХ ioBroker рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ рдореВрд▓реНрдп рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рд░рд╛рдЬреНрдп рдХреЗ рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рдорд╛рдиреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ: рд╕рдВрдХреЗрдд, рдЧреБрдг, рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ, рдЧреБрдг, рдШрдЯрдирд╛рдПрдБред рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг: "рддрд╛рдкрдорд╛рди", "рдЪрдордХ рд╕реНрддрд░", "рдмреИрдЯрд░реА рд╕реНрддрд░", "рдкрд╛рд╡рд░-рдСрди рдлреНрд▓реИрдЧ", "рддреНрд░реБрдЯрд┐ рдзреНрд╡рдЬ", "рдзреНрд╡рдЬ рджрдмрд╛рдиреЗ", "рдбрдмрд▓-рджрдмрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЭрдВрдбрд╛", рдЖрджрд┐ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд╛рдЬреНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛


рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рд╕реВрдЪрдирд╛рддреНрдордХ рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╡реЗ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╣реЛрддреЗ рд╣реИрдВ - рдЙрдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рддрджрдиреБрд╕рд╛рд░, рдЬрдм рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ - рдпрд╣ рдбреЗрдЯрд╛ рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЬрдм рд╕реНрдерд┐рддрд┐ ioBroker (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛) рд╕реЗ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ - рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреЗрдд рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рддрджрдиреБрд╕рд╛рд░ рдЬрд╡рд╛рдм рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╣реА рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЪрд╛рд▓рдХ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред


рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдПрдХрд▓ рдкреЗрдбрд╝ (рд░рдЬрд┐рд╕реНрдЯреНрд░реА) рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рдбрд┐рд╡рд╛рдЗрд╕ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЕрднреА рднреА рдЪреИрдирд▓рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдФрд░ рдлрд┐рд░ рдЪрд╛рд▓рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ред


рдПрдордХреНрдпреВрдЯреАрдЯреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд┐рд╖рдпреЛрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рд░рд╛рдЬреНрдп рдХреЗ рдкреЗрдбрд╝ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдлрд┐рдЯ рд╣реЛрддреА рд╣реИред рдЗрд╕ рддрд░рд╣, рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрдХрд░рдг рдпрд╛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдордХреНрдпреВрдЯреАрдЯреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ MQTT рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ - рд░рд╛рдЬреНрдп рд╡реГрдХреНрд╖ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╢рд╛рдЦрд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред


рдФрд░ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдСрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдФрд░ / рдпрд╛ рдЕрдиреНрдп рдЙрдкрдХрд░рдг (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░ рдЕрд▓рд╛рд░реНрдо) рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддреА рд╣реИрдВред рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рд░рд╛рдЬрдХреАрдп рд╡реГрдХреНрд╖


рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, ioBroker рдореЗрдВ рдПрдХ рдЙрдкрдХрд░рдг рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


HomeKitред рд╕рд╛рдорд╛рди, рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ


рдЕрдм рд╣реЛрдордХрд┐рдЯ рдХреА рдУрд░ рдореБрдбрд╝реЗрдВред рдпрд╣рд╛рдВ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдЧреАрдХрд░рдг, рдЙрдирдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рд╣реЛрдордХрд┐рдЯ рдбрд┐рд╡рд╛рдЗрд╕ рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ


рд╕рд╣рд╛рдпрдХ рдЙрдкрдХрд░рдг рдПрдХ рднреМрддрд┐рдХ рдЙрдкрдХрд░рдг рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдЧреМрдг рдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдореВрд╣ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реНрд░реЗрдгреА рд╣реИ ред


рд╕реЗрд╡рд╛рдУрдВ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдЬреЛ рдПрдХ рд╕рд╣рд╛рдпрдХ рдХреЗ рдкрд╛рд╕ рд╣реИред рдПрдХ рдЧреМрдг рдореЗрдВ рдХрдИ рд╕реЗрд╡рд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред


рд╕реЗрд╡рд╛рдПрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИрдВ: рджреАрдкрдХ, рдмреИрдЯрд░реА, рдмрдЯрди, рд╡рд╛рдпреБ рдЧреБрдгрд╡рддреНрддрд╛ рд╕реЗрдВрд╕рд░, рджрд░рд╡рд╛рдЬрд╛, рдПрдпрд░ рдХреНрд▓реАрдирд░, рдХреИрдорд░рд╛ редред


рдпрд╣ рд╕реЗрд╡рд╛ рд╣реИ рдЬреЛ рдбрд┐рд╕реНрдкреНрд▓реЗ, рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕реЗрдЯ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред


рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ / рдЧреБрдгреЛрдВ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдЬреЛ рдПрдХ рд╕реЗрд╡рд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдпрд╣ рд╡рд╣ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдЪрд╛рд▓реВ рд╣реИ, рджреАрдкрдХ рдХрд╛ рдЪрдордХ рд╕реНрддрд░, рдпрд╛ рдмрдЯрди рдХрд┐рддрдиреА рдмрд╛рд░ рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рдПрдХрд▓ рд╕реЗрд╡рд╛ рдореЗрдВ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред


рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛


рд╣реЛрдордХрд┐рдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд╣рд╛рдпрдХ рдЙрдкрдХрд░рдг рдХреА рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдорд╛рдиреЛрдВ рдХреЛ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдордХрд┐рдЯ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣реЛрдордХрд┐рдЯ рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ рдХреНрд░рдорд╢рдГ, рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рднреА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдХрд┐рдирд╛рд░реЗ рд╕реЗ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╣реЛрдо рдХрд┐рдЯ рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╣рд╛рдпрдХ рдЙрдкрдХрд░рдг рд╣реИред


Yahkaред рд╣рдо рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ


рд╣реЛрдордХрд┐рдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ioBroker рдпрд╛рд╣рдХрд╛ рдЪрд╛рд▓рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рдкрд╣рд▓реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП) - рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдПрдХ рдРрдб-рдСрди https://github.com/KhaosT/HAP-NodeJS , рдЬреЛ рд▓реЛрдХрдкреНрд░рд┐рдп HomeBridge рдкреНрд░реЛрдЬреЗрдХреНрдЯ рднреА рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдЧреЗрдЯрд╡реЗ / рдмреНрд░рд┐рдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ HomeKit рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рддрджрдиреБрд╕рд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛, рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛, рд╣рдореЗрдВ рд╣реЛрдордХрд┐рдЯ рдФрд░ рд╣реЛрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рддреИрдпрд╛рд░ рдбрд┐рд╡рд╛рдЗрд╕ рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рд╕рд┐рд░реА рдХреЛ рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред


рдпрд╛рд╣рдХрд╛ рдЪрд╛рд▓рдХ рдХреЛ рдХреЗрд╡рд▓ рд╕рд╛рдорд╛рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ, рдЙрдирдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛рдПрдВ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ (рд╣реЛрдордХрд┐рдЯ) рдФрд░ рд░рд╛рдЬреНрдпреЛрдВ (ioBroker) рдХреЗ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЧреЗрдЯрд╡реЗ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд╣реЛрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд╛рдж, рдЧреЗрдЯрд╡реЗ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрдо рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рдПрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдирд╛рдо" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ (рдпрд╣ рдХреЗрд╡рд▓ рд▓реИрдЯрд┐рди рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ) рдФрд░ рдкрд┐рди рдХреЛрдб рдпрд╛рдж рд░рдЦреЗрдВ (рдпрд╛ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд╕реЗрдЯ рдХрд░реЗрдВ)ред


рдЧреЗрдЯрд╡реЗ рд╕реЗрдЯрдЕрдк


рд╣рдо рд╣реЛрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдирдпрд╛ рдПрдХреНрд╕реЗрд╕рд░реА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред



рдЕрдм рдЪрд▓реЛ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЙрддрд░реЛред рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЕрдЧрд░ ioBroker рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдпреЛрдВ рдХрд╛ рд╕реЗрдЯ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ HomeKit рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛред рдФрд░ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдХрд┐ рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рдореВрд▓реНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛрдВред рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдбреЙрдХ рдХреЗ рдЕрд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рдФрд░ рдЖрдкрдХреЛ рдЕрдиреНрдп рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, "рдЫрд╡рд┐ рдФрд░ рд╕рдорд╛рдирддрд╛ рдореЗрдВред"


рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдпрд╛ ред рд╕рднреА рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ HAP-NodeJS рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред


рддрд╛рдкрдорд╛рди рд╕рдВрд╡реЗрджрдХ


рдпрд╣ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ - рдЖрдкрдХреЛ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдПрдХ рд░рд╛рдЬреНрдп рдореЗрдВ рддрд╛рдкрдорд╛рди рдХрд╛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдореВрд▓реНрдп рд╣реИред рдЗрд╕реЗ рдХрд╣реАрдВ рд╕реЗ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рд╕реЗрдВрд╕рд░ рд╕реЗ рдпрд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗрд╡рд╛рдУрдВ (рдореМрд╕рдо) рд╕реЗред

рдЖрдкрдХреЛ рд╕реЗрдВрд╕рд░ рд╢реНрд░реЗрдгреА рдХрд╛ рдПрдХ рдЙрдкрдХрд░рдг рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдФрд░ рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░ рд╕реЗрд╡рд╛ рдХреЛ рдЙрдкрдХрд░рдг рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЛ рдПрдХ рдирд╛рдо рджреЗрдВред рдЗрд╕ рд╕реЗрд╡рд╛ рдореЗрдВ 5 рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд░рдВрдЯ рдЯреЗрдВрдкрд░реНрд╕ред


рдЧреМрдг рдерд░реНрдорд╛рдореАрдЯрд░


рддрд╛рдкрдорд╛рди рд╕реЗрдВрд╕рд░ рд╕реЗрд╡рд╛


рдпрд╣ рд╡рд░реНрддрдорд╛рди рддрд╛рдкрдорд╛рди рдореЗрдВ рддрд╛рдкрдорд╛рди рдХреЗ рдЕрдиреБрд░реВрдк рд░рд╛рдЬреНрдп рдХреЗ рдирд╛рдо рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред


рдпрд╣рд╛рдВ рднреА HumiditySensor рдЖрд░реНрджреНрд░рддрд╛ рд╕реЗрд╡рд╛ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рд╣реЛрдордХрд┐рдЯ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдПрдХреНрд╕реЗрд╕рд░реА рдЖрдЗрдХрди рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


рд╣реНрдпреВрдорд┐рдбрд┐рдЯреА рд╕реЗрдВрд╕рд░ рд╕реЗрд╡рд╛


рдмрдЪрд╛рдУ, рдФрд░ рддреБрдо рд╣реЛ рдЧрдПред рдЕрдм рдЖрдк рд╕рд┐рд░реА рдХреА рдУрд░ рд░реБрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЙрд╕рд╕реЗ рддрд╛рдкрдорд╛рди рдФрд░ рдЖрд░реНрджреНрд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВред



рд╕рд┐рд░реА рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд



рдмреИрдЯрд░реА


рдПрдХ рдФрд░ рд╕рд░рд▓ рд╕реЗрд╡рд╛ред рдЗрд╕рдХреА рдЪрд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдПрдХреНрд╕реЗрд╕рд░реА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред BatteryService рд╕реЗрд╡рд╛ рдЬреЛрдбрд╝реЗрдВ рдФрд░ BatteryLevel рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдмреИрдЯрд░реА рдЪрд╛рд░реНрдЬ рдХреЗ рдкреНрд░рддрд┐рд╢рдд рд╡рд╛рд▓реЗ рд░рд╛рдЬреНрдп рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рдореЗрдВ рдЪрд╛рд░реНрдЬ рдбреЗрдЯрд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред


рд╕реЗрд╡рд╛ BatteryService


рдЖрдк рддреБрд░рдВрдд "рдХрдо рдЪрд╛рд░реНрдЬ" (рд╡рд┐рд╢реЗрд╖рддрд╛ StatusLowBattery) рдХрд╛ рд╕рдВрдХреЗрдд рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд░рд╛рдЬреНрдп рдХрд╛ рдореВрд▓реНрдп 1 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдЫрд╡рд┐ рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рдЖрдЗрдХрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рд░рд╛рдЬреНрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо-рдмреИрдЯрд░реА рдЖрдЗрдХрди рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВред


рдЕрдм рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕ рд░рд╛рдЬреНрдп рдореЗрдВ рдореВрд▓реНрдп рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ - рдпрд╣ рд╕рдЪ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдмреИрдЯрд░реА 30 рдкреНрд░рддрд┐рд╢рдд рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдЧреАред


createState(""); on({id: "zigbee.0.00158d0001f41725.battery", change: "ne"}, function (obj) {   var value = obj.state.val; setState("javascript.0.", (value <= 30)); }); 

рдкрд╣рд▓реЗ рднрд╛рдЧ рдХреЗ рдмрд╛рдж, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╕реНрдерд┐рддрд┐ рдмрдирд╛рдПрдЧреА, рдФрд░ рдЗрд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдЪреБрдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдпрд╣ рдЪрд┐рд╣реНрди рд╕рд╛рдорд╛рди рдХреА рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛



рдФрд░ рдЙрдкрдХрд░рдг рд╡рд┐рд╡рд░рдг


рд▓реИрдВрдк


рдкреНрд░рдХрд╛рд╢ рдмрд▓реНрдм рдЕрд▓рдЧ рд╣реИрдВ - рдЙрдЬреНрдЬреНрд╡рд▓, рдЧрд░реНрдо, рд▓рд╛рд▓ред 4 рдорд╛рдорд▓реЗ рд╣реИрдВ:


  • рд╕рд░рд▓ - рдкрд░ рдФрд░ рдмрдВрдж рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд
  • Dimmable - рдЪрдордХ рд╕реНрддрд░ рджреНрд╡рд╛рд░рд╛ рднреА рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  • рддрд╛рдкрдорд╛рди рдХреЗ рд╕рд╛рде - рдЖрдк рдЪрдордХ рдХреЗ рддрд╛рдкрдорд╛рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  • рд░рдВрдЧ - рдЖрдк рдЪрдордХ рдХреЗ рд░рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП, рд▓рд╛рдЗрдЯрдмрд▓реНрдм рд╕реЗрд╡рд╛ рдореЗрдВ рдПрдХ рд╕рдВрдЧрдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ:


  • рдСрди - рдСрди / рдСрдл
  • рдЪрдордХ - рдЪрдордХ рд╕реНрддрд░
  • рд╣реНрдпреВ - рдЫрд╛рдпрд╛
  • рд╕рдВрддреГрдкреНрддрд┐ - рд╕рдВрддреГрдкреНрддрд┐
  • рд░рдВрдЧ рддрд╛рдкрдорд╛рди - рд░рдВрдЧ рддрд╛рдкрдорд╛рди

рд╕рд░рд▓ рдорд╛рдорд▓реЗ рдореЗрдВ, "рдСрди" рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ, рд╣рдо рд░рд╛рдЬреНрдп рдХреЛ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред



рдпрджрд┐ рджреАрдкрдХ рдордВрдж рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрдордХ рд╕реНрддрд░ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред



рд╕рд╣реА рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрд╡реАрдХрд╛рд░реНрдп рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ!


рдЙрджрд╛рд╣рд░рдг: рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рджреАрдкрдХ рдХреА рдЪрдордХ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд░рд╛рдЬреНрдп 0 рд╕реЗ 255 рддрдХ рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣реЛрдордХрд┐рдЯ рдореЗрдВ рдпреЗ рдорд╛рди 0 рд╕реЗ 100 рдХреЗ рдЕрдВрддрд░рд╛рд▓ рддрдХ рд╕реАрдорд┐рдд рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдпрд╛рд╣рдХрд╛ рдЪрд╛рд▓рдХ рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд╝рдВрдХреНрд╢рди "рд╕реНрддрд░ 25" рдмрд╕ рдорд╛рдиреЛрдВ рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЛ 0..255 рдХреЛ рдЕрдВрддрд░рд╛рд▓ 0..100 (рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд) рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред


рдпрджрд┐ рдЖрдкрдХрд╛ рджреАрдкрдХ рд░рдВрдЧреАрди рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдореНрди рд░рдВрдЧ рдЖрд░рдЬреАрдмреА рд╣реИ, рддреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдпрд╣ рдпрд╛ рддреЛ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд╛рдЬреНрдпреЛрдВ, рдпрд╛ рдПрдХ рдирдВрдмрд░ (рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ) рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдкрдХреЛ рдПрдХ RGB рд░рдВрдЧ рд╕реНрдерд╛рди рд╕реЗ рджреВрд╕рд░реЗ XYB рд╕реНрдерд╛рди (рдпрд╣ рд╕реНрдерд╛рди HomeKit рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдпрд╛ XY рд╡рд┐рдорд╛рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред


рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 2 рдирдП рд░рд╛рдЬреНрдп (рд╣реНрдпреВ рдФрд░ рд╕рдВрддреГрдкреНрддрд┐) рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо RGB рд░рд╛рдЬреНрдп рд╕реЗ рдорд╛рдиреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред


рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдореА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ
 //       createState("Hue"); createState("Sat"); //      RGB- on({id: "Hue", ack: false, change: 'any'}, function (obj) {  var hue = parseInt(obj.state.val);  var sat = parseInt(getState('Sat').val);  var res = hsvToRgb(hue, sat, 100);  setRGB(parseInt(res[0]), parseInt(res[1]), parseInt(res[2])); }); //    RGB- function setRGB(r, g, b){  var val = ('00'+r.toString(16)).slice(-2)+('00'+g.toString(16)).slice(-2)+('00'+b.toString(16)).slice(-2);  // RGB-   setState('zigbee.0.00124b0014d016ab.color', val, false); } //   HSV   RGB function hsvToRgb(h, s, v) {  var r, g, b;  var i;  var f, p, q, t;   h = Math.max(0, Math.min(360, h));  s = Math.max(0, Math.min(100, s));  v = Math.max(0, Math.min(100, v));  s /= 100;  v /= 100;   if(s == 0) {      r = g = b = v;      return [          Math.round(r * 255),          Math.round(g * 255),          Math.round(b * 255)      ];  }   h /= 60;  i = Math.floor(h);  f = h - i;  p = v * (1 - s);  q = v * (1 - s * f);  t = v * (1 - s * (1 - f));   switch(i) {      case 0:          r = v;          g = t;          b = p;          break;       case 1:          r = q;          g = v;          b = p;          break;       case 2:          r = p;          g = v;          b = t;          break;       case 3:          r = p;          g = q;          b = v;          break;       case 4:          r = t;          g = p;          b = v;          break;       default: // case 5:          r = v;          g = p;          b = q;  }   return [      Math.round(r * 255),      Math.round(g * 255),      Math.round(b * 255)  ]; } 

рд░рдВрдЧ рддрд╛рдкрдорд╛рди рдХреЛ рдЖрд╕рд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдпрджрд┐ рдЖрдкрдХреЗ рджреАрдкрдХ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдорд╛рдиреЛрдВ рдХреА рд╕реАрдорд╛ рдЬреНрдЮрд╛рдд рд╣реИ, рддреЛ рдЗрд╕реЗ рд╣реЛрдордХреАрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ( рд╕реНрдХреЗрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)ред


рд▓рд╛рдЗрдЯрдмрд▓реНрдм рд╕реЗрд╡рд╛



рджреАрдкрдХ рдореЗрдВ рдЧрд╣рд░рд╛рдкрди



рдерд░реНрдореЛрд╕реНрдЯреЗрдЯ


рдерд░реНрдореЛрд╕реНрдЯреИрдЯ - рд╕реЗрдЯ рддрд╛рдкрдорд╛рди (рдерд░реНрдореЛрд╕реНрдЯреИрдЯ рд╕реЗрд╡рд╛) рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдгред рддрджрдиреБрд╕рд╛рд░, рдерд░реНрдореЛрд╕реНрдЯреИрдЯ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╛рдВрдЫрд┐рдд рддрд╛рдкрдорд╛рди (рдЯрд╛рд░рдЧреЗрдЯрдиреИрд╕) рд╣реИред рдирд┐рд░реНрдзрд╛рд░рд┐рдд рддрд╛рдкрдорд╛рди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд░реНрддрдорд╛рди рддрд╛рдкрдорд╛рди (рд╡рд░реНрддрдорд╛рди рддрд╛рдкрдорд╛рди) рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рдХреГрддрд┐ рдореЗрдВ рд╕реВрдЪрдирд╛рддреНрдордХ рд╣реИ (рдЪреВрдВрдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗрд╡рд▓ рд╕реЗрдВрд╕рд░ рд╕реЗ рдЗрд╕реЗ рдкрдврд╝рддрд╛ рд╣реИ)ред


рд╣реЛрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ, рдерд░реНрдореЛрд╕реНрдЯреИрдЯ рдореЗрдВ рд▓рдХреНрд╖реНрдп рддрд╛рдкрдорд╛рди рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рддрд╛рдкрдорд╛рди рдХреЛ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореЗрд░реЗ рдерд░реНрдореЛрд╕реНрдЯреИрдЯ (Zont) рдореЗрдВ рд╕рд┐рд░реНрдл рдпреЗ рджреЛ рд░рд╛рдЬреНрдп рдереЗ - рд╡реЗ рд╕реЗрд╡рд╛ рдХреНрд▓рд╛рдЙрдб рдПрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рдереЗред


рд╣реЛрдордХрд┐рдЯ рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рд╕реБрдВрджрд░рддрд╛ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛: рд╣реАрдЯрд┐рдВрдЧ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╕рдХреНрд░рд┐рдп рд╣реИ (1), рд╣реАрдЯрд┐рдВрдЧ рдХреА рд▓рдХреНрд╖реНрдп рд╕реНрдерд┐рддрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реИ (3)ред


рдерд░реНрдореЛрд╕реНрдЯреЗрдЯ рд╕реЗрд╡рд╛



рддрд╛рдкрдорд╛рди рдЪрдпрди


рдЧреЗрдЯ


рдЧреЗрд░рд╛рдЬ рджрд░рд╡рд╛рдЬреЗ (рдЧреИрд░рд╛рдЬрдбреЙрд░реНрдкреЗрди рд╕реЗрд╡рд╛) рдХреЗ рд╕рд╛рде, рдерд░реНрдореЛрд╕реНрдЯреИрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рдм рдХреБрдЫ рдкреЗрдЪреАрджрд╛ рд╣реИред


рдЙрдкрд▓рдмреНрдз рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ, рдЧреЗрдЯ рдореЗрдВ рдПрдХ рд▓рдХреНрд╖реНрдп рд░рд╛рдЬреНрдп (рдЯрд╛рд░рдЧреЗрдЯрд╕реНрдЯреЛрд░рд╕реНрдЯреЗрдЯ) рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЧреЗрдЯ рдХреЗ "рдЦреБрд▓реЗ" рдпрд╛ "рдмрдВрдж" рд╣реЛрдиреЗ рдХреА рд╣рдорд╛рд░реА рдЗрдЪреНрдЫрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЧреЗрдЯ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ (CurrentDoorState) рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдХреНрдпрд╛ рд╡реЗ рдЦреБрд▓реЗ рдпрд╛ рдмрдВрдж рд╣реИрдВ, рдпрд╛ рд╢рд╛рдпрдж рд╡реЗ рдЦреБрд▓реЗ рдпрд╛ рдмрдВрдж рд╣реИрдВ?


рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдИ рд╕реВрдЪрдирд╛ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд╕рд╛рде ioBroker рдореЗрдВ mqtt рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреНрд╡рд╛рд░ рдЦреЛрд▓реЗ рдЧрдП рдереЗ:


  • рдЧреЗрдЯ рдХреЗ рдЦреБрд▓реЗрдкрди рдХрд╛ рд╕рдВрдХреЗрдд (OB)
  • рдЧреЗрдЯ рдХреЗ рдЖрдВрджреЛрд▓рди рдХрд╛ рд╕рдВрдХреЗрдд (LW)

рдЧреЗрд░рд╛рдЬ рджрд░рд╡рд╛рдЬрд╛ рдирд┐рдпрдВрддреНрд░рдг рд░рд╛рдЬреНрдпреЛрдВ


рдЗрди рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдк рдЧреЗрдЯ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


  • рдпрджрд┐ рдХреЛрдИ рдУрдмреА рдФрд░ рдХреЛрдИ рдбреАрд╡реА рдирд╣реАрдВ рд╣реИ, рддреЛ рджреНрд╡рд╛рд░ рдмрдВрдж рд╣реИрдВ
  • рдпрджрд┐ рдХреЛрдИ рдУрдмреА рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдХ рдбреАрд╡реА рд╣реИ, рддреЛ рдЧреЗрдЯ рдЦреБрд▓рддрд╛ рд╣реИ
  • рдЕрдЧрд░ рдХреЛрдИ рдУрдмреА рдФрд░ рдХреЛрдИ рдбреАрд╡реА рд╣реИ, рддреЛ рдЧреЗрдЯ рдЦреБрд▓реЗ рд╣реИрдВ
  • рдпрджрд┐ рдХреЛрдИ рдУрдмреА рд╣реИ рдФрд░ рдПрдХ рдбреАрд╡реА рд╣реИ, рддреЛ рдЧреЗрдЯ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ

рдЧреЗрдЯ рдЦреЛрд▓рдиреЗ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрдд рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд╛рдЬреНрдп рд╣реИрдВ (рдпрд╣ рдПрдХ рд░рд╛рдЬреНрдп рдХреЗ рд╕рд╛рде рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рджреЛ рд╣реИрдВ), рдЬреЛ рдЧреЗрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ mqtt рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддреЗ рд╣реИрдВ:


  • рд╕рд┐рдЧреНрдирд▓ рдЦреЛрд▓рдирд╛
  • рдмрдВрдж рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд

рд╕рд┐рдЧреНрдирд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ "рдХреНрд▓рд┐рдХ" рдмрдЯрди рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдорд╛рди рдХреЛ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ, рдФрд░ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдЗрд╕реЗ рдЧрд▓рдд рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, HomeKit рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдФрд░ рд░рд╛рдЬреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ - "рдЧреЗрдЯ рдХрд╛ рд▓рдХреНрд╖реНрдп рд░рд╛рдЬреНрдп", рдЬрдм рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╕рд┐рдЧреНрдирд▓ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред


рдЧреЗрдЯ рдХреЗ рдЦреБрд▓реЗрдкрди рдХрд╛ рд╕рдВрдХреЗрдд рд▓рдХреНрд╖реНрдп рд░рд╛рдЬреНрдп рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╛рдиреА рд▓рдХреНрд╖реНрдп рдХреНрдпрд╛ рд▓рдХреНрд╖реНрдп рдХрд░реЗрдЧрд╛):


  • рдпрджрд┐ CA "рдмрдВрдж" рд╣реИ рдФрд░ рдХреЛрдИ DV рдирд╣реАрдВ рд╣реИ, рддреЛ рдЧреЗрдЯ рдмрдВрдж рд╣реИ
  • рдпрджрд┐ CA "рдмрдВрдж" рд╣реИ рдФрд░ рдПрдХ DV рд╣реИ, рддреЛ рджреНрд╡рд╛рд░ рдЦреБрд▓реЗ рд╣реИрдВ
  • рдпрджрд┐ CA "рдЦреБрд▓рд╛" рд╣реИ рдФрд░ рдХреЛрдИ DV рдирд╣реАрдВ рд╣реИ, рддреЛ рдЧреЗрдЯ рдЦреБрд▓рд╛ рд╣реИ
  • рдпрджрд┐ CA "рдЦреБрд▓рд╛" рд╣реИ рдФрд░ DV рд╣реИ, рддреЛ рдЧреЗрдЯ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ

рд╣рдо рдПрдХ рдЕрд▓рдЧ рд░рд╛рдЬреНрдп "рд╡рд░реНрддрдорд╛рди рдЧреЗрдЯ рд░рд╛рдЬреНрдп" рднреА рдмрдирд╛рдПрдВрдЧреЗ, рдФрд░ рд╣рдо рдЗрд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рдореВрд▓реНрдп рдФрд░ рд▓рдХреНрд╖реНрдп рд░рд╛рдЬреНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реБрдП рднрд░реЗрдВрдЧреЗред


рдЧреЗрд░рд╛рдЬ рджрд░рд╡рд╛рдЬреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ
 createState("gate_0.current"); //   createState("gate_0.target"); //   //    0,   300 on({id: "mqtt.0.gate.gpio.13", ack: false, val: 1}, function (obj) {  setStateDelayed("mqtt.0.gate.gpio.13", 0,  300); }); on({id: "mqtt.0.gate.gpio.12", ack: false, val: 1}, function (obj) {  setStateDelayed("mqtt.0.gate.gpio.12", 0,  300); }); //     on({id: "mqtt.0.gate.is_open", ack: false, val: 1}, function (obj) {  // ""  setState("javascript.0.gate_0.current", 0, true); }); on({id: "mqtt.0.gate.is_open", ack: false, val: 0}, function (obj) {  // ""  setState("javascript.0.gate_0.current", 1, true); }); //    - ,      on({id: "javascript.0.gate_0.target", ack: false, val: 0}, function (obj) {  setState("mqtt.0.gate.gpio.12", 1); }); //    - ,      on({id: "javascript.0.gate_0.target", ack: false, val: 1}, function (obj) {  setState("mqtt.0.gate.gpio.13", 1); }); on({id: "mqtt.0.gate.in_progress", ack: true, change: 'any'}, function (obj) {  //    " ",      if (obj.state.val === 1) {      //    "",         const target = getState("javascript.0.gate_0.target");      if (target.val === 0) {          // ""          setState("javascript.0.gate_0.current", 2, true);      } else {          // ""          setState("javascript.0.gate_0.current", 3, true);      }  }  //    " ",      if (obj.state.val === 0) {      //    "",         const target = getState("javascript.0.gate_0.target");      if (target.val === 0) {          // ""          setState("javascript.0.gate_0.current", 0, true);      } else {          // ""          setState("javascript.0.gate_0.current", 1, true);      }  } }); 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЧреЗрд░рд╛рдЬ рджрд░рд╡рд╛рдЬрд╛ рд╕реЗрд╡рд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


GarageDoorOpener рд╕реЗрд╡рд╛



рдХреИрдорд░рд╛


рд╣реЛрдордХрд┐рдЯ рдореЗрдВ рдПрдХ рдХреИрдорд░рд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, "рдХреНрд▓рд╛рд╕рд┐рдХ" рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред Ffmpeg рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреИрдорд░реЗ рд╕реЗ рдЫрд╡рд┐ рдХрд╛ рдкреНрд░рд╕рд╛рд░рдг рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╣реЛрдордХрд┐рдЯ рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЙрд╕ рд╕рд░реНрд╡рд░ рдкрд░ ffmpeg рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ ioBroker рд╕реНрдерд┐рдд рд╣реИред


рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ рд╕реНрд░реЛрдд рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рддреИрдпрд╛рд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ: https://www.johnvansickle.com/ffmpeg/ рдкрд░ рдПрдХ libx264 рдПрдирдХреЛрдбрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде ffmpeg рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдирдХреЛрдбрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 ffmpeg -codecs | grep 264 

рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдкреНрд░рдкрддреНрд░ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:


 DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m h264_vdpau ) (encoders: libx264 libx264rgb h264_v4l2m2m ) 

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 3 рдХреЗ рд▓рд┐рдП, рдЖрдк рддреИрдпрд╛рд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ GPU рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ (h264_omx, рдХрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЦрдкрдд) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рдХреЛрдбреЗрдХ рд╣реИред рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд▓рдЧрд╛рдПрдВ:


 wget https://github.com/legotheboss/YouTube-files/raw/master/ffmpeg_3.1.4-1_armhf.deb sudo dpkg -i ffmpeg_3.1.4-1_armhf.deb 

рджреЛрдиреЛрдВ рдХреЛрдбреЗрдХреНрд╕ рдЗрд╕ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ: libx264 рдФрд░ h264_omx


рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдЙрд╕ рдХреИрдорд░рд╛ рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдпрд╣ рдХрджрдо рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рддреИрдпрд╛рд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░реАрдо рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред


рдЕрдм рдХреИрдорд░реЗ рдХреЛ рдпрд╛рд╣рдХрд╛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рд╕реНрдЯреНрд░реАрдо рдХреЗ рдкрддреЗ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдХреЛрдбреЗрдХ, рдЫрд╡рд┐ рдЖрдХрд╛рд░, рдлреНрд░реЗрдо рджрд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдмрджрд▓реЗрдВред


рдорд╣рддреНрд╡рдкреВрд░реНрдг: рд╣реЛрдордХрд┐рдЯ рдореЗрдВ рдХреИрдорд░реЗ рдХреЗ рд╕рд╣реА рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╕рдВрдпреЛрдЬрди рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдФрд░ рдХреИрдорд░рд╛ рдФрд░ рд╕реНрдЯреНрд░реАрдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рджрд░реНрд╢рди рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ ffmpeg рдХреА рд░рдирд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддреА рд╣реИред


рдПрдХ рдХреИрдорд░рд╛ рдЬреЛрдбрд╝рдирд╛


рд╕реНрдЯреНрд░реАрдо рд╕реЗрдЯрдЕрдк


рдХреИрдорд░реЗ рдХреЛ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдХреЗ рдмрд╛рд╣рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЧреЗрдЯрд╡реЗ рдХреЗ рд╕рдорд╛рди рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП


рдХреИрдорд░рд╛ рдердВрдмрдиреЗрд▓


рдХреИрдорд░реЗ рд╕реЗ рдкреНрд░рд╕рд╛рд░рдг


рдмреЛрдирд╕


рдПрдХ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдХреИрдорд░реЗ рдХреЗ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рдЕрд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдБрдЧрд╛ред


рдХреИрдорд░реЗ рдХреЗ рдмрдЬрд╛рдп, рдЙрд╕реА ffmpeg рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЫрд╡рд┐, рдХрд┐рд╕реА рднреА рдЪрд┐рддреНрд░ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рддрд╕реНрд╡реАрд░реЛрдВ рдХреЛ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╕рд╛рде рднреА рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдЪрд┐рддреНрд░ рдкрд░ рдкрд╛рда, рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдФрд░ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдкрд╛рда рдУрд╡рд░рд▓реЗ рдХрд╛рд╕реНрдЯ


рдирддреАрдЬрддрди, рдЖрдк рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдбреИрд╢рдмреЛрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЕрдЧрд░ рдЖрдк рддрд╕реНрд╡реАрд░ рдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЧрддрд┐рд╢реАрд▓ рдбреЗрдЯрд╛ рдорд┐рд▓рддрд╛ рд╣реИред


рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдХреБрдЫ рд╕рдВрдХреЗрддрдХреЛрдВ рдореЗрдВ рдЪрд┐рддреНрд░ (рдбрд┐рд╕реНрдХ рдкрд░ рдлрд╝рд╛рдЗрд▓) рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдПрдХ рдЧреНрд░рд╛рдл рдирд┐рдХрд╛рд▓рд╛ред рдпрд╣ рдЧреНрд░рд╛рдлрд╝ рдорд┐рдирдЯ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЫрд╡рд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рддрд╛ рд╣реИред


(рдлрд╝рдВрдХреНрд╢рдВрд╕ createImage1, createImage2, рдПрдХ рдЧреНрд░рд╛рдлрд╝ рдХрд╛ рдЧрдарди рдФрд░ рдПрдХ рдЪрд┐рддреНрд░ рдкрд░ рдкрд╛рда рдХрд╛ рдереЛрдкрдирд╛ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рд╕рдВрдХреЗрдд рджреВрдВрдЧрд╛)ред

рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдЪрд┐рддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЧреНрд░рд╛рдл рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


IoBroker рдореЗрдВ рдЧреНрд░рд╛рдл рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдорд╛рдирдХ рддрд░реАрдХрд╛ рд╣реИ - рдлрд╝реНрд▓реЛрдЯ рдбреНрд░рд╛рдЗрд╡рд░ред рдпрд╣ рдбреНрд░рд╛рдЗрд╡рд░ рдПрдХ рд╡реЗрдм рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд╕рд╛рде рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдЪрд┐рддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░реНрд╡рд░ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ) рдкрд░ рдмрдирд╛рдП рдЧрдП рдЧреНрд░рд╛рдл рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд PhantomJS рдбреНрд░рд╛рдЗрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдкреГрд╖реНрда рдХрд╛ "рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ" рд▓реЗрддрд╛ рд╣реИ (рдЬрд┐рд╕ рдкрд░ рд╣рдо рдПрдХ рдлрд╝реНрд▓реЛрдЯ рдЧреНрд░рд╛рдлрд╝ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ)ред


рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдЧреНрд░рд╛рдлрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред


рдРрд╕реА рдПрдХ рдЪрд╛рд░реНрдЯ.рдЬреЗрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ http://www.chartjs.org/ рдЬреЛ рдЖрдкрдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЕрдЪреНрдЫреЗ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг http://www.chartjs.org/samples/latest/ )ред


рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ "рдХреИрдирд╡рд╛рд╕" (рдХреИрдирд╡рд╛рд╕, рдХреИрдирд╡рд╛рд╕) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ "рдХреИрдирд╡рд╛рд╕" рдФрд░ рдбреЛрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ "рд╕рд░реНрд╡рд░" рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЪрд╛рд░реНрдЯрдЬ-рдиреЛрдб рдкреИрдХреЗрдЬ ( https://github.com/vmpowerio/chartjs-node ) рдХрд░рддрд╛ рд╣реИред


рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдирд┐рд░реНрднрд░рддрд╛ рдХреИрдирд╡рд╛рд╕ рдкреИрдХреЗрдЬ ( https://github.com/Automattic/node-canvas ) рд╣реИ, рдЬрд┐рд╕реЗ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ (рдпрд╛ iobroker рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ) рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдЖрдк https://github.com/Automattic/node-canvas#compiling рд░рдЦрддреЗ рд╣реИрдВ , рдХреЗ рд▓рд┐рдП рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред


рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреНрд░рд╛рдЗрд╡рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЪрд╛рд░реНрдЯ.рдЬреЗрдПрд╕, рдЪрд╛рд░реНрдЯрдЬ-рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛, рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдпрдерд╛, рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯреЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░реЗрдВред


рдФрд░ рдлрд┐рд░, рдЖрдк рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред


рдиреАрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕рдореЗрдВ рдЗрддрд┐рд╣рд╛рд╕ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рд╛рдЬреНрдп рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред


рдЪреЗрддрд╛рд╡рдиреА! рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓ рдирд┐рд░реНрдорд╛рдг рд╣реИрдВ - рд╡рд╛рджрд╛ред рдпрд╣ рдХреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЪрд░рдгреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред


 'use strict'; const ChartjsNode = require('chartjs-node'); /** *  sendTo  Promise,      */ function sendToPromise(adapter, cmd, params) { return new Promise((resolve, reject) => { sendTo(adapter, cmd, params, (result) => { resolve(result); }); }); } //    const chartColors = { black: 'rgb(0, 0, 0)', red: 'rgb(255, 99, 132)', orange: 'rgb(255, 159, 64)', yellow: 'rgb(255, 205, 86)', green: 'rgb(75, 192, 192)', blue: 'rgb(54, 162, 235)', purple: 'rgb(153, 102, 255)', grey: 'rgb(201, 203, 207)' }; /** *        * : * @param config -     * @param filename -     * : * @param Promise -    */ function doDraw(config, filename) { //     640x480  var chartNode = new ChartjsNode(640, 480); return chartNode.drawChart(config) .then(() => { //     return chartNode.writeImageToFile('image/png', filename); }); } /** *     ChartJS. * : * @param Promise -    */ function prepareDraw0(){ // ,    var ; //  Promise     return new Promise((resolve, reject)=>{resolve()}) //       ,      .then(()=>{ //  ,   ,      = [ {"val":3,"ack":1,"ts":1539063874301}, {"val":5,"ack":1,"ts":1539063884299}, {"val":5.3,"ack":1,"ts":1539063894299}, {"val":3.39,"ack":1,"ts":1539063904301}, {"val":5.6,"ack":1,"ts":1539063914300}, {"val":-1.3,"ack":1,"ts":1539063924300}, {"val":-6.3,"ack":1,"ts":1539063934302}, {"val":1.23,"ack":1,"ts":1539063944301}, ]; }) //   -    .then(()=>{ const chartJsOptions = { //   -  type: 'line', data: { //    datasets: [ { //   label: '', //  backgroundColor: chartColors.black, borderColor: chartColors.black, //   pointRadius: 3, //    borderWidth: 3, //     ''        data: .map((item) => { return {y: item.val, t: new Date(item.ts)} }), //   -  fill: false, } ] }, options: { //   legend: { labels: { //   fontSize: 20, }, }, //   scales: { //  X xAxes: [{ //  -   type: 'time', display: true, //   scaleLabel: { display: true, labelString: '' }, }], //  Y yAxes: [{ //  -  type: 'linear', display: true, //   scaleLabel: { display: true, labelString: '' }, }] } } }; return chartJsOptions; }); } /** *     ChartJS. *         , *     . * * : * @param hours -  ,     * : * @param Promise -    */ function prepareDraw1(hours){ //   ,      const end = new Date().getTime(), start = end - 3600000*(hours || 1); // 1 =   //  ,       //   var , 2, 1, 2, 2; //  Promise     return new Promise((resolve, reject)=>{resolve()}) //       'mqtt.0.ESP_Easy..Temperature' .then(() => { return sendToPromise('history.0', 'getHistory', { id: 'mqtt.0.ESP_Easy..Temperature', options: { start: start, end: end, aggregate: 'onchange' } } ).then((result) => { //     ''  = result.result; }); }) //       'sonoff.0.chicken2.DS18B20_Temperature' .then(() => { return sendToPromise('history.0', 'getHistory', { id: 'sonoff.0.chicken2.DS18B20_Temperature', options: { start: start, end: end, aggregate: 'onchange' } }).then((result)=>{ //     '2' 2 = result.result; }); }) .then(() => { return sendToPromise('history.0', 'getHistory', { id: 'sonoff.0.sonoff_chicken_vent.DS18B20_Temperature', options: { start: start, end: end, aggregate: 'onchange' } }).then((result)=>{ 1 = result.result; }); }) .then(() => { return sendToPromise('history.0', 'getHistory', { id: 'sonoff.0.chicken2.POWER1', options: { start: start, end: end, aggregate: 'onchange' } }).then((result)=>{ 2 = result.result; }); }) .then(() => { return sendToPromise('history.0', 'getHistory', { id: 'sonoff.0.chicken2.POWER2', options: { start: start, end: end, aggregate: 'onchange' } }).then((result)=>{ 2 = result.result; }); }) //   -    .then(()=>{ const chartJsOptions = { //   -  type: 'line', data: { //    datasets: [ { //           label: ' ('+[.length - 1].val+')', //  backgroundColor: chartColors.blue, borderColor: chartColors.blue, //  . 0 -   pointRadius: 0, //    borderWidth: 3, //     ''        data: .map((item) => { return {y: item.val, t: new Date(item.ts)} }), //   -  fill: false, //   Y yAxisID: 'y-axis-1', },{ label: ' 1 ('+1[1.length - 1].val+')', backgroundColor: chartColors.green, borderColor: chartColors.green, pointRadius: 0, borderWidth: 3, data: 1.map((item) => { return {y: item.val, t: new Date(item.ts)} }), fill: false, yAxisID: 'y-axis-1', },{ label: ' 2 ('+2[2.length - 1].val+')', backgroundColor: chartColors.red, borderColor: chartColors.red, pointRadius: 0, borderWidth: 3, data: 2.map((item) => { return {y: item.val, t: new Date(item.ts)} }), fill: false, yAxisID: 'y-axis-1', },{ label: ' 2  ('+2[2.length - 1].val+')', backgroundColor: chartColors.yellow, borderColor: chartColors.yellow, pointRadius: 0, borderWidth: 1, data: 2.map((item) => { return {y: (item.val) ? 1 : 0, t: new Date(item.ts)} }), fill: true, lineTension: 0, steppedLine: true, yAxisID: 'y-axis-2', },{ label: ' 2  ('+2[2.length - 1].val+')', backgroundColor: chartColors.grey, borderColor: chartColors.grey, pointRadius: 0, borderWidth: 1, data: 2.map((item) => { return {y: (item.val) ? -1 : 0, t: new Date(item.ts)} }), fill: true, lineTension: 0, steppedLine: true, yAxisID: 'y-axis-2', } ] }, options: { //   legend: { labels: { //   fontSize: 20, }, }, //   scales: { //  X xAxes: [{ //  -   type: 'time', display: true, //   scaleLabel: { display: true, labelString: '' }, //    () time: { unit: 'minute', displayFormats: { minute: 'HH:mm' } }, }], //  Y yAxes: [{ //  -  type: 'linear', display: true, //   scaleLabel: { display: true, labelString: '' }, //   -  position: 'left', //   id: 'y-axis-1', },{ type: 'linear', display: true, scaleLabel: { display: true, labelString: '  ' }, ticks: { min: -4, max: 2 }, //   -  position: 'right', id: 'y-axis-2', }] } } }; return chartJsOptions; }); } function createImage(filename, callback){ // filename -  ,       //    prepareDraw1(2) //     .then((result) => { //        return doDraw(result, filename); }) .then(()=>{ if (callback) callback(); }) .catch((err)=>{ console.error(err); }); } 

рдзрд╛рд░рд╛ рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рд╕рд╛рд░рдг рдЫрд╡рд┐


рдердВрдмрдиреЗрд▓ рдЫрд╡рд┐ рдХреЛ рдкреНрд░рддрд┐ рдорд┐рдирдЯ рд▓рдЧрднрдЧ рдПрдХ рдмрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╣рд░ 10 рд╕реЗрдХрдВрдб рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЫрд╡рд┐ рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗ:


 var fs = require('fs'); //  10    schedule("*/10 * * * * *", () => {  createImage1('/tmp/1_new.jpg', ()=> {      fs.renameSync('/tmp/1_new.jpg', '/tmp/1.jpg');  });  createImage2('/tmp/2_new.jpg', ()=> {      fs.renameSync('/tmp/2_new.jpg', '/tmp/2.jpg');  }); }); 

рдЦрд╝рд╛рд╕рд┐рдпрдд рдпрд╣ рд╣реИ рдХрд┐ рдЫрд╡рд┐ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рддрд╕реНрд╡реАрд░ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ ffmpeg рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рди рд╣реЛ :) рдЗрд╕рд▓рд┐рдП, рдЪрд┐рддреНрд░ рдкрд╣рд▓реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрдирддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдЕрдм, рдХреИрдорд░рд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ, рд╕реНрдЯреНрд░реАрдо рдкрддреЗ рдХреЗ рдмрдЬрд╛рдп рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдФрд░ рдЙрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдЪрд┐рддреНрд░ "рдЕрдкрдбреЗрдЯреЗрдб" (рдкреИрд░рд╛рдореАрдЯрд░ "-рд▓реВрдк 1") рд╣реИред рдпрд╣ рдХреИрдорд░реЗ рдХреЗ рдЙрдиреНрдирдд рдЧреБрдгреЛрдВ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпреЗ рдЧреБрдг ffmpeg рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЛ рдПрдлрдПрдлрдПрдордкреА рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред


рдЧреБрдгреЛрдВ рдХреЛ 2 рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: "рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди" (рдХреИрдорд░реЗ рдХреА рдПрдХ рдЫреЛрдЯреА рдЫрд╡рд┐) рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдЫрд╡рд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рд╕рд╛рдеред


Ffmpeg рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╡рд┐рдХрд▓реНрдк


рд▓рд╛рдЗрд╡ рдкреНрд░рд╕рд╛рд░рдг рдЫрд╡рд┐


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


ioBroker . , . , , .


, Yahka , Material. , HomeKit.


Yahka, HomeKit тАФ Ham, HomeBridge . .

Source: https://habr.com/ru/post/hi433798/


All Articles