[{"data":1,"prerenderedAt":2037},["ShallowReactive",2],{"manifest":3,"hreflang-alternates":1838,"doc-en-logic-blocks\u002Fprocess\u002Flight":1844},{"site":4,"branding":6,"contact":8,"organization_schema":10,"languages":67,"website":81,"docs":343,"blog":1685},{"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":50,"contact_point_available_languages":62},"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",{"de":27,"en":34,"ja":39,"pl":45},[28,29,30,31,32,33],"Smart Home","Smart-Home-Systeme","Smart-Home-Automatisierung","Gebäudeautomation","IoT","Hausautomationssystem",[28,35,36,37,32,38],"Smart Home Systems","Smart Home Automation","Building Automation","Home Automation System",[40,41,42,43,32,44],"スマートホーム","スマートホームシステム","スマートホーム自動化","ビルディングオートメーション","ホームオートメーションシステム",[46,28,47,48,32,49],"Inteligentny dom","System Smart Home","Automatyka budynkowa","System automatyki domowej",[51,54,57,60],{"email":52,"contact_type":53},"support@voldeno.com","technical support",{"email":55,"contact_type":56},"sales@voldeno.com","sales",{"email":58,"contact_type":59},"partners@voldeno.com","partnerships",{"email":9,"contact_type":61},"customer service",[63,64,65,66],"Polish","English","German","Japanese",[68,72,75,78],{"code":69,"name":70,"default":71},"pl","Polski",true,{"code":73,"name":64,"default":74},"en",false,{"code":76,"name":77,"default":74},"de","Deutsch",{"code":79,"name":80,"default":74},"ja","日本語",{"enabled":71,"navigation":82,"path_keys":295,"section_index_slugs":332},{"pl":83,"de":155,"ja":206,"en":253},[84,90,96,102,112,118,124,129,140,150],{"title":85,"slug":86,"path":87,"order":88,"template":89},"Smart Home, Automatyka budynkowa - Voldeno","index","pl\u002Findex",0,"home",{"title":91,"slug":92,"path":93,"order":94,"template":95},"Twój Dom","twoj-dom","pl\u002Ftwoj-dom",1,"homeowners",{"title":97,"slug":98,"path":99,"order":100,"template":101},"Dla Profesjonalistów","dla-profesjonalistow","pl\u002Fdla-profesjonalistow",2,"professionals",{"title":103,"slug":104,"path":105,"order":106,"children":107},"Produkty","produkty","pl\u002Fprodukty",3,[108],{"title":109,"slug":86,"path":110,"order":94,"template":111},"Inteligentne produkty​ Smart Home Voldeno","pl\u002Fprodukty\u002Findex","products",{"title":113,"slug":114,"path":115,"order":116,"template":117},"Kontakt","kontakt","pl\u002Fkontakt",4,"contact",{"title":119,"slug":120,"path":121,"order":122,"template":123},"Konsultacja","konsultacja","pl\u002Fkonsultacja",5,"consultation",{"title":125,"slug":126,"path":127,"order":122,"template":128},"O nas","o-nas","pl\u002Fo-nas","about",{"title":130,"slug":131,"path":132,"order":133,"children":134},"Prawne","prawne","pl\u002Fprawne",6,[135],{"title":136,"slug":137,"path":138,"order":94,"template":139},"Polityka prywatności","polityka-prywatnosci","pl\u002Fprawne\u002Fpolityka-prywatnosci","page",{"title":141,"slug":142,"path":143,"order":144,"children":145},"Szkolenia","szkolenia","pl\u002Fszkolenia",7,[146],{"title":147,"slug":86,"path":148,"order":88,"template":149},"Szkolenia Voldeno","pl\u002Fszkolenia\u002Findex","trainings",{"title":151,"slug":152,"path":153,"order":154},"Realizacje","realizacje","pl\u002Frealizacje",999,[156,159,163,167,175,177,181,185,194,202],{"title":157,"slug":86,"path":158,"order":88,"template":89},"Voldeno: Smart Home, Gebäudeautomation","de\u002Findex",{"title":160,"slug":161,"path":162,"order":94,"template":95},"Ihr Zuhause","ihr-zuhause","de\u002Fihr-zuhause",{"title":164,"slug":165,"path":166,"order":100,"template":101},"Für Fachbetriebe","fuer-fachbetriebe","de\u002Ffuer-fachbetriebe",{"title":168,"slug":169,"path":170,"order":106,"children":171},"Produkte","produkte","de\u002Fprodukte",[172],{"title":173,"slug":86,"path":174,"order":94,"template":111},"Smart-Home-Produkte​ von Voldeno","de\u002Fprodukte\u002Findex",{"title":113,"slug":114,"path":176,"order":116,"template":117},"de\u002Fkontakt",{"title":178,"slug":179,"path":180,"order":122,"template":123},"Beratung","beratung","de\u002Fberatung",{"title":182,"slug":183,"path":184,"order":122,"template":128},"Über uns","ueber-uns","de\u002Fueber-uns",{"title":186,"slug":187,"path":188,"order":133,"children":189},"Rechtliches","rechtliches","de\u002Frechtliches",[190],{"title":191,"slug":192,"path":193,"order":94,"template":139},"Datenschutzerklärung","privacy-policy","de\u002Frechtliches\u002Fprivacy-policy",{"title":195,"slug":196,"path":197,"order":144,"children":198},"Schulungen","schulungen","de\u002Fschulungen",[199],{"title":200,"slug":86,"path":201,"order":88,"template":149},"Voldeno Schulungen","de\u002Fschulungen\u002Findex",{"title":203,"slug":204,"path":205,"order":154},"Projekte","projekte","de\u002Fprojekte",[207,210,214,217,224,227,230,233,241,249],{"title":208,"slug":86,"path":209,"order":88,"template":89},"Voldeno: Smart Home, ビルディングオートメーション","ja\u002Findex",{"title":211,"slug":212,"path":213,"order":94,"template":95},"ご家庭向け","your-home","ja\u002Fyour-home",{"title":215,"slug":101,"path":216,"order":100,"template":101},"プロ向け","ja\u002Fprofessionals",{"title":218,"slug":111,"path":219,"order":106,"children":220},"製品","ja\u002Fproducts",[221],{"title":222,"slug":86,"path":223,"order":94,"template":111},"Voldeno Smart Home 製品","ja\u002Fproducts\u002Findex",{"title":225,"slug":117,"path":226,"order":116,"template":117},"お問い合わせ","ja\u002Fcontact",{"title":228,"slug":128,"path":229,"order":122,"template":128},"会社概要","ja\u002Fabout",{"title":231,"slug":123,"path":232,"order":122,"template":123},"相談","ja\u002Fconsultation",{"title":234,"slug":235,"path":236,"order":133,"children":237},"法的情報","legal","ja\u002Flegal",[238],{"title":239,"slug":192,"path":240,"order":94,"template":139},"プライバシーポリシー","ja\u002Flegal\u002Fprivacy-policy",{"title":242,"slug":243,"path":244,"order":144,"children":245},"トレーニング","training","ja\u002Ftraining",[246],{"title":247,"slug":86,"path":248,"order":88,"template":149},"Voldeno トレーニング","ja\u002Ftraining\u002Findex",{"title":250,"slug":251,"path":252,"order":154},"Projects","projects","ja\u002Fprojects",[254,257,260,263,270,273,276,279,286,293],{"title":255,"slug":86,"path":256,"order":88,"template":89},"Voldeno: Smart Home, Building Automation","en\u002Findex",{"title":258,"slug":212,"path":259,"order":94,"template":95},"Your Home","en\u002Fyour-home",{"title":261,"slug":101,"path":262,"order":100,"template":101},"For Professionals","en\u002Fprofessionals",{"title":264,"slug":111,"path":265,"order":106,"children":266},"Products","en\u002Fproducts",[267],{"title":268,"slug":86,"path":269,"order":94,"template":111},"Smart Home Products​ from Voldeno","en\u002Fproducts\u002Findex",{"title":271,"slug":117,"path":272,"order":116,"template":117},"Contact","en\u002Fcontact",{"title":274,"slug":128,"path":275,"order":122,"template":128},"About Us","en\u002Fabout",{"title":277,"slug":123,"path":278,"order":122,"template":123},"Consultation","en\u002Fconsultation",{"title":280,"slug":235,"path":281,"order":133,"children":282},"Legal","en\u002Flegal",[283],{"title":284,"slug":192,"path":285,"order":94,"template":139},"Privacy Policy","en\u002Flegal\u002Fprivacy-policy",{"title":287,"slug":243,"path":288,"order":144,"children":289},"Training","en\u002Ftraining",[290],{"title":291,"slug":86,"path":292,"order":88,"template":149},"Voldeno training","en\u002Ftraining\u002Findex",{"title":250,"slug":251,"path":294,"order":154},"en\u002Fprojects",{"module_hub":296,"module_relay":300,"module_1wire":304,"training_foundation":308,"module_analog_input":312,"trainings":316,"consultation":320,"privacy":321,"module_io":325,"downloads":329},{"de":297,"ja":298,"pl":299,"en":298},"produkte\u002Fhub","products\u002Fhub","produkty\u002Fhub",{"en":301,"de":302,"pl":303,"ja":301},"products\u002Frelay","produkte\u002Frelay","produkty\u002Frelay",{"en":305,"pl":306,"de":307,"ja":305},"products\u002F1wire","produkty\u002F1wire","produkte\u002F1wire",{"ja":309,"en":309,"pl":310,"de":311},"training\u002Ffoundation","szkolenia\u002Fpodstawowe","schulungen\u002Fgrundlagen",{"en":313,"pl":314,"ja":313,"de":315},"products\u002Fanalog-input","produkty\u002Fanalog-input","produkte\u002Fanalog-input",{"en":317,"pl":318,"de":319,"ja":317},"training\u002Findex","szkolenia\u002Findex","schulungen\u002Findex",{"de":179,"ja":123,"en":123,"pl":120},{"en":322,"pl":323,"ja":322,"de":324},"legal\u002Fprivacy-policy","prawne\u002Fpolityka-prywatnosci","rechtliches\u002Fprivacy-policy",{"ja":326,"pl":327,"en":326,"de":328},"products\u002Fio","produkty\u002Fio","produkte\u002Fio",{"en":330,"de":330,"ja":330,"pl":331},"downloads","pobieranie",{"ja":333,"en":336,"pl":337,"de":340},{"projects":334,"products":335,"training":317},"projects\u002Findex","products\u002Findex",{"products":335,"training":317,"projects":334},{"produkty":338,"szkolenia":318,"realizacje":339},"produkty\u002Findex","realizacje\u002Findex",{"schulungen":319,"projekte":341,"produkte":342},"projekte\u002Findex","produkte\u002Findex",{"enabled":71,"navigation":344,"section_redirects":1640},{"en":345,"pl":835,"ja":1119,"de":1372},[346,367,376,401,414,763,777,798,820,830],{"title":347,"slug":348,"path":349,"order":94,"children":350},"Getting Started","getting-started","en\u002Fdocs\u002Fgetting-started",[351,355,359,363],{"title":352,"slug":353,"path":354,"order":94},"Core Concepts and Terminology","concepts","en\u002Fdocs\u002Fgetting-started\u002Fconcepts",{"title":356,"slug":357,"path":358,"order":100},"System Overview for Installers","system-overview","en\u002Fdocs\u002Fgetting-started\u002Fsystem-overview",{"title":360,"slug":361,"path":362,"order":106},"How to define logic in Voldeno Studio from scratch","define-logic-in-voldeno-studio","en\u002Fdocs\u002Fgetting-started\u002Fdefine-logic-in-voldeno-studio",{"title":364,"slug":365,"path":366,"order":116},"Volang and VolangVM: why a smart home needs its own automation language","volang-and-volangvm","en\u002Fdocs\u002Fgetting-started\u002Fvolang-and-volangvm",{"title":368,"slug":369,"path":370,"order":100,"children":371},"System Architecture","system-architecture","en\u002Fdocs\u002Fsystem-architecture",[372],{"title":373,"slug":374,"path":375,"order":94},"Security Architecture","security","en\u002Fdocs\u002Fsystem-architecture\u002Fsecurity",{"title":377,"slug":378,"path":379,"order":106,"children":380},"Modules & Peripherals","modules","en\u002Fdocs\u002Fmodules",[381,385,389,393,397],{"title":382,"slug":383,"path":384,"order":94},"Hub Module Wiring","hub-wiring","en\u002Fdocs\u002Fmodules\u002Fhub-wiring",{"title":386,"slug":387,"path":388,"order":100},"I\u002FO Module Wiring","io-wiring","en\u002Fdocs\u002Fmodules\u002Fio-wiring",{"title":390,"slug":391,"path":392,"order":106},"Relay Module Wiring","relay-wiring","en\u002Fdocs\u002Fmodules\u002Frelay-wiring",{"title":394,"slug":395,"path":396,"order":116},"1-Wire Module Wiring","1wire-wiring","en\u002Fdocs\u002Fmodules\u002F1wire-wiring",{"title":398,"slug":399,"path":400,"order":122},"Analog Input Module Wiring","analog-input-wiring","en\u002Fdocs\u002Fmodules\u002Fanalog-input-wiring",{"title":402,"slug":403,"path":404,"order":116,"children":405},"Wiring Guidelines","wiring","en\u002Fdocs\u002Fwiring",[406,410],{"title":407,"slug":408,"path":409,"order":94},"Bus Topology & Wiring","bus-topology","en\u002Fdocs\u002Fwiring\u002Fbus-topology",{"title":411,"slug":412,"path":413,"order":100},"Power Supply Sizing and Distribution","power-supply","en\u002Fdocs\u002Fwiring\u002Fpower-supply",{"title":415,"slug":416,"path":417,"order":122,"children":418},"Logic Blocks","logic-blocks","en\u002Fdocs\u002Flogic-blocks",[419,425,476,743],{"title":420,"slug":421,"path":422,"order":88,"template":423,"translation_key":424},"Overview","overview","en\u002Fdocs\u002Flogic-blocks\u002Foverview","logic-block-index","logic-blocks-overview",{"title":426,"slug":427,"path":428,"order":94,"children":429},"Input","input","en\u002Fdocs\u002Flogic-blocks\u002Finput",[430,436,441,446,451,456,461,466,471],{"title":431,"slug":432,"path":433,"order":88,"template":434,"translation_key":435},"Binary input","binary_input","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fbinary_input","logic-block","logic-block-binary_input",{"title":437,"slug":438,"path":439,"order":88,"template":434,"translation_key":440},"Boolean constant","boolean_constant","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fboolean_constant","logic-block-boolean_constant",{"title":442,"slug":443,"path":444,"order":88,"template":434,"translation_key":445},"Mode monitor","operation_mode_monitor","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Foperation_mode_monitor","logic-block-operation_mode_monitor",{"title":447,"slug":448,"path":449,"order":88,"template":434,"translation_key":450},"Numeric constant","numeric_constant","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fnumeric_constant","logic-block-numeric_constant",{"title":452,"slug":453,"path":454,"order":88,"template":434,"translation_key":455},"Numeric input","numeric_input","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fnumeric_input","logic-block-numeric_input",{"title":457,"slug":458,"path":459,"order":88,"template":434,"translation_key":460},"PulseAt","pulse_at","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fpulse_at","logic-block-pulse_at",{"title":462,"slug":463,"path":464,"order":88,"template":434,"translation_key":465},"Schedule","schedule","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fschedule","logic-block-schedule",{"title":467,"slug":468,"path":469,"order":88,"template":434,"translation_key":470},"String constant","string_constant","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fstring_constant","logic-block-string_constant",{"title":472,"slug":473,"path":474,"order":88,"template":434,"translation_key":475},"Switch","switch","en\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fswitch","logic-block-switch",{"title":477,"slug":478,"path":479,"order":100,"children":480},"Process","process","en\u002Fdocs\u002Flogic-blocks\u002Fprocess",[481,492,497,502,507,512,517,522,527,532,537,542,547,552,557,562,567,572,583,588,593,598,603,608,613,618,623,628,633,638,643,648,653,658,663,668,673,678,683,688,693,698,703,708,713,718,723,728,733,738],{"title":482,"slug":483,"path":484,"order":88,"template":434,"children":485,"translation_key":491},"Air conditioner","air_conditioner","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fair_conditioner",[486],{"title":487,"slug":488,"path":489,"order":88,"template":434,"translation_key":490},"Daikin BRP069","daikin_brp069","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fair_conditioner\u002Fdaikin_brp069","logic-block-daikin_brp069","logic-block-air_conditioner",{"title":493,"slug":494,"path":495,"order":88,"template":434,"translation_key":496},"Binary limiter","binary_limiter","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fbinary_limiter","logic-block-binary_limiter",{"title":498,"slug":499,"path":500,"order":88,"template":434,"translation_key":501},"Boolean to string","boolean_to_string","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fboolean_to_string","logic-block-boolean_to_string",{"title":503,"slug":504,"path":505,"order":88,"template":434,"translation_key":506},"Climate regulator","climate_regulator","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fclimate_regulator","logic-block-climate_regulator",{"title":508,"slug":509,"path":510,"order":88,"template":434,"translation_key":511},"Climate regulator hub","climate_regulator_hub","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fclimate_regulator_hub","logic-block-climate_regulator_hub",{"title":513,"slug":514,"path":515,"order":88,"template":434,"translation_key":516},"Delay","delay","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fdelay","logic-block-delay",{"title":518,"slug":519,"path":520,"order":88,"template":434,"translation_key":521},"Delayed Pulse","delayed_pulse","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fdelayed_pulse","logic-block-delayed_pulse",{"title":523,"slug":524,"path":525,"order":88,"template":434,"translation_key":526},"Door, window","door_window_monitor","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fdoor_window_monitor","logic-block-door_window_monitor",{"title":528,"slug":529,"path":530,"order":88,"template":434,"translation_key":531},"Edge detector","edge_detector","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fedge_detector","logic-block-edge_detector",{"title":533,"slug":534,"path":535,"order":88,"template":434,"translation_key":536},"Gate","gate","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fgate","logic-block-gate",{"title":538,"slug":539,"path":540,"order":88,"template":434,"translation_key":541},"HTTP Request","http_request","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fhttp_request","logic-block-http_request",{"title":543,"slug":544,"path":545,"order":88,"template":434,"translation_key":546},"Hysteresis","hysteresis","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fhysteresis","logic-block-hysteresis",{"title":548,"slug":549,"path":550,"order":88,"template":434,"translation_key":551},"Irrigation","irrigation","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Firrigation","logic-block-irrigation",{"title":553,"slug":554,"path":555,"order":88,"template":434,"translation_key":556},"JSON Get Boolean","json_get_boolean","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fjson_get_boolean","logic-block-json_get_boolean",{"title":558,"slug":559,"path":560,"order":88,"template":434,"translation_key":561},"JSON Get Number","json_get_number","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fjson_get_number","logic-block-json_get_number",{"title":563,"slug":564,"path":565,"order":88,"template":434,"translation_key":566},"JSON Get String","json_get_string","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fjson_get_string","logic-block-json_get_string",{"title":568,"slug":569,"path":570,"order":88,"template":434,"translation_key":571},"Level to pulse","level_to_pulse","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flevel_to_pulse","logic-block-level_to_pulse",{"title":573,"slug":574,"path":575,"order":88,"template":434,"children":576,"translation_key":582},"Light","light","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flight",[577],{"title":578,"slug":579,"path":580,"order":88,"template":434,"translation_key":581},"TP-Link Tapo","tapo_light","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flight\u002Ftapo_light","logic-block-tapo_light","logic-block-light",{"title":584,"slug":585,"path":586,"order":88,"template":434,"translation_key":587},"Logic::And","logic_and","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flogic_and","logic-block-logic_and",{"title":589,"slug":590,"path":591,"order":88,"template":434,"translation_key":592},"Logic::Not","logic_not","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flogic_not","logic-block-logic_not",{"title":594,"slug":595,"path":596,"order":88,"template":434,"translation_key":597},"Logic::Or","logic_or","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flogic_or","logic-block-logic_or",{"title":599,"slug":600,"path":601,"order":88,"template":434,"translation_key":602},"Math::Abs","math_abs","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_abs","logic-block-math_abs",{"title":604,"slug":605,"path":606,"order":88,"template":434,"translation_key":607},"Math::Add","math_add","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_add","logic-block-math_add",{"title":609,"slug":610,"path":611,"order":88,"template":434,"translation_key":612},"Math::Average","math_average","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_average","logic-block-math_average",{"title":614,"slug":615,"path":616,"order":88,"template":434,"translation_key":617},"Math::Ceil","math_ceil","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_ceil","logic-block-math_ceil",{"title":619,"slug":620,"path":621,"order":88,"template":434,"translation_key":622},"Math::Divide","math_divide","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_divide","logic-block-math_divide",{"title":624,"slug":625,"path":626,"order":88,"template":434,"translation_key":627},"Math::Floor","math_floor","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_floor","logic-block-math_floor",{"title":629,"slug":630,"path":631,"order":88,"template":434,"translation_key":632},"Math::Max","math_max","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_max","logic-block-math_max",{"title":634,"slug":635,"path":636,"order":88,"template":434,"translation_key":637},"Math::Min","math_min","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_min","logic-block-math_min",{"title":639,"slug":640,"path":641,"order":88,"template":434,"translation_key":642},"Math::Modulo","math_modulo","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_modulo","logic-block-math_modulo",{"title":644,"slug":645,"path":646,"order":88,"template":434,"translation_key":647},"Math::Multiply","math_multiply","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_multiply","logic-block-math_multiply",{"title":649,"slug":650,"path":651,"order":88,"template":434,"translation_key":652},"Math::Random","math_random","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_random","logic-block-math_random",{"title":654,"slug":655,"path":656,"order":88,"template":434,"translation_key":657},"Math::Round","math_round","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_round","logic-block-math_round",{"title":659,"slug":660,"path":661,"order":88,"template":434,"translation_key":662},"Math::Subtract","math_subtract","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_subtract","logic-block-math_subtract",{"title":664,"slug":665,"path":666,"order":88,"template":434,"translation_key":667},"Motor axis","motor_axis","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmotor_axis","logic-block-motor_axis",{"title":669,"slug":670,"path":671,"order":88,"template":434,"translation_key":672},"Moving average","moving_average","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmoving_average","logic-block-moving_average",{"title":674,"slug":675,"path":676,"order":88,"template":434,"translation_key":677},"Number to string","number_to_string","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fnumber_to_string","logic-block-number_to_string",{"title":679,"slug":680,"path":681,"order":88,"template":434,"translation_key":682},"Numeric latch","numeric_latch","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fnumeric_latch","logic-block-numeric_latch",{"title":684,"slug":685,"path":686,"order":88,"template":434,"translation_key":687},"Numeric predicate","numeric_predicate","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fnumeric_predicate","logic-block-numeric_predicate",{"title":689,"slug":690,"path":691,"order":88,"template":434,"translation_key":692},"Numeric throttle","numeric_throttle","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fnumeric_throttle","logic-block-numeric_throttle",{"title":694,"slug":695,"path":696,"order":88,"template":434,"translation_key":697},"PubSub::Publish","pubsub","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fpubsub","logic-block-pubsub",{"title":699,"slug":700,"path":701,"order":88,"template":434,"translation_key":702},"Pulse counter","pulse_counter","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fpulse_counter","logic-block-pulse_counter",{"title":704,"slug":705,"path":706,"order":88,"template":434,"translation_key":707},"Pulse gate","pulse_gate","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fpulse_gate","logic-block-pulse_gate",{"title":709,"slug":710,"path":711,"order":88,"template":434,"translation_key":712},"Pulse throttle","pulse_throttle","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fpulse_throttle","logic-block-pulse_throttle",{"title":714,"slug":715,"path":716,"order":88,"template":434,"translation_key":717},"Sequencer","sequencer","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fsequencer","logic-block-sequencer",{"title":719,"slug":720,"path":721,"order":88,"template":434,"translation_key":722},"Shading","shading","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fshading","logic-block-shading",{"title":724,"slug":725,"path":726,"order":88,"template":434,"translation_key":727},"String format","string_format","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fstring_format","logic-block-string_format",{"title":729,"slug":730,"path":731,"order":88,"template":434,"translation_key":732},"String latch","string_latch","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fstring_latch","logic-block-string_latch",{"title":734,"slug":735,"path":736,"order":88,"template":434,"translation_key":737},"Toggle","toggle","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Ftoggle","logic-block-toggle",{"title":739,"slug":740,"path":741,"order":88,"template":434,"translation_key":742},"Variable Delayed Pulse","variable_delayed_pulse","en\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fvariable_delayed_pulse","logic-block-variable_delayed_pulse",{"title":744,"slug":745,"path":746,"order":106,"children":747},"Output","output","en\u002Fdocs\u002Flogic-blocks\u002Foutput",[748,753,758],{"title":749,"slug":750,"path":751,"order":88,"template":434,"translation_key":752},"Gauge","gauge","en\u002Fdocs\u002Flogic-blocks\u002Foutput\u002Fgauge","logic-block-gauge",{"title":754,"slug":755,"path":756,"order":88,"template":434,"translation_key":757},"Mode controller","operation_mode_controller","en\u002Fdocs\u002Flogic-blocks\u002Foutput\u002Foperation_mode_controller","logic-block-operation_mode_controller",{"title":759,"slug":760,"path":761,"order":88,"template":434,"translation_key":762},"Relay","relay","en\u002Fdocs\u002Flogic-blocks\u002Foutput\u002Frelay","logic-block-relay",{"title":764,"slug":765,"path":766,"order":133,"children":767},"Volang Programming Language","volang","en\u002Fdocs\u002Fvolang",[768,772],{"title":769,"slug":770,"path":771,"order":94},"The Volang Language","language","en\u002Fdocs\u002Fvolang\u002Flanguage",{"title":773,"slug":774,"path":775,"order":100,"template":776},"Standard Library","stdlib","en\u002Fdocs\u002Fvolang\u002Fstdlib","api-reference",{"title":778,"slug":779,"path":780,"order":144,"children":781},"Software & Tools","software","en\u002Fdocs\u002Fsoftware",[782,786,790,794],{"title":783,"slug":784,"path":785,"order":94},"Voldeno Studio - Installation and Walkthrough","studio","en\u002Fdocs\u002Fsoftware\u002Fstudio",{"title":787,"slug":788,"path":789,"order":100},"Voldeno Studio - AI Assistant","ai-assistant","en\u002Fdocs\u002Fsoftware\u002Fai-assistant",{"title":791,"slug":792,"path":793,"order":106},"Voldeno Studio - Schedules","schedules","en\u002Fdocs\u002Fsoftware\u002Fschedules",{"title":795,"slug":796,"path":797,"order":116},"Voldeno Studio - Abstract Blocks and Implementations","abstract-blocks-and-implementations","en\u002Fdocs\u002Fsoftware\u002Fabstract-blocks-and-implementations",{"title":799,"slug":800,"path":801,"order":802,"children":803},"How-to Guides & Recipes","how-to","en\u002Fdocs\u002Fhow-to",8,[804,808,812,816],{"title":805,"slug":806,"path":807,"order":94},"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":809,"slug":810,"path":811,"order":100},"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":813,"slug":814,"path":815,"order":106},"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":817,"slug":818,"path":819,"order":116},"7 most common smart home design mistakes","smart-home-design-mistakes","en\u002Fdocs\u002Fhow-to\u002Fsmart-home-design-mistakes",{"title":821,"slug":822,"path":823,"order":824,"children":825},"Troubleshooting & Diagnostics","troubleshooting","en\u002Fdocs\u002Ftroubleshooting",9,[826],{"title":827,"slug":828,"path":829,"order":94},"Bus Communication Troubleshooting","bus-communication","en\u002Fdocs\u002Ftroubleshooting\u002Fbus-communication",{"title":831,"slug":832,"path":833,"order":834},"Frequently Asked Questions","faq","en\u002Fdocs\u002Ffaq",10,[836,857,866,891,904,1055,1067,1086,1107,1116],{"title":837,"slug":838,"path":839,"order":94,"children":840},"Pierwsze kroki","pierwsze-kroki","pl\u002Fdocs\u002Fpierwsze-kroki",[841,845,849,853],{"title":842,"slug":843,"path":844,"order":94},"Podstawowe pojęcia i terminologia","pojecia","pl\u002Fdocs\u002Fpierwsze-kroki\u002Fpojecia",{"title":846,"slug":847,"path":848,"order":100},"Przegląd systemu dla instalatorów","przeglad-systemu","pl\u002Fdocs\u002Fpierwsze-kroki\u002Fprzeglad-systemu",{"title":850,"slug":851,"path":852,"order":106},"Jak zdefiniować logikę w Voldeno Studio od zera","definiowanie-logiki-w-voldeno-studio","pl\u002Fdocs\u002Fpierwsze-kroki\u002Fdefiniowanie-logiki-w-voldeno-studio",{"title":854,"slug":855,"path":856,"order":116},"Volang i VolangVM: po co inteligentny dom potrzebuje własnego języka automatyki","volang-i-volangvm","pl\u002Fdocs\u002Fpierwsze-kroki\u002Fvolang-i-volangvm",{"title":858,"slug":859,"path":860,"order":100,"children":861},"Architektura systemu","architektura-systemu","pl\u002Fdocs\u002Farchitektura-systemu",[862],{"title":863,"slug":864,"path":865,"order":94},"Architektura bezpieczeństwa","bezpieczenstwo","pl\u002Fdocs\u002Farchitektura-systemu\u002Fbezpieczenstwo",{"title":867,"slug":868,"path":869,"order":106,"children":870},"Moduły i peryferia","moduly","pl\u002Fdocs\u002Fmoduly",[871,875,879,883,887],{"title":872,"slug":873,"path":874,"order":94},"Okablowanie modułu HUB","okablowanie-hub","pl\u002Fdocs\u002Fmoduly\u002Fokablowanie-hub",{"title":876,"slug":877,"path":878,"order":100},"Okablowanie modułu I\u002FO","okablowanie-io","pl\u002Fdocs\u002Fmoduly\u002Fokablowanie-io",{"title":880,"slug":881,"path":882,"order":106},"Okablowanie modułu RELAY","okablowanie-relay","pl\u002Fdocs\u002Fmoduly\u002Fokablowanie-relay",{"title":884,"slug":885,"path":886,"order":116},"Okablowanie modułu 1-Wire","okablowanie-1wire","pl\u002Fdocs\u002Fmoduly\u002Fokablowanie-1wire",{"title":888,"slug":889,"path":890,"order":122},"Okablowanie modułu Analog Input","okablowanie-analog-input","pl\u002Fdocs\u002Fmoduly\u002Fokablowanie-analog-input",{"title":892,"slug":893,"path":894,"order":116,"children":895},"Wytyczne okablowania","okablowanie","pl\u002Fdocs\u002Fokablowanie",[896,900],{"title":897,"slug":898,"path":899,"order":94},"Topologia i okablowanie magistrali","topologia-magistrali","pl\u002Fdocs\u002Fokablowanie\u002Ftopologia-magistrali",{"title":901,"slug":902,"path":903,"order":100},"Dobór i dystrybucja zasilania","zasilanie","pl\u002Fdocs\u002Fokablowanie\u002Fzasilanie",{"title":905,"slug":906,"path":907,"order":122,"children":908},"Bloki logiczne","bloki-logiczne","pl\u002Fdocs\u002Fbloki-logiczne",[909,913,935,1045],{"title":910,"slug":911,"path":912,"order":88,"template":423,"translation_key":424},"Przegląd","przeglad","pl\u002Fdocs\u002Fbloki-logiczne\u002Fprzeglad",{"title":914,"slug":427,"path":915,"order":94,"children":916},"Wejścia","pl\u002Fdocs\u002Fbloki-logiczne\u002Finput",[917,919,921,923,925,927,929,931,933],{"title":431,"slug":432,"path":918,"order":88,"template":434,"translation_key":435},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fbinary_input",{"title":437,"slug":438,"path":920,"order":88,"template":434,"translation_key":440},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fboolean_constant",{"title":442,"slug":443,"path":922,"order":88,"template":434,"translation_key":445},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Foperation_mode_monitor",{"title":447,"slug":448,"path":924,"order":88,"template":434,"translation_key":450},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fnumeric_constant",{"title":452,"slug":453,"path":926,"order":88,"template":434,"translation_key":455},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fnumeric_input",{"title":457,"slug":458,"path":928,"order":88,"template":434,"translation_key":460},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fpulse_at",{"title":462,"slug":463,"path":930,"order":88,"template":434,"translation_key":465},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fschedule",{"title":467,"slug":468,"path":932,"order":88,"template":434,"translation_key":470},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fstring_constant",{"title":472,"slug":473,"path":934,"order":88,"template":434,"translation_key":475},"pl\u002Fdocs\u002Fbloki-logiczne\u002Finput\u002Fswitch",{"title":936,"slug":478,"path":937,"order":100,"children":938},"Przetwarzanie","pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess",[939,944,946,948,950,952,954,956,958,960,962,964,966,968,970,972,974,976,981,983,985,987,989,991,993,995,997,999,1001,1003,1005,1007,1009,1011,1013,1015,1017,1019,1021,1023,1025,1027,1029,1031,1033,1035,1037,1039,1041,1043],{"title":482,"slug":483,"path":940,"order":88,"template":434,"children":941,"translation_key":491},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fair_conditioner",[942],{"title":487,"slug":488,"path":943,"order":88,"template":434,"translation_key":490},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fair_conditioner\u002Fdaikin_brp069",{"title":493,"slug":494,"path":945,"order":88,"template":434,"translation_key":496},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fbinary_limiter",{"title":498,"slug":499,"path":947,"order":88,"template":434,"translation_key":501},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fboolean_to_string",{"title":503,"slug":504,"path":949,"order":88,"template":434,"translation_key":506},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fclimate_regulator",{"title":508,"slug":509,"path":951,"order":88,"template":434,"translation_key":511},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fclimate_regulator_hub",{"title":513,"slug":514,"path":953,"order":88,"template":434,"translation_key":516},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fdelay",{"title":518,"slug":519,"path":955,"order":88,"template":434,"translation_key":521},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fdelayed_pulse",{"title":523,"slug":524,"path":957,"order":88,"template":434,"translation_key":526},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fdoor_window_monitor",{"title":528,"slug":529,"path":959,"order":88,"template":434,"translation_key":531},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fedge_detector",{"title":533,"slug":534,"path":961,"order":88,"template":434,"translation_key":536},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fgate",{"title":538,"slug":539,"path":963,"order":88,"template":434,"translation_key":541},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fhttp_request",{"title":543,"slug":544,"path":965,"order":88,"template":434,"translation_key":546},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fhysteresis",{"title":548,"slug":549,"path":967,"order":88,"template":434,"translation_key":551},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Firrigation",{"title":553,"slug":554,"path":969,"order":88,"template":434,"translation_key":556},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fjson_get_boolean",{"title":558,"slug":559,"path":971,"order":88,"template":434,"translation_key":561},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fjson_get_number",{"title":563,"slug":564,"path":973,"order":88,"template":434,"translation_key":566},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fjson_get_string",{"title":568,"slug":569,"path":975,"order":88,"template":434,"translation_key":571},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Flevel_to_pulse",{"title":573,"slug":574,"path":977,"order":88,"template":434,"children":978,"translation_key":582},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Flight",[979],{"title":578,"slug":579,"path":980,"order":88,"template":434,"translation_key":581},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Flight\u002Ftapo_light",{"title":584,"slug":585,"path":982,"order":88,"template":434,"translation_key":587},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Flogic_and",{"title":589,"slug":590,"path":984,"order":88,"template":434,"translation_key":592},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Flogic_not",{"title":594,"slug":595,"path":986,"order":88,"template":434,"translation_key":597},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Flogic_or",{"title":599,"slug":600,"path":988,"order":88,"template":434,"translation_key":602},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_abs",{"title":604,"slug":605,"path":990,"order":88,"template":434,"translation_key":607},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_add",{"title":609,"slug":610,"path":992,"order":88,"template":434,"translation_key":612},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_average",{"title":614,"slug":615,"path":994,"order":88,"template":434,"translation_key":617},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_ceil",{"title":619,"slug":620,"path":996,"order":88,"template":434,"translation_key":622},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_divide",{"title":624,"slug":625,"path":998,"order":88,"template":434,"translation_key":627},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_floor",{"title":629,"slug":630,"path":1000,"order":88,"template":434,"translation_key":632},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_max",{"title":634,"slug":635,"path":1002,"order":88,"template":434,"translation_key":637},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_min",{"title":639,"slug":640,"path":1004,"order":88,"template":434,"translation_key":642},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_modulo",{"title":644,"slug":645,"path":1006,"order":88,"template":434,"translation_key":647},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_multiply",{"title":649,"slug":650,"path":1008,"order":88,"template":434,"translation_key":652},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_random",{"title":654,"slug":655,"path":1010,"order":88,"template":434,"translation_key":657},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_round",{"title":659,"slug":660,"path":1012,"order":88,"template":434,"translation_key":662},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmath_subtract",{"title":664,"slug":665,"path":1014,"order":88,"template":434,"translation_key":667},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmotor_axis",{"title":669,"slug":670,"path":1016,"order":88,"template":434,"translation_key":672},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fmoving_average",{"title":674,"slug":675,"path":1018,"order":88,"template":434,"translation_key":677},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fnumber_to_string",{"title":679,"slug":680,"path":1020,"order":88,"template":434,"translation_key":682},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fnumeric_latch",{"title":684,"slug":685,"path":1022,"order":88,"template":434,"translation_key":687},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fnumeric_predicate",{"title":689,"slug":690,"path":1024,"order":88,"template":434,"translation_key":692},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fnumeric_throttle",{"title":694,"slug":695,"path":1026,"order":88,"template":434,"translation_key":697},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fpubsub",{"title":699,"slug":700,"path":1028,"order":88,"template":434,"translation_key":702},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fpulse_counter",{"title":704,"slug":705,"path":1030,"order":88,"template":434,"translation_key":707},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fpulse_gate",{"title":709,"slug":710,"path":1032,"order":88,"template":434,"translation_key":712},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fpulse_throttle",{"title":714,"slug":715,"path":1034,"order":88,"template":434,"translation_key":717},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fsequencer",{"title":719,"slug":720,"path":1036,"order":88,"template":434,"translation_key":722},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fshading",{"title":724,"slug":725,"path":1038,"order":88,"template":434,"translation_key":727},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fstring_format",{"title":729,"slug":730,"path":1040,"order":88,"template":434,"translation_key":732},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fstring_latch",{"title":734,"slug":735,"path":1042,"order":88,"template":434,"translation_key":737},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Ftoggle",{"title":739,"slug":740,"path":1044,"order":88,"template":434,"translation_key":742},"pl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Fvariable_delayed_pulse",{"title":1046,"slug":745,"path":1047,"order":106,"children":1048},"Wyjścia","pl\u002Fdocs\u002Fbloki-logiczne\u002Foutput",[1049,1051,1053],{"title":749,"slug":750,"path":1050,"order":88,"template":434,"translation_key":752},"pl\u002Fdocs\u002Fbloki-logiczne\u002Foutput\u002Fgauge",{"title":754,"slug":755,"path":1052,"order":88,"template":434,"translation_key":757},"pl\u002Fdocs\u002Fbloki-logiczne\u002Foutput\u002Foperation_mode_controller",{"title":759,"slug":760,"path":1054,"order":88,"template":434,"translation_key":762},"pl\u002Fdocs\u002Fbloki-logiczne\u002Foutput\u002Frelay",{"title":1056,"slug":765,"path":1057,"order":133,"children":1058},"Język programowania Volang","pl\u002Fdocs\u002Fvolang",[1059,1063],{"title":1060,"slug":1061,"path":1062,"order":94},"Język Volang","jezyk","pl\u002Fdocs\u002Fvolang\u002Fjezyk",{"title":1064,"slug":1065,"path":1066,"order":100,"template":776},"Biblioteka standardowa","biblioteka-standardowa","pl\u002Fdocs\u002Fvolang\u002Fbiblioteka-standardowa",{"title":1068,"slug":1069,"path":1070,"order":144,"children":1071},"Oprogramowanie","oprogramowanie","pl\u002Fdocs\u002Foprogramowanie",[1072,1075,1079,1082],{"title":1073,"slug":784,"path":1074,"order":94},"Voldeno Studio - Instalacja i przewodnik","pl\u002Fdocs\u002Foprogramowanie\u002Fstudio",{"title":1076,"slug":1077,"path":1078,"order":100},"Voldeno Studio - Asystent AI","asystent-ai","pl\u002Fdocs\u002Foprogramowanie\u002Fasystent-ai",{"title":1080,"slug":792,"path":1081,"order":106},"Voldeno Studio - Harmonogramy","pl\u002Fdocs\u002Foprogramowanie\u002Fschedules",{"title":1083,"slug":1084,"path":1085,"order":116},"Voldeno Studio - Bloki abstrakcyjne i implementacje","bloki-abstrakcyjne-i-implementacje","pl\u002Fdocs\u002Foprogramowanie\u002Fbloki-abstrakcyjne-i-implementacje",{"title":1087,"slug":1088,"path":1089,"order":802,"children":1090},"Poradniki","poradniki","pl\u002Fdocs\u002Fporadniki",[1091,1095,1099,1103],{"title":1092,"slug":1093,"path":1094,"order":94},"Czym jest smart home i jak działa?","czym-jest-smart-home","pl\u002Fdocs\u002Fporadniki\u002Fczym-jest-smart-home",{"title":1096,"slug":1097,"path":1098,"order":100},"Jaki system smart home wybrać? Praktyczny przewodnik","jaki-system-smart-home-wybrac","pl\u002Fdocs\u002Fporadniki\u002Fjaki-system-smart-home-wybrac",{"title":1100,"slug":1101,"path":1102,"order":106},"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":1104,"slug":1105,"path":1106,"order":116},"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":1108,"slug":1109,"path":1110,"order":824,"children":1111},"Diagnostyka i rozwiązywanie problemów","diagnostyka","pl\u002Fdocs\u002Fdiagnostyka",[1112],{"title":1113,"slug":1114,"path":1115,"order":94},"Rozwiązywanie problemów z komunikacją magistrali","komunikacja-magistrali","pl\u002Fdocs\u002Fdiagnostyka\u002Fkomunikacja-magistrali",{"title":1117,"slug":832,"path":1118,"order":834},"Często zadawane pytania","pl\u002Fdocs\u002Ffaq",[1120,1136,1143,1162,1172,1320,1330,1346,1362,1369],{"title":1121,"slug":348,"path":1122,"order":94,"children":1123},"はじめに","ja\u002Fdocs\u002Fgetting-started",[1124,1127,1130,1133],{"title":1125,"slug":353,"path":1126,"order":94},"基本概念と用語","ja\u002Fdocs\u002Fgetting-started\u002Fconcepts",{"title":1128,"slug":357,"path":1129,"order":100},"インストーラー向けシステム概要","ja\u002Fdocs\u002Fgetting-started\u002Fsystem-overview",{"title":1131,"slug":361,"path":1132,"order":106},"Voldeno Studio でゼロからロジックを定義する方法","ja\u002Fdocs\u002Fgetting-started\u002Fdefine-logic-in-voldeno-studio",{"title":1134,"slug":365,"path":1135,"order":116},"Volang と VolangVM: スマートホームに専用の自動化言語が必要な理由","ja\u002Fdocs\u002Fgetting-started\u002Fvolang-and-volangvm",{"title":1137,"slug":369,"path":1138,"order":100,"children":1139},"システムアーキテクチャ","ja\u002Fdocs\u002Fsystem-architecture",[1140],{"title":1141,"slug":374,"path":1142,"order":94},"セキュリティアーキテクチャ","ja\u002Fdocs\u002Fsystem-architecture\u002Fsecurity",{"title":1144,"slug":378,"path":1145,"order":106,"children":1146},"モジュールと周辺機器","ja\u002Fdocs\u002Fmodules",[1147,1150,1153,1156,1159],{"title":1148,"slug":383,"path":1149,"order":94},"Hub モジュール配線","ja\u002Fdocs\u002Fmodules\u002Fhub-wiring",{"title":1151,"slug":387,"path":1152,"order":100},"I\u002FO モジュール配線","ja\u002Fdocs\u002Fmodules\u002Fio-wiring",{"title":1154,"slug":391,"path":1155,"order":106},"Relay モジュール配線","ja\u002Fdocs\u002Fmodules\u002Frelay-wiring",{"title":1157,"slug":395,"path":1158,"order":116},"1-Wire モジュール配線","ja\u002Fdocs\u002Fmodules\u002F1wire-wiring",{"title":1160,"slug":399,"path":1161,"order":122},"Analog Input モジュール配線","ja\u002Fdocs\u002Fmodules\u002Fanalog-input-wiring",{"title":1163,"slug":403,"path":1164,"order":116,"children":1165},"配線ガイドライン","ja\u002Fdocs\u002Fwiring",[1166,1169],{"title":1167,"slug":408,"path":1168,"order":94},"バストポロジと配線","ja\u002Fdocs\u002Fwiring\u002Fbus-topology",{"title":1170,"slug":412,"path":1171,"order":100},"電源容量の設計と配電","ja\u002Fdocs\u002Fwiring\u002Fpower-supply",{"title":415,"slug":416,"path":1173,"order":122,"children":1174},"ja\u002Fdocs\u002Flogic-blocks",[1175,1178,1200,1310],{"title":1176,"slug":421,"path":1177,"order":88,"template":423,"translation_key":424},"概要","ja\u002Fdocs\u002Flogic-blocks\u002Foverview",{"title":1179,"slug":427,"path":1180,"order":94,"children":1181},"入力","ja\u002Fdocs\u002Flogic-blocks\u002Finput",[1182,1184,1186,1188,1190,1192,1194,1196,1198],{"title":431,"slug":432,"path":1183,"order":88,"template":434,"translation_key":435},"ja\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fbinary_input",{"title":437,"slug":438,"path":1185,"order":88,"template":434,"translation_key":440},"ja\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fboolean_constant",{"title":442,"slug":443,"path":1187,"order":88,"template":434,"translation_key":445},"ja\u002Fdocs\u002Flogic-blocks\u002Finput\u002Foperation_mode_monitor",{"title":447,"slug":448,"path":1189,"order":88,"template":434,"translation_key":450},"ja\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fnumeric_constant",{"title":452,"slug":453,"path":1191,"order":88,"template":434,"translation_key":455},"ja\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fnumeric_input",{"title":457,"slug":458,"path":1193,"order":88,"template":434,"translation_key":460},"ja\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fpulse_at",{"title":462,"slug":463,"path":1195,"order":88,"template":434,"translation_key":465},"ja\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fschedule",{"title":467,"slug":468,"path":1197,"order":88,"template":434,"translation_key":470},"ja\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fstring_constant",{"title":472,"slug":473,"path":1199,"order":88,"template":434,"translation_key":475},"ja\u002Fdocs\u002Flogic-blocks\u002Finput\u002Fswitch",{"title":1201,"slug":478,"path":1202,"order":100,"children":1203},"処理","ja\u002Fdocs\u002Flogic-blocks\u002Fprocess",[1204,1209,1211,1213,1215,1217,1219,1221,1223,1225,1227,1229,1231,1233,1235,1237,1239,1241,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308],{"title":482,"slug":483,"path":1205,"order":88,"template":434,"children":1206,"translation_key":491},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fair_conditioner",[1207],{"title":487,"slug":488,"path":1208,"order":88,"template":434,"translation_key":490},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fair_conditioner\u002Fdaikin_brp069",{"title":493,"slug":494,"path":1210,"order":88,"template":434,"translation_key":496},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fbinary_limiter",{"title":498,"slug":499,"path":1212,"order":88,"template":434,"translation_key":501},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fboolean_to_string",{"title":503,"slug":504,"path":1214,"order":88,"template":434,"translation_key":506},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fclimate_regulator",{"title":508,"slug":509,"path":1216,"order":88,"template":434,"translation_key":511},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fclimate_regulator_hub",{"title":513,"slug":514,"path":1218,"order":88,"template":434,"translation_key":516},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fdelay",{"title":518,"slug":519,"path":1220,"order":88,"template":434,"translation_key":521},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fdelayed_pulse",{"title":523,"slug":524,"path":1222,"order":88,"template":434,"translation_key":526},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fdoor_window_monitor",{"title":528,"slug":529,"path":1224,"order":88,"template":434,"translation_key":531},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fedge_detector",{"title":533,"slug":534,"path":1226,"order":88,"template":434,"translation_key":536},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fgate",{"title":538,"slug":539,"path":1228,"order":88,"template":434,"translation_key":541},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fhttp_request",{"title":543,"slug":544,"path":1230,"order":88,"template":434,"translation_key":546},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fhysteresis",{"title":548,"slug":549,"path":1232,"order":88,"template":434,"translation_key":551},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Firrigation",{"title":553,"slug":554,"path":1234,"order":88,"template":434,"translation_key":556},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fjson_get_boolean",{"title":558,"slug":559,"path":1236,"order":88,"template":434,"translation_key":561},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fjson_get_number",{"title":563,"slug":564,"path":1238,"order":88,"template":434,"translation_key":566},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fjson_get_string",{"title":568,"slug":569,"path":1240,"order":88,"template":434,"translation_key":571},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flevel_to_pulse",{"title":573,"slug":574,"path":1242,"order":88,"template":434,"children":1243,"translation_key":582},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flight",[1244],{"title":578,"slug":579,"path":1245,"order":88,"template":434,"translation_key":581},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flight\u002Ftapo_light",{"title":584,"slug":585,"path":1247,"order":88,"template":434,"translation_key":587},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flogic_and",{"title":589,"slug":590,"path":1249,"order":88,"template":434,"translation_key":592},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flogic_not",{"title":594,"slug":595,"path":1251,"order":88,"template":434,"translation_key":597},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flogic_or",{"title":599,"slug":600,"path":1253,"order":88,"template":434,"translation_key":602},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_abs",{"title":604,"slug":605,"path":1255,"order":88,"template":434,"translation_key":607},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_add",{"title":609,"slug":610,"path":1257,"order":88,"template":434,"translation_key":612},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_average",{"title":614,"slug":615,"path":1259,"order":88,"template":434,"translation_key":617},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_ceil",{"title":619,"slug":620,"path":1261,"order":88,"template":434,"translation_key":622},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_divide",{"title":624,"slug":625,"path":1263,"order":88,"template":434,"translation_key":627},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_floor",{"title":629,"slug":630,"path":1265,"order":88,"template":434,"translation_key":632},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_max",{"title":634,"slug":635,"path":1267,"order":88,"template":434,"translation_key":637},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_min",{"title":639,"slug":640,"path":1269,"order":88,"template":434,"translation_key":642},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_modulo",{"title":644,"slug":645,"path":1271,"order":88,"template":434,"translation_key":647},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_multiply",{"title":649,"slug":650,"path":1273,"order":88,"template":434,"translation_key":652},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_random",{"title":654,"slug":655,"path":1275,"order":88,"template":434,"translation_key":657},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_round",{"title":659,"slug":660,"path":1277,"order":88,"template":434,"translation_key":662},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmath_subtract",{"title":664,"slug":665,"path":1279,"order":88,"template":434,"translation_key":667},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmotor_axis",{"title":669,"slug":670,"path":1281,"order":88,"template":434,"translation_key":672},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fmoving_average",{"title":674,"slug":675,"path":1283,"order":88,"template":434,"translation_key":677},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fnumber_to_string",{"title":679,"slug":680,"path":1285,"order":88,"template":434,"translation_key":682},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fnumeric_latch",{"title":684,"slug":685,"path":1287,"order":88,"template":434,"translation_key":687},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fnumeric_predicate",{"title":689,"slug":690,"path":1289,"order":88,"template":434,"translation_key":692},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fnumeric_throttle",{"title":694,"slug":695,"path":1291,"order":88,"template":434,"translation_key":697},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fpubsub",{"title":699,"slug":700,"path":1293,"order":88,"template":434,"translation_key":702},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fpulse_counter",{"title":704,"slug":705,"path":1295,"order":88,"template":434,"translation_key":707},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fpulse_gate",{"title":709,"slug":710,"path":1297,"order":88,"template":434,"translation_key":712},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fpulse_throttle",{"title":714,"slug":715,"path":1299,"order":88,"template":434,"translation_key":717},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fsequencer",{"title":719,"slug":720,"path":1301,"order":88,"template":434,"translation_key":722},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fshading",{"title":724,"slug":725,"path":1303,"order":88,"template":434,"translation_key":727},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fstring_format",{"title":729,"slug":730,"path":1305,"order":88,"template":434,"translation_key":732},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fstring_latch",{"title":734,"slug":735,"path":1307,"order":88,"template":434,"translation_key":737},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Ftoggle",{"title":739,"slug":740,"path":1309,"order":88,"template":434,"translation_key":742},"ja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Fvariable_delayed_pulse",{"title":1311,"slug":745,"path":1312,"order":106,"children":1313},"出力","ja\u002Fdocs\u002Flogic-blocks\u002Foutput",[1314,1316,1318],{"title":749,"slug":750,"path":1315,"order":88,"template":434,"translation_key":752},"ja\u002Fdocs\u002Flogic-blocks\u002Foutput\u002Fgauge",{"title":754,"slug":755,"path":1317,"order":88,"template":434,"translation_key":757},"ja\u002Fdocs\u002Flogic-blocks\u002Foutput\u002Foperation_mode_controller",{"title":759,"slug":760,"path":1319,"order":88,"template":434,"translation_key":762},"ja\u002Fdocs\u002Flogic-blocks\u002Foutput\u002Frelay",{"title":1321,"slug":765,"path":1322,"order":133,"children":1323},"Volang プログラミング言語","ja\u002Fdocs\u002Fvolang",[1324,1327],{"title":1325,"slug":770,"path":1326,"order":94},"Volang 言語","ja\u002Fdocs\u002Fvolang\u002Flanguage",{"title":1328,"slug":774,"path":1329,"order":100,"template":776},"標準ライブラリ","ja\u002Fdocs\u002Fvolang\u002Fstdlib",{"title":1331,"slug":779,"path":1332,"order":144,"children":1333},"ソフトウェアとツール","ja\u002Fdocs\u002Fsoftware",[1334,1337,1340,1343],{"title":1335,"slug":784,"path":1336,"order":94},"Voldeno Studio — インストールと概要","ja\u002Fdocs\u002Fsoftware\u002Fstudio",{"title":1338,"slug":788,"path":1339,"order":100},"Voldeno Studio — AIアシスタント","ja\u002Fdocs\u002Fsoftware\u002Fai-assistant",{"title":1341,"slug":792,"path":1342,"order":106},"Voldeno Studio — スケジュール","ja\u002Fdocs\u002Fsoftware\u002Fschedules",{"title":1344,"slug":796,"path":1345,"order":116},"Voldeno Studio — 抽象ブロックと実装","ja\u002Fdocs\u002Fsoftware\u002Fabstract-blocks-and-implementations",{"title":1347,"slug":800,"path":1348,"order":802,"children":1349},"ハウツーガイド","ja\u002Fdocs\u002Fhow-to",[1350,1353,1356,1359],{"title":1351,"slug":806,"path":1352,"order":94},"スマートホームとは何か、どう動くのか","ja\u002Fdocs\u002Fhow-to\u002Fwhat-is-a-smart-home",{"title":1354,"slug":810,"path":1355,"order":100},"スマートホームシステムの選び方：実践ガイド","ja\u002Fdocs\u002Fhow-to\u002Fhow-to-choose-a-smart-home-system",{"title":1357,"slug":814,"path":1358,"order":106},"スマートホームの費用はいくらか？3つの Voldeno インストール例とモジュール・価格","ja\u002Fdocs\u002Fhow-to\u002Fhow-much-does-a-smart-home-cost",{"title":1360,"slug":818,"path":1361,"order":116},"スマートホーム設計でよくある7つの失敗","ja\u002Fdocs\u002Fhow-to\u002Fsmart-home-design-mistakes",{"title":1363,"slug":822,"path":1364,"order":824,"children":1365},"トラブルシューティングと診断","ja\u002Fdocs\u002Ftroubleshooting",[1366],{"title":1367,"slug":828,"path":1368,"order":94},"バス通信のトラブルシューティング","ja\u002Fdocs\u002Ftroubleshooting\u002Fbus-communication",{"title":1370,"slug":832,"path":1371,"order":834},"よくある質問","ja\u002Fdocs\u002Ffaq",[1373,1391,1399,1419,1430,1581,1591,1608,1629,1637],{"title":1374,"slug":1375,"path":1376,"order":94,"children":1377},"Erste Schritte","erste-schritte","de\u002Fdocs\u002Ferste-schritte",[1378,1381,1384,1388],{"title":1379,"slug":353,"path":1380,"order":94},"Grundlegende Konzepte und Terminologie","de\u002Fdocs\u002Ferste-schritte\u002Fconcepts",{"title":1382,"slug":357,"path":1383,"order":100},"Systemüberblick für Installateure","de\u002Fdocs\u002Ferste-schritte\u002Fsystem-overview",{"title":1385,"slug":1386,"path":1387,"order":106},"Logik in Voldeno Studio von Grund auf definieren","logik-von-grund-auf-definieren","de\u002Fdocs\u002Ferste-schritte\u002Flogik-von-grund-auf-definieren",{"title":1389,"slug":365,"path":1390,"order":116},"Volang und VolangVM: warum ein Smart Home eine eigene Automatisierungssprache braucht","de\u002Fdocs\u002Ferste-schritte\u002Fvolang-and-volangvm",{"title":1392,"slug":1393,"path":1394,"order":100,"children":1395},"Systemarchitektur","systemarchitektur","de\u002Fdocs\u002Fsystemarchitektur",[1396],{"title":1397,"slug":374,"path":1398,"order":94},"Sicherheitsarchitektur","de\u002Fdocs\u002Fsystemarchitektur\u002Fsecurity",{"title":1400,"slug":1401,"path":1402,"order":106,"children":1403},"Module und Peripherie","module","de\u002Fdocs\u002Fmodule",[1404,1407,1410,1413,1416],{"title":1405,"slug":383,"path":1406,"order":94},"Verkabelung des Hub-Moduls","de\u002Fdocs\u002Fmodule\u002Fhub-wiring",{"title":1408,"slug":387,"path":1409,"order":100},"Verkabelung des I\u002FO-Moduls","de\u002Fdocs\u002Fmodule\u002Fio-wiring",{"title":1411,"slug":391,"path":1412,"order":106},"Verkabelung des Relay-Moduls","de\u002Fdocs\u002Fmodule\u002Frelay-wiring",{"title":1414,"slug":395,"path":1415,"order":116},"Verkabelung des 1-Wire-Moduls","de\u002Fdocs\u002Fmodule\u002F1wire-wiring",{"title":1417,"slug":399,"path":1418,"order":122},"Verkabelung des Analog-Input-Moduls","de\u002Fdocs\u002Fmodule\u002Fanalog-input-wiring",{"title":1420,"slug":1421,"path":1422,"order":116,"children":1423},"Verkabelungsrichtlinien","verkabelung","de\u002Fdocs\u002Fverkabelung",[1424,1427],{"title":1425,"slug":408,"path":1426,"order":94},"Bustopologie und Verkabelung","de\u002Fdocs\u002Fverkabelung\u002Fbus-topology",{"title":1428,"slug":412,"path":1429,"order":100},"Spannungsversorgung dimensionieren und verteilen","de\u002Fdocs\u002Fverkabelung\u002Fpower-supply",{"title":1431,"slug":1432,"path":1433,"order":122,"children":1434},"Logikbausteine","logikbausteine","de\u002Fdocs\u002Flogikbausteine",[1435,1439,1461,1571],{"title":1436,"slug":1437,"path":1438,"order":88,"template":423,"translation_key":424},"Übersicht","uebersicht","de\u002Fdocs\u002Flogikbausteine\u002Fuebersicht",{"title":1440,"slug":427,"path":1441,"order":94,"children":1442},"Eingänge","de\u002Fdocs\u002Flogikbausteine\u002Finput",[1443,1445,1447,1449,1451,1453,1455,1457,1459],{"title":431,"slug":432,"path":1444,"order":88,"template":434,"translation_key":435},"de\u002Fdocs\u002Flogikbausteine\u002Finput\u002Fbinary_input",{"title":437,"slug":438,"path":1446,"order":88,"template":434,"translation_key":440},"de\u002Fdocs\u002Flogikbausteine\u002Finput\u002Fboolean_constant",{"title":442,"slug":443,"path":1448,"order":88,"template":434,"translation_key":445},"de\u002Fdocs\u002Flogikbausteine\u002Finput\u002Foperation_mode_monitor",{"title":447,"slug":448,"path":1450,"order":88,"template":434,"translation_key":450},"de\u002Fdocs\u002Flogikbausteine\u002Finput\u002Fnumeric_constant",{"title":452,"slug":453,"path":1452,"order":88,"template":434,"translation_key":455},"de\u002Fdocs\u002Flogikbausteine\u002Finput\u002Fnumeric_input",{"title":457,"slug":458,"path":1454,"order":88,"template":434,"translation_key":460},"de\u002Fdocs\u002Flogikbausteine\u002Finput\u002Fpulse_at",{"title":462,"slug":463,"path":1456,"order":88,"template":434,"translation_key":465},"de\u002Fdocs\u002Flogikbausteine\u002Finput\u002Fschedule",{"title":467,"slug":468,"path":1458,"order":88,"template":434,"translation_key":470},"de\u002Fdocs\u002Flogikbausteine\u002Finput\u002Fstring_constant",{"title":472,"slug":473,"path":1460,"order":88,"template":434,"translation_key":475},"de\u002Fdocs\u002Flogikbausteine\u002Finput\u002Fswitch",{"title":1462,"slug":478,"path":1463,"order":100,"children":1464},"Verarbeitung","de\u002Fdocs\u002Flogikbausteine\u002Fprocess",[1465,1470,1472,1474,1476,1478,1480,1482,1484,1486,1488,1490,1492,1494,1496,1498,1500,1502,1507,1509,1511,1513,1515,1517,1519,1521,1523,1525,1527,1529,1531,1533,1535,1537,1539,1541,1543,1545,1547,1549,1551,1553,1555,1557,1559,1561,1563,1565,1567,1569],{"title":482,"slug":483,"path":1466,"order":88,"template":434,"children":1467,"translation_key":491},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fair_conditioner",[1468],{"title":487,"slug":488,"path":1469,"order":88,"template":434,"translation_key":490},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fair_conditioner\u002Fdaikin_brp069",{"title":493,"slug":494,"path":1471,"order":88,"template":434,"translation_key":496},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fbinary_limiter",{"title":498,"slug":499,"path":1473,"order":88,"template":434,"translation_key":501},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fboolean_to_string",{"title":503,"slug":504,"path":1475,"order":88,"template":434,"translation_key":506},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fclimate_regulator",{"title":508,"slug":509,"path":1477,"order":88,"template":434,"translation_key":511},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fclimate_regulator_hub",{"title":513,"slug":514,"path":1479,"order":88,"template":434,"translation_key":516},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fdelay",{"title":518,"slug":519,"path":1481,"order":88,"template":434,"translation_key":521},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fdelayed_pulse",{"title":523,"slug":524,"path":1483,"order":88,"template":434,"translation_key":526},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fdoor_window_monitor",{"title":528,"slug":529,"path":1485,"order":88,"template":434,"translation_key":531},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fedge_detector",{"title":533,"slug":534,"path":1487,"order":88,"template":434,"translation_key":536},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fgate",{"title":538,"slug":539,"path":1489,"order":88,"template":434,"translation_key":541},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fhttp_request",{"title":543,"slug":544,"path":1491,"order":88,"template":434,"translation_key":546},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fhysteresis",{"title":548,"slug":549,"path":1493,"order":88,"template":434,"translation_key":551},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Firrigation",{"title":553,"slug":554,"path":1495,"order":88,"template":434,"translation_key":556},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fjson_get_boolean",{"title":558,"slug":559,"path":1497,"order":88,"template":434,"translation_key":561},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fjson_get_number",{"title":563,"slug":564,"path":1499,"order":88,"template":434,"translation_key":566},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fjson_get_string",{"title":568,"slug":569,"path":1501,"order":88,"template":434,"translation_key":571},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Flevel_to_pulse",{"title":573,"slug":574,"path":1503,"order":88,"template":434,"children":1504,"translation_key":582},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Flight",[1505],{"title":578,"slug":579,"path":1506,"order":88,"template":434,"translation_key":581},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Flight\u002Ftapo_light",{"title":584,"slug":585,"path":1508,"order":88,"template":434,"translation_key":587},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Flogic_and",{"title":589,"slug":590,"path":1510,"order":88,"template":434,"translation_key":592},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Flogic_not",{"title":594,"slug":595,"path":1512,"order":88,"template":434,"translation_key":597},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Flogic_or",{"title":599,"slug":600,"path":1514,"order":88,"template":434,"translation_key":602},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fmath_abs",{"title":604,"slug":605,"path":1516,"order":88,"template":434,"translation_key":607},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fmath_add",{"title":609,"slug":610,"path":1518,"order":88,"template":434,"translation_key":612},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fmath_average",{"title":614,"slug":615,"path":1520,"order":88,"template":434,"translation_key":617},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fmath_ceil",{"title":619,"slug":620,"path":1522,"order":88,"template":434,"translation_key":622},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fmath_divide",{"title":624,"slug":625,"path":1524,"order":88,"template":434,"translation_key":627},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fmath_floor",{"title":629,"slug":630,"path":1526,"order":88,"template":434,"translation_key":632},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fmath_max",{"title":634,"slug":635,"path":1528,"order":88,"template":434,"translation_key":637},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fmath_min",{"title":639,"slug":640,"path":1530,"order":88,"template":434,"translation_key":642},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fmath_modulo",{"title":644,"slug":645,"path":1532,"order":88,"template":434,"translation_key":647},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fmath_multiply",{"title":649,"slug":650,"path":1534,"order":88,"template":434,"translation_key":652},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fmath_random",{"title":654,"slug":655,"path":1536,"order":88,"template":434,"translation_key":657},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fmath_round",{"title":659,"slug":660,"path":1538,"order":88,"template":434,"translation_key":662},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fmath_subtract",{"title":664,"slug":665,"path":1540,"order":88,"template":434,"translation_key":667},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fmotor_axis",{"title":669,"slug":670,"path":1542,"order":88,"template":434,"translation_key":672},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fmoving_average",{"title":674,"slug":675,"path":1544,"order":88,"template":434,"translation_key":677},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fnumber_to_string",{"title":679,"slug":680,"path":1546,"order":88,"template":434,"translation_key":682},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fnumeric_latch",{"title":684,"slug":685,"path":1548,"order":88,"template":434,"translation_key":687},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fnumeric_predicate",{"title":689,"slug":690,"path":1550,"order":88,"template":434,"translation_key":692},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fnumeric_throttle",{"title":694,"slug":695,"path":1552,"order":88,"template":434,"translation_key":697},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fpubsub",{"title":699,"slug":700,"path":1554,"order":88,"template":434,"translation_key":702},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fpulse_counter",{"title":704,"slug":705,"path":1556,"order":88,"template":434,"translation_key":707},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fpulse_gate",{"title":709,"slug":710,"path":1558,"order":88,"template":434,"translation_key":712},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fpulse_throttle",{"title":714,"slug":715,"path":1560,"order":88,"template":434,"translation_key":717},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fsequencer",{"title":719,"slug":720,"path":1562,"order":88,"template":434,"translation_key":722},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fshading",{"title":724,"slug":725,"path":1564,"order":88,"template":434,"translation_key":727},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fstring_format",{"title":729,"slug":730,"path":1566,"order":88,"template":434,"translation_key":732},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fstring_latch",{"title":734,"slug":735,"path":1568,"order":88,"template":434,"translation_key":737},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Ftoggle",{"title":739,"slug":740,"path":1570,"order":88,"template":434,"translation_key":742},"de\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Fvariable_delayed_pulse",{"title":1572,"slug":745,"path":1573,"order":106,"children":1574},"Ausgänge","de\u002Fdocs\u002Flogikbausteine\u002Foutput",[1575,1577,1579],{"title":749,"slug":750,"path":1576,"order":88,"template":434,"translation_key":752},"de\u002Fdocs\u002Flogikbausteine\u002Foutput\u002Fgauge",{"title":754,"slug":755,"path":1578,"order":88,"template":434,"translation_key":757},"de\u002Fdocs\u002Flogikbausteine\u002Foutput\u002Foperation_mode_controller",{"title":759,"slug":760,"path":1580,"order":88,"template":434,"translation_key":762},"de\u002Fdocs\u002Flogikbausteine\u002Foutput\u002Frelay",{"title":1582,"slug":765,"path":1583,"order":133,"children":1584},"Programmiersprache Volang","de\u002Fdocs\u002Fvolang",[1585,1588],{"title":1586,"slug":770,"path":1587,"order":94},"Die Sprache Volang","de\u002Fdocs\u002Fvolang\u002Flanguage",{"title":1589,"slug":774,"path":1590,"order":100,"template":776},"Standardbibliothek","de\u002Fdocs\u002Fvolang\u002Fstdlib",{"title":1592,"slug":779,"path":1593,"order":144,"children":1594},"Software und Werkzeuge","de\u002Fdocs\u002Fsoftware",[1595,1598,1601,1604],{"title":1596,"slug":784,"path":1597,"order":94},"Voldeno Studio - Installation und Rundgang","de\u002Fdocs\u002Fsoftware\u002Fstudio",{"title":1599,"slug":788,"path":1600,"order":100},"Voldeno Studio - KI-Assistent","de\u002Fdocs\u002Fsoftware\u002Fai-assistant",{"title":1602,"slug":792,"path":1603,"order":106},"Voldeno Studio - Zeitpläne","de\u002Fdocs\u002Fsoftware\u002Fschedules",{"title":1605,"slug":1606,"path":1607,"order":116},"Voldeno Studio - Abstrakte Blöcke und Implementierungen","abstrakte-bloecke-und-implementierungen","de\u002Fdocs\u002Fsoftware\u002Fabstrakte-bloecke-und-implementierungen",{"title":1609,"slug":1610,"path":1611,"order":802,"children":1612},"Ratgeber und Anleitungen","ratgeber","de\u002Fdocs\u002Fratgeber",[1613,1617,1621,1625],{"title":1614,"slug":1615,"path":1616,"order":94},"Was ist ein Smart Home und wie funktioniert es?","was-ist-ein-smart-home","de\u002Fdocs\u002Fratgeber\u002Fwas-ist-ein-smart-home",{"title":1618,"slug":1619,"path":1620,"order":100},"Welches Smart-Home-System sollte man wählen? Ein praktischer Leitfaden","smart-home-system-auswaehlen","de\u002Fdocs\u002Fratgeber\u002Fsmart-home-system-auswaehlen",{"title":1622,"slug":1623,"path":1624,"order":106},"Was kostet ein Smart Home? Drei Voldeno-Installationsvarianten mit Modulen und Preisen","was-kostet-ein-smart-home","de\u002Fdocs\u002Fratgeber\u002Fwas-kostet-ein-smart-home",{"title":1626,"slug":1627,"path":1628,"order":116},"Die 7 häufigsten Fehler bei der Smart-Home-Planung","smart-home-planungsfehler","de\u002Fdocs\u002Fratgeber\u002Fsmart-home-planungsfehler",{"title":1630,"slug":1631,"path":1632,"order":824,"children":1633},"Fehlerbehebung und Diagnose","fehlerbehebung","de\u002Fdocs\u002Ffehlerbehebung",[1634],{"title":1635,"slug":828,"path":1636,"order":94},"Fehlersuche bei der Buskommunikation","de\u002Fdocs\u002Ffehlerbehebung\u002Fbus-communication",{"title":1638,"slug":832,"path":1639,"order":834},"Häufig gestellte Fragen","de\u002Fdocs\u002Ffaq",{"de":1641,"pl":1656,"en":1671,"ja":1684},{"logikbausteine\u002Fdriver\u002Fdaikin_brp069":1642,"logikbausteine\u002Foutput":1643,"verkabelung":1644,"logikbausteine\u002Finput":1645,"logikbausteine\u002Fdriver\u002Ftapo_light":1646,"logikbausteine":1647,"module":1648,"systemarchitektur":1649,"volang":1650,"ratgeber":1651,"software":1652,"fehlerbehebung":1653,"logikbausteine\u002Fprocess":1654,"erste-schritte":1655},"logikbausteine\u002Fprocess\u002Fair_conditioner\u002Fdaikin_brp069","logikbausteine\u002Foutput\u002Fgauge","verkabelung\u002Fbus-topology","logikbausteine\u002Finput\u002Fbinary_input","logikbausteine\u002Fprocess\u002Flight\u002Ftapo_light","logikbausteine\u002Fuebersicht","module\u002Fhub-wiring","systemarchitektur\u002Fsecurity","volang\u002Flanguage","ratgeber\u002Fwas-ist-ein-smart-home","software\u002Fstudio","fehlerbehebung\u002Fbus-communication","logikbausteine\u002Fprocess\u002Fbinary_limiter","erste-schritte\u002Fconcepts",{"moduly":1657,"oprogramowanie":1658,"bloki-logiczne\u002Fprocess":1659,"poradniki":1660,"bloki-logiczne\u002Fdriver\u002Fdaikin_brp069":1661,"okablowanie":1662,"bloki-logiczne":1663,"volang":1664,"diagnostyka":1665,"bloki-logiczne\u002Fdriver\u002Ftapo_light":1666,"bloki-logiczne\u002Foutput":1667,"bloki-logiczne\u002Finput":1668,"architektura-systemu":1669,"pierwsze-kroki":1670},"moduly\u002Fokablowanie-hub","oprogramowanie\u002Fstudio","bloki-logiczne\u002Fprocess\u002Fbinary_limiter","poradniki\u002Fczym-jest-smart-home","bloki-logiczne\u002Fprocess\u002Fair_conditioner\u002Fdaikin_brp069","okablowanie\u002Ftopologia-magistrali","bloki-logiczne\u002Fprzeglad","volang\u002Fjezyk","diagnostyka\u002Fkomunikacja-magistrali","bloki-logiczne\u002Fprocess\u002Flight\u002Ftapo_light","bloki-logiczne\u002Foutput\u002Fgauge","bloki-logiczne\u002Finput\u002Fbinary_input","architektura-systemu\u002Fbezpieczenstwo","pierwsze-kroki\u002Fpojecia",{"software":1652,"logic-blocks\u002Fdriver\u002Fdaikin_brp069":1672,"getting-started":1673,"logic-blocks\u002Fdriver\u002Ftapo_light":1674,"logic-blocks":1675,"volang":1650,"wiring":1676,"logic-blocks\u002Finput":1677,"logic-blocks\u002Fprocess":1678,"system-architecture":1679,"how-to":1680,"logic-blocks\u002Foutput":1681,"modules":1682,"troubleshooting":1683},"logic-blocks\u002Fprocess\u002Fair_conditioner\u002Fdaikin_brp069","getting-started\u002Fconcepts","logic-blocks\u002Fprocess\u002Flight\u002Ftapo_light","logic-blocks\u002Foverview","wiring\u002Fbus-topology","logic-blocks\u002Finput\u002Fbinary_input","logic-blocks\u002Fprocess\u002Fbinary_limiter","system-architecture\u002Fsecurity","how-to\u002Fwhat-is-a-smart-home","logic-blocks\u002Foutput\u002Fgauge","modules\u002Fhub-wiring","troubleshooting\u002Fbus-communication",{"volang":1650,"how-to":1680,"software":1652,"troubleshooting":1683,"logic-blocks\u002Fdriver\u002Fdaikin_brp069":1672,"logic-blocks\u002Fdriver\u002Ftapo_light":1674,"wiring":1676,"system-architecture":1679,"logic-blocks":1675,"modules":1682,"getting-started":1673,"logic-blocks\u002Finput":1677,"logic-blocks\u002Foutput":1681,"logic-blocks\u002Fprocess":1678},{"enabled":71,"navigation":1686},{"ja":1687,"de":1736,"pl":1777,"en":1813},[1688,1694,1700,1706,1712,1718,1724,1730],{"title":1689,"slug":1690,"path":1691,"order":88,"date":1692,"translation_key":1693},"スマートホームのI\u002FOモジュールとは何か、何に使うか","io-module-in-the-smart-home","ja\u002Fblog\u002Fio-module-in-the-smart-home","2026-10-19","2026_10_19_io_module_in_the_smart_home",{"title":1695,"slug":1696,"path":1697,"order":88,"date":1698,"translation_key":1699},"スマートホームのAIアシスタント：導入はシンプルに、できることは無制限に","ai-assistant-for-the-smart-home","ja\u002Fblog\u002Fai-assistant-for-the-smart-home","2026-09-27","2026_09_27_ai_assistant_for_the_smart_home",{"title":1701,"slug":1702,"path":1703,"order":88,"date":1704,"translation_key":1705},"スマートホームはガジェットではない：数値で見る省エネ、防犯、資産価値","smart-home-is-not-a-gadget","ja\u002Fblog\u002Fsmart-home-is-not-a-gadget","2026-07-03","2026_07_03_smart_home_is_not_a_gadget",{"title":1707,"slug":1708,"path":1709,"order":88,"date":1710,"translation_key":1711},"ゼロクロス切替：I\u002FO・RELAYモジュールがリレー接点寿命を延ばす仕組み","zero-crossing-switching-io-and-relay-modules","ja\u002Fblog\u002Fzero-crossing-switching-io-and-relay-modules","2026-06-11","2026_06_11_zero_crossing_switching",{"title":1713,"slug":1714,"path":1715,"order":88,"date":1716,"translation_key":1717},"Google Cloud Next '26：Fischertechnik工場デモをVoldenoが駆動","voldeno-at-google-cloud-next-26","ja\u002Fblog\u002Fvoldeno-at-google-cloud-next-26","2026-04-28","2026_04_28_voldeno_at_google_cloud_next_26",{"title":1719,"slug":1720,"path":1721,"order":88,"date":1722,"translation_key":1723},"準備完了：数百台のVoldenoモジュールがスマートホーム導入の準備完了","we-are-ready","ja\u002Fblog\u002Fwe-are-ready","2025-08-17","2025_08_17_we_are_ready",{"title":1725,"slug":1726,"path":1727,"order":88,"date":1728,"translation_key":1729},"新製品 SEN1WT3：コンパクトで信頼性の高い1-Wire温度センサー、大規模設備向け","new-voldeno-1-wire-temperature-sensor-compact-reliable-and-built-for-large-scale-installations","ja\u002Fblog\u002Fnew-voldeno-1-wire-temperature-sensor-compact-reliable-and-built-for-large-scale-installations","2025-04-25","2025_04_25_new_voldeno_1wire_temperature_sensor",{"title":1731,"slug":1732,"path":1733,"order":88,"date":1734,"translation_key":1735},"Voldenoで描くスマートホームの未来","future_of_smart_homes","ja\u002Fblog\u002Ffuture_of_smart_homes","2024-10-18","2024_10_18_future_of_smart_homes",[1737,1742,1747,1752,1757,1762,1767,1772],{"title":1738,"slug":1739,"path":1740,"order":88,"date":1692,"translation_key":1741},"I\u002FO-Modul im Smart Home: was es ist und wozu es dient","io-modul-im-smart-home","de\u002Fblog\u002Fio-modul-im-smart-home","2026_10_19_io_modul_im_smart_home",{"title":1743,"slug":1744,"path":1745,"order":88,"date":1698,"translation_key":1746},"Ein KI-Assistent für das Smart Home: einfach umzusetzen, unbegrenzt in dem, was es kann","ki-assistent-fuer-das-smart-home","de\u002Fblog\u002Fki-assistent-fuer-das-smart-home","2026_09_27_ki_assistent_fuer_das_smart_home",{"title":1748,"slug":1749,"path":1750,"order":88,"date":1704,"translation_key":1751},"Ein Smart Home ist kein Gadget: messbare Einsparungen, Sicherheit und Immobilienwert","smart-home-ist-kein-gadget","de\u002Fblog\u002Fsmart-home-ist-kein-gadget","2026_07_03_smart_home_ist_kein_gadget",{"title":1753,"slug":1754,"path":1755,"order":88,"date":1710,"translation_key":1756},"Schalten im Nulldurchgang: Wie die Module I\u002FO und RELAY die Lebensdauer der Relaiskontakte verlängern","schalten-im-nulldurchgang-io-und-relay-module","de\u002Fblog\u002Fschalten-im-nulldurchgang-io-und-relay-module","2026_06_11_schalten_im_nulldurchgang",{"title":1758,"slug":1759,"path":1760,"order":88,"date":1716,"translation_key":1761},"Voldeno steuerte die Fischertechnik-Fabrikdemo auf der Google Cloud Next '26","fischertechnik-fabrikdemo-google-cloud-next-26","de\u002Fblog\u002Ffischertechnik-fabrikdemo-google-cloud-next-26","2026_04_28_voldeno_bei_google_cloud_next_26",{"title":1763,"slug":1764,"path":1765,"order":88,"date":1722,"translation_key":1766},"Wir sind bereit! Hunderte Voldeno-Module für den Einsatz im Smart Home vorbereitet.","wir-sind-bereit","de\u002Fblog\u002Fwir-sind-bereit","2025_08_17_wir_sind_bereit",{"title":1768,"slug":1769,"path":1770,"order":88,"date":1728,"translation_key":1771},"Neuer Voldeno 1-Wire Temperatursensor: kompakt, zuverlässig und für große Installationen gebaut","1-wire-temperatursensor-kompakt-zuverlaessig-fuer-grosse-installationen","de\u002Fblog\u002F1-wire-temperatursensor-kompakt-zuverlaessig-fuer-grosse-installationen","2025_04_25_neuer_voldeno_1wire_temperatursensor",{"title":1773,"slug":1774,"path":1775,"order":88,"date":1734,"translation_key":1776},"Entdecken Sie die Zukunft des Smart Home mit Voldeno","zukunft-des-smart-home","de\u002Fblog\u002Fzukunft-des-smart-home","2024_10_18_zukunft_smart_homes",[1778,1783,1788,1793,1798,1801,1805,1809],{"title":1779,"slug":1780,"path":1781,"order":88,"date":1692,"translation_key":1782},"Moduł I\u002FO w smart home: co to jest i do czego służy","modul-io-w-smart-home","pl\u002Fblog\u002Fmodul-io-w-smart-home","2026_10_19_modul_io_co_to_jest",{"title":1784,"slug":1785,"path":1786,"order":88,"date":1698,"translation_key":1787},"Asystent AI w smart home: prostota i nieograniczone możliwości w jednym systemie","asystent-ai-w-smart-home","pl\u002Fblog\u002Fasystent-ai-w-smart-home","2026_09_27_asystent_ai_w_smart_home",{"title":1789,"slug":1790,"path":1791,"order":88,"date":1704,"translation_key":1792},"Inteligentny dom to nie gadżet: policzalne oszczędności, bezpieczeństwo i wartość nieruchomości","inteligentny-dom-to-nie-gadzet","pl\u002Fblog\u002Finteligentny-dom-to-nie-gadzet","2026_07_03_inteligentny_dom_to_nie_gadzet",{"title":1794,"slug":1795,"path":1796,"order":88,"date":1710,"translation_key":1797},"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_przelaczanie_w_zerze_napiecia",{"title":1799,"slug":1714,"path":1800,"order":88,"date":1716,"translation_key":1717},"System Voldeno napędził demo fabryki Fischertechnik na Google Cloud Next '26","pl\u002Fblog\u002Fvoldeno-at-google-cloud-next-26",{"title":1802,"slug":1803,"path":1804,"order":88,"date":1722,"translation_key":1723},"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",{"title":1806,"slug":1807,"path":1808,"order":88,"date":1728,"translation_key":1729},"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",{"title":1810,"slug":1811,"path":1812,"order":88,"date":1734,"translation_key":1735},"Odkryj przyszłość inteligentnych domów z Voldeno","odkryj-przyszlosc-inteligentnych-domow-z-voldeno","pl\u002Fblog\u002Fodkryj-przyszlosc-inteligentnych-domow-z-voldeno",[1814,1817,1820,1823,1826,1829,1832,1835],{"title":1815,"slug":1690,"path":1816,"order":88,"date":1692,"translation_key":1693},"I\u002FO module in a smart home: what it is and what it is for","en\u002Fblog\u002Fio-module-in-the-smart-home",{"title":1818,"slug":1696,"path":1819,"order":88,"date":1698,"translation_key":1699},"An AI assistant for the smart home: simple to deliver, unlimited in what it can do","en\u002Fblog\u002Fai-assistant-for-the-smart-home",{"title":1821,"slug":1702,"path":1822,"order":88,"date":1704,"translation_key":1705},"A smart home is not a gadget: measurable savings, security and property value","en\u002Fblog\u002Fsmart-home-is-not-a-gadget",{"title":1824,"slug":1708,"path":1825,"order":88,"date":1710,"translation_key":1711},"Zero-crossing switching: how the I\u002FO and RELAY modules extend relay contact life","en\u002Fblog\u002Fzero-crossing-switching-io-and-relay-modules",{"title":1827,"slug":1714,"path":1828,"order":88,"date":1716,"translation_key":1717},"Voldeno powered the Fischertechnik factory demo at Google Cloud Next '26","en\u002Fblog\u002Fvoldeno-at-google-cloud-next-26",{"title":1830,"slug":1720,"path":1831,"order":88,"date":1722,"translation_key":1723},"We are ready! Hundreds of Voldeno modules prepared for smart home deployment.","en\u002Fblog\u002Fwe-are-ready",{"title":1833,"slug":1726,"path":1834,"order":88,"date":1728,"translation_key":1729},"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":1836,"slug":1732,"path":1837,"order":88,"date":1734,"translation_key":1735},"Discover the Future of Smart Homes with Voldeno","en\u002Fblog\u002Ffuture_of_smart_homes",{"map":1839,"xDefault":1840},{"pl":1840,"en":1841,"de":1842,"ja":1843},"https:\u002F\u002Fvoldeno.com\u002Fpl\u002Fdocs\u002Fbloki-logiczne\u002Fprocess\u002Flight","https:\u002F\u002Fvoldeno.com\u002Fen\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flight","https:\u002F\u002Fvoldeno.com\u002Fde\u002Fdocs\u002Flogikbausteine\u002Fprocess\u002Flight","https:\u002F\u002Fvoldeno.com\u002Fja\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flight",{"slug":574,"title":573,"seo_title":1845,"description":1846,"tags":1847,"content_html":1848,"headings":1849,"template":434,"extra":1868},"Light logic block - Voldeno","Learn how the Light logic block works, when to use it, and how to configure it in your Voldeno smart home automation.",[416,478,574],"\u003Ch1 id=\"light\">\u003Ca href=\"#light\" class=\"anchor\">#\u003C\u002Fa> Light\u003C\u002Fh1>\n\u003Cdiv class=\"block-meta\">\n  \u003Cspan class=\"badge badge-group badge-group-process\">Process\u003C\u002Fspan>\n\u003C\u002Fdiv>\n\n\u003Cp class=\"block-description\">Generic light control. Holds the logic common to every lamp and delegates the communication to an attached implementation block, which is the only part that knows a given brand or model.\u003C\u002Fp>\n\u003Ch2 id=\"implementations\">\u003Ca href=\"#implementations\" class=\"anchor\">#\u003C\u002Fa> Implementing blocks\u003C\u002Fh2>\n\u003Cdiv class=\"table-responsive\">\u003Ctable class=\"logic-block-table\">\n\u003Cthead>\u003Ctr>\u003Cth>Name\u003C\u002Fth>\u003Cth>ID\u003C\u002Fth>\u003Cth>Description\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>\u003Ca href=\"\u002Fen\u002Fdocs\u002Flogic-blocks\u002Fprocess\u002Flight\u002Ftapo_light\">TP-Link Tapo\u003C\u002Fa>\u003C\u002Ftd>\u003Ctd>\u003Ccode>tapo_light\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>Drives a TP-Link Tapo bulb or light strip over the local network, using the encrypted KLAP protocol of current Tapo firmware (L510, L530, L535, L610, L630, L900, L920 and similar). Color and white range are read from the device.\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\n\u003C!-- BLOCK_DIAGRAM -->\n\u003Ch2 id=\"source-code\">\u003Ca href=\"#source-code\" class=\"anchor\">#\u003C\u002Fa> Source Code\u003C\u002Fh2>\n\u003Cdetails class=\"code-details\">\u003Csummary>View Volang source\u003C\u002Fsummary>\n\u003Cdiv class=\"code-block\" data-lang=\"volang\">\n\u003Cpre>\u003Ccode class=\"language-volang\">\u003Cspan class=\"comment\">\u002F\u002F Light - abstract block.\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F Turns the input channels into one desired light state and hands it to the\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F attached implementation (driver), the only part that knows how to reach a\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F particular lamp (Wi-Fi bulb, DALI, Zigbee, ...).\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F Value encodings, shared by the inputs, the outputs and the driver call:\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   brightness  1..100 %\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   color_mode  false white light at color_temp, true color at hue\u002Fsaturation\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   color_temp  K, the driver narrows it to what the lamp can do\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   hue         0..360 °\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   saturation  0..100 %\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   fault       0 none, -1 lamp unreachable, &gt; 0 driver specific error code\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F The features config tells what the lamp can do, each level including the\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F previous ones:\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   0 on\u002Foff, 1 dimmable (brightness), 2 tunable white (color_temp),\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   3 color (color_mode, hue, saturation)\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F The values beyond it are passed to the driver and published as -1, with\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F color_mode low. A lamp that still cannot do what was asked for falls back\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F to its closest equivalent - one without color stays white, one without a\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F color temperature keeps its own - and that mapping belongs to the driver.\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F The driver must declare one function:\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   light_apply(power, brightness, color_mode, color_temp, hue, saturation)\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F       Pushes the complete desired state, called whenever a value changes.\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F       A value of -1 means the lamp keeps its own setting.\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F       It only has to accept the work, not finish it: a driver on the network\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F       returns as soon as the request is out, and one still busy with an\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F       earlier exchange keeps the state and sends it once that is over.\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F       Returns 0 when accepted, otherwise an error code that is published on\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F       the fault output.\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F Whether and how often the lamp is polled for its status is up to the\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F driver, which can be scheduled on its own. Either way it reports back through\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F this block's state, then returns non-zero from the run that stored the\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F readings, so the runtime calls std::on_driver_update here:\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   unit_power        -1 unknown, 0 off, 1 on\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   unit_brightness   -1 unknown, otherwise %\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   unit_color_mode   -1 unknown, 0 white, 1 color\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   unit_color_temp   -1 unknown, otherwise K\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   unit_hue          -1 unknown, otherwise °\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   unit_saturation   -1 unknown, otherwise %\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F   unit_fault        the fault value to publish\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F Whatever is left unknown is published as the value this block commanded, so\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F a lamp without feedback simply never touches these.\u003C\u002Fspan>\n\n\u003Cspan class=\"keyword\">fn\u003C\u002Fspan> \u003Cspan class=\"function\">clamp_int\u003C\u002Fspan>(\u003Cspan class=\"variable\">value\u003C\u002Fspan>, \u003Cspan class=\"variable\">lo\u003C\u002Fspan>, \u003Cspan class=\"variable\">hi\u003C\u002Fspan>) {\n    \u003Cspan class=\"variable\">v\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"stdlib\">math::int\u003C\u002Fspan>(\u003Cspan class=\"stdlib\">math::round\u003C\u002Fspan>(\u003Cspan class=\"variable\">value\u003C\u002Fspan>))\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">v\u003C\u002Fspan> \u003Cspan class=\"operator\">&lt;\u003C\u002Fspan> \u003Cspan class=\"variable\">lo\u003C\u002Fspan>) {\n        \u003Cspan class=\"keyword\">return\u003C\u002Fspan> \u003Cspan class=\"variable\">lo\u003C\u002Fspan>\n    }\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">v\u003C\u002Fspan> \u003Cspan class=\"operator\">&gt;\u003C\u002Fspan> \u003Cspan class=\"variable\">hi\u003C\u002Fspan>) {\n        \u003Cspan class=\"keyword\">return\u003C\u002Fspan> \u003Cspan class=\"variable\">hi\u003C\u002Fspan>\n    }\n    \u003Cspan class=\"keyword\">return\u003C\u002Fspan> \u003Cspan class=\"variable\">v\u003C\u002Fspan>\n}\n\n\u003Cspan class=\"keyword\">fn\u003C\u002Fspan> \u003Cspan class=\"function\">publish\u003C\u002Fspan>(\u003Cspan class=\"variable\">power\u003C\u002Fspan>, \u003Cspan class=\"variable\">brightness\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_mode\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_temp\u003C\u002Fspan>, \u003Cspan class=\"variable\">hue\u003C\u002Fspan>, \u003Cspan class=\"variable\">saturation\u003C\u002Fspan>) {\n    \u003Cspan class=\"variable\">features\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">config\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"features\"\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">unit_power\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"unit_power\"\u003C\u002Fspan>)\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">unit_power\u003C\u002Fspan> \u003Cspan class=\"operator\">&gt;=\u003C\u002Fspan> \u003Cspan class=\"number\">0\u003C\u002Fspan>) {\n        \u003Cspan class=\"variable\">power\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">unit_power\u003C\u002Fspan> \u003Cspan class=\"operator\">!=\u003C\u002Fspan> \u003Cspan class=\"number\">0\u003C\u002Fspan>\n    }\n    \u003Cspan class=\"variable\">unit_brightness\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"unit_brightness\"\u003C\u002Fspan>)\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">unit_brightness\u003C\u002Fspan> \u003Cspan class=\"operator\">&gt;=\u003C\u002Fspan> \u003Cspan class=\"number\">0\u003C\u002Fspan> \u003Cspan class=\"keyword\">and\u003C\u002Fspan> \u003Cspan class=\"variable\">features\u003C\u002Fspan> \u003Cspan class=\"operator\">&gt;=\u003C\u002Fspan> \u003Cspan class=\"number\">1\u003C\u002Fspan>) {\n        \u003Cspan class=\"variable\">brightness\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">unit_brightness\u003C\u002Fspan>\n    }\n    \u003Cspan class=\"variable\">unit_color_mode\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"unit_color_mode\"\u003C\u002Fspan>)\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">unit_color_mode\u003C\u002Fspan> \u003Cspan class=\"operator\">&gt;=\u003C\u002Fspan> \u003Cspan class=\"number\">0\u003C\u002Fspan> \u003Cspan class=\"keyword\">and\u003C\u002Fspan> \u003Cspan class=\"variable\">features\u003C\u002Fspan> \u003Cspan class=\"operator\">&gt;=\u003C\u002Fspan> \u003Cspan class=\"number\">3\u003C\u002Fspan>) {\n        \u003Cspan class=\"variable\">color_mode\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">unit_color_mode\u003C\u002Fspan> \u003Cspan class=\"operator\">!=\u003C\u002Fspan> \u003Cspan class=\"number\">0\u003C\u002Fspan>\n    }\n    \u003Cspan class=\"variable\">unit_color_temp\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"unit_color_temp\"\u003C\u002Fspan>)\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">unit_color_temp\u003C\u002Fspan> \u003Cspan class=\"operator\">&gt;=\u003C\u002Fspan> \u003Cspan class=\"number\">0\u003C\u002Fspan> \u003Cspan class=\"keyword\">and\u003C\u002Fspan> \u003Cspan class=\"variable\">features\u003C\u002Fspan> \u003Cspan class=\"operator\">&gt;=\u003C\u002Fspan> \u003Cspan class=\"number\">2\u003C\u002Fspan>) {\n        \u003Cspan class=\"variable\">color_temp\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">unit_color_temp\u003C\u002Fspan>\n    }\n    \u003Cspan class=\"variable\">unit_hue\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"unit_hue\"\u003C\u002Fspan>)\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">unit_hue\u003C\u002Fspan> \u003Cspan class=\"operator\">&gt;=\u003C\u002Fspan> \u003Cspan class=\"number\">0\u003C\u002Fspan> \u003Cspan class=\"keyword\">and\u003C\u002Fspan> \u003Cspan class=\"variable\">features\u003C\u002Fspan> \u003Cspan class=\"operator\">&gt;=\u003C\u002Fspan> \u003Cspan class=\"number\">3\u003C\u002Fspan>) {\n        \u003Cspan class=\"variable\">hue\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">unit_hue\u003C\u002Fspan>\n    }\n    \u003Cspan class=\"variable\">unit_saturation\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"unit_saturation\"\u003C\u002Fspan>)\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">unit_saturation\u003C\u002Fspan> \u003Cspan class=\"operator\">&gt;=\u003C\u002Fspan> \u003Cspan class=\"number\">0\u003C\u002Fspan> \u003Cspan class=\"keyword\">and\u003C\u002Fspan> \u003Cspan class=\"variable\">features\u003C\u002Fspan> \u003Cspan class=\"operator\">&gt;=\u003C\u002Fspan> \u003Cspan class=\"number\">3\u003C\u002Fspan>) {\n        \u003Cspan class=\"variable\">saturation\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">unit_saturation\u003C\u002Fspan>\n    }\n    \u003Cspan class=\"variable\">fault\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"unit_fault\"\u003C\u002Fspan>)\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">fault\u003C\u002Fspan> \u003Cspan class=\"operator\">==\u003C\u002Fspan> \u003Cspan class=\"number\">0\u003C\u002Fspan>) {\n        \u003Cspan class=\"variable\">fault\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"invoke_rc\"\u003C\u002Fspan>)\n    }\n    \u003Cspan class=\"stdlib\">output::set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"power\"\u003C\u002Fspan>, \u003Cspan class=\"variable\">power\u003C\u002Fspan>)\n    \u003Cspan class=\"stdlib\">output::set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"brightness\"\u003C\u002Fspan>, \u003Cspan class=\"variable\">brightness\u003C\u002Fspan>)\n    \u003Cspan class=\"stdlib\">output::set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"color_mode\"\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_mode\u003C\u002Fspan>)\n    \u003Cspan class=\"stdlib\">output::set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"color_temp\"\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_temp\u003C\u002Fspan>)\n    \u003Cspan class=\"stdlib\">output::set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"hue\"\u003C\u002Fspan>, \u003Cspan class=\"variable\">hue\u003C\u002Fspan>)\n    \u003Cspan class=\"stdlib\">output::set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"saturation\"\u003C\u002Fspan>, \u003Cspan class=\"variable\">saturation\u003C\u002Fspan>)\n    \u003Cspan class=\"stdlib\">output::set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"fault\"\u003C\u002Fspan>, \u003Cspan class=\"variable\">fault\u003C\u002Fspan>)\n}\n\n\u003Cspan class=\"keyword\">fn\u003C\u002Fspan> \u003Cspan class=\"function\">changed\u003C\u002Fspan>(\u003Cspan class=\"variable\">power\u003C\u002Fspan>, \u003Cspan class=\"variable\">brightness\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_mode\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_temp\u003C\u002Fspan>, \u003Cspan class=\"variable\">hue\u003C\u002Fspan>, \u003Cspan class=\"variable\">saturation\u003C\u002Fspan>) {\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"operator\">!\u003C\u002Fspan>\u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent\"\u003C\u002Fspan>)) {\n        \u003Cspan class=\"keyword\">return\u003C\u002Fspan> \u003Cspan class=\"boolean\">true\u003C\u002Fspan>\n    }\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_power\"\u003C\u002Fspan>) \u003Cspan class=\"operator\">!=\u003C\u002Fspan> \u003Cspan class=\"variable\">power\u003C\u002Fspan>) {\n        \u003Cspan class=\"keyword\">return\u003C\u002Fspan> \u003Cspan class=\"boolean\">true\u003C\u002Fspan>\n    }\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_brightness\"\u003C\u002Fspan>) \u003Cspan class=\"operator\">!=\u003C\u002Fspan> \u003Cspan class=\"variable\">brightness\u003C\u002Fspan>) {\n        \u003Cspan class=\"keyword\">return\u003C\u002Fspan> \u003Cspan class=\"boolean\">true\u003C\u002Fspan>\n    }\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_color_mode\"\u003C\u002Fspan>) \u003Cspan class=\"operator\">!=\u003C\u002Fspan> \u003Cspan class=\"variable\">color_mode\u003C\u002Fspan>) {\n        \u003Cspan class=\"keyword\">return\u003C\u002Fspan> \u003Cspan class=\"boolean\">true\u003C\u002Fspan>\n    }\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_color_temp\"\u003C\u002Fspan>) \u003Cspan class=\"operator\">!=\u003C\u002Fspan> \u003Cspan class=\"variable\">color_temp\u003C\u002Fspan>) {\n        \u003Cspan class=\"keyword\">return\u003C\u002Fspan> \u003Cspan class=\"boolean\">true\u003C\u002Fspan>\n    }\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_hue\"\u003C\u002Fspan>) \u003Cspan class=\"operator\">!=\u003C\u002Fspan> \u003Cspan class=\"variable\">hue\u003C\u002Fspan>) {\n        \u003Cspan class=\"keyword\">return\u003C\u002Fspan> \u003Cspan class=\"boolean\">true\u003C\u002Fspan>\n    }\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_saturation\"\u003C\u002Fspan>) \u003Cspan class=\"operator\">!=\u003C\u002Fspan> \u003Cspan class=\"variable\">saturation\u003C\u002Fspan>) {\n        \u003Cspan class=\"keyword\">return\u003C\u002Fspan> \u003Cspan class=\"boolean\">true\u003C\u002Fspan>\n    }\n    \u003Cspan class=\"keyword\">return\u003C\u002Fspan> \u003Cspan class=\"boolean\">false\u003C\u002Fspan>\n}\n\n\u003Cspan class=\"comment\">\u002F\u002F The last readings describe the lamp before a command, so they must not mask\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F what was just asked for; the read that follows fills them in again.\u003C\u002Fspan>\n\u003Cspan class=\"keyword\">fn\u003C\u002Fspan> \u003Cspan class=\"function\">forget_readings\u003C\u002Fspan>() {\n    \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"unit_power\"\u003C\u002Fspan>, \u003Cspan class=\"operator\">-\u003C\u002Fspan>\u003Cspan class=\"number\">1\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"unit_brightness\"\u003C\u002Fspan>, \u003Cspan class=\"operator\">-\u003C\u002Fspan>\u003Cspan class=\"number\">1\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"unit_color_mode\"\u003C\u002Fspan>, \u003Cspan class=\"operator\">-\u003C\u002Fspan>\u003Cspan class=\"number\">1\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"unit_color_temp\"\u003C\u002Fspan>, \u003Cspan class=\"operator\">-\u003C\u002Fspan>\u003Cspan class=\"number\">1\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"unit_hue\"\u003C\u002Fspan>, \u003Cspan class=\"operator\">-\u003C\u002Fspan>\u003Cspan class=\"number\">1\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"unit_saturation\"\u003C\u002Fspan>, \u003Cspan class=\"operator\">-\u003C\u002Fspan>\u003Cspan class=\"number\">1\u003C\u002Fspan>)\n}\n\n\u003Cspan class=\"keyword\">fn\u003C\u002Fspan> \u003Cspan class=\"function\">remember\u003C\u002Fspan>(\u003Cspan class=\"variable\">power\u003C\u002Fspan>, \u003Cspan class=\"variable\">brightness\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_mode\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_temp\u003C\u002Fspan>, \u003Cspan class=\"variable\">hue\u003C\u002Fspan>, \u003Cspan class=\"variable\">saturation\u003C\u002Fspan>) {\n    \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_power\"\u003C\u002Fspan>, \u003Cspan class=\"variable\">power\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_brightness\"\u003C\u002Fspan>, \u003Cspan class=\"variable\">brightness\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_color_mode\"\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_mode\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_color_temp\"\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_temp\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_hue\"\u003C\u002Fspan>, \u003Cspan class=\"variable\">hue\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_saturation\"\u003C\u002Fspan>, \u003Cspan class=\"variable\">saturation\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent\"\u003C\u002Fspan>, \u003Cspan class=\"boolean\">true\u003C\u002Fspan>)\n}\n\n\u003Cspan class=\"comment\">\u002F\u002F Called by the runtime after the driver stored fresh readings. The commanded\u003C\u002Fspan>\n\u003Cspan class=\"comment\">\u002F\u002F values are only a fallback for whatever the lamp did not report.\u003C\u002Fspan>\n\u003Cspan class=\"keyword\">extern\u003C\u002Fspan> \u003Cspan class=\"keyword\">fn\u003C\u002Fspan> \u003Cspan class=\"variable\">std\u003C\u002Fspan>::\u003Cspan class=\"function\">on_driver_update\u003C\u002Fspan>() {\n    \u003Cspan class=\"variable\">power\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_power\"\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">brightness\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_brightness\"\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">color_mode\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_color_mode\"\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">color_temp\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_color_temp\"\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">hue\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_hue\"\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">saturation\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"sent_saturation\"\u003C\u002Fspan>)\n    \u003Cspan class=\"function\">publish\u003C\u002Fspan>(\u003Cspan class=\"variable\">power\u003C\u002Fspan>, \u003Cspan class=\"variable\">brightness\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_mode\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_temp\u003C\u002Fspan>, \u003Cspan class=\"variable\">hue\u003C\u002Fspan>, \u003Cspan class=\"variable\">saturation\u003C\u002Fspan>)\n}\n\n\u003Cspan class=\"variable\">power\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"stdlib\">input::get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"power\"\u003C\u002Fspan>)\n\u003Cspan class=\"variable\">brightness\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"function\">clamp_int\u003C\u002Fspan>(\u003Cspan class=\"stdlib\">input::get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"brightness\"\u003C\u002Fspan>), \u003Cspan class=\"number\">1\u003C\u002Fspan>, \u003Cspan class=\"number\">100\u003C\u002Fspan>)\n\u003Cspan class=\"variable\">color_mode\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"stdlib\">input::get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"color_mode\"\u003C\u002Fspan>)\n\u003Cspan class=\"variable\">color_temp\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"function\">clamp_int\u003C\u002Fspan>(\u003Cspan class=\"stdlib\">input::get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"color_temp\"\u003C\u002Fspan>), \u003Cspan class=\"number\">1000\u003C\u002Fspan>, \u003Cspan class=\"number\">10000\u003C\u002Fspan>)\n\u003Cspan class=\"variable\">hue\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"function\">clamp_int\u003C\u002Fspan>(\u003Cspan class=\"stdlib\">input::get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"hue\"\u003C\u002Fspan>), \u003Cspan class=\"number\">0\u003C\u002Fspan>, \u003Cspan class=\"number\">360\u003C\u002Fspan>)\n\u003Cspan class=\"variable\">saturation\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"function\">clamp_int\u003C\u002Fspan>(\u003Cspan class=\"stdlib\">input::get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"saturation\"\u003C\u002Fspan>), \u003Cspan class=\"number\">0\u003C\u002Fspan>, \u003Cspan class=\"number\">100\u003C\u002Fspan>)\n\u003Cspan class=\"variable\">features\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">config\u003C\u002Fspan>::\u003Cspan class=\"function\">get\u003C\u002Fspan>(\u003Cspan class=\"string\">\"features\"\u003C\u002Fspan>)\n\u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">features\u003C\u002Fspan> \u003Cspan class=\"operator\">&lt;\u003C\u002Fspan> \u003Cspan class=\"number\">1\u003C\u002Fspan>) {\n    \u003Cspan class=\"variable\">brightness\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"operator\">-\u003C\u002Fspan>\u003Cspan class=\"number\">1\u003C\u002Fspan>\n}\n\u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">features\u003C\u002Fspan> \u003Cspan class=\"operator\">&lt;\u003C\u002Fspan> \u003Cspan class=\"number\">2\u003C\u002Fspan>) {\n    \u003Cspan class=\"variable\">color_temp\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"operator\">-\u003C\u002Fspan>\u003Cspan class=\"number\">1\u003C\u002Fspan>\n}\n\u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">features\u003C\u002Fspan> \u003Cspan class=\"operator\">&lt;\u003C\u002Fspan> \u003Cspan class=\"number\">3\u003C\u002Fspan>) {\n    \u003Cspan class=\"variable\">color_mode\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"boolean\">false\u003C\u002Fspan>\n    \u003Cspan class=\"variable\">hue\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"operator\">-\u003C\u002Fspan>\u003Cspan class=\"number\">1\u003C\u002Fspan>\n    \u003Cspan class=\"variable\">saturation\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"operator\">-\u003C\u002Fspan>\u003Cspan class=\"number\">1\u003C\u002Fspan>\n}\n\n\u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"function\">changed\u003C\u002Fspan>(\u003Cspan class=\"variable\">power\u003C\u002Fspan>, \u003Cspan class=\"variable\">brightness\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_mode\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_temp\u003C\u002Fspan>, \u003Cspan class=\"variable\">hue\u003C\u002Fspan>, \u003Cspan class=\"variable\">saturation\u003C\u002Fspan>)) {\n    \u003Cspan class=\"comment\">\u002F\u002F Report the commanded state right away, so the outputs stay meaningful\u003C\u002Fspan>\n    \u003Cspan class=\"comment\">\u002F\u002F even when the driver call below fails or no driver is attached at all.\u003C\u002Fspan>\n    \u003Cspan class=\"function\">publish\u003C\u002Fspan>(\u003Cspan class=\"variable\">power\u003C\u002Fspan>, \u003Cspan class=\"variable\">brightness\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_mode\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_temp\u003C\u002Fspan>, \u003Cspan class=\"variable\">hue\u003C\u002Fspan>, \u003Cspan class=\"variable\">saturation\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">rc\u003C\u002Fspan> \u003Cspan class=\"operator\">=\u003C\u002Fspan> \u003Cspan class=\"variable\">std\u003C\u002Fspan>::\u003Cspan class=\"function\">invoke\u003C\u002Fspan>(\u003Cspan class=\"string\">\"light_apply\"\u003C\u002Fspan>, \u003Cspan class=\"variable\">power\u003C\u002Fspan>, \u003Cspan class=\"variable\">brightness\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_mode\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_temp\u003C\u002Fspan>, \u003Cspan class=\"variable\">hue\u003C\u002Fspan>, \u003Cspan class=\"variable\">saturation\u003C\u002Fspan>)\n    \u003Cspan class=\"variable\">state\u003C\u002Fspan>::\u003Cspan class=\"function\">set\u003C\u002Fspan>(\u003Cspan class=\"string\">\"invoke_rc\"\u003C\u002Fspan>, \u003Cspan class=\"variable\">rc\u003C\u002Fspan>)\n    \u003Cspan class=\"keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"variable\">rc\u003C\u002Fspan> \u003Cspan class=\"operator\">==\u003C\u002Fspan> \u003Cspan class=\"number\">0\u003C\u002Fspan>) {\n        \u003Cspan class=\"function\">remember\u003C\u002Fspan>(\u003Cspan class=\"variable\">power\u003C\u002Fspan>, \u003Cspan class=\"variable\">brightness\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_mode\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_temp\u003C\u002Fspan>, \u003Cspan class=\"variable\">hue\u003C\u002Fspan>, \u003Cspan class=\"variable\">saturation\u003C\u002Fspan>)\n        \u003Cspan class=\"function\">forget_readings\u003C\u002Fspan>()\n    }\n}\n\u003Cspan class=\"function\">publish\u003C\u002Fspan>(\u003Cspan class=\"variable\">power\u003C\u002Fspan>, \u003Cspan class=\"variable\">brightness\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_mode\u003C\u002Fspan>, \u003Cspan class=\"variable\">color_temp\u003C\u002Fspan>, \u003Cspan class=\"variable\">hue\u003C\u002Fspan>, \u003Cspan class=\"variable\">saturation\u003C\u002Fspan>)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n",[1850,1853,1856,1859,1862,1865],{"level":100,"text":1851,"id":1852},"Implementing blocks","implementations",{"level":100,"text":1854,"id":1855},"Inputs","inputs",{"level":100,"text":1857,"id":1858},"Outputs","outputs",{"level":100,"text":1860,"id":1861},"Configuration","configuration",{"level":100,"text":1863,"id":1864},"State","state",{"level":100,"text":1866,"id":1867},"Source Code","source-code",{"block":1869,"labels":1909,"spec":1928},{"abstract":71,"group":478,"id":574,"inputs":1870,"ioType":1897,"name":573,"outputs":1898},[1871,1876,1881,1885,1889,1893],{"abbrev":1872,"id":1873,"name":1874,"type":1875},"P","power","Power","BOOLEAN",{"abbrev":1877,"id":1878,"name":1879,"type":1880},"BR","brightness","Brightness","NUMBER",{"abbrev":1882,"id":1883,"name":1884,"type":1875},"CM","color_mode","Color mode",{"abbrev":1886,"id":1887,"name":1888,"type":1880},"CT","color_temp","Color temperature",{"abbrev":1890,"id":1891,"name":1892,"type":1880},"H","hue","Hue",{"abbrev":1894,"id":1895,"name":1896,"type":1880},"S","saturation","Saturation",null,[1899,1900,1901,1902,1903,1904,1905],{"abbrev":1872,"id":1873,"name":1874,"type":1875},{"abbrev":1877,"id":1878,"name":1879,"type":1880},{"abbrev":1882,"id":1883,"name":1884,"type":1875},{"abbrev":1886,"id":1887,"name":1888,"type":1880},{"abbrev":1890,"id":1891,"name":1892,"type":1880},{"abbrev":1894,"id":1895,"name":1896,"type":1880},{"abbrev":1906,"id":1907,"name":1908,"type":1880},"F","fault","Fault",{"config":1910,"detail":1918,"port":1923,"sections":1925,"state":1927},{"default":1911,"description":1912,"details":1913,"id":1914,"name":1915,"type":1916,"unit":1917},"Default","Description","Details","ID","Name","Type","Unit",{"required":1919,"subtype":1920,"values":1921,"visible_when":1922},"Required","Subtype","Values","Visible when",{"abbrev":1924,"default":1911,"description":1912,"id":1914,"name":1915,"type":1916},"Abbrev",{"configuration":1860,"inputs":1854,"outputs":1857,"source_code":1866,"state":1863,"view_source":1926},"View Volang source",{"default":1911,"description":1912,"id":1914,"name":1915,"type":1916,"unit":1917},{"config":1929,"inputs":1943,"outputs":1960,"state":1975},[1930],{"default":1931,"description":1932,"details":1933,"id":1939,"name":1940,"type":1941,"unit":1942},"3","What the lamp can do, each level including the previous ones: on\u002Foff, brightness, white color temperature, color. Inputs beyond it are ignored and the matching outputs read -1 (color mode low).",{"enumValues":1934},[1935,1936,1937,1938],"On\u002FOff","Dimmable","Tunable white","Color","features","Features","ENUM","",[1944,1947,1950,1952,1955,1958],{"abbrev":1872,"default":1945,"description":1946,"id":1873,"name":1874,"type":1875},"false","Switches the light on when high and off when low",{"abbrev":1877,"default":1948,"description":1949,"id":1878,"name":1879,"type":1880},"100","Requested brightness, 1 to 100 %",{"abbrev":1882,"default":1945,"description":1951,"id":1883,"name":1884,"type":1875},"Low - white light at the requested color temperature, high - color given by hue and saturation. A lamp without color stays white.",{"abbrev":1886,"default":1953,"description":1954,"id":1887,"name":1888,"type":1880},"4000","Requested color temperature of the white light in kelvins, narrowed down to what the lamp supports. Ignored by lamps without adjustable white.",{"abbrev":1890,"default":1956,"description":1957,"id":1891,"name":1892,"type":1880},"0","Requested hue in color mode, 0 to 360 °",{"abbrev":1894,"default":1948,"description":1959,"id":1895,"name":1896,"type":1880},"Requested saturation in color mode, 0 to 100 %",[1961,1963,1965,1967,1969,1971,1973],{"abbrev":1872,"default":1945,"description":1962,"id":1873,"name":1874,"type":1875},"High when the light is on. Reported by the lamp when the implementation provides feedback, otherwise the commanded state.",{"abbrev":1877,"default":1956,"description":1964,"id":1878,"name":1879,"type":1880},"Brightness of the lamp in %",{"abbrev":1882,"default":1945,"description":1966,"id":1883,"name":1884,"type":1875},"High when the lamp shows a color, low when it shows white light",{"abbrev":1886,"default":1956,"description":1968,"id":1887,"name":1888,"type":1880},"Color temperature of the white light in kelvins. The commanded value while the lamp shows a color or does not report it.",{"abbrev":1890,"default":1956,"description":1970,"id":1891,"name":1892,"type":1880},"Hue of the lamp in °. The commanded value when the lamp does not report it.",{"abbrev":1894,"default":1956,"description":1972,"id":1895,"name":1896,"type":1880},"Saturation of the lamp in %. The commanded value when the lamp does not report it.",{"abbrev":1906,"default":1956,"description":1974,"id":1907,"name":1908,"type":1880},"0 - no fault, -1 - lamp unreachable, above 0 - implementation specific error code",[1976,1981,1985,1989,1993,1997,2001,2005,2009,2013,2017,2021,2025,2029,2033],{"default":1977,"description":1978,"id":1979,"name":1980,"type":1880,"unit":1942},"-1","Power state reported by the implementation block: -1 unknown, 0 off, 1 on","unit_power","Reported power",{"default":1977,"description":1982,"id":1983,"name":1984,"type":1880,"unit":1942},"Brightness reported by the implementation block, -1 when unknown","unit_brightness","Reported brightness",{"default":1977,"description":1986,"id":1987,"name":1988,"type":1880,"unit":1942},"Color mode reported by the implementation block: -1 unknown, 0 white, 1 color","unit_color_mode","Reported color mode",{"default":1977,"description":1990,"id":1991,"name":1992,"type":1880,"unit":1942},"Color temperature reported by the implementation block, -1 when unknown","unit_color_temp","Reported color temperature",{"default":1977,"description":1994,"id":1995,"name":1996,"type":1880,"unit":1942},"Hue reported by the implementation block, -1 when unknown","unit_hue","Reported hue",{"default":1977,"description":1998,"id":1999,"name":2000,"type":1880,"unit":1942},"Saturation reported by the implementation block, -1 when unknown","unit_saturation","Reported saturation",{"default":1956,"description":2002,"id":2003,"name":2004,"type":1880,"unit":1942},"Fault reported by the implementation block","unit_fault","Reported fault",{"default":1956,"description":2006,"id":2007,"name":2008,"type":1880,"unit":1942},"Value returned by the last implementation call, published as a fault when the lamp reports none","invoke_rc","Last implementation result",{"default":1945,"description":2010,"id":2011,"name":2012,"type":1875,"unit":1942},"Set once the state has been accepted by the lamp at least once","sent","State sent",{"default":1945,"description":2014,"id":2015,"name":2016,"type":1875,"unit":1942},"Last power state accepted by the lamp","sent_power","Sent power",{"default":1956,"description":2018,"id":2019,"name":2020,"type":1880,"unit":1942},"Last brightness accepted by the lamp","sent_brightness","Sent brightness",{"default":1945,"description":2022,"id":2023,"name":2024,"type":1875,"unit":1942},"Last color mode accepted by the lamp","sent_color_mode","Sent color mode",{"default":1956,"description":2026,"id":2027,"name":2028,"type":1880,"unit":1942},"Last color temperature accepted by the lamp","sent_color_temp","Sent color temperature",{"default":1956,"description":2030,"id":2031,"name":2032,"type":1880,"unit":1942},"Last hue accepted by the lamp","sent_hue","Sent hue",{"default":1956,"description":2034,"id":2035,"name":2036,"type":1880,"unit":1942},"Last saturation accepted by the lamp","sent_saturation","Sent saturation",1793029347272]