[{"data":1,"prerenderedAt":1039},["ShallowReactive",2],{"manifest":3,"hreflang-alternates":990,"doc-pl-architektura-systemu\u002Fbezpieczenstwo":993},{"site":4,"branding":6,"contact":8,"organization_schema":10,"languages":54,"website":62,"docs":187,"blog":936},{"title":5},"Voldeno",{"logo":7,"company_name":5},"\u002Fimages\u002Flogo\u002Flogo_310.png",{"email":9},"contact@voldeno.com",{"schema_name":5,"legal_name":11,"founding_date":12,"tax_id":13,"identifiers":14,"address":21,"primary_email":9,"knows_about":26,"contact_points":39,"contact_point_available_languages":51},"Voldeno sp. z o.o.","2024","PL7252346262",[15,18],{"name":16,"value":17},"KRS","0001123648",{"name":19,"value":20},"REGON","52946949200000",{"street_address":22,"address_locality":23,"postal_code":24,"address_country":25},"Ogrodowa 8, Lobby B, 3p.","Łódź","91-062","PL",{"en":27,"pl":34},[28,29,30,31,32,33],"Smart Home","Smart Home Systems","Smart Home Automation","Building Automation","IoT","Home Automation System",[35,28,36,37,32,38],"Inteligentny dom","System Smart Home","Automatyka budynkowa","System automatyki domowej",[40,43,46,49],{"email":41,"contact_type":42},"support@voldeno.com","technical support",{"email":44,"contact_type":45},"sales@voldeno.com","sales",{"email":47,"contact_type":48},"partners@voldeno.com","partnerships",{"email":9,"contact_type":50},"customer service",[52,53],"Polish","English",[55,59],{"code":56,"name":57,"default":58},"pl","Polski",true,{"code":60,"name":53,"default":61},"en",false,{"enabled":58,"navigation":63,"path_keys":158,"section_index_slugs":180},{"pl":64,"en":121},[65,71,77,83,93,99,105,116],{"title":66,"slug":67,"path":68,"order":69,"template":70},"Smart Home, Automatyka budynkowa - Voldeno","index","pl\u002Findex",0,"home",{"title":72,"slug":73,"path":74,"order":75,"template":76},"Twój Dom","twoj-dom","pl\u002Ftwoj-dom",1,"homeowners",{"title":78,"slug":79,"path":80,"order":81,"template":82},"Dla Profesjonalistów","dla-profesjonalistow","pl\u002Fdla-profesjonalistow",2,"professionals",{"title":84,"slug":85,"path":86,"order":87,"children":88},"Produkty","produkty","pl\u002Fprodukty",3,[89],{"title":90,"slug":67,"path":91,"order":75,"template":92},"Inteligentne produkty​ Smart Home Voldeno","pl\u002Fprodukty\u002Findex","products",{"title":94,"slug":95,"path":96,"order":97,"template":98},"Kontakt","kontakt","pl\u002Fkontakt",4,"contact",{"title":100,"slug":101,"path":102,"order":103,"template":104},"O nas","o-nas","pl\u002Fo-nas",5,"about",{"title":106,"slug":107,"path":108,"order":109,"children":110},"Prawne","prawne","pl\u002Fprawne",6,[111],{"title":112,"slug":113,"path":114,"order":75,"template":115},"Polityka prywatności","polityka-prywatnosci","pl\u002Fprawne\u002Fpolityka-prywatnosci","page",{"title":117,"slug":118,"path":119,"order":120},"Realizacje","realizacje","pl\u002Frealizacje",999,[122,125,129,132,139,142,145,154],{"title":123,"slug":67,"path":124,"order":69,"template":70},"Voldeno: Smart Home, Building Automation","en\u002Findex",{"title":126,"slug":127,"path":128,"order":75,"template":76},"Your Home","your-home","en\u002Fyour-home",{"title":130,"slug":82,"path":131,"order":81,"template":82},"For Professionals","en\u002Fprofessionals",{"title":133,"slug":92,"path":134,"order":87,"children":135},"Products","en\u002Fproducts",[136],{"title":137,"slug":67,"path":138,"order":75,"template":92},"Smart Home Products​ from Voldeno","en\u002Fproducts\u002Findex",{"title":140,"slug":98,"path":141,"order":97,"template":98},"Contact","en\u002Fcontact",{"title":143,"slug":104,"path":144,"order":103,"template":104},"About Us","en\u002Fabout",{"title":146,"slug":147,"path":148,"order":109,"children":149},"Legal","legal","en\u002Flegal",[150],{"title":151,"slug":152,"path":153,"order":75,"template":115},"Privacy Policy","privacy-policy","en\u002Flegal\u002Fprivacy-policy",{"title":155,"slug":156,"path":157,"order":120},"Projects","projects","en\u002Fprojects",{"module_hub":159,"module_io":162,"module_1wire":165,"privacy":168,"downloads":171,"module_relay":174,"module_analog_input":177},{"pl":160,"en":161},"produkty\u002Fhub","products\u002Fhub",{"en":163,"pl":164},"products\u002Fio","produkty\u002Fio",{"pl":166,"en":167},"produkty\u002F1wire","products\u002F1wire",{"en":169,"pl":170},"legal\u002Fprivacy-policy","prawne\u002Fpolityka-prywatnosci",{"en":172,"pl":173},"downloads","pobieranie",{"pl":175,"en":176},"produkty\u002Frelay","products\u002Frelay",{"pl":178,"en":179},"produkty\u002Fanalog-input","products\u002Fanalog-input",{"en":181,"pl":184},{"products":182,"projects":183},"products\u002Findex","projects\u002Findex",{"realizacje":185,"produkty":186},"realizacje\u002Findex","produkty\u002Findex",{"enabled":58,"navigation":188,"section_redirects":909},{"en":189,"pl":645},[190,211,220,245,258,580,594,608,630,640],{"title":191,"slug":192,"path":193,"order":75,"children":194},"Getting Started","getting-started","en\u002Fdocs\u002Fgetting-started",[195,199,203,207],{"title":196,"slug":197,"path":198,"order":75},"Core Concepts and Terminology","concepts","en\u002Fdocs\u002Fgetting-started\u002Fconcepts",{"title":200,"slug":201,"path":202,"order":81},"System Overview for Installers","system-overview","en\u002Fdocs\u002Fgetting-started\u002Fsystem-overview",{"title":204,"slug":205,"path":206,"order":87},"How to define logic in Voldeno Studio from scratch","define-logic-in-voldeno-studio","en\u002Fdocs\u002Fgetting-started\u002Fdefine-logic-in-voldeno-studio",{"title":208,"slug":209,"path":210,"order":97},"Volang and VolangVM: why a smart home needs its own automation language","volang-and-volangvm","en\u002Fdocs\u002Fgetting-started\u002Fvolang-and-volangvm",{"title":212,"slug":213,"path":214,"order":81,"children":215},"System Architecture","system-architecture","en\u002Fdocs\u002Fsystem-architecture",[216],{"title":217,"slug":218,"path":219,"order":75},"Security Architecture","security","en\u002Fdocs\u002Fsystem-architecture\u002Fsecurity",{"title":221,"slug":222,"path":223,"order":87,"children":224},"Modules & Peripherals","modules","en\u002Fdocs\u002Fmodules",[225,229,233,237,241],{"title":226,"slug":227,"path":228,"order":75},"Hub Module Wiring","hub-wiring","en\u002Fdocs\u002Fmodules\u002Fhub-wiring",{"title":230,"slug":231,"path":232,"order":81},"I\u002FO Module Wiring","io-wiring","en\u002Fdocs\u002Fmodules\u002Fio-wiring",{"title":234,"slug":235,"path":236,"order":87},"Relay Module Wiring","relay-wiring","en\u002Fdocs\u002Fmodules\u002Frelay-wiring",{"title":238,"slug":239,"path":240,"order":97},"1-Wire Module Wiring","1wire-wiring","en\u002Fdocs\u002Fmodules\u002F1wire-wiring",{"title":242,"slug":243,"path":244,"order":103},"Analog Input Module Wiring","analog-input-wiring","en\u002Fdocs\u002Fmodules\u002Fanalog-input-wiring",{"title":246,"slug":247,"path":248,"order":97,"children":249},"Wiring Guidelines","wiring","en\u002Fdocs\u002Fwiring",[250,254],{"title":251,"slug":252,"path":253,"order":75},"Bus Topology & Wiring","bus-topology","en\u002Fdocs\u002Fwiring\u002Fbus-topology",{"title":255,"slug":256,"path":257,"order":81},"Power Supply Sizing and Distribution","power-supply","en\u002Fdocs\u002Fwiring\u002Fpower-supply",{"title":259,"slug":260,"path":261,"order":103,"children":262},"Logic Blocks","logic-blocks","en\u002Fdocs\u002Flogic-blocks",[263,269,320,565],{"title":264,"slug":265,"path":266,"order":69,"template":267,"translation_key":268},"Overview","overview","en\u002Fdocs\u002Flogic-blocks\u002Foverview","logic-block-index","logic-blocks-overview",{"title":270,"slug":271,"path":272,"order":75,"children":273},"Input","input","en\u002Fdocs\u002Flogic-blocks\u002Finput",[274,280,285,290,295,300,305,310,315],{"title":275,"slug":276,"path":277,"order":69,"template":278,"translation_key":279},"Binary input","binary_input","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fbinary_input","logic-block","logic-block-binary_input",{"title":281,"slug":282,"path":283,"order":69,"template":278,"translation_key":284},"Boolean constant","boolean_constant","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fboolean_constant","logic-block-boolean_constant",{"title":286,"slug":287,"path":288,"order":69,"template":278,"translation_key":289},"Numeric constant","numeric_constant","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fnumeric_constant","logic-block-numeric_constant",{"title":291,"slug":292,"path":293,"order":69,"template":278,"translation_key":294},"Numeric input","numeric_input","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fnumeric_input","logic-block-numeric_input",{"title":296,"slug":297,"path":298,"order":69,"template":278,"translation_key":299},"Mode monitor","operation_mode_monitor","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Foperation_mode_monitor","logic-block-operation_mode_monitor",{"title":301,"slug":302,"path":303,"order":69,"template":278,"translation_key":304},"PulseAt","pulse_at","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fpulse_at","logic-block-pulse_at",{"title":306,"slug":307,"path":308,"order":69,"template":278,"translation_key":309},"Schedule","schedule","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fschedule","logic-block-schedule",{"title":311,"slug":312,"path":313,"order":69,"template":278,"translation_key":314},"String constant","string_constant","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fstring_constant","logic-block-string_constant",{"title":316,"slug":317,"path":318,"order":69,"template":278,"translation_key":319},"Switch","switch","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fswitch","logic-block-switch",{"title":321,"slug":322,"path":323,"order":81,"children":324},"Process","process","en\u002Fdocs\u002Flogic-blocks\u002Fprocess",[325,330,335,340,345,350,355,360,365,370,375,380,385,390,395,400,405,410,415,420,425,430,435,440,445,450,455,460,465,470,475,480,485,490,495,500,505,510,515,520,525,530,535,540,545,550,555,560],{"title":326,"slug":327,"path":328,"order":69,"template":278,"translation_key":329},"Binary limiter","binary_limiter","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fbinary_limiter","logic-block-binary_limiter",{"title":331,"slug":332,"path":333,"order":69,"template":278,"translation_key":334},"Boolean to string","boolean_to_string","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fboolean_to_string","logic-block-boolean_to_string",{"title":336,"slug":337,"path":338,"order":69,"template":278,"translation_key":339},"Climate regulator","climate_regulator","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fclimate_regulator","logic-block-climate_regulator",{"title":341,"slug":342,"path":343,"order":69,"template":278,"translation_key":344},"Climate regulator hub","climate_regulator_hub","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fclimate_regulator_hub","logic-block-climate_regulator_hub",{"title":346,"slug":347,"path":348,"order":69,"template":278,"translation_key":349},"Delay","delay","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fdelay","logic-block-delay",{"title":351,"slug":352,"path":353,"order":69,"template":278,"translation_key":354},"Delayed Pulse","delayed_pulse","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fdelayed_pulse","logic-block-delayed_pulse",{"title":356,"slug":357,"path":358,"order":69,"template":278,"translation_key":359},"Door, window","door_window_monitor","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fdoor_window_monitor","logic-block-door_window_monitor",{"title":361,"slug":362,"path":363,"order":69,"template":278,"translation_key":364},"Edge detector","edge_detector","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fedge_detector","logic-block-edge_detector",{"title":366,"slug":367,"path":368,"order":69,"template":278,"translation_key":369},"Gate","gate","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fgate","logic-block-gate",{"title":371,"slug":372,"path":373,"order":69,"template":278,"translation_key":374},"HTTP Request","http_request","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fhttp_request","logic-block-http_request",{"title":376,"slug":377,"path":378,"order":69,"template":278,"translation_key":379},"Hysteresis","hysteresis","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fhysteresis","logic-block-hysteresis",{"title":381,"slug":382,"path":383,"order":69,"template":278,"translation_key":384},"Irrigation","irrigation","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Firrigation","logic-block-irrigation",{"title":386,"slug":387,"path":388,"order":69,"template":278,"translation_key":389},"JSON Get Boolean","json_get_boolean","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fjson_get_boolean","logic-block-json_get_boolean",{"title":391,"slug":392,"path":393,"order":69,"template":278,"translation_key":394},"JSON Get Number","json_get_number","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fjson_get_number","logic-block-json_get_number",{"title":396,"slug":397,"path":398,"order":69,"template":278,"translation_key":399},"JSON Get String","json_get_string","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fjson_get_string","logic-block-json_get_string",{"title":401,"slug":402,"path":403,"order":69,"template":278,"translation_key":404},"Level to pulse","level_to_pulse","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flevel_to_pulse","logic-block-level_to_pulse",{"title":406,"slug":407,"path":408,"order":69,"template":278,"translation_key":409},"Logic::And","logic_and","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flogic_and","logic-block-logic_and",{"title":411,"slug":412,"path":413,"order":69,"template":278,"translation_key":414},"Logic::Not","logic_not","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flogic_not","logic-block-logic_not",{"title":416,"slug":417,"path":418,"order":69,"template":278,"translation_key":419},"Logic::Or","logic_or","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flogic_or","logic-block-logic_or",{"title":421,"slug":422,"path":423,"order":69,"template":278,"translation_key":424},"Math::Abs","math_abs","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_abs","logic-block-math_abs",{"title":426,"slug":427,"path":428,"order":69,"template":278,"translation_key":429},"Math::Add","math_add","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_add","logic-block-math_add",{"title":431,"slug":432,"path":433,"order":69,"template":278,"translation_key":434},"Math::Average","math_average","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_average","logic-block-math_average",{"title":436,"slug":437,"path":438,"order":69,"template":278,"translation_key":439},"Math::Ceil","math_ceil","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_ceil","logic-block-math_ceil",{"title":441,"slug":442,"path":443,"order":69,"template":278,"translation_key":444},"Math::Divide","math_divide","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_divide","logic-block-math_divide",{"title":446,"slug":447,"path":448,"order":69,"template":278,"translation_key":449},"Math::Floor","math_floor","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_floor","logic-block-math_floor",{"title":451,"slug":452,"path":453,"order":69,"template":278,"translation_key":454},"Math::Max","math_max","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_max","logic-block-math_max",{"title":456,"slug":457,"path":458,"order":69,"template":278,"translation_key":459},"Math::Min","math_min","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_min","logic-block-math_min",{"title":461,"slug":462,"path":463,"order":69,"template":278,"translation_key":464},"Math::Modulo","math_modulo","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_modulo","logic-block-math_modulo",{"title":466,"slug":467,"path":468,"order":69,"template":278,"translation_key":469},"Math::Multiply","math_multiply","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_multiply","logic-block-math_multiply",{"title":471,"slug":472,"path":473,"order":69,"template":278,"translation_key":474},"Math::Random","math_random","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_random","logic-block-math_random",{"title":476,"slug":477,"path":478,"order":69,"template":278,"translation_key":479},"Math::Round","math_round","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_round","logic-block-math_round",{"title":481,"slug":482,"path":483,"order":69,"template":278,"translation_key":484},"Math::Subtract","math_subtract","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_subtract","logic-block-math_subtract",{"title":486,"slug":487,"path":488,"order":69,"template":278,"translation_key":489},"Motor axis","motor_axis","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmotor_axis","logic-block-motor_axis",{"title":491,"slug":492,"path":493,"order":69,"template":278,"translation_key":494},"Moving average","moving_average","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmoving_average","logic-block-moving_average",{"title":496,"slug":497,"path":498,"order":69,"template":278,"translation_key":499},"Number to string","number_to_string","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fnumber_to_string","logic-block-number_to_string",{"title":501,"slug":502,"path":503,"order":69,"template":278,"translation_key":504},"Numeric latch","numeric_latch","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fnumeric_latch","logic-block-numeric_latch",{"title":506,"slug":507,"path":508,"order":69,"template":278,"translation_key":509},"Numeric predicate","numeric_predicate","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fnumeric_predicate","logic-block-numeric_predicate",{"title":511,"slug":512,"path":513,"order":69,"template":278,"translation_key":514},"Numeric throttle","numeric_throttle","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fnumeric_throttle","logic-block-numeric_throttle",{"title":516,"slug":517,"path":518,"order":69,"template":278,"translation_key":519},"PubSub::Publish","pubsub","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fpubsub","logic-block-pubsub",{"title":521,"slug":522,"path":523,"order":69,"template":278,"translation_key":524},"Pulse counter","pulse_counter","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fpulse_counter","logic-block-pulse_counter",{"title":526,"slug":527,"path":528,"order":69,"template":278,"translation_key":529},"Pulse gate","pulse_gate","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fpulse_gate","logic-block-pulse_gate",{"title":531,"slug":532,"path":533,"order":69,"template":278,"translation_key":534},"Pulse throttle","pulse_throttle","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fpulse_throttle","logic-block-pulse_throttle",{"title":536,"slug":537,"path":538,"order":69,"template":278,"translation_key":539},"Sequencer","sequencer","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fsequencer","logic-block-sequencer",{"title":541,"slug":542,"path":543,"order":69,"template":278,"translation_key":544},"Shading","shading","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fshading","logic-block-shading",{"title":546,"slug":547,"path":548,"order":69,"template":278,"translation_key":549},"String format","string_format","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fstring_format","logic-block-string_format",{"title":551,"slug":552,"path":553,"order":69,"template":278,"translation_key":554},"String latch","string_latch","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fstring_latch","logic-block-string_latch",{"title":556,"slug":557,"path":558,"order":69,"template":278,"translation_key":559},"Toggle","toggle","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Ftoggle","logic-block-toggle",{"title":561,"slug":562,"path":563,"order":69,"template":278,"translation_key":564},"Variable Delayed Pulse","variable_delayed_pulse","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fvariable_delayed_pulse","logic-block-variable_delayed_pulse",{"title":566,"slug":567,"path":568,"order":87,"children":569},"Output","output","en\u002Fdocs\u002Flogic-blocks\u002Foutput",[570,575],{"title":571,"slug":572,"path":573,"order":69,"template":278,"translation_key":574},"Mode controller","operation_mode_controller","en\u002Fdocs\u002Flogic-blocks\u002Foutput\u002Foperation_mode_controller","logic-block-operation_mode_controller",{"title":576,"slug":577,"path":578,"order":69,"template":278,"translation_key":579},"Relay","relay","en\u002Fdocs\u002Flogic-blocks\u002Foutput\u002Frelay","logic-block-relay",{"title":581,"slug":582,"path":583,"order":109,"children":584},"Volang Programming Language","volang","en\u002Fdocs\u002Fvolang",[585,589],{"title":586,"slug":587,"path":588,"order":75},"The Volang Language","language","en\u002Fdocs\u002Fvolang\u002Flanguage",{"title":590,"slug":591,"path":592,"order":81,"template":593},"Standard Library","stdlib","en\u002Fdocs\u002Fvolang\u002Fstdlib","api-reference",{"title":595,"slug":596,"path":597,"order":598,"children":599},"Software & Tools","software","en\u002Fdocs\u002Fsoftware",7,[600,604],{"title":601,"slug":602,"path":603,"order":75},"Voldeno Studio - Installation and Walkthrough","studio","en\u002Fdocs\u002Fsoftware\u002Fstudio",{"title":605,"slug":606,"path":607,"order":81},"Voldeno Studio - Schedules","schedules","en\u002Fdocs\u002Fsoftware\u002Fschedules",{"title":609,"slug":610,"path":611,"order":612,"children":613},"How-to Guides & Recipes","how-to","en\u002Fdocs\u002Fhow-to",8,[614,618,622,626],{"title":615,"slug":616,"path":617,"order":75},"What is a smart home and how does it work?","what-is-a-smart-home","en\u002Fdocs\u002Fhow-to\u002Fwhat-is-a-smart-home",{"title":619,"slug":620,"path":621,"order":81},"How to choose a smart home system: a practical guide","how-to-choose-a-smart-home-system","en\u002Fdocs\u002Fhow-to\u002Fhow-to-choose-a-smart-home-system",{"title":623,"slug":624,"path":625,"order":87},"How much does a smart home cost? Three Voldeno installation variants with modules and prices","how-much-does-a-smart-home-cost","en\u002Fdocs\u002Fhow-to\u002Fhow-much-does-a-smart-home-cost",{"title":627,"slug":628,"path":629,"order":97},"7 most common smart home design mistakes","smart-home-design-mistakes","en\u002Fdocs\u002Fhow-to\u002Fsmart-home-design-mistakes",{"title":631,"slug":632,"path":633,"order":634,"children":635},"Troubleshooting & Diagnostics","troubleshooting","en\u002Fdocs\u002Ftroubleshooting",9,[636],{"title":637,"slug":638,"path":639,"order":75},"Bus Communication Troubleshooting","bus-communication","en\u002Fdocs\u002Ftroubleshooting\u002Fbus-communication",{"title":641,"slug":642,"path":643,"order":644},"Frequently Asked Questions","faq","en\u002Fdocs\u002Ffaq",10,[646,667,676,701,714,853,865,876,897,906],{"title":647,"slug":648,"path":649,"order":75,"children":650},"Pierwsze kroki","pierwsze-kroki","pl\u002Fdocs\u002Fpierwsze-kroki",[651,655,659,663],{"title":652,"slug":653,"path":654,"order":75},"Podstawowe pojęcia i terminologia","pojecia","pl\u002Fdocs\u002Fpierwsze-kroki\u002Fpojecia",{"title":656,"slug":657,"path":658,"order":81},"Przegląd systemu dla instalatorów","przeglad-systemu","pl\u002Fdocs\u002Fpierwsze-kroki\u002Fprzeglad-systemu",{"title":660,"slug":661,"path":662,"order":87},"Jak zdefiniować logikę w Voldeno Studio od zera","definiowanie-logiki-w-voldeno-studio","pl\u002Fdocs\u002Fpierwsze-kroki\u002Fdefiniowanie-logiki-w-voldeno-studio",{"title":664,"slug":665,"path":666,"order":97},"Volang i VolangVM: po co inteligentny dom potrzebuje własnego języka automatyki","volang-i-volangvm","pl\u002Fdocs\u002Fpierwsze-kroki\u002Fvolang-i-volangvm",{"title":668,"slug":669,"path":670,"order":81,"children":671},"Architektura systemu","architektura-systemu","pl\u002Fdocs\u002Farchitektura-systemu",[672],{"title":673,"slug":674,"path":675,"order":75},"Architektura bezpieczeństwa","bezpieczenstwo","pl\u002Fdocs\u002Farchitektura-systemu\u002Fbezpieczenstwo",{"title":677,"slug":678,"path":679,"order":87,"children":680},"Moduły i peryferia","moduly","pl\u002Fdocs\u002Fmoduly",[681,685,689,693,697],{"title":682,"slug":683,"path":684,"order":75},"Okablowanie modułu HUB","okablowanie-hub","pl\u002Fdocs\u002Fmoduly\u002Fokablowanie-hub",{"title":686,"slug":687,"path":688,"order":81},"Okablowanie modułu I\u002FO","okablowanie-io","pl\u002Fdocs\u002Fmoduly\u002Fokablowanie-io",{"title":690,"slug":691,"path":692,"order":87},"Okablowanie modułu RELAY","okablowanie-relay","pl\u002Fdocs\u002Fmoduly\u002Fokablowanie-relay",{"title":694,"slug":695,"path":696,"order":97},"Okablowanie modułu 1-Wire","okablowanie-1wire","pl\u002Fdocs\u002Fmoduly\u002Fokablowanie-1wire",{"title":698,"slug":699,"path":700,"order":103},"Okablowanie modułu Analog Input","okablowanie-analog-input","pl\u002Fdocs\u002Fmoduly\u002Fokablowanie-analog-input",{"title":702,"slug":703,"path":704,"order":97,"children":705},"Wytyczne okablowania","okablowanie","pl\u002Fdocs\u002Fokablowanie",[706,710],{"title":707,"slug":708,"path":709,"order":75},"Topologia i okablowanie magistrali","topologia-magistrali","pl\u002Fdocs\u002Fokablowanie\u002Ftopologia-magistrali",{"title":711,"slug":712,"path":713,"order":81},"Dobór i dystrybucja zasilania","zasilanie","pl\u002Fdocs\u002Fokablowanie\u002Fzasilanie",{"title":715,"slug":716,"path":717,"order":103,"children":718},"Bloki logiczne","bloki-logiczne","pl\u002Fdocs\u002Fbloki-logiczne",[719,723,745,845],{"title":720,"slug":721,"path":722,"order":69,"template":267,"translation_key":268},"Przegląd","przeglad","pl\u002Fdocs\u002Fbloki-logiczne\u002Fprzeglad",{"title":724,"slug":271,"path":725,"order":75,"children":726},"Wejścia","pl\u002Fdocs\u002Fbloki-logiczne\u002Finput",[727,729,731,733,735,737,739,741,743],{"title":275,"slug":276,"path":728,"order":69,"template":278,"translation_key":279},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fbinary_input",{"title":281,"slug":282,"path":730,"order":69,"template":278,"translation_key":284},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fboolean_constant",{"title":286,"slug":287,"path":732,"order":69,"template":278,"translation_key":289},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fnumeric_constant",{"title":291,"slug":292,"path":734,"order":69,"template":278,"translation_key":294},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fnumeric_input",{"title":296,"slug":297,"path":736,"order":69,"template":278,"translation_key":299},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Foperation_mode_monitor",{"title":301,"slug":302,"path":738,"order":69,"template":278,"translation_key":304},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fpulse_at",{"title":306,"slug":307,"path":740,"order":69,"template":278,"translation_key":309},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fschedule",{"title":311,"slug":312,"path":742,"order":69,"template":278,"translation_key":314},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fstring_constant",{"title":316,"slug":317,"path":744,"order":69,"template":278,"translation_key":319},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fswitch",{"title":746,"slug":322,"path":747,"order":81,"children":748},"Przetwarzanie","pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess",[749,751,753,755,757,759,761,763,765,767,769,771,773,775,777,779,781,783,785,787,789,791,793,795,797,799,801,803,805,807,809,811,813,815,817,819,821,823,825,827,829,831,833,835,837,839,841,843],{"title":326,"slug":327,"path":750,"order":69,"template":278,"translation_key":329},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fbinary_limiter",{"title":331,"slug":332,"path":752,"order":69,"template":278,"translation_key":334},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fboolean_to_string",{"title":336,"slug":337,"path":754,"order":69,"template":278,"translation_key":339},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fclimate_regulator",{"title":341,"slug":342,"path":756,"order":69,"template":278,"translation_key":344},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fclimate_regulator_hub",{"title":346,"slug":347,"path":758,"order":69,"template":278,"translation_key":349},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fdelay",{"title":351,"slug":352,"path":760,"order":69,"template":278,"translation_key":354},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fdelayed_pulse",{"title":356,"slug":357,"path":762,"order":69,"template":278,"translation_key":359},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fdoor_window_monitor",{"title":361,"slug":362,"path":764,"order":69,"template":278,"translation_key":364},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fedge_detector",{"title":366,"slug":367,"path":766,"order":69,"template":278,"translation_key":369},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fgate",{"title":371,"slug":372,"path":768,"order":69,"template":278,"translation_key":374},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fhttp_request",{"title":376,"slug":377,"path":770,"order":69,"template":278,"translation_key":379},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fhysteresis",{"title":381,"slug":382,"path":772,"order":69,"template":278,"translation_key":384},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Firrigation",{"title":386,"slug":387,"path":774,"order":69,"template":278,"translation_key":389},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fjson_get_boolean",{"title":391,"slug":392,"path":776,"order":69,"template":278,"translation_key":394},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fjson_get_number",{"title":396,"slug":397,"path":778,"order":69,"template":278,"translation_key":399},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fjson_get_string",{"title":401,"slug":402,"path":780,"order":69,"template":278,"translation_key":404},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Flevel_to_pulse",{"title":406,"slug":407,"path":782,"order":69,"template":278,"translation_key":409},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Flogic_and",{"title":411,"slug":412,"path":784,"order":69,"template":278,"translation_key":414},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Flogic_not",{"title":416,"slug":417,"path":786,"order":69,"template":278,"translation_key":419},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Flogic_or",{"title":421,"slug":422,"path":788,"order":69,"template":278,"translation_key":424},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_abs",{"title":426,"slug":427,"path":790,"order":69,"template":278,"translation_key":429},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_add",{"title":431,"slug":432,"path":792,"order":69,"template":278,"translation_key":434},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_average",{"title":436,"slug":437,"path":794,"order":69,"template":278,"translation_key":439},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_ceil",{"title":441,"slug":442,"path":796,"order":69,"template":278,"translation_key":444},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_divide",{"title":446,"slug":447,"path":798,"order":69,"template":278,"translation_key":449},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_floor",{"title":451,"slug":452,"path":800,"order":69,"template":278,"translation_key":454},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_max",{"title":456,"slug":457,"path":802,"order":69,"template":278,"translation_key":459},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_min",{"title":461,"slug":462,"path":804,"order":69,"template":278,"translation_key":464},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_modulo",{"title":466,"slug":467,"path":806,"order":69,"template":278,"translation_key":469},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_multiply",{"title":471,"slug":472,"path":808,"order":69,"template":278,"translation_key":474},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_random",{"title":476,"slug":477,"path":810,"order":69,"template":278,"translation_key":479},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_round",{"title":481,"slug":482,"path":812,"order":69,"template":278,"translation_key":484},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_subtract",{"title":486,"slug":487,"path":814,"order":69,"template":278,"translation_key":489},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmotor_axis",{"title":491,"slug":492,"path":816,"order":69,"template":278,"translation_key":494},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmoving_average",{"title":496,"slug":497,"path":818,"order":69,"template":278,"translation_key":499},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fnumber_to_string",{"title":501,"slug":502,"path":820,"order":69,"template":278,"translation_key":504},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fnumeric_latch",{"title":506,"slug":507,"path":822,"order":69,"template":278,"translation_key":509},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fnumeric_predicate",{"title":511,"slug":512,"path":824,"order":69,"template":278,"translation_key":514},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fnumeric_throttle",{"title":516,"slug":517,"path":826,"order":69,"template":278,"translation_key":519},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fpubsub",{"title":521,"slug":522,"path":828,"order":69,"template":278,"translation_key":524},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fpulse_counter",{"title":526,"slug":527,"path":830,"order":69,"template":278,"translation_key":529},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fpulse_gate",{"title":531,"slug":532,"path":832,"order":69,"template":278,"translation_key":534},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fpulse_throttle",{"title":536,"slug":537,"path":834,"order":69,"template":278,"translation_key":539},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fsequencer",{"title":541,"slug":542,"path":836,"order":69,"template":278,"translation_key":544},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fshading",{"title":546,"slug":547,"path":838,"order":69,"template":278,"translation_key":549},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fstring_format",{"title":551,"slug":552,"path":840,"order":69,"template":278,"translation_key":554},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fstring_latch",{"title":556,"slug":557,"path":842,"order":69,"template":278,"translation_key":559},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Ftoggle",{"title":561,"slug":562,"path":844,"order":69,"template":278,"translation_key":564},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fvariable_delayed_pulse",{"title":846,"slug":567,"path":847,"order":87,"children":848},"Wyjścia","pl\u002Fdocs\u002Fbloki-logiczne\u002Foutput",[849,851],{"title":571,"slug":572,"path":850,"order":69,"template":278,"translation_key":574},"pl\u002Fdocs\u002Fbloki-logiczne\u002Foutput\u002Foperation_mode_controller",{"title":576,"slug":577,"path":852,"order":69,"template":278,"translation_key":579},"pl\u002Fdocs\u002Fbloki-logiczne\u002Foutput\u002Frelay",{"title":854,"slug":582,"path":855,"order":109,"children":856},"Język programowania Volang","pl\u002Fdocs\u002Fvolang",[857,861],{"title":858,"slug":859,"path":860,"order":75},"Język Volang","jezyk","pl\u002Fdocs\u002Fvolang\u002Fjezyk",{"title":862,"slug":863,"path":864,"order":81,"template":593},"Biblioteka standardowa","biblioteka-standardowa","pl\u002Fdocs\u002Fvolang\u002Fbiblioteka-standardowa",{"title":866,"slug":867,"path":868,"order":598,"children":869},"Oprogramowanie","oprogramowanie","pl\u002Fdocs\u002Foprogramowanie",[870,873],{"title":871,"slug":602,"path":872,"order":75},"Voldeno Studio - Instalacja i przewodnik","pl\u002Fdocs\u002Foprogramowanie\u002Fstudio",{"title":874,"slug":606,"path":875,"order":81},"Voldeno Studio - Harmonogramy","pl\u002Fdocs\u002Foprogramowanie\u002Fschedules",{"title":877,"slug":878,"path":879,"order":612,"children":880},"Poradniki","poradniki","pl\u002Fdocs\u002Fporadniki",[881,885,889,893],{"title":882,"slug":883,"path":884,"order":75},"Czym jest smart home i jak działa?","czym-jest-smart-home","pl\u002Fdocs\u002Fporadniki\u002Fczym-jest-smart-home",{"title":886,"slug":887,"path":888,"order":81},"Jaki system smart home wybrać? Praktyczny przewodnik","jaki-system-smart-home-wybrac","pl\u002Fdocs\u002Fporadniki\u002Fjaki-system-smart-home-wybrac",{"title":890,"slug":891,"path":892,"order":87},"Ile kosztuje inteligentny dom? Trzy warianty instalacji Voldeno z modułami i cenami","ile-kosztuje-inteligentny-dom","pl\u002Fdocs\u002Fporadniki\u002File-kosztuje-inteligentny-dom",{"title":894,"slug":895,"path":896,"order":97},"7 najczęstszych błędów przy projektowaniu instalacji smart home","bledy-przy-projektowaniu-smart-home","pl\u002Fdocs\u002Fporadniki\u002Fbledy-przy-projektowaniu-smart-home",{"title":898,"slug":899,"path":900,"order":634,"children":901},"Diagnostyka i rozwiązywanie problemów","diagnostyka","pl\u002Fdocs\u002Fdiagnostyka",[902],{"title":903,"slug":904,"path":905,"order":75},"Rozwiązywanie problemów z komunikacją magistrali","komunikacja-magistrali","pl\u002Fdocs\u002Fdiagnostyka\u002Fkomunikacja-magistrali",{"title":907,"slug":642,"path":908,"order":644},"Często zadawane pytania","pl\u002Fdocs\u002Ffaq",{"en":910,"pl":923},{"wiring":911,"logic-blocks\u002Fprocess":912,"modules":913,"volang":914,"software":915,"logic-blocks":916,"troubleshooting":917,"how-to":918,"getting-started":919,"system-architecture":920,"logic-blocks\u002Foutput":921,"logic-blocks\u002Finput":922},"wiring\u002Fbus-topology","logic-blocks\u002Fprocess\u002Fbinary_limiter","modules\u002Fhub-wiring","volang\u002Flanguage","software\u002Fstudio","logic-blocks\u002Foverview","troubleshooting\u002Fbus-communication","how-to\u002Fwhat-is-a-smart-home","getting-started\u002Fconcepts","system-architecture\u002Fsecurity","logic-blocks\u002Foutput\u002Foperation_mode_controller","logic-blocks\u002Finput\u002Fbinary_input",{"bloki-logiczne":924,"okablowanie":925,"bloki-logiczne\u002Finput":926,"pierwsze-kroki":927,"moduly":928,"bloki-logiczne\u002Foutput":929,"diagnostyka":930,"bloki-logiczne\u002Fprocess":931,"architektura-systemu":932,"oprogramowanie":933,"poradniki":934,"volang":935},"bloki-logiczne\u002Fprzeglad","okablowanie\u002Ftopologia-magistrali","bloki-logiczne\u002Finput\u002Fbinary_input","pierwsze-kroki\u002Fpojecia","moduly\u002Fokablowanie-hub","bloki-logiczne\u002Foutput\u002Foperation_mode_controller","diagnostyka\u002Fkomunikacja-magistrali","bloki-logiczne\u002Fprocess\u002Fbinary_limiter","architektura-systemu\u002Fbezpieczenstwo","oprogramowanie\u002Fstudio","poradniki\u002Fczym-jest-smart-home","volang\u002Fjezyk",{"enabled":58,"navigation":937},{"pl":938,"en":969},[939,945,951,957,963],{"title":940,"slug":941,"path":942,"order":69,"date":943,"translation_key":944},"Przełączanie w zerze napięcia: jak moduły I\u002FO i RELAY wydłużają życie styków przekaźników","przelaczanie-w-zerze-napiecia-moduly-io-i-relay","pl\u002Fblog\u002Fprzelaczanie-w-zerze-napiecia-moduly-io-i-relay","2026-06-11","2026_06_11_przelaczanie_w_zerze_napiecia",{"title":946,"slug":947,"path":948,"order":69,"date":949,"translation_key":950},"System Voldeno napędził demo fabryki Fischertechnik na Google Cloud Next '26","voldeno-at-google-cloud-next-26","pl\u002Fblog\u002Fvoldeno-at-google-cloud-next-26","2026-04-28","2026_04_28_voldeno_at_google_cloud_next_26",{"title":952,"slug":953,"path":954,"order":69,"date":955,"translation_key":956},"Jesteśmy gotowi! Setki modułów Voldeno przygotowanych do wdrożenia w inteligentnych domach.","jestesmy-gotowi-setki-modulow-voldeno-przygotowanych-do-wdrozenia-w-inteligentnych-domach","pl\u002Fblog\u002Fjestesmy-gotowi-setki-modulow-voldeno-przygotowanych-do-wdrozenia-w-inteligentnych-domach","2025-08-17","2025_08_17_we_are_ready",{"title":958,"slug":959,"path":960,"order":69,"date":961,"translation_key":962},"Nowy czujnik temperatury Voldeno 1-Wire - kompaktowy, niezawodny i stworzony do dużych instalacji","nowy-czujnik-temperatury-1-wire-voldeno-kompaktowy-niezawodny-i-zaprojektowany-do-instalacji-na-duza-skale","pl\u002Fblog\u002Fnowy-czujnik-temperatury-1-wire-voldeno-kompaktowy-niezawodny-i-zaprojektowany-do-instalacji-na-duza-skale","2025-04-25","2025_04_25_new_voldeno_1wire_temperature_sensor",{"title":964,"slug":965,"path":966,"order":69,"date":967,"translation_key":968},"Odkryj przyszłość inteligentnych domów z Voldeno","odkryj-przyszlosc-inteligentnych-domow-z-voldeno","pl\u002Fblog\u002Fodkryj-przyszlosc-inteligentnych-domow-z-voldeno","2024-10-18","2024_10_18_future_of_smart_homes",[970,975,978,982,986],{"title":971,"slug":972,"path":973,"order":69,"date":943,"translation_key":974},"Zero-crossing switching: how the I\u002FO and RELAY modules extend relay contact life","zero-crossing-switching-io-and-relay-modules","en\u002Fblog\u002Fzero-crossing-switching-io-and-relay-modules","2026_06_11_zero_crossing_switching",{"title":976,"slug":947,"path":977,"order":69,"date":949,"translation_key":950},"Voldeno powered the Fischertechnik factory demo at Google Cloud Next '26","en\u002Fblog\u002Fvoldeno-at-google-cloud-next-26",{"title":979,"slug":980,"path":981,"order":69,"date":955,"translation_key":956},"We are ready! Hundreds of Voldeno modules prepared for smart home deployment.","we-are-ready","en\u002Fblog\u002Fwe-are-ready",{"title":983,"slug":984,"path":985,"order":69,"date":961,"translation_key":962},"New Voldeno 1-Wire Temperature Sensor - Compact, Reliable, and Built for Large-Scale Installations","new-voldeno-1-wire-temperature-sensor-compact-reliable-and-built-for-large-scale-installations","en\u002Fblog\u002Fnew-voldeno-1-wire-temperature-sensor-compact-reliable-and-built-for-large-scale-installations",{"title":987,"slug":988,"path":989,"order":69,"date":967,"translation_key":968},"Discover the Future of Smart Homes with Voldeno","future_of_smart_homes","en\u002Fblog\u002Ffuture_of_smart_homes",{"pl":991,"en":992,"xDefault":991},"https:\u002F\u002Fvoldeno.com\u002Fpl\u002Fdocs\u002Farchitektura-systemu\u002Fbezpieczenstwo","https:\u002F\u002Fvoldeno.com\u002Fen\u002Fdocs\u002Fsystem-architecture\u002Fsecurity",{"slug":674,"title":673,"description":994,"tags":995,"content_html":1001,"headings":1002,"order":75,"extra":1038},"Jak Voldeno zabezpiecza każdy element systemu - Hub, Voldeno Studio, Voldeno Cloud, aktualizacje firmware oraz Voldeno CA - wyjaśnione dla instalatorów i zainteresowanych użytkowników.",[996,997,998,999,1000],"bezpieczeństwo","architektura","mTLS","firmware","PKI","\u003Ch1 id=\"architektura-bezpieczenstwa\">\u003Ca href=\"#architektura-bezpieczenstwa\" class=\"anchor\">#\u003C\u002Fa> Architektura bezpieczeństwa\u003C\u002Fh1>\n\u003Cp>\u003Cem>Każde urządzenie zweryfikowane, każde połączenie szyfrowane, każda aktualizacja podpisana - z założenia.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cimg src=\"\u002Fimages\u002Fdocs\u002Fsecurity\u002Fsecurity-cover.png\" alt=\"Bezpieczny system Voldeno: hub łączący dom, telefon i chmurę szyfrowanymi połączeniami\" class=\"img-large\" \u002F>\n\u003Cp>Systemy inteligentnego domu sterują tym, co sprawia, że dom działa: oświetleniem, dostępem, klimatem, a coraz częściej funkcjami dotykającymi bezpieczeństwa. Kiedy powierzasz systemowi kontrolę nad tymi rzeczami, pytanie o to, jak jest zabezpieczony, nie jest szczegółem. Jest kluczowe dla tego, czy możesz mu zaufać.\u003C\u002Fp>\n\u003Cp>Ten artykuł wyjaśnia, jak Voldeno podchodzi do bezpieczeństwa. Jest napisany dla dwóch grup odbiorców: instalatorów, którzy wdrażają i utrzymują systemy Voldeno, oraz technicznie zainteresowanych użytkowników, którzy chcą rozumieć, co chroni ich dom. Staraliśmy się, aby był konkretny, a nie marketingowy, abyś mógł ocenić to rozwiązanie na podstawie faktów.\u003C\u002Fp>\n\u003Ch2 id=\"glowna-zasada-domyslnie-nic-nie-jest-zaufane\">\u003Ca href=\"#glowna-zasada-domyslnie-nic-nie-jest-zaufane\" class=\"anchor\">#\u003C\u002Fa> Główna zasada: domyślnie nic nie jest zaufane\u003C\u002Fh2>\n\u003Cp>Większość problemów z bezpieczeństwem w urządzeniach podłączonych do sieci sprowadza się do jednej z dwóch porażek: albo urządzenie lub usługa ufa czemuś, czemu ufać nie powinno, albo wysyła wrażliwe informacje w sposób, który ktoś inny może odczytać lub zmienić.\u003C\u002Fp>\n\u003Cp>Projekt Voldeno opiera się na prostej odpowiedzi na oba te problemy: \u003Cstrong>każde urządzenie i każda usługa musi udowodnić, kim jest, zanim zostanie obdarzona zaufaniem, a każde połączenie przenoszące konfigurację, sterowanie lub firmware jest szyfrowane.\u003C\u002Fstrong> Żaden element systemu nie akceptuje anonimowych połączeń i żadne wrażliwe dane nie są przesyłane w postaci, którą podsłuchujący mógłby odczytać.\u003C\u002Fp>\n\u003Cp>Ta zasada jest egzekwowana wszędzie w ten sam sposób - i to właśnie czyni ją niezawodną, a nie zlepkiem wyjątków.\u003C\u002Fp>\n\u003Ch2 id=\"prywatny-korzen-zaufania-voldeno-ca\">\u003Ca href=\"#prywatny-korzen-zaufania-voldeno-ca\" class=\"anchor\">#\u003C\u002Fa> Prywatny korzeń zaufania: Voldeno CA\u003C\u002Fh2>\u003Cimg src=\"\u002Fimages\u002Fdocs\u002Fsecurity\u002Fsecurity-root-of-trust.png\" alt=\"Prywatny urząd certyfikacji jako jeden korzeń zaufania, wydający zweryfikowane tożsamości hubowi, telefonowi, chmurze i układowi scalonemu\" class=\"img-large\" \u002F>\n\u003Cp>Tożsamość w systemie Voldeno jest zakotwiczona we własnym urzędzie certyfikacji - \u003Cstrong>Voldeno CA\u003C\u002Fstrong>. Urząd certyfikacji można rozumieć jako instytucję, która wydaje i poręcza cyfrowe „dowody tożsamości&quot; (certyfikaty). Voldeno CA jest prywatny dla Voldeno; nie jest powiązany z publicznym systemem certyfikatów używanym przez strony internetowe.\u003C\u002Fp>\n\u003Cp>Jego zadanie jest celowo wąskie. Wydaje certyfikaty identyfikujące Huby Voldeno, identyfikuje Voldeno Cloud oraz usługę firmware, wydaje certyfikaty klienckie noszone przez Voldeno Studio i aplikację mobilną, a także podpisuje firmware uruchamiane na hubach. Ponieważ platforma ufa wyłącznie certyfikatom pochodzącym od Voldeno CA, krąg urządzeń i usług dopuszczonych do systemu jest mały i ściśle kontrolowany. Cokolwiek nie przedstawi ważnych poświadczeń wydanych przez Voldeno, po prostu nie zostanie wpuszczone.\u003C\u002Fp>\n\u003Cp>Wszystko, co opisano dalej, opiera się na tym fundamencie.\u003C\u002Fp>\n\u003Ch2 id=\"voldeno-hub-bezpieczenstwo-wbudowane-w-sprzet\">\u003Ca href=\"#voldeno-hub-bezpieczenstwo-wbudowane-w-sprzet\" class=\"anchor\">#\u003C\u002Fa> Voldeno Hub: bezpieczeństwo wbudowane w sprzęt\u003C\u002Fh2>\n\u003Cp>Hub to sterownik, który fizycznie znajduje się w instalacji, więc jego zabezpieczenia muszą się sprawdzić nawet wtedy, gdy ktoś ma urządzenie w ręku.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Unikalna, niemożliwa do sklonowania tożsamość.\u003C\u002Fstrong> Każdy wyprodukowany hub otrzymuje własny, unikalny certyfikat podpisany przez Voldeno CA, wyprowadzony z unikalnego identyfikatora sprzętowego układu. Żadne dwa huby nie współdzielą tożsamości. To właśnie pozwala chmurze i narzędziom instalatora rozpoznać jeden konkretny hub spośród wszystkich pozostałych, a także oznacza, że poznanie tożsamości jednego huba nie mówi atakującemu nic o żadnym innym.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Klucze, które pozostają na urządzeniu.\u003C\u002Fstrong> Klucz prywatny każdego huba oraz jego certyfikaty są zapisywane podczas produkcji w dedykowanym, chronionym obszarze wewnętrznej pamięci flash mikrokontrolera. Nigdy nie opuszczają urządzenia i nigdy nie są przesyłane przez sieć.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Ochrona przed manipulacją fizyczną.\u003C\u002Fstrong> Hub jest zbudowany na mikrokontrolerze STM32H7, a podczas produkcji włączana jest w nim \u003Cstrong>ochrona przed odczytem (RDP Level 1)\u003C\u002Fstrong>. Przy aktywnym poziomie 1 układ blokuje wszelki dostęp do wewnętrznej pamięci flash, gdy podłączony jest debugger - lub gdy układ zostanie zmuszony do startu z RAM albo z wbudowanego bootloadera: każda próba odczytu, skasowania lub zaprogramowania flasha przez interfejs debugowania kończy się błędem magistrali (bus error). Dzięki temu ktoś, kto otworzy hub i podłączy narzędzia diagnostyczne, nie odczyta firmware ani nie wydobędzie zapisanych kluczy. Sam interfejs debugowania nie jest trwale wyłączony, ale nie daje dostępu do chronionej pamięci - a jedyny sposób na zdjęcie ochrony (powrót do poziomu 0) najpierw wymusza pełne skasowanie (mass-erase) flasha, co niszczy firmware i klucze, zamiast je ujawnić. Ochrona przed odczytem to bariera podnosząca koszt i trudność ataku fizycznego, a nie gwarancja absolutna - i jest jedną z kilku warstw.\u003C\u002Fp>\n\u003Ch2 id=\"szyfrowane-uwierzytelnione-polaczenia\">\u003Ca href=\"#szyfrowane-uwierzytelnione-polaczenia\" class=\"anchor\">#\u003C\u002Fa> Szyfrowane, uwierzytelnione połączenia\u003C\u002Fh2>\n\u003Cp>Tożsamość urządzenia jest przydatna tylko wtedy, gdy jest faktycznie sprawdzana przy każdym połączeniu. Voldeno weryfikuje tożsamość na każdym łączu w systemie.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Hub do chmury.\u003C\u002Fstrong> Gdy hub łączy się z Voldeno Cloud, obie strony uwierzytelniają się nawzajem za pomocą certyfikatów (jest to tzw. wzajemny TLS, czyli mTLS). Chmura potwierdza, że hub jest prawdziwym urządzeniem Voldeno, a hub potwierdza, że rozmawia z prawdziwą chmurą Voldeno, a nie z podszywającym się serwerem. Cały ruch na tym połączeniu jest szyfrowany. Żadna ze stron nie wymieni żadnych danych, dopóki obie nie udowodnią swojej tożsamości.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Narzędzia instalatora do huba.\u003C\u002Fstrong> Voldeno Studio to aplikacja desktopowa, której instalatorzy używają do konfigurowania urządzeń, budowania logiki i wdrażania projektów. Gdy łączy się z hubem w sieci lokalnej, połączenie jest szyfrowane, a Studio weryfikuje certyfikat huba względem Voldeno CA, zanim mu zaufa - dzięki temu instalator wie, że po drugiej stronie jest prawdziwy hub Voldeno. Studio nosi też własny certyfikat kliencki wydany przez Voldeno CA. Na tym szyfrowanym kanale każda operacja jest dodatkowo autoryzowana krótkożyciowymi tokenami (opisanymi poniżej), które określają, co wolno zrobić. Innymi słowy, łącze jest zarówno prywatne, jak i kontrolowane pod kątem dostępu.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Studio i użytkownicy do chmury.\u003C\u002Fstrong> Połączenia z Voldeno Cloud na potrzeby dostępu zdalnego są również szyfrowane i wzajemnie uwierzytelniane certyfikatami wydanymi przez Voldeno, a dostęp w sesji jest zarządzany tokenami. Chmura nie obsługuje anonimowych klientów.\u003C\u002Fp>\n\u003Ch2 id=\"jak-autoryzowany-jest-dostep-tokeny-wydawane-i-podpisywane-przez-hub\">\u003Ca href=\"#jak-autoryzowany-jest-dostep-tokeny-wydawane-i-podpisywane-przez-hub\" class=\"anchor\">#\u003C\u002Fa> Jak autoryzowany jest dostęp: tokeny wydawane i podpisywane przez hub\u003C\u002Fh2>\n\u003Cp>Szyfrowanie i certyfikaty ustalają, \u003Cem>kto\u003C\u002Fem> rozmawia; tokeny decydują o tym, \u003Cem>co każda ze stron może zrobić\u003C\u002Fem>. Voldeno realizuje to za pomocą podpisanych tokenów dostępu (JWT), a projekt ma ważną cechę: \u003Cstrong>tokeny są wydawane i podpisywane przez sam hub.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Gdy użytkownik lub instalator otrzymuje dostęp, odpowiednie tokeny są generowane na hubie i podpisywane jego własnym, przypisanym do urządzenia kluczem prywatnym, przy użyciu algorytmu ES256 (tego samego klucza na krzywej eliptycznej, który stanowi podstawę tożsamości huba). Są dwa rodzaje: długożyciowy \u003Cstrong>token odświeżający (refresh)\u003C\u002Fstrong>, używany wyłącznie do uzyskiwania tokenów dostępu, oraz krótkożyciowy \u003Cstrong>token dostępu (access)\u003C\u002Fstrong> (ważny około godziny), który faktycznie autoryzuje sesję i niesie uprawnienia użytkownika.\u003C\u002Fp>\n\u003Cp>Cokolwiek później otrzyma token - czy to przekaźnik w chmurze, czy hub przy kolejnym żądaniu - weryfikuje ten podpis względem certyfikatu huba. A ponieważ ten certyfikat jest z kolei wydany przez Voldeno CA, łańcuch zaufania jest kompletny: token jest podpisany przez hub, klucz podpisujący huba jest poręczony przez jego certyfikat, a certyfikat jest poręczony przez Voldeno CA. Żaden token nie zostanie zaakceptowany, jeśli nie został rzeczywiście podpisany przez ten konkretny hub, z którego rzekomo pochodzi, a manipulacja zawartością tokena unieważnia podpis.\u003C\u002Fp>\n\u003Cp>Co równie ważne, hub egzekwuje uprawnienia zawarte w tokenie przy każdej operacji: token musi być uprawniony, aby w ogóle otworzyć połączenie, osobno uprawniony do odczytu stanu systemu i osobno uprawniony do wysyłania poleceń. Aplikacja lub narzędzie wykorzystuje te uprawnienia do decydowania, co pokazać, ale nawet żądanie wysłane bez autoryzacji zostanie odrzucone przez hub. Interfejs jest warstwą wygody nad regułami, które hub egzekwuje samodzielnie.\u003C\u002Fp>\n\u003Ch2 id=\"aktualizacje-firmware-dwa-niezalezne-zabezpieczenia\">\u003Ca href=\"#aktualizacje-firmware-dwa-niezalezne-zabezpieczenia\" class=\"anchor\">#\u003C\u002Fa> Aktualizacje firmware: dwa niezależne zabezpieczenia\u003C\u002Fh2>\u003Cimg src=\"\u002Fimages\u002Fdocs\u002Fsecurity\u002Fsecurity-firmware-signing.png\" alt=\"Zweryfikowane firmware: podpisany obraz z pieczęcią i znacznikiem jest akceptowany, a obraz zmodyfikowany - odrzucany\" class=\"img-large\" \u002F>\n\u003Cp>Firmware to oprogramowanie, które uruchamia hub, a zastąpienie go złośliwym kodem byłoby jedną z najbardziej szkodliwych rzeczy, jakie mógłby zrobić atakujący. Voldeno chroni aktualizacje na dwa niezależne sposoby, tak aby słabość jednego z nich nie naruszała całości.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Aktualizacja jest dostarczana bezpiecznym, uwierzytelnionym kanałem.\u003C\u002Fstrong> Firmware jest pobierane z usługi firmware Voldeno przez szyfrowane, wzajemnie uwierzytelnione (mTLS) połączenie. Usługa wymaga certyfikatu klienckiego wydanego przez Voldeno CA i weryfikuje go, zanim udostępni jakiekolwiek firmware, a klient weryfikuje usługę. Następnie obraz jest przesyłany do huba opisanym wcześniej zabezpieczonym kanałem.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Aktualizacja jest podpisana kryptograficznie, a hub to sprawdza.\u003C\u002Fstrong> Niezależnie od sposobu dostarczenia, \u003Cstrong>każdy obraz firmware jest podpisany przez Voldeno CA.\u003C\u002Fstrong> Przed zainstalowaniem aktualizacji hub weryfikuje ten podpis: oblicza skrót SHA-256 obrazu i sprawdza podpis względem certyfikatu Voldeno CA przechowywanego we własnej, chronionej pamięci. Tylko jeśli podpis jest prawidłowy, hub kontynuuje. Jeśli podpis jest nieobecny, nieprawidłowy lub obraz został w jakikolwiek sposób zmieniony albo uszkodzony, hub odmawia instalacji.\u003C\u002Fp>\n\u003Cp>To właśnie jest kluczowe dla spokoju ducha: nawet gdyby ktoś zdobył plik firmware i spróbował wgrać na hub zmodyfikowaną wersję, nie byłby w stanie podrobić podpisu Voldeno CA, a hub odrzuciłby zmanipulowany obraz. Hub uruchomi wyłącznie firmware faktycznie wytworzone przez Voldeno.\u003C\u002Fp>\n\u003Ch2 id=\"voldeno-cloud-i-dostep-zdalny\">\u003Ca href=\"#voldeno-cloud-i-dostep-zdalny\" class=\"anchor\">#\u003C\u002Fa> Voldeno Cloud i dostęp zdalny\u003C\u002Fh2>\n\u003Cp>Voldeno Cloud to zaplecze umożliwiające zdalny dostęp do instalacji. TLS jest terminowany na utwardzonym brzegu, który wymusza wzajemny TLS dla stron łączących się z nim: huby uwierzytelniają się swoimi certyfikatami przypisanymi do urządzenia, a Voldeno Studio i aplikacja mobilna - swoimi certyfikatami klienckimi, wszystkimi wydanymi przez Voldeno CA. Połączenia z chmurą są zatem zarówno szyfrowane, jak i wzajemnie uwierzytelnione, a sesje są dodatkowo zarządzane opisanymi powyżej podpisanymi tokenami.\u003C\u002Fp>\n\u003Cp>Co istotne, hub nigdy nie jest bezpośrednio wystawiony do internetu. Utrzymuje stałe połączenie \u003Cstrong>wychodzące\u003C\u002Fstrong> do chmury, a chmura działa jako zaufany pośrednik między hubem a autoryzowanymi klientami. Chmura nie akceptuje anonimowych połączeń; każdy uczestnik musi przedstawić certyfikat poręczony przez Voldeno CA, zanim dojdzie do wymiany jakichkolwiek danych aplikacyjnych.\u003C\u002Fp>\n\u003Ch2 id=\"aplikacja-mobilna-polaczenie-przez-chmure\">\u003Ca href=\"#aplikacja-mobilna-polaczenie-przez-chmure\" class=\"anchor\">#\u003C\u002Fa> Aplikacja mobilna: połączenie przez chmurę\u003C\u002Fh2>\u003Cimg src=\"\u002Fimages\u002Fdocs\u002Fsecurity\u002Fsecurity-remote-access.png\" alt=\"Bezpieczny dostęp zdalny: telefon i hub łączą się przez chmurę szyfrowanymi tunelami, a hub pozostaje za chmurą\" class=\"img-large\" \u002F>\n\u003Cp>Dla użytkowników końcowych codziennym sposobem korzystania z systemu Voldeno jest aplikacja mobilna. Najczęstszą sytuacją jest dostęp zdalny - jesteś poza obiektem i chcesz coś sprawdzić lub czymś sterować - dlatego aplikacja jest zbudowana wokół łączenia się \u003Cstrong>przez Voldeno Cloud\u003C\u002Fstrong>, zamiast wystawiać hub bezpośrednio do internetu. (Gdy telefon jest w tej samej sieci lokalnej co hub, częścią projektu jest także połączenie bezpośrednie w sieci LAN, wykrywane automatycznie przez mDNS.)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Połączenie jest wzajemnie uwierzytelnione i przypięte do własnego CA Voldeno.\u003C\u002Fstrong> Każde połączenie nawiązywane przez aplikację - zarówno żądanie odświeżenia tokena, jak i właściwe połączenie danych - jest zabezpieczone TLS, a aplikacja ufa wyłącznie Voldeno CA. Nie korzysta z ogólnego magazynu zaufania telefonu, więc nie da się jej oszukać niepowiązanym certyfikatem, któremu urządzenie akurat ufa. Aplikacja weryfikuje certyfikat serwera względem przypiętego Voldeno CA, łącznie z nazwą hosta, i przedstawia własny certyfikat kliencki, ponieważ serwery Voldeno wymagają wzajemnego TLS. Obie strony udowadniają swoją tożsamość, zanim popłyną jakiekolwiek dane.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Nie ma haseł.\u003C\u002Fstrong> Każda instalacja, z którą sparuje się użytkownik, jest reprezentowana przez długożyciowy token odświeżający, przechowywany w iOS Keychain - chronionym magazynie poświadczeń systemu operacyjnego (na Androidzie wykorzystywany jest analogiczny, zabezpieczony magazyn systemowy). Aplikacja nigdy nie wysyła hasła; wymienia token odświeżający na krótkożyciowy token dostępu i tym otwiera połączenie. Tokeny odświeżające są rotowane przy każdym użyciu, więc przechwycony token ma ograniczoną wartość, a tokeny dostępu i tak szybko same wygasają. Jeśli telefon zostanie zgubiony, odebranie mu dostępu sprowadza się do unieważnienia lub ponownego sparowania danej instalacji.\u003C\u002Fp>\n\u003Cp>Jak opisano w sekcji o autoryzacji, te tokeny są wydawane i podpisywane przez sam hub i niosą uprawnienia użytkownika, które hub egzekwuje przy każdej operacji. Aplikacja wykorzystuje uprawnienia, aby zdecydować, czy pokazać elementy tylko do odczytu, czy interaktywne, ale to hub jest tym elementem, który faktycznie zezwala na operację lub jej odmawia.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Jak chmura to spina.\u003C\u002Fstrong> W efekcie mamy dwa niezależnie zabezpieczone łącza połączone przez chmurę. Hub utrzymuje własne, wzajemnie uwierzytelnione połączenie z chmurą za pomocą swojego unikalnego certyfikatu przypisanego do urządzenia, a aplikacja utrzymuje własne, wzajemnie uwierzytelnione i autoryzowane tokenem połączenie z chmurą. Chmura przekazuje wiadomości wyłącznie między aplikacją a tym konkretnym hubem, dla którego jej token jest ważny. Token wydany dla jednej instalacji nie może posłużyć do dostania się do innej, a ponieważ hub pozostaje za chmurą, nigdy nie jest anonimowo osiągalny z otwartego internetu.\u003C\u002Fp>\n\u003Cp>\u003Cem>Dedykowana aplikacja mobilna jest dostępna zarówno na iOS, jak i na Androida. Obie opierają się na tym samym modelu - pośredniczonym przez chmurę, z przypiętym certyfikatem i autoryzacją tokenem - opisanym tutaj.\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch2 id=\"co-to-oznacza-w-praktyce\">\u003Ca href=\"#co-to-oznacza-w-praktyce\" class=\"anchor\">#\u003C\u002Fa> Co to oznacza w praktyce\u003C\u002Fh2>\n\u003Cp>Po odjęciu szczegółów technicznych podejście Voldeno daje kilka gwarancji, które łatwo wyrazić i za którymi łatwo stanąć:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Każdy hub ma unikalną tożsamość powiązaną ze swoim sprzętem,\u003C\u002Fstrong> chronioną przed wydobyciem nawet w razie fizycznej manipulacji urządzeniem.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Wszystko, co płynie po sieci, jest szyfrowane i uwierzytelnione.\u003C\u002Fstrong> Ruch konfiguracyjny, sterujący i firmware między hubem, narzędziami instalatora, aplikacją mobilną a chmurą nie może zostać odczytany ani niepostrzeżenie zmieniony przez osobę z zewnątrz.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dostęp jest zarządzany podpisanymi, krótkożyciowymi tokenami,\u003C\u002Fstrong> które hub sam wydaje i egzekwuje, więc uprawnienia obowiązują nawet wtedy, gdy klient zachowuje się niepoprawnie.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Firmware nie da się potajemnie podmienić.\u003C\u002Fstrong> Aktualizacje są podpisane i weryfikowane na urządzeniu, więc hub nigdy nie uruchomi oprogramowania, którego Voldeno nie zbudowało.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Hub nigdy nie jest wystawiony do otwartego internetu.\u003C\u002Fstrong> Dostęp zdalny działa dzięki temu, że hub sam łączy się z chmurą, gdzie mogą go spotkać wyłącznie uwierzytelnieni i autoryzowani klienci.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Zaufanie jest zamknięte, nie otwarte.\u003C\u002Fstrong> Akceptowane są wyłącznie certyfikaty od Voldeno CA, co utrzymuje system pod ścisłą kontrolą.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Żaden projekt bezpieczeństwa nie zwalnia z dobrych nawyków. Instalatorzy powinni utrzymywać Voldeno Studio i firmware hubów na bieżąco oraz chronić konta i poświadczenia używane do zarządzania systemami; użytkownicy korzystają z tej samej staranności. Platforma jest jednak zbudowana tak, aby najtrudniejsze elementy - tożsamość urządzeń, szyfrowanie, uwierzytelnianie, autoryzacja i integralność firmware - były obsługiwane rygorystycznie i spójnie z założenia. To właśnie pozwala umieścić system Voldeno w domu i zaufać, że pozostanie godny zaufania przez cały okres użytkowania.\u003C\u002Fp>\n\u003Ch2 id=\"najczesciej-zadawane-pytania-o-bezpieczenstwo\">\u003Ca href=\"#najczesciej-zadawane-pytania-o-bezpieczenstwo\" class=\"anchor\">#\u003C\u002Fa> Najczęściej zadawane pytania o bezpieczeństwo\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>Czy połączenie między moim hubem a chmurą jest bezpieczne?\u003C\u002Fstrong>\nTak. Hub i Voldeno Cloud uwierzytelniają się nawzajem certyfikatami (wzajemny TLS), zanim wymienią jakiekolwiek dane, a cały ruch między nimi jest szyfrowany. Chmura potwierdza, że hub jest prawdziwy, a hub potwierdza, że rozmawia z prawdziwą chmurą Voldeno, a nie z podszywającym się serwerem.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Czy ktoś może odczytać lub zmienić moje dane podczas przesyłania przez sieć?\u003C\u002Fstrong>\nNie. Ruch konfiguracyjny, sterujący i firmware między hubem, Voldeno Studio, aplikacją mobilną a chmurą jest szyfrowany w trakcie przesyłania. Podsłuchujący widzi wyłącznie zaszyfrowane dane, a zmieniony ruch jest odrzucany.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Co powstrzymuje zainstalowanie fałszywego lub zmodyfikowanego firmware na moim hubie?\u003C\u002Fstrong>\nKażdy obraz firmware jest podpisany przez Voldeno CA, a hub weryfikuje ten podpis względem certyfikatu przechowywanego na urządzeniu, zanim cokolwiek zainstaluje. Jeśli obraz jest niepodpisany, zmodyfikowany lub uszkodzony, hub go odrzuca. Hub uruchomi wyłącznie firmware faktycznie wytworzone przez Voldeno.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Co się stanie, jeśli ktoś uzyska fizyczny dostęp do huba?\u003C\u002Fstrong>\nMikrokontroler huba pracuje z włączoną ochroną przed odczytem (RDP Level 1). Gdy jest ona aktywna, układ nie pozwala podłączonemu debuggerowi odczytać, skasować ani zaprogramować wewnętrznej pamięci flash, więc osoba mająca urządzenie w ręku nie odczyta firmware ani nie wydobędzie zapisanych kluczy. Ochronę można zdjąć wyłącznie poprzez pełne skasowanie flasha, co niszczy jego zawartość, zamiast ją ujawnić.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Czy każdy hub jest unikalny, czy wszystkie współdzielą te same klucze?\u003C\u002Fstrong>\nKażdy hub jest produkowany z własnym, unikalnym certyfikatem i kluczem prywatnym, podpisanym przez Voldeno CA i powiązanym z tym konkretnym układem. Żadne dwa huby nie współdzielą tożsamości, więc skompromitowanie jednego urządzenia nie naraża żadnego innego.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Jak aplikacja loguje się bez hasła i czy to bezpieczne?\u003C\u002Fstrong>\nZamiast hasła aplikacja przechowuje długożyciowy token w chronionym magazynie telefonu i wymienia go na krótkożyciowy token dostępu dla każdej sesji. Tokeny te są wydawane i podpisywane przez sam hub i niosą Twoje uprawnienia; token długożyciowy jest wymieniany przy każdym użyciu. Ponieważ tokeny są podpisane własnym kluczem huba, nie da się ich podrobić ani zmienić.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Czy mogę sterować systemem z telefonu, gdy jestem poza domem, i czy to bezpieczne?\u003C\u002Fstrong>\nTak. Aplikacja łączy się przez Voldeno Cloud, zamiast wystawiać hub do internetu. Połączenie jest szyfrowane i wzajemnie uwierzytelnione, przypięte do własnego urzędu certyfikacji Voldeno, a chmura przekazuje ruch wyłącznie między Twoją aplikacją a tym hubem, do którego masz uprawnienia. Hub niezależnie sprawdza, czy Twoja aplikacja ma prawo wykonać daną operację.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Czym jest Voldeno CA i dlaczego ma znaczenie?\u003C\u002Fstrong>\nVoldeno CA to nasz własny, prywatny urząd certyfikacji. Wydaje certyfikaty identyfikujące huby, chmurę i aplikacje oraz podpisuje firmware. Platforma ufa wyłącznie certyfikatom wydanym przez ten urząd, co utrzymuje zbiór urządzeń i usług dopuszczonych do systemu pod ścisłą kontrolą.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Czy ja (lub mój instalator) muszę coś robić, aby zachować bezpieczeństwo?\u003C\u002Fstrong>\nPlatforma automatycznie obsługuje tożsamość urządzeń, szyfrowanie, uwierzytelnianie, autoryzację i integralność firmware. Twoja rola to prosta higiena operacyjna: utrzymuj Voldeno Studio i firmware huba na bieżąco oraz chroń konta i poświadczenia używane do zarządzania systemem.\u003C\u002Fp>\n\u003Ch2 id=\"slowniczek\">\u003Ca href=\"#slowniczek\" class=\"anchor\">#\u003C\u002Fa> Słowniczek\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>Certyfikat\u003C\u002Fstrong> - cyfrowy „dowód tożsamości&quot; urządzenia lub usługi. Zawiera tożsamość i klucz kryptograficzny oraz jest podpisany przez zaufany urząd, aby inni mogli zweryfikować, że jest prawdziwy. Huby Voldeno, chmura, Voldeno Studio i aplikacja mobilna - każde z nich nosi certyfikaty.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Urząd certyfikacji (CA)\u003C\u002Fstrong> - zaufana instytucja, która wydaje i podpisuje certyfikaty. Voldeno prowadzi własny, prywatny CA (Voldeno CA), więc system ufa wyłącznie urządzeniom i usługom przez niego zatwierdzonym.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Przypinanie certyfikatu (pinning)\u003C\u002Fstrong> - zaufanie wyłącznie do konkretnego, znanego urzędu certyfikacji (tutaj Voldeno CA), zamiast do długiej listy urzędów, którym telefon czy komputer ufa domyślnie. Zawęża to zaufanie do własnego PKI Voldeno i blokuje podszywanie się za pomocą skądinąd „ważnych&quot; certyfikatów.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Klucz prywatny\u003C\u002Fstrong> - tajna połowa poświadczeń urządzenia, sparowana z jego certyfikatem. Nigdy nie powinna opuszczać urządzenia. W hubie Voldeno klucz prywatny jest przechowywany w chronionej pamięci wewnętrznej i nigdy nie jest przesyłany przez sieć.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>TLS (Transport Layer Security)\u003C\u002Fstrong> - standardowa technologia szyfrująca dane podczas przesyłania przez sieć, ta sama rodzina zabezpieczeń, która chroni strony bankowe. Utrzymuje ruch w tajemnicy i wykrywa manipulacje.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>mTLS (wzajemny TLS)\u003C\u002Fstrong> - silniejsza forma TLS, w której obie strony udowadniają swoją tożsamość certyfikatami, a nie tylko jedna. Voldeno używa mTLS dla połączeń hub-chmura, aplikacja-chmura i Studio-chmura, więc każda strona weryfikuje drugą, zanim dojdzie do wymiany danych.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Token dostępu \u002F token odświeżający\u003C\u002Fstrong> - zamiast wysyłać hasło za każdym razem, klient przechowuje długożyciowy „token odświeżający&quot; w bezpiecznym magazynie i używa go do uzyskiwania krótkożyciowych „tokenów dostępu&quot;. To krótkożyciowy token faktycznie autoryzuje sesję, więc nawet jego ujawnienie miałoby ograniczone skutki, bo szybko wygasa. Tokeny odświeżające są wymieniane przy każdym użyciu.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Podpisywanie tokenów (ES256)\u003C\u002Fstrong> - każdy token jest opieczętowany podpisem cyfrowym wykonanym kluczem prywatnym huba przy użyciu algorytmu ES256. Odbiorca weryfikuje go certyfikatem huba, więc tokena nie da się podrobić ani zmienić bez klucza huba. Certyfikat huba jest z kolei wydany przez Voldeno CA, co wiąże token z korzeniem zaufania Voldeno.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Uprawnienia (autoryzacja)\u003C\u002Fstrong> - konkretne operacje, do których token jest uprawniony (na przykład odczyt stanu kontra wysyłanie poleceń). Uprawnienia są zawarte w tokenie dostępu i egzekwowane przez hub przy każdym żądaniu, niezależnie od tego, co oferuje interfejs aplikacji.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Firmware\u003C\u002Fstrong> - oprogramowanie działające na samym hubie. Ponieważ steruje urządzeniem, jego integralność jest krytyczna - dlatego firmware Voldeno jest podpisywane i weryfikowane przed instalacją.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Podpisywanie firmware \u002F weryfikacja podpisu\u003C\u002Fstrong> - kryptograficzna pieczęć nakładana na obraz firmware przez Voldeno CA. Przed aktualizacją hub sprawdza tę pieczęć; jeśli się nie zgadza, aktualizacja jest odrzucana. Zapobiega to instalacji nieautoryzowanego lub zmodyfikowanego firmware.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>RDP (ochrona przed odczytem), Level 1\u003C\u002Fstrong> - funkcja ochronna mikrokontrolera STM32H7 huba. Po włączeniu układ blokuje wszelki dostęp do wewnętrznej pamięci flash z podłączonego debuggera lub z alternatywnego trybu startu (odczyty, kasowanie i programowanie kończą się błędem magistrali), więc firmware i kluczy nie da się odczytać. Ochronę można zdjąć wyłącznie poprzez skasowanie flasha, co niszczy jego zawartość; trwałe wyłączenie samego interfejsu debugowania to osobny, nieodwracalny krok (Level 2), na którym Voldeno nie polega.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Keychain\u003C\u002Fstrong> - wbudowany, szyfrowany magazyn wrażliwych poświadczeń w systemie iOS. Aplikacja Voldeno przechowuje w nim długożyciowy token każdej instalacji, zamiast w zwykłej pamięci aplikacji (na Androidzie używany jest analogiczny, zabezpieczony magazyn systemowy).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Przekaźnik \u002F pośrednik chmurowy\u003C\u002Fstrong> - model, w którym dwa urządzenia nie łączą się bezpośrednio, lecz każde łączy się z zaufanym serwerem pośrodku, który przekazuje wiadomości między nimi. Voldeno używa go do dostępu zdalnego: aplikacja i hub łączą się z Voldeno Cloud, która przekazuje ruch wyłącznie między stronami uwierzytelnionymi i wzajemnie autoryzowanymi.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Voldeno Hub\u003C\u002Fstrong> - sterownik na obiekcie, który prowadzi instalację.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Voldeno Studio\u003C\u002Fstrong> - aplikacja desktopowa, której instalatorzy używają do konfigurowania urządzeń, budowania logiki, wdrażania projektów i zarządzania firmware.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Voldeno Cloud\u003C\u002Fstrong> - usługa zaplecza umożliwiająca zdalny dostęp do instalacji.\u003C\u002Fp>\n",[1003,1005,1008,1011,1014,1017,1020,1023,1026,1029,1032,1035],{"level":75,"text":673,"id":1004},"architektura-bezpieczenstwa",{"level":81,"text":1006,"id":1007},"Główna zasada: domyślnie nic nie jest zaufane","glowna-zasada-domyslnie-nic-nie-jest-zaufane",{"level":81,"text":1009,"id":1010},"Prywatny korzeń zaufania: Voldeno CA","prywatny-korzen-zaufania-voldeno-ca",{"level":81,"text":1012,"id":1013},"Voldeno Hub: bezpieczeństwo wbudowane w sprzęt","voldeno-hub-bezpieczenstwo-wbudowane-w-sprzet",{"level":81,"text":1015,"id":1016},"Szyfrowane, uwierzytelnione połączenia","szyfrowane-uwierzytelnione-polaczenia",{"level":81,"text":1018,"id":1019},"Jak autoryzowany jest dostęp: tokeny wydawane i podpisywane przez hub","jak-autoryzowany-jest-dostep-tokeny-wydawane-i-podpisywane-przez-hub",{"level":81,"text":1021,"id":1022},"Aktualizacje firmware: dwa niezależne zabezpieczenia","aktualizacje-firmware-dwa-niezalezne-zabezpieczenia",{"level":81,"text":1024,"id":1025},"Voldeno Cloud i dostęp zdalny","voldeno-cloud-i-dostep-zdalny",{"level":81,"text":1027,"id":1028},"Aplikacja mobilna: połączenie przez chmurę","aplikacja-mobilna-polaczenie-przez-chmure",{"level":81,"text":1030,"id":1031},"Co to oznacza w praktyce","co-to-oznacza-w-praktyce",{"level":81,"text":1033,"id":1034},"Najczęściej zadawane pytania o bezpieczeństwo","najczesciej-zadawane-pytania-o-bezpieczenstwo",{"level":81,"text":1036,"id":1037},"Słowniczek","slowniczek",{},1781697070885]