今天,我想谈一谈智能家居和物联网设备。 但这不是普通的文章。 您将找不到硬件说明,制造商链接,代码批次或存储库。 今天,我们将讨论更高层次的内容-用于组织“智能”系统的原理。

智能家居是一个可以代替他人执行日常事务的系统。 它引导我们遵循第一个也是主要的原则:
1.智能家居必须使生活更轻松。
智能家居是一种生活系统,它不是极客的玩具。 使用比交换机更复杂的系统
1不是智能家居。
任何新事物都必须根据该原则进行测试。 如果它不能使生活更轻松,并且您不了解如何改善生活以使生活更轻松,那么它就不适用于智能家居。
第二个重要原则是用户如何与系统交互:
2.良好的用户体验比功能更重要。
很难使用的炫酷工具不值一毛钱。 与所有可能的用途和应用的复杂设备相比,功能有限的便捷可靠设备具有更大的成功机会。
2.1。 方便的界面比自定义更好。
如果您不了解如何将众多功能和一个简单的界面结合起来,而只是简单地存储所有功能,希望用户可以自己掌握所有功能,那么也许您应该重新考虑自己的职业选择。
如果您不了解如何集成便利性和众多功能,请摆脱一些设置。 任何功能都比常规开关更好。 但是,如果它过于复杂,用户将回到切换状态。
关于工作质量也可以这样说。 简单地关闭灯的按钮比调光器好一些,该调光器有时有用,有时不起作用:
2.2。 实现功能的质量比功能数量更重要
可靠的功能要比故障的功能要好。
在进化过程中人脑中发展的机制之一是对负面刺激的更多情绪反应。 负面因素比正面因素更为重要-不注意接近的老虎比错过树上成熟的果实要危险得多。 如果您的系统没有某些功能,则没有任何问题。 根本就没有积极的刺激。 但是,如果您具有某项功能但它会发生故障,那么这是一种负面刺激,很容易被人们长时间记住。
2.3。 系统使用不得降低正常的工作速度
延迟是不可接受的,因为它们会对用户体验造成不良影响。 这也是一种消极刺激。 如果一个人没有注意到
2在拨动开关和打开灯之间有任何延迟,则他一定不会在您的系统中注意到它。
现代硬件可以高速运行。 即使通过无线电信道,在控制器上达到几十兆赫的频率和每秒至少几十千比特的频率也没有问题。 如果使用此硬件,您的用户仍然遇到工作延迟,则应重新考虑您的职业选择。
2.4。 系统不得破坏已经形成的用户习惯。
您的系统只是一个人一生的一小部分。 通常,一个人的寿命超过系统的使用期限。 因此,系统会来去去去,一个人的生活将会继续。 这种生活充满了关于灯光亮度,开关位置以及他或她发现方便控制灯光和气候的方式的养成习惯。
习惯不能用武力改变。 可以提供新事物,但不能强迫。
您无法告诉用户:“现在,您将打开智能手机的灯光-它既现代,时尚又酷”。 它违背了这一原则和其他一些原则。
怎么办
2.5。 系统必须带来新的体验,而不是取代旧的体验。
如果您认为控制家庭系统的方法比旧的方法好,请将其提供给用户。 如果真的方便,他会自己选择新的(是的,不同的人选择不同的方式)。 您能(而且必须)要做的就是为他提供选择。
工作逻辑在智能家居中扮演着重要角色。 它定义了智能家居的工作规则。 这将我们引向下一个原则:
3.不能限制用户的逻辑。
如果用户想在房间温度升高时烧水壶
3 ,那就让他煮。 您还必须避免这样一种情况,即可以在硬件或软件级别上执行所需的操作,但仅由于开发人员认为“没有人会需要它”而无法使用。
3.1。 越简单越好:创建逻辑一定不需要特殊的系统结构知识。
如果您使用的设备具有不同的版本和协议,请确保仅在确实必要和不可避免的情况下,用户才知道它。
如果您可以使用户免于获得特殊知识的麻烦,即使这会花费开发人员的时间,也可以这样做。 开发人员将花两天时间,一个小时要花一千个用户。 如果我们看48小时相对于1000小时,答案是显而易见的。
约翰,串行程序员,您睡得好吗?
3.2。 具有相同功能的设备必须以相同的方式进行控制。
用户不必知道水阀是由某些命令控制的,而水龙头是由其他命令控制的。 如果它们两者都控制管道中的水,则它们必须在用户级别具有相同的接口:“开放水”,“封闭水”。
我们生活在现实世界中。 人的身体和大脑形成为与物理对象进行交互。 这将我们引向下一个原则。
4.物理控制设备胜于虚拟设备。
智能手机上的任何应用程序,甚至最好的应用程序,都不如要求位置上的常规物理开关那么好。
另一个开关必须准确地放置在
正确的位置 。 这导致了另一个规则:
5.无线系统比有线系统更好。
有线系统是可靠的,但只有无线系统允许在不翻新房间的情况下放置新的开关或继电器。 如果您认为新的地方更方便,还可以移动开关。 但是有一些例外:
5.1。 糟糕的无线系统比有线系统更糟糕。
对于良好的无线系统而言,设备与中央控制器之间的距离并不重要。 好的无线系统是带有
网状网络的协议:ZigBee,Z-Wave,6LoWPAN等。
其他所有选项(包括Wi-Fi)都不是很好。 诸如“ 433 MHz”之类的专有协议尽管可以在其他频率下工作并且彼此之间有很大差异,但它们也不是很好。
Wi-Fi的缺点是您无法制作功能齐全的“睡眠”设备,自动设置很复杂,与房屋中的其他Wi-Fi设备不兼容。
专有协议的缺点在于,在大多数情况下,它们无法控制传递,加密和可用规范。 Wi-Fi和专有协议都没有网状路由,因此不会带来以下困难:“我不能将交换机放在那个角落,因为它离路由器太远了”。
您不能使100%可靠的系统不必维护。 设备故障,电源线电涌,邻居可能淹没您,电池放电,孩子可能将汤溅到灯上等。 但是:
6.修复,更新,维护和诊断必须容易。
B2B中的一切都很清楚。 有一个用户,一个开发人员和一个操作员,一个人或一个组织都知道它喜欢什么系统以及如何在专业水平上使用它。 会计不必知道使用其专业软件的程序。 租用办公室的人不必知道通风的原理,他所要做的只是说:“办公室闷了”。
购买系统的明智解决方案是在计算拥有总成本的基础上得出的,总成本由系统价格和维护费用组成。
在家庭使用的系统中,它要复杂一些。 操作员和用户是同一个人,没有系统的必需知识。 不幸的是,这些都是消费市场的局限性。 并导致以下原则。
6.1。 设备正常工作或不正常。 没有第三种选择。
禁止进行可能的工作,部分工作或故障。 避免设备每隔十分之一无法运行的情况。 如果您认为设备发生故障,请出于安全原因将其关闭,并保持良好的用户体验。 更换设备并不是一件令人愉快的事情,但是让用户更换设备要比认为系统“每隔一段时间”工作更好。 系统只有两种可能的状态:系统故障或无法运行,系统正常且可以运行。
如果您确定系统可能会降级,请通过一条易于理解的消息通知用户:“第二个调光器通道故障。 更换调光器。 继续使用第一个调光器通道? 是/否»
6.2。 更换损坏的设备必须很容易。
系统必须是一个模块。 如果传感器故障,则只需更换该传感器。 要求用带有传感器的遥控器替换继电器是不正确的,因为它们是在制造阶段配对的。
要求“只能由我们的专家安装新传感器”是不正确的,因为随着系统的普及,随着时间的推移,您的专家显然不足以为数百万的用户提供服务。 因此,在某个时刻会出现问题。 当然,用户不会自己修理设备,但是当设备出现故障时,他必须有机会自己更换设备。
6.3。 用户友好的消息。
如果出了什么问题,用户必须知道这件事并知道到底出了什么问题。 您不能显示“错误#45”消息,暗示他必须理解。 这样的消息必须显示给用户“设备无法应答。 尝试重新加载并重新分配,或联系技术支持。 错误编号45”
您无法得知设备无法应答(如果可以),并且无法向用户提供此信息。 收到有关问题的消息并不愉快。 但是,当您最终需要此设备时,得知该设备已经出现故障一周之久,就更不愉快了。
6.4。 消息中没有其他信息。
不要向用户发送垃圾邮件。 用户需要像以前的原理一样的信息,因为它包含的信息恰恰是错误的。 如果他听不懂信息或不是收件人,则不需要。
不要显示数百条典型消息“与设备的连接已丢失”,“与设备的连接已恢复”。 您必须确定它是否为关键信息,并且必须告知用户。 或者,如果恢复了连接,则此信息并不重要,因此请不要显示
4 。
6.5。 维护工作不需要任何专门知识或设备。
允许用户通过单击几个按钮来更新固件。 可以通过标准接口(USB / BT / Wi-Fi)完成此操作,或者根本不用通过SPI编程器进行更新。
您不能期望用户计算位掩码来配置设备。
6.6。 系统一定不需要经常维护。
如果调光器每个月失去连接并且用户必须爬梯子才能到达灯并再次连接执行器-这不方便。 如果必须每两个月更换一次开关中的电池-这不方便。 即使设备的平均维护时间为六个月-这也不方便。 如果房屋中有大约二十个设备,则用户必须每九天执行一次操作。
6.7。 系统必须有更新和扩展的机会。
扩展系统的费用必须线性增长。
避免由于旧的控制器不支持6个以上的传感器
5而需要添加传感器的用户购买新控制器的情况。
避免新传感器固件只能与新版本的控制器一起使用的情况。
这些限制对收入有积极影响,使用户购买新设备。 但这是一条无路可走的路。 由于这些技巧,您可能会失去用户的信任,结果您将损失的本来就多得多的钱。
7.自我维持:外部网络是一种选择,而不是必须的。
命令必须通过外部服务器的系统不方便。 您可以谈论几个小时,以了解便捷的界面,现代的应用程序,凉爽的神经网络,但如果用户在互联网中断时无法打开厕所的灯,它们将毫无意义。 您真的认为这样的系统可以被认为是好的吗?
我真的不明白为什么这个原则不是理所当然的。 如果在项目中包括外部服务器,则可能会导致故障。 外部服务很酷,它们可以添加更多功能,但它们并不是控件的唯一变体。 尽管它们可以很好地用作附加控制通道,备份存储,数据分析工具等。
8.集中化:缺少中央集线器会限制可用的逻辑。
但是,分散式系统虽然可靠,但也不理想。
分散式系统是这样的系统,其中开关“告诉”灯“关闭”,并且温度传感器在温度下降时打开加热器。 分散式系统会失去集中式系统,因为分散式系统仅对一个设备控制另一个设备时设备之间的简单交互有利。 如果系统变得更加复杂,则会出现很多问题。 如果有多个传感器,加热器将接受所有传感器的命令吗? 加热器是否需要传感器本身? 如果必须决定对实际数据的分析,则将档案存储在哪里? 在哪里存储以及如何更改逻辑? 如何在“愚蠢”的设备上存储逻辑? 如何更新逻辑?
如果将集线器作为数据交互点和存储用户逻辑的场所是理所当然的,那么所有这些问题都会消失。 设备可以是“愚蠢的”,即它们可以发送数据并获取命令,因为存储数据,处理数据,决策和与外部服务进行交互的任务在中央控制器上。
可以部分保存分散的权限,因为当没有集线器时,可以直接将命令作为故障安全模式发送。 没有逻辑,但是可以打开灯。
9.系统不得在未通知用户或未得到用户确认的情况下采取潜在危险的措施。
只要我们生活在一个程序员不对他/她的软件所造成的损害负责的世界上,软件中就会出现错误,包括智能家居软件。 不允许错误导致严重后果的唯一方法是限制系统的独立操作。 仅当通知用户有关潜在危险的操作时,才可以执行此操作,或者在用户确认它们之后甚至更好。 灯光可以自动打开,软件中的错误会在晚上唤醒用户或增加用户的电费。 这并不令人愉快,但并不危险。 但是,如果没有防洪工具,水龙头将无法自动打开。 认为自动关闭水龙头并不危险。
这并不意味着禁止自动控制加热器,锅炉,壁炉,水壶等。 这意味着,如果要自动执行潜在危险的操作,请确保该危险不会达到用户级别。 确保水壶在达到一定温度时自动关闭,浴缸内有漏液传感器等。
10.系统必须具有自我控制和自我诊断的选项。
当前的智能家居系统开发人员一定有点偏执狂。 互联网不可信任,它可能会瘫痪。 代码不可信任,可能存在错误。 硬件可以信任吗? 不,不能依靠硬件。 继电器会粘住,三端双向可控硅开关可能会断开,保险丝会燃烧。 甚至用户也可以将千瓦水壶连接到100瓦插座。 因此,需要电压传感器,电流传感器和温度传感器。 如果温度超过限制,请关闭所有设备并发送警告。 如果电流超过限制-请关闭所有电源。 如果继电器关闭,但仍有电压-发送通知。 如果您打开继电器而没有电压-请发送通知。
11.系统必须具有手动控制。
即使您考虑了所有偏执狂的东西,也可能会出现所有控件均失效且某些组件损坏的情况。 它可以是交换机,路由器或中央集线器,但用户仍想打开厕所的灯。 怎么办
必须始终有一个可以将太阳设置为手动模式的按钮,一个可以立即打开/关闭灯光的按钮。 由于交付新集线器需要一天的时间,以后可以购买新的交换机,但是今晚必须关闭卧室的灯。
12.黑客与普通用户一样重要。
普通用户为您带来金钱,黑客
6可以想到的新功能。 制造商不能也不一定要开发系统使用的所有场景,因为他不具备所有领域的知识,并且他无法计算出这些东西的效果。 智能插座很容易通过移动啤酒厂的恒温器进行控制,因为它具有PID调节器。 该示例有点牵强,但想法是为黑客创造方便的条件并不坏,因为它们可以为您的系统增加移动能力。
13.开放性:系统必须具有开放的API才能与其他系统集成。
您无法使用自己的设备满足所有客户的需求。 总是会有您没有的设备。 或者您可能拥有设备,但其他制造商的设备可能更好。 要将您的系统连接到其他系统,绝对有必要提供一个开放的有据可查的API。 如果您没有API,那么您的用户将无法拥有异构系统。 但是,即使是拥有专有硬件和软件的大公司也负担不起。
14.文档:它与硬件和代码一样重要。
如果用户不了解如何启动系统以及如何使用它,则硬件的冷却程度或软件的性能如何都无关紧要。 好的文档是一种阅读后的文档,用户不会想到与技术支持联系,也不会对开发人员的心理能力给予负面评价。 编写此类文档是不可能的,但这是需要努力的事情。
最后但并非最不重要的:
15.自我维持和自我支持:即使公司不再存在,系统也必须继续运转。
一个人的寿命大约为70-90年,安装在他家中的系统可以工作大约5-10年(最多),而公司的寿命甚至更长。 如果您的公司死了,请不要创建会停止工作的系统。 给用户的感觉。 以这样一种方式计划系统,即使公司和开发人员都不再需要与之合作。
如果为设备分配了从开发者服务器获取令牌的权限,请单击“跳过获取令牌”按钮。 如果在首次启动系统时必须从网站上更新固件,请在网站不可用的情况下下载默认固件。 依此类推。
在本文中,我试图以15条原则描述使用,开发此类系统以及与之合作的经验。 其中的一部分似乎牵强,有些值得商((这是正常的),而有些则有些胆怯(这也是正常的)。
但是,即使您花时间考虑其中之一,这篇文章也不是徒劳的。
留言
1. “使用”是指与系统进行定期交互而不是设置的过程。
2.我想强调的是,我说“用户一定不能注意到”,但不能说“延迟必须与之相同”。 实践表明,人类不会注意到300毫秒的延迟。
3.也许他在亚洲长大,他认为最好的热疗法是绿茶。
4.当我说“不显示信息”时,这意味着不能每次都向用户发送有关该信息的消息。 必须按用户的要求显示它-例如,按下按钮时“显示日志”或“显示调试信息”。 不要视用户为白痴,尊重他们的时间。
5.设计支持无限数量的设备的系统还是不可能的。 总会有限制,但是使开发人员在所有情况下的99%中使它们无关紧要。 限制为6个传感器是不可接受的。 一个网中的一百或两百个设备足以满足大多数智能家居用户的需求。
6.根据RFC1983,我在此词的本质含义中使用“黑客”一词,而不是使用计算机获得未经授权的数据访问权的人的含义。
iRidium Mobile帮助将此文本翻译成英文,对此我非常感谢。