рдиреЛрдб-рд░реЗрдб рдХреЗ рд╕рд╛рде рд╣реЛрдордмреНрд░рд┐рдЬ рдСрдЯреЛрдореЗрд╢рди

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╣реЛрдордмреНрд░рд┐рдЬ рдХрд╛ рдПрдХ рдореБрдЦреНрдп рдиреБрдХрд╕рд╛рди рдЙрдиреНрдирдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдХрдореА рд╣реИред рд╕рднреА рд╕реНрд╡рдЪрд╛рд▓рди рд╣реЛрдо рд╕реЗрдВрдЯрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдПрдХ iPad (рдЪрд╛рд░реНрдЬрд┐рдВрдЧ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ), рдПрдкреНрдкрд▓ рдЯреАрд╡реА рдпрд╛ рд╣реЛрдордкреЙрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рднреА рдХреЗ рдкрд╛рд╕ рдпреЗ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣реЛрдордХреАрдЯ рдХреЗ рдкрд╛рд╕ рдмрд╣реБрдд рдЦрд░рд╛рдм рд╕реНрд╡рдЪрд╛рд▓рди рд╣реИред рдиреЛрдб-рд░реЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдЦ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реЛрдордмреНрд░рд┐рдЬ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ ред



рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдиреЛрдб-рд░реЗрдб рд╡рд┐рднрд┐рдиреНрди рдиреЛрдбреНрд╕ (рдмреНрд▓реЙрдХ) рдХреЗ рдмреАрдЪ рд▓рд┐рдВрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдХреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░, рдПрдкреАрдЖрдИ рдФрд░ рдСрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред

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


рд░рд╛рд╕реНрдкрдмрд┐рдпрди рдкрд░, рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

sudo apt-get install nodered sudo systemctl enable nodered.service sudo service nodered start 

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдиреЛрдб-рд░реЗрдб 1880 рдкреЛрд░реНрдЯ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред

рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрд╛рддреНрдордХрддрд╛рдУрдВ рдХреЗ рдмреНрд▓реЙрдХ рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ ред рдмрдЦреНрд╢рд╛ рдирд╣реАрдВ рдФрд░ рд╣реЛрдордмреНрд░рд┐рдЬред рдиреЛрдб-рд▓рд╛рд▓-рдХрдВрдЯреНрд░реАрдм-рд╣реЛрдордмреНрд░рд┐рдЬ-рд╕реНрд╡рдЪрд╛рд▓рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

 cd ~/.node-red npm install node-red-contrib-homebridge-automation sudo service nodered restart 

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



рдЕрдм, рдЗрдВрдЬреЗрдХреНрд╢рди рдмреНрд▓реЙрдХ рдореЗрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рдкреНрд░рдХрд╛рд╢ рдХреЛ рдкреНрд░рдХрд╛рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред Hb-contoll рдХреЗ рдЕрд▓рд╛рд╡рд╛ , hb-event, hb-status рдФрд░ hb-resume рдмреНрд▓реЙрдХ рднреА рд╣реИрдВред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдмреНрд▓реЙрдХреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдлрдВрдХреНрд╢рди рдмреНрд▓реЙрдХ рдХреЛрдб
 var ret_msg={}; ret_msg.payload = {}; ret_msg.payload.On = true; return ret_msg; 


рдлрд╝рдВрдХреНрд╢рди рдмреНрд▓реЙрдХ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдмреНрд▓реЙрдХ рдкреЗрд▓реЛрдб рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢ рдЪрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ; рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдиреЛрдб-рд░реЗрдб рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмреНрд▓реЙрдХ рдкреЗрд▓реЛрдб рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ рдбрд┐рдмрдЧ рдмреНрд▓реЙрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдк рдмреНрд▓реЙрдХ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЖрдк рд╕рдордЭ рд╕рдХреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдкрдХрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рддреЛ рддреНрд░реБрдЯрд┐ рдХреНрдпрд╛ рд╣реИред

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

рдиреЛрдб-рд░реЗрдб рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ MQTT рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред MQTT рдмреНрд▓реЙрдХ рдЬреЛрдбрд╝реЗрдВ, рд╕рд░реНрд╡рд░ рдПрдбреНрд░реЗрд╕ рдФрд░ рдЯреЙрдкрд┐рдХ рдХреНрдпреВрдм рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред



рдПрдХ рдШрди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
рд╢реЗрдХ, рд╡реЗрдХрдЕрдк, рдлреЙрд▓, рдЯреИрдк, рд╕реНрд▓рд╛рдЗрдб, рдлреНрд▓рд┐рдк 180, рдлреНрд▓рд┐рдк 90, рд░реЛрдЯ_рд▓реЗрдлреНрдЯ рдФрд░ рд░реЛрдЯ_рд░

рдПрдХ рд░рд╛рдЬреНрдп рдХреЛ рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рд┐рдЪ рдмреНрд▓реЙрдХ рдЬреЛрдбрд╝реЗрдВред рдлреНрд▓рд┐рдк 90 рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рд╕реНрд╡рд┐рдЪ рдореЗрдВ рд╣рд┐рд▓рд╛рдПрдВ рдФрд░ рдЯреИрдк рдХрд░реЗрдВ ред рдмрд▓реНрдм рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ hb-status рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рдПрдЪрдмреА-рд╕реНрдЯреЗрдЯ рдмреНрд▓реЙрдХ рдХреЛ рдЗрдиреНрд╡рд░реНрдЯ рдХрд░рдХреЗ рд░рд╛рдЬреНрдп рдореЗрдВ рдЗрдирд╡рд░реНрдЯ рдСрди рд╡реИрд▓реНрдпреВ рдмреНрд▓реЙрдХ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдПрдЪрдмреА-рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ , рдФрд░ рдЬрдм рдХреНрдпреВрдм рдХреЛ рдШреБрдорд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмрд▓реНрдм рдЪрд╛рд▓реВ / рдмрдВрдж рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:



рдореВрд▓реНрдп рдХреЛрдб рдкрд░ рдЙрд▓реНрдЯрд╛
 var ret_msg=msg; ret_msg.payload.On = !msg.payload.On; return ret_msg; 


рдкреНрд░рд╡рд╛рд╣ рдпрд╣рд╛рдБ рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдлреНрд▓реЛ
 [ { "id": "f0f31eb6.22f16", "type": "tab", "label": "Flow 1", "disabled": false, "info": "" }, { "id": "e0f72465.9e4fb8", "type": "mqtt in", "z": "f0f31eb6.22f16", "name": "", "topic": "zigbee2mqtt/0x00158d00010f0528", "qos": "2", "datatype": "auto", "broker": "8ec472b.e73e29", "x": 160, "y": 80, "wires": [ [ "43f74679.730588" ] ] }, { "id": "8539109.d872ff", "type": "debug", "z": "f0f31eb6.22f16", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "x": 670, "y": 60, "wires": [] }, { "id": "c5db7c5b.399f4", "type": "hb-status", "z": "f0f31eb6.22f16", "name": "Room1", "Homebridge": "HomeBridge", "Manufacturer": "YeeLight", "Service": "Lightbulb", "device": "HomeBridgeA1:23:AD:E3:CD:32YeeLightRoom100000043", "conf": "7948a496.505c2c", "x": 340, "y": 180, "wires": [ [ "9ef696d9.51a378" ] ] }, { "id": "43f74679.730588", "type": "switch", "z": "f0f31eb6.22f16", "name": "CubeActions", "property": "payload", "propertyType": "msg", "rules": [ { "t": "cont", "v": "flip90", "vt": "str" }, { "t": "cont", "v": "tap", "vt": "str" }, { "t": "cont", "v": "shake", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 3, "x": 150, "y": 240, "wires": [ [ "c5db7c5b.399f4" ], [], [] ] }, { "id": "f476dcba.a6511", "type": "hb-control", "z": "f0f31eb6.22f16", "name": "Room1", "Homebridge": "HomeBridge", "Manufacturer": "YeeLight", "Service": "Lightbulb", "device": "HomeBridgeA1:23:AD:E3:CD:32YeeLightRoom100000043", "conf": "7948a496.505c2c", "x": 700, "y": 180, "wires": [] }, { "id": "9ef696d9.51a378", "type": "function", "z": "f0f31eb6.22f16", "name": "Invert On Value", "func": "var ret_msg=msg;\nret_msg.payload.On = !msg.payload.On;\nreturn ret_msg;", "outputs": 1, "noerr": 0, "x": 520, "y": 180, "wires": [ [ "f476dcba.a6511" ] ] }, { "id": "8ec472b.e73e29", "type": "mqtt-broker", "z": "", "name": "mosquitto", "broker": "127.0.0.1", "port": "1883", "clientid": "", "usetls": false, "compatmode": true, "keepalive": "60", "cleansession": true, "birthTopic": "", "birthQos": "0", "birthPayload": "", "closeTopic": "", "closeQos": "0", "closePayload": "", "willTopic": "", "willQos": "0", "willPayload": "" }, { "id": "7948a496.505c2c", "type": "hb-conf", "z": "", "username": "111-11-111" } ] 


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

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

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


All Articles