[{"data":1,"prerenderedAt":1038},["ShallowReactive",2],{"manifest":3,"hreflang-alternates":990,"doc-en-system-architecture\u002Fsecurity":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":218,"title":217,"description":994,"tags":995,"content_html":1000,"headings":1001,"order":75,"extra":1037},"How Voldeno secures each part of the system - the Hub, Voldeno Studio, Voldeno Cloud, firmware updates, and the Voldeno CA - explained for installers and interested users.",[218,996,997,998,999],"architecture","mTLS","firmware","PKI","\u003Ch1 id=\"security-architecture\">\u003Ca href=\"#security-architecture\" class=\"anchor\">#\u003C\u002Fa> Security Architecture\u003C\u002Fh1>\n\u003Cp>\u003Cem>Every device verified, every connection encrypted, every update signed - by design.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cimg src=\"\u002Fimages\u002Fdocs\u002Fsecurity\u002Fsecurity-cover.png\" alt=\"Secure Voldeno smart-home system: a control hub linking a house, a phone, and the cloud over encrypted connections\" class=\"img-large\" \u002F>\n\u003Cp>Smart home systems control the things that make a home work: lighting, access, climate, and increasingly functions that touch on safety. When you put a system in charge of those things, the question of how it is secured is not a detail. It is central to whether you can trust it.\u003C\u002Fp>\n\u003Cp>This article explains how Voldeno approaches security. It is written for two audiences: the installers who deploy and maintain Voldeno systems, and the technically curious users who want to understand what is protecting their home. We have tried to keep it concrete rather than promotional, so that you can evaluate the design on its merits.\u003C\u002Fp>\n\u003Ch2 id=\"the-core-idea-nothing-is-trusted-by-default\">\u003Ca href=\"#the-core-idea-nothing-is-trusted-by-default\" class=\"anchor\">#\u003C\u002Fa> The core idea: nothing is trusted by default\u003C\u002Fh2>\n\u003Cp>Most security problems in connected products come down to one of two failures: either a device or service trusts something it should not have, or it sends sensitive information in a way that someone else can read or alter.\u003C\u002Fp>\n\u003Cp>Voldeno's design is built around a simple response to both: \u003Cstrong>every device and service must prove who it is before it is trusted, and every connection that carries configuration, control, or firmware is encrypted.\u003C\u002Fstrong> No component in the system accepts anonymous connections, and no sensitive data travels in a form that an eavesdropper can read.\u003C\u002Fp>\n\u003Cp>That principle is enforced the same way everywhere, which is what makes it dependable rather than a patchwork of special cases.\u003C\u002Fp>\n\u003Ch2 id=\"a-private-root-of-trust-the-voldeno-ca\">\u003Ca href=\"#a-private-root-of-trust-the-voldeno-ca\" class=\"anchor\">#\u003C\u002Fa> A private root of trust: the Voldeno CA\u003C\u002Fh2>\u003Cimg src=\"\u002Fimages\u002Fdocs\u002Fsecurity\u002Fsecurity-root-of-trust.png\" alt=\"A private certificate authority acting as the single root of trust, issuing verified identities to the hub, phone, cloud, and chip\" class=\"img-large\" \u002F>\n\u003Cp>Identity in the Voldeno system is anchored by our own certificate authority, the \u003Cstrong>Voldeno CA\u003C\u002Fstrong>. You can think of a certificate authority as the body that issues and vouches for digital &quot;ID cards&quot; (certificates). The Voldeno CA is private to Voldeno; it is not tied to the public certificate system used by websites.\u003C\u002Fp>\n\u003Cp>Its job is deliberately narrow. It issues the certificates that identify Voldeno Hubs, it identifies the Voldeno Cloud and firmware service, it issues the client certificates carried by Voldeno Studio and the mobile app, and it signs the firmware that runs on hubs. Because the platform trusts only certificates that come from the Voldeno CA, the circle of devices and services allowed to participate in a system is small and tightly controlled. Anything that cannot present valid Voldeno-issued credentials is simply not let in.\u003C\u002Fp>\n\u003Cp>Everything that follows builds on this foundation.\u003C\u002Fp>\n\u003Ch2 id=\"the-voldeno-hub-security-built-into-the-hardware\">\u003Ca href=\"#the-voldeno-hub-security-built-into-the-hardware\" class=\"anchor\">#\u003C\u002Fa> The Voldeno Hub: security built into the hardware\u003C\u002Fh2>\n\u003Cp>The Hub is the controller that physically lives in the installation, so its security has to hold up even when someone has the device in their hands.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>A unique, non-clonable identity.\u003C\u002Fstrong> Every hub that is manufactured is given its own unique certificate, signed by the Voldeno CA, derived from the chip's unique hardware identifier. No two hubs share an identity. This is what lets the cloud and the installer's tools recognize one specific hub among all others, and it means that learning one hub's identity tells an attacker nothing about any other.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Keys that stay on the device.\u003C\u002Fstrong> Each hub's private key and certificates are written into a dedicated, protected region of the microcontroller's internal flash during production. They never leave the device and are never sent over the network.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Protection against physical tampering.\u003C\u002Fstrong> The Hub is built on an STM32H7 microcontroller, and during manufacturing its \u003Cstrong>readout protection is enabled (RDP Level 1)\u003C\u002Fstrong>. With Level 1 active, the chip blocks all access to its internal flash whenever a debugger is connected - or when the chip is forced to boot from RAM or the built-in bootloader: any attempt to read, erase, or program the flash over the debug interface fails with a bus error. So someone who opens a hub and attaches diagnostic tools cannot read out the firmware or extract the stored keys. The debug interface itself is not permanently disabled, but it gives no access to protected memory - and the only way to lift the protection (dropping back to Level 0) forces a full mass-erase of the flash first, which destroys the firmware and keys rather than exposing them. Readout protection is a barrier that raises the cost and difficulty of a physical attack, not an absolute guarantee, and it is one layer among several.\u003C\u002Fp>\n\u003Ch2 id=\"encrypted-authenticated-connections\">\u003Ca href=\"#encrypted-authenticated-connections\" class=\"anchor\">#\u003C\u002Fa> Encrypted, authenticated connections\u003C\u002Fh2>\n\u003Cp>A device's identity is only useful if it is actually checked whenever it connects. Voldeno verifies identity on every link in the system.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Hub to Cloud.\u003C\u002Fstrong> When a hub connects to the Voldeno Cloud, both sides authenticate each other using their certificates (this is known as mutual TLS, or mTLS). The cloud confirms that the hub is a genuine Voldeno device, and the hub confirms that it is talking to the real Voldeno Cloud and not an impostor. All traffic between them is encrypted. Neither side will exchange any data until both have proven their identity.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Installer's tools to the Hub.\u003C\u002Fstrong> Voldeno Studio is the desktop application installers use to configure devices, build logic, and deploy projects. When it connects to a hub over the local network, the connection is encrypted, and Studio validates the hub's certificate against the Voldeno CA before trusting it, so the installer knows the device on the other end is a real Voldeno hub. Studio also carries its own Voldeno-issued client certificate. On top of that encrypted channel, each action is authorized with short-lived tokens (described next) that govern what may be done. In other words, the link is both private and access-controlled.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Studio and users to the Cloud.\u003C\u002Fstrong> Connections to the Voldeno Cloud for remote access are likewise encrypted and mutually authenticated with Voldeno-issued certificates, with session access governed by tokens. The cloud does not serve anonymous clients.\u003C\u002Fp>\n\u003Ch2 id=\"how-access-is-authorized-tokens-issued-and-signed-by-the-hub\">\u003Ca href=\"#how-access-is-authorized-tokens-issued-and-signed-by-the-hub\" class=\"anchor\">#\u003C\u002Fa> How access is authorized: tokens issued and signed by the hub\u003C\u002Fh2>\n\u003Cp>Encryption and certificates establish \u003Cem>who\u003C\u002Fem> is talking; tokens decide \u003Cem>what each party is allowed to do\u003C\u002Fem>. Voldeno handles this with signed access tokens (JWTs), and the design has an important property: \u003Cstrong>the tokens are issued and signed by the hub itself.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>When a user or installer is granted access, the relevant tokens are generated on the hub and signed with the hub's own per-device private key, using the ES256 algorithm (the same elliptic-curve key that underpins the hub's identity). There are two kinds: a long-lived \u003Cstrong>refresh token\u003C\u002Fstrong>, which is used only to obtain access tokens, and a short-lived \u003Cstrong>access token\u003C\u002Fstrong> (valid about an hour), which actually authorizes a session and carries the user's permissions.\u003C\u002Fp>\n\u003Cp>Anything that later receives a token - whether the cloud relay or the hub on a subsequent request - verifies that signature against the hub's certificate. And because that certificate is itself issued by the Voldeno CA, the trust chain is complete: the token is signed by the hub, the hub's signing key is vouched for by its certificate, and the certificate is vouched for by the Voldeno CA. No token is accepted unless it was genuinely signed by the specific hub it claims to come from, and tampering with a token's contents invalidates the signature.\u003C\u002Fp>\n\u003Cp>Just as importantly, the hub enforces the permissions inside the token on every action: a token must be authorized to open a connection at all, separately authorized to read the system's state, and separately authorized to send commands. The app or tool uses these permissions to decide what to show, but even a request sent without authorization is refused by the hub. The interface is a convenience layer over rules the hub enforces independently.\u003C\u002Fp>\n\u003Ch2 id=\"firmware-updates-two-independent-safeguards\">\u003Ca href=\"#firmware-updates-two-independent-safeguards\" class=\"anchor\">#\u003C\u002Fa> Firmware updates: two independent safeguards\u003C\u002Fh2>\u003Cimg src=\"\u002Fimages\u002Fdocs\u002Fsecurity\u002Fsecurity-firmware-signing.png\" alt=\"Verified firmware: a signed image with a seal and checkmark is accepted, while a tampered image is rejected\" class=\"img-large\" \u002F>\n\u003Cp>Firmware is the software that runs the hub, and replacing it with malicious code would be one of the most damaging things an attacker could do. Voldeno protects updates in two independent ways, so that a weakness in one does not compromise the whole.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>The update is delivered over a secure, authenticated channel.\u003C\u002Fstrong> Firmware is obtained from the Voldeno firmware service over an encrypted, mutually authenticated (mTLS) connection. The service requires a client certificate issued by the Voldeno CA and verifies it before serving any firmware, and the client verifies the service. The image is then transferred to the hub over the secured channel described earlier.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>The update is cryptographically signed, and the hub checks it.\u003C\u002Fstrong> Independently of how it was delivered, \u003Cstrong>every firmware image is signed by the Voldeno CA.\u003C\u002Fstrong> Before installing an update, the hub verifies that signature: it computes a SHA-256 hash of the image and checks the signature against the Voldeno CA certificate held in its own protected storage. Only if the signature is valid does the hub proceed. If the signature is missing, invalid, or the image has been altered or corrupted in any way, the hub refuses to install it.\u003C\u002Fp>\n\u003Cp>This is the important part for peace of mind: even if someone obtained a firmware file and tried to push a modified version onto a hub, they could not forge the Voldeno CA's signature, and the hub would reject the tampered image. A hub will only ever run firmware that Voldeno actually produced.\u003C\u002Fp>\n\u003Ch2 id=\"voldeno-cloud-and-remote-access\">\u003Ca href=\"#voldeno-cloud-and-remote-access\" class=\"anchor\">#\u003C\u002Fa> Voldeno Cloud and remote access\u003C\u002Fh2>\n\u003Cp>The Voldeno Cloud is the backend that enables remote access to installations. TLS is terminated at a hardened edge, which enforces mutual TLS for the parties that connect to it: hubs authenticate with their per-device certificates, and Voldeno Studio and the mobile app authenticate with their client certificates, all issued by the Voldeno CA. Connections to the cloud are therefore both encrypted and mutually authenticated, and sessions are additionally governed by the signed tokens described above.\u003C\u002Fp>\n\u003Cp>Crucially, the hub is never exposed directly to the internet. It keeps a persistent \u003Cstrong>outbound\u003C\u002Fstrong> connection to the cloud, and the cloud acts as a trusted broker between the hub and authorized clients. The cloud does not accept anonymous connections; every participant must present a certificate the Voldeno CA vouches for before any application data is exchanged.\u003C\u002Fp>\n\u003Ch2 id=\"the-mobile-app-connecting-through-the-cloud\">\u003Ca href=\"#the-mobile-app-connecting-through-the-cloud\" class=\"anchor\">#\u003C\u002Fa> The mobile app: connecting through the cloud\u003C\u002Fh2>\u003Cimg src=\"\u002Fimages\u002Fdocs\u002Fsecurity\u002Fsecurity-remote-access.png\" alt=\"Secure remote access: a phone and a home hub connect through the cloud over encrypted tunnels, with the hub kept behind the cloud\" class=\"img-large\" \u002F>\n\u003Cp>For end users, the everyday way to interact with a Voldeno system is the mobile app. The most common situation is remote access - you are away from the property and want to check or operate something - so the app is built around connecting \u003Cstrong>through the Voldeno Cloud\u003C\u002Fstrong> rather than exposing the hub directly to the internet. (When the phone is on the same local network as the hub, a direct LAN connection, discovered automatically over mDNS, is also part of the design.)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>The connection is mutually authenticated and pinned to Voldeno's own CA.\u003C\u002Fstrong> Every connection the app makes - both the token-refresh request and the live data connection - is secured with TLS, and the app trusts only the Voldeno CA. It does not fall back to the phone's general-purpose trust store, so it cannot be fooled by an unrelated certificate the device happens to trust. The app verifies the server's certificate against the pinned Voldeno CA, including the hostname, and it presents its own client certificate, because the Voldeno servers require mutual TLS. Both sides prove their identity before any data flows.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>There are no passwords.\u003C\u002Fstrong> Each installation the user pairs with is represented by a long-lived refresh token, stored in the iOS Keychain - the operating system's protected credential store. The app never sends a password; it exchanges the refresh token for a short-lived access token and uses that to open the connection. Refresh tokens are rotated every time they are used, so a captured token has limited value, and access tokens expire quickly on their own. If a phone is lost, removing its access simply means revoking or re-pairing that installation.\u003C\u002Fp>\n\u003Cp>As described in the section on authorization, those tokens are issued and signed by the hub itself and carry the user's permissions, which the hub enforces on every action. The app uses the permissions to decide whether to show read-only or interactive controls, but the hub is the component that actually allows or denies each operation.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>How the cloud ties it together.\u003C\u002Fstrong> The result is two independently secured links joined by the cloud. The hub holds its own mutually authenticated connection to the cloud using its unique per-device certificate, and the app holds its own mutually authenticated, token-authorized connection to the cloud. The cloud relays messages only between an app and the specific hub its token is valid for. A token issued for one installation cannot be used to reach another, and because the hub stays behind the cloud, it is never reachable anonymously from the open internet.\u003C\u002Fp>\n\u003Cp>\u003Cem>The dedicated mobile app is available on both iOS and Android. Both build on the same cloud-mediated, certificate-pinned, token-authorized model described here.\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch2 id=\"what-this-means-in-practice\">\u003Ca href=\"#what-this-means-in-practice\" class=\"anchor\">#\u003C\u002Fa> What this means in practice\u003C\u002Fh2>\n\u003Cp>Stripped of the technical detail, Voldeno's approach gives you a few assurances that are easy to state and easy to stand behind:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Each hub has a unique identity tied to its hardware,\u003C\u002Fstrong> protected against extraction even if the device is physically tampered with.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Everything on the wire is encrypted and authenticated.\u003C\u002Fstrong> Configuration, control, and firmware traffic between the hub, the installer's tools, the mobile app, and the cloud cannot be read or silently altered by an outsider.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Access is governed by signed, short-lived tokens\u003C\u002Fstrong> that the hub issues and enforces itself, so permissions hold even if a client misbehaves.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Firmware cannot be secretly replaced.\u003C\u002Fstrong> Updates are signed and verified on the device, so a hub will never run software that Voldeno did not build.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>The hub is never exposed to the open internet.\u003C\u002Fstrong> Remote access works by the hub reaching out to the cloud, where only authenticated, authorized clients can meet it.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Trust is closed, not open.\u003C\u002Fstrong> Only certificates from the Voldeno CA are accepted, which keeps the system tightly controlled.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>No security design removes the need for good habits. Installers should keep Voldeno Studio and hub firmware current and protect the accounts and credentials used to manage systems; users benefit from the same diligence. But the platform is built so that the hard parts - device identity, encryption, authentication, authorization, and firmware integrity - are handled rigorously and consistently by default. That is what lets you put a Voldeno system in a home and trust it to stay trustworthy over its lifetime.\u003C\u002Fp>\n\u003Ch2 id=\"frequently-asked-security-questions\">\u003Ca href=\"#frequently-asked-security-questions\" class=\"anchor\">#\u003C\u002Fa> Frequently asked security questions\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>Is the connection between my hub and the cloud secure?\u003C\u002Fstrong>\nYes. The hub and the Voldeno Cloud authenticate each other with certificates (mutual TLS) before exchanging any data, and all traffic between them is encrypted. The cloud confirms the hub is genuine, and the hub confirms it is talking to the real Voldeno Cloud rather than an impostor.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Can someone read or change my data while it travels over the network?\u003C\u002Fstrong>\nNo. Configuration, control, and firmware traffic between the hub, Voldeno Studio, the mobile app, and the cloud is encrypted in transit. An eavesdropper sees only encrypted data, and altered traffic is rejected.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What stops a fake or modified firmware from being installed on my hub?\u003C\u002Fstrong>\nEvery firmware image is signed by the Voldeno CA, and the hub verifies that signature against the certificate stored on the device before installing anything. If the image is unsigned, modified, or corrupted, the hub refuses it. A hub will only ever run firmware that Voldeno actually produced.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What happens if someone gets physical access to a hub?\u003C\u002Fstrong>\nThe hub's microcontroller runs with readout protection enabled (RDP Level 1). While it is active, the chip refuses to let a connected debugger read, erase, or program its internal flash, so someone with the device in hand cannot read out the firmware or extract the stored keys. The protection can only be removed by triggering a full erase of the flash, which destroys those contents rather than revealing them.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Is each hub unique, or do they all share the same keys?\u003C\u002Fstrong>\nEach hub is manufactured with its own unique certificate and private key, signed by the Voldeno CA and tied to that specific chip. No two hubs share an identity, so compromising one device does not expose any other.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>How does the app sign in without a password, and is that safe?\u003C\u002Fstrong>\nInstead of a password, the app holds a long-lived token in the phone's protected Keychain and exchanges it for a short-lived access token for each session. These tokens are issued and signed by your hub itself and carry your permissions; the long-lived token is replaced every time it is used. Because the tokens are signed by the hub's own key, they cannot be forged or altered.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Can I control my system from my phone when I'm away, and is that safe?\u003C\u002Fstrong>\nYes. The app connects through the Voldeno Cloud rather than exposing your hub to the internet. The connection is encrypted and mutually authenticated, pinned to Voldeno's own certificate authority, and the cloud only relays traffic between your app and the specific hub you are authorized for. The hub independently checks that your app is permitted to perform each action.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What is the Voldeno CA, and why does it matter?\u003C\u002Fstrong>\nThe Voldeno CA is our own private certificate authority. It issues the certificates that identify hubs, the cloud, and the apps, and it signs firmware. The platform trusts only certificates issued by this CA, which keeps the set of devices and services allowed into the system tightly controlled.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Do I (or my installer) need to do anything to stay secure?\u003C\u002Fstrong>\nThe platform handles device identity, encryption, authentication, authorization, and firmware integrity automatically. Your part is straightforward operational hygiene: keep Voldeno Studio and hub firmware up to date, and protect the accounts and credentials used to manage the system.\u003C\u002Fp>\n\u003Ch2 id=\"glossary\">\u003Ca href=\"#glossary\" class=\"anchor\">#\u003C\u002Fa> Glossary\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>Certificate\u003C\u002Fstrong> - A digital &quot;ID card&quot; for a device or service. It contains an identity and a cryptographic key and is signed by a trusted authority so that others can verify it is genuine. Voldeno hubs, the cloud, Voldeno Studio, and the mobile app each carry certificates.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Certificate Authority (CA)\u003C\u002Fstrong> - The trusted body that issues and signs certificates. Voldeno runs its own private CA (the Voldeno CA), so only devices and services it has approved are trusted by the system.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Certificate pinning\u003C\u002Fstrong> - Trusting only a specific, known certificate authority (here, the Voldeno CA) rather than the long list of authorities a phone or computer trusts by default. This narrows trust to Voldeno's own PKI and blocks impersonation by otherwise &quot;valid&quot; certificates.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Private key\u003C\u002Fstrong> - The secret half of a device's credentials, paired with its certificate. It must never leave the device. On a Voldeno hub, the private key is stored in protected internal memory and is never sent over the network.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>TLS (Transport Layer Security)\u003C\u002Fstrong> - The standard technology that encrypts data as it travels over a network, the same family of protection that secures banking websites. It keeps traffic private and detects tampering.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>mTLS (mutual TLS)\u003C\u002Fstrong> - A stronger form of TLS in which both sides prove their identity with certificates, not just one. Voldeno uses mTLS for hub-to-cloud, app-to-cloud, and Studio-to-cloud connections, so each party verifies the other before any data is exchanged.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Access token \u002F refresh token\u003C\u002Fstrong> - Instead of sending a password each time, a client holds a long-lived &quot;refresh token&quot; in secure storage and uses it to obtain short-lived &quot;access tokens.&quot; The short-lived token is what actually authorizes a session, so even if one were exposed it would expire quickly. Refresh tokens are replaced each time they are used.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Token signing (ES256)\u003C\u002Fstrong> - Each token is sealed with a digital signature created by the hub's private key using the ES256 algorithm. A recipient verifies it with the hub's certificate, so a token cannot be forged or altered without the hub's key. The hub's certificate is in turn issued by the Voldeno CA, which ties the token back to Voldeno's root of trust.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Permissions (authorization)\u003C\u002Fstrong> - The specific actions a token is allowed to perform (for example, reading state versus sending commands). Permissions are carried inside the access token and enforced by the hub on every request, independently of what the app's interface offers.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Firmware\u003C\u002Fstrong> - The software that runs on the hub itself. Because it controls the device, its integrity is critical, which is why Voldeno firmware is signed and verified before installation.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Firmware signing \u002F signature verification\u003C\u002Fstrong> - A cryptographic seal applied to a firmware image by the Voldeno CA. Before updating, the hub checks this seal; if it does not match, the update is rejected. This prevents anyone from installing unauthorized or modified firmware.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>RDP (Readout Protection), Level 1\u003C\u002Fstrong> - A protection feature of the hub's STM32H7 microcontroller. When enabled, the chip blocks any access to its internal flash from a connected debugger or an alternate boot mode (reads, erases, and programming all fail with a bus error), so the firmware and keys cannot be read out. The protection can only be lifted by erasing the flash, which destroys its contents; permanently disabling the debug interface altogether is a separate, irreversible step (Level 2), which Voldeno does not rely on.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Keychain\u003C\u002Fstrong> - Apple's built-in encrypted storage for sensitive credentials on iOS. The Voldeno app keeps each installation's long-lived token there rather than in ordinary app storage.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Cloud relay \u002F broker\u003C\u002Fstrong> - A model in which two devices do not connect directly but each connect to a trusted server in the middle, which passes messages between them. Voldeno uses this for remote access: the app and the hub each connect to the Voldeno Cloud, which relays traffic only between parties that have authenticated and are authorized for each other.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Voldeno Hub\u003C\u002Fstrong> - The on-site controller that runs the installation.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Voldeno Studio\u003C\u002Fstrong> - The desktop application installers use to configure devices, build logic, deploy projects, and manage firmware.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Voldeno Cloud\u003C\u002Fstrong> - The backend service that enables remote access to installations.\u003C\u002Fp>\n",[1002,1004,1007,1010,1013,1016,1019,1022,1025,1028,1031,1034],{"level":75,"text":217,"id":1003},"security-architecture",{"level":81,"text":1005,"id":1006},"The core idea: nothing is trusted by default","the-core-idea-nothing-is-trusted-by-default",{"level":81,"text":1008,"id":1009},"A private root of trust: the Voldeno CA","a-private-root-of-trust-the-voldeno-ca",{"level":81,"text":1011,"id":1012},"The Voldeno Hub: security built into the hardware","the-voldeno-hub-security-built-into-the-hardware",{"level":81,"text":1014,"id":1015},"Encrypted, authenticated connections","encrypted-authenticated-connections",{"level":81,"text":1017,"id":1018},"How access is authorized: tokens issued and signed by the hub","how-access-is-authorized-tokens-issued-and-signed-by-the-hub",{"level":81,"text":1020,"id":1021},"Firmware updates: two independent safeguards","firmware-updates-two-independent-safeguards",{"level":81,"text":1023,"id":1024},"Voldeno Cloud and remote access","voldeno-cloud-and-remote-access",{"level":81,"text":1026,"id":1027},"The mobile app: connecting through the cloud","the-mobile-app-connecting-through-the-cloud",{"level":81,"text":1029,"id":1030},"What this means in practice","what-this-means-in-practice",{"level":81,"text":1032,"id":1033},"Frequently asked security questions","frequently-asked-security-questions",{"level":81,"text":1035,"id":1036},"Glossary","glossary",{},1781697082852]