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