ABSTRACT The use of Smart Homes has grown considerably in the past decade. Enabling end-users to develop rules to program their homes and devices is very important to empower them. Several studies have analysed trigger-action programming tools, primarily using form-based and data-flow approaches for programming interfaces. This study evaluated the usability of a block-based tool for end-user development of rules to control smart homes and compared the difficulties encountered by non-programmers and programmers. Evaluations involved 10 programmers and 10 non-programmers in Brazil. A thematic analysis of 247 problem instances (80 from programmers and 167 from non-programmers) yielded the following themes, with problems related to condition blocks, action blocks, states and actions, time-related tasks, block configuration and personalisation, information architecture, programming logic, conceptual model of smart homes, simulator and debugging, help and technical problems. Despite most non-programmers being able to experiment with blocks, their task completion rates were significantly lower than programmers. The analysis showed aspects where block-based programming can enhance the use for non-programmers. They also confirmed interaction aspects revealed by previous studies using form-based and data-flow approaches that also occur with block-based programming to design smart home rules, with important contributions to improve end-user development tools for smart homes.