{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,22]],"date-time":"2026-07-22T16:35:49Z","timestamp":1784738149130,"version":"3.55.0"},"reference-count":69,"publisher":"Association for Computing Machinery (ACM)","issue":"2","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2026,2,28]]},"abstract":"<jats:p>As the innovation of smart devices and internet-of-things (IoT), smart homes have become prevalent. People tend to transform residences into smart homes by customizing off-the-shelf smart home platforms, instead of creating IoT systems from scratch. Among the alternatives, Home Assistant (HA) is one of the most popular platforms. It allows programmers (i.e., home residents or smart-home creators) to smartify homes by (S1) integrating selected devices into the system and (S2) programming YAML-based software to control those devices. Unfortunately, due to the diversity of devices and complexity of automatic configurations, many programmers have difficulty correctly creating YAML files. Consequently, their smart homes may not work as expected, causing frustration and concern in people.<\/jats:p>\n                  <jats:p>This article presents a novel study on issues of YAML-based automation configuration in smart homes (issues related to S2). We mined the online forum Home Assistant Community for discussion threads related to programming of automation configuration. By manually inspecting 190 threads, we revealed 3 categories of concerns: implementation, optimization, and debugging. Under each category, we classified discussions based on the issue locations and technical concepts involved. Among debugging discussions, we further classified discussions based on users\u2019 resolution strategies; we also applied existing analysis tools to buggy YAML files, to assess the tool effectiveness. Our study reveals the common challenges faced by programmers and frequently applied resolution strategies. There are 129 (68%) examined issues concerning debugging, but existing tools can detect at most 14 of the issues and fix none. It implies that existing tools provide limited assistance in automation configuration. Our research sheds light on future directions in smart home programming.<\/jats:p>","DOI":"10.1145\/3731450","type":"journal-article","created":{"date-parts":[[2025,4,22]],"date-time":"2025-04-22T11:53:12Z","timestamp":1745322792000},"page":"1-25","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["Programming of Automation Configuration in Smart Home Systems: Challenges and Opportunities"],"prefix":"10.1145","volume":"35","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-2384-871X","authenticated-orcid":false,"given":"Sheik Murad Hassan","family":"Anik","sequence":"first","affiliation":[{"name":"Virginia Tech, Blacksburg, Virginia, USA and Auburn University at Montgomery, Montgomery, Alabama, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3531-8137","authenticated-orcid":false,"given":"Xinghua","family":"Gao","sequence":"additional","affiliation":[{"name":"Virginia Tech, Blacksburg, Virginia, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4302-9183","authenticated-orcid":false,"given":"Hao","family":"Zhong","sequence":"additional","affiliation":[{"name":"Shanghai Jiao Tong University, Shanghai, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9079-5534","authenticated-orcid":false,"given":"Xiaoyin","family":"Wang","sequence":"additional","affiliation":[{"name":"University of Texas at San Antonio, San Antonio, Texas, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0230-5524","authenticated-orcid":false,"given":"Na","family":"Meng","sequence":"additional","affiliation":[{"name":"Virginia Tech, Blacksburg, Virginia, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2026,1,21]]},"reference":[{"key":"e_1_3_2_2_2","unstructured":"Schedule Light Color Based on Holidays. 2020. Retrieved from https:\/\/community.home-assistant.io\/t\/schedule-light-color-based-on-holidays\/256020"},{"key":"e_1_3_2_3_2","unstructured":"Automation \u2013 Reference Condition Template Variable in Action Notification. 2021. Retrieved from https:\/\/community.home-assistant.io\/t\/automation-reference-condition-template-variable-in-action-notification\/339858"},{"key":"e_1_3_2_4_2","unstructured":"How to Check If Doors Were Opened or Closed Last 15 Minutes? 2021. Retrieved from https:\/\/community.home-assistant.io\/t\/how-to-check-if-doors-were-opened-or-closed-last-15-minutes\/331897"},{"key":"e_1_3_2_5_2","unstructured":"Automation \u2013 House Thermostat Based on Phone Location \u2013 Not Working. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/automation-house-thermostat-based-on-phone-location-not-working\/401942"},{"key":"e_1_3_2_6_2","unstructured":"Automation Action Templating. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/automation-action-templating\/409680"},{"key":"e_1_3_2_7_2","unstructured":"Automation Door Alarm Use Template. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/automation-door-alarm-use-template\/439744"},{"key":"e_1_3_2_8_2","unstructured":"Automation Not Close the Valve after Timer Finished. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/automation-not-close-the-valve-after-timer-finished\/415726"},{"key":"e_1_3_2_9_2","unstructured":"Automation: Play Radio to a Sonos Speaker Group. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/automation-play-radio-to-a-sonos-speaker-group\/440662"},{"key":"e_1_3_2_10_2","unstructured":"Boolean triggering script. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/boolean-triggering-script\/404465"},{"key":"e_1_3_2_11_2","unstructured":"Can Someone Help Me a Bit with My Alarm Script (Siren Not Repeating for Some Reason). 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/can-someone-help-me-a-bit-with-my-alarm-script-siren-not-repeating-for-some-reason\/442911"},{"key":"e_1_3_2_12_2","unstructured":"Cant Use Template in for Field of Trigger Automation. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/cant-use-template-in-for-field-of-trigger-automation\/400475"},{"key":"e_1_3_2_13_2","unstructured":"Combining Automations? 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/combining-automations\/415637"},{"key":"e_1_3_2_14_2","unstructured":"Condition on trigger.entity_id. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/condition-on-trigger-entity-id\/442838"},{"key":"e_1_3_2_15_2","unstructured":"Exceptions on automation. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/exceptions-on-automation\/409661"},{"key":"e_1_3_2_16_2","unstructured":"Help Adding a \u201cSilence notification\u201d Style Button to a Push Notification (iOS). 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/help-adding-a-silence-notification-style-button-to-a-push-notification-ios\/399163"},{"key":"e_1_3_2_17_2","unstructured":"Home Assistant. 2022. Retrieved from https:\/\/www.home-assistant.io"},{"key":"e_1_3_2_18_2","unstructured":"How to Create an Automation When 2 ppl Are Away at the Same Time. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/how-to-create-an-automation-when-2-ppl-are-away-at-the-same-time\/406896"},{"key":"e_1_3_2_19_2","unstructured":"Jinja. 2022. Retrieved from https:\/\/palletsprojects.com\/p\/jinja\/"},{"key":"e_1_3_2_20_2","unstructured":"Lights on Only after Sunset and before Sunrise. 2022. Retrieved from urlhttps:\/\/community.home-assistant.io\/t\/lights-on-only-after-sunset-and-before-sunrise\/307761"},{"key":"e_1_3_2_21_2","unstructured":"My Automation Generates an Error Message. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/my-automation-generates-an-error-message\/434970"},{"key":"e_1_3_2_22_2","unstructured":"Not Getting Actionable Button in Push Notificaiton. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/not-getting-actionable-button-in-push-notificaiton\/446658"},{"key":"e_1_3_2_23_2","unstructured":"Notify \u2013 How to Display Sensor Value in Message. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/notify-how-to-display-sensor-value-in-message\/376646"},{"key":"e_1_3_2_24_2","unstructured":"Numeric State Trigger Is Not Reliable when Used as Trigger. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/numeric-state-trigger-is-not-reliable-when-used-as-trigger\/445265"},{"key":"e_1_3_2_25_2","unstructured":"Please Help Me Fix (Long) Automation. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/please-help-me-fix-long-automation\/433663"},{"key":"e_1_3_2_26_2","unstructured":"Problem with Automation \u2013 Time Delay Trigger. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/problem-with-automation-time-delay-trigger\/454590"},{"key":"e_1_3_2_27_2","unstructured":"Putting Information from Sensor into Mobile Notification. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/putting-information-from-sensor-into-mobile-notification\/264000"},{"key":"e_1_3_2_28_2","unstructured":"Reliably Set Light Temperature of Different Light Models in One Area. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/reliably-set-light-temperature-of-different-light-models-in-one-area\/430578"},{"key":"e_1_3_2_29_2","unstructured":"Repeat Until Input_Button Is Pressed. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/repeat-until-input-button-is-pressed\/429300"},{"key":"e_1_3_2_30_2","unstructured":"Script Syntax \u2013 Home Assistant. 2022. Retrieved from https:\/\/www.home-assistant.io\/docs\/scripts\/"},{"key":"e_1_3_2_31_2","unstructured":"Set Counter Value Equals to Other Counter in Automation. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/set-counter-value-equals-to-other-counter-in-automation\/442485"},{"key":"e_1_3_2_32_2","unstructured":"SOLVED: Exclude Entities from a Variable. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/solved-exclude-entities-from-a-variable\/420452"},{"key":"e_1_3_2_33_2","unstructured":"Strategies for Dealing with Restarts in Automations. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/strategies-for-dealing-with-restarts-in-automations\/400922"},{"key":"e_1_3_2_34_2","unstructured":"Time Before and After Condition I\u2019m Going Crazy. 2022. Retrieved from https:\/\/community.home-assistant.io\/t\/time-before-and-after-condition-i-m-going-crazy\/416170"},{"key":"e_1_3_2_35_2","unstructured":"With 21.1% CAGR Smart Home Market Worth USD 380.52 Billion in 2028. 2022. Retrieved from https:\/\/www.globenewswire.com\/en\/news-release\/2022\/06\/28\/2470249\/0\/en\/With-21-1-CAGR-Smart-Home-Market-Worth-USD-380-52-Billion-in-2028.html"},{"key":"e_1_3_2_36_2","unstructured":"How Popular Is Home Assistant Compared to the Competition? 2023. Retrieved from https:\/\/whatsmarthome.com\/how-popular-is-home-assistant\/"},{"key":"e_1_3_2_37_2","unstructured":"If Starting Again What Smart Home Platform Would People Go With? 2023. Retrieved from https:\/\/www.reddit.com\/r\/smarthome\/comments\/16sk3qg\/if_starting_again_what_smart_home_platform_would\/"},{"key":"e_1_3_2_38_2","unstructured":"The Best Home Automation Systems: Compare SmartThings Apple HomeKit Amazon Alexa and More. 2023. Retrieved from https:\/\/www.zdnet.com\/home-and-office\/smart-home\/best-home-automation-system\/"},{"key":"e_1_3_2_39_2","unstructured":"Wait for Trigger Timing Out Even When Condition Is Met. 2023. Retrieved from https:\/\/community.home-assistant.io\/t\/wait-for-trigger-timing-out-even-when-condition-is-met\/425310"},{"key":"e_1_3_2_40_2","unstructured":"Automation Actions \u2013 Home Assistant. 2024. Retrieved from https:\/\/www.home-assistant.io\/docs\/automation\/action\/"},{"key":"e_1_3_2_41_2","unstructured":"Automation Conditions \u2013 Home Assistant. 2024. Retrieved from https:\/\/www.home-assistant.io\/docs\/automation\/condition\/"},{"key":"e_1_3_2_42_2","unstructured":"Automation Trigger \u2013 Home Assistant. 2024. Retrieved from https:\/\/www.home-assistant.io\/docs\/automation\/trigger\/"},{"key":"e_1_3_2_43_2","unstructured":"GitHub. 2024. Retrieved from https:\/\/github.com"},{"key":"e_1_3_2_44_2","unstructured":"Home Assistant Analytics. 2024. Retrieved from https:\/\/analytics.home-assistant.io"},{"key":"e_1_3_2_45_2","unstructured":"Home Assistant Community. 2024. Retrieved from https:\/\/community.home-assistant.io"},{"key":"e_1_3_2_46_2","unstructured":"IFTTT \u2013 Automation for Business and Home. 2024. Retrieved from https:\/\/ifttt.com"},{"key":"e_1_3_2_47_2","unstructured":"Tags. Home Assistant Community. 2024. Retrieved from https:\/\/community.home-assistant.io\/tags"},{"key":"e_1_3_2_48_2","unstructured":"The Global Smart Home Market Size Was Valued at {{}} 80.21 billion in 2022 & Is Projected to Grow from {{}} 93.98 billion in 2023 to {{}} 338.28 billion by 2030. 2024. Retrieved from https:\/\/www.fortunebusinessinsights.com\/industry-reports\/smart-home-market-101900"},{"key":"e_1_3_2_49_2","unstructured":"YAML. 2024. Retrieved from https:\/\/yaml.org"},{"key":"e_1_3_2_50_2","unstructured":"CodeBeautify. 2023. CodeBeautify \u2013 YAML validator. Retrieved October 11 2023 from https:\/\/codebeautify.org\/yaml-validator"},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2019.00013"},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","DOI":"10.1145\/3290605.3300782"},{"key":"e_1_3_2_53_2","first-page":"147","volume-title":"2018 USENIX Annual Technical Conference (USENIX ATC \u201918)","author":"Celik Z. Berkay","year":"2018","unstructured":"Z. Berkay Celik, Patrick McDaniel, and Gang Tan. 2018. Soteria: Automated {IoT} safety and security analysis. In 2018 USENIX Annual Technical Conference (USENIX ATC \u201918), 147\u2013158."},{"key":"e_1_3_2_54_2","unstructured":"YAML Checker. Retrieved October 11 2023 from https:\/\/yamlchecker.com\/"},{"key":"e_1_3_2_55_2","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2016.44"},{"key":"e_1_3_2_56_2","unstructured":"JSON Formatter. 2020. JSON Formatter \u2013 YAML Validator. Retrieved October 11 2023 from https:\/\/jsonformatter.org\/yaml-validator"},{"key":"e_1_3_2_57_2","doi-asserted-by":"publisher","DOI":"10.1145\/3460120.3484738"},{"key":"e_1_3_2_58_2","doi-asserted-by":"publisher","DOI":"10.1109\/SPW.2019.00036"},{"key":"e_1_3_2_59_2","doi-asserted-by":"publisher","DOI":"10.1145\/3629517"},{"key":"e_1_3_2_60_2","doi-asserted-by":"publisher","DOI":"10.1145\/3391895"},{"key":"e_1_3_2_61_2","doi-asserted-by":"publisher","DOI":"10.1109\/SNPD.2016.7515933"},{"key":"e_1_3_2_62_2","unstructured":"YAML Lint. YAML Lint. Retrieved October 11 2023 from https:\/\/www.yamllint.com\/"},{"key":"e_1_3_2_63_2","unstructured":"\/ openHAB. 2025. Retrieved May 5 2025 from https:\/\/www.openhab.org2025"},{"key":"e_1_3_2_64_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE43902.2021.00051"},{"key":"e_1_3_2_65_2","unstructured":"SmartThings. 2024. SmartThings. Retrieved from https:\/\/www.smartthings.com\/"},{"key":"e_1_3_2_66_2","unstructured":"Online YAML Tools. Retrieved October 11 2023 from https:\/\/onlineyamltools.com\/validate-yaml"},{"key":"e_1_3_2_67_2","doi-asserted-by":"publisher","DOI":"10.1145\/3368089.3409682"},{"key":"e_1_3_2_68_2","doi-asserted-by":"publisher","DOI":"10.1145\/3533767.3534365"},{"key":"e_1_3_2_69_2","doi-asserted-by":"publisher","DOI":"10.1109\/TETC.2017.2754103"},{"key":"e_1_3_2_70_2","doi-asserted-by":"publisher","DOI":"10.1109\/JIOT.2021.3059457"}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3731450","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,1,21]],"date-time":"2026-01-21T16:33:51Z","timestamp":1769013231000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3731450"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,1,21]]},"references-count":69,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2026,2,28]]}},"alternative-id":["10.1145\/3731450"],"URL":"https:\/\/doi.org\/10.1145\/3731450","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"value":"1049-331X","type":"print"},{"value":"1557-7392","type":"electronic"}],"subject":[],"published":{"date-parts":[[2026,1,21]]},"assertion":[{"value":"2024-09-17","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-04-14","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-01-21","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}