未来已来——工作空间 WorkSpace 和物联网 IoT (2)

时间:2023-01-24 13:38:28

    光说不练假把式。上一篇介绍了Octoblu这个好玩的IoT平台,可是光放一些截图,没啥意义。好不好玩,容不容易上手,那得搞个Demo~

    说实话,虽然我的账号注册了辣木久,一直没正经玩过Octoblu,直到这次从美国回来…… 以前我也没想到工作空间和物联网啥关系,直到今年见识了900+的PM 2.5……

    于是,我就想,这两者有啥关系呢?既然现在能够实现随时随地的灵活工作空间,能不能结合物联网的特点,让工作空间变得自动而有趣呢?比如,像展望未来的那个视频……

    那就搞搞吧~

 

    我最初的想法,是由PM 2.5触发开会的选择,如果天气好,自动叫车去公司;如果雾霾严重,那就自动转成在线会议,用邮件和短信等通知与会人员~

    怎么样,很酷吧?很人文关怀吧?

    可是我发现貌似老外暂时没有现成的PM 2.5站点连接器,于是我上taobao搞了一个尘粒传感器,准备连到树莓派上,再输出到Octoblu。很明显,这两种方式都需要开发连接器……

    为了尽快完成实验,我决定把PM 2.5改成温度。比如,温度高于0度,打车去开会,等于低于0度,改成在线会议~

 

    这个可以有。

    首先,注册Octoblu的账号,然后,打开https://app.octoblu.com,创建flow,我们就可以在一张图纸上,描绘我们的美好蓝图了~

    未来已来——工作空间 WorkSpace 和物联网 IoT (2)

    一番拖拖拽拽,加上和技术团队在线聊聊天,这个功能就搞定了。

    有趣吧?一起来看看我是如何在享受下午茶的间隙搞定这个Demo的。相信我,你也可以~

 

    前文书说过,Octoblu是消息驱动的IoT自动化平台。你可以在基于浏览器的设计器中,添加“Things”,然后使用Tools等将这些东西连接起来,让消息流转起来,进行处理,推动自动化动作。

    看看上图就容易理解了。为了实现基于温度的自动判断,首先我们需要一个温度的输入。例如,天气服务~

    未来已来——工作空间 WorkSpace 和物联网 IoT (2)

    添加一个天气对象,这个对象是由Octoblu直接提供的,可以根据地点直接输出天气信息。在对应的网站上,有相应的API介绍:

    未来已来——工作空间 WorkSpace 和物联网 IoT (2)

    可以看到,其实挺简单的。按照输入的地点,请求天气信息,当然,包括温度。如果做的考究一点,你也可以判断下雪了才改成在线会议。为了简单测试,我把条件搞成低于15°c,这样我在上海现在的气温下,立刻就能触发~ 当然,你可以选择输出是摄氏度还是华氏度。

    如何得知一个对象输出了哪些消息,又如何去使用这些消息呢?一个最简单的方法,就是打开这个组件的Debug开关,这样,对象能输出那些信息,一目了然。怎样使用这些信息变得很容易。

    正是这样的设计,使得创建一个IoT自动化flow,变得像一个亲子活动――你完全可以指导自己的孩子来做他/她喜欢的设计~

   

    判断可以通过漏斗状的工具进行。将天气对象输出的信息,以消息方式进行引用,然后进行比较。在这个例子里,温度从天气对象输出的众多信息中挑选出来,因此我们可以使用{{msg.temperature}}来表示,从天气对象的msg信息中,挑选temperature这个对象。如前所述,天气对象的消息包括了温度、最低温度、最高温度、气压、湿度、风向、风速、天气等信息。完全可以发挥想象力来搞事情~

    未来已来——工作空间 WorkSpace 和物联网 IoT (2)

    温度和判断有了,接下来我希望来触发一个在线会议,比如,GoToMeeting~

    添加一个GoToMeeting对象。为了启用,需要对这个对象进行设置。对于GoTo Meeting来说,就是提供GoToMeeting的账号以创建管理在线会议。输入我的GoToMeeting账号,就可以继续设置GoToMeeting了~

    必要的信息有:GoTo Meeting的动作,例如创建会议;会议主题;会议起始时间/结束时间;等等

    同样,我们打开Debug,就能够看到这个对象被触发后,有着怎样的消息输出。

    我能告诉你的是,这里有个坑,让我几乎花了一周时间和支持的技术人员研究~ 这个坑就是,不论我如何调整,调用GoToMeeting对象的{{msg.joinURL}}之类,始终显示null……

    你能发现这里的消息输出和前一个对象有什么不一样吗?大家来找茬~哈哈~

 

    是的,多了一个 [ 。这位在美国的支持人员在几轮在线聊天和邮件沟通后,终于告诉我,消息除了前面我们看到的格式之外,也有基于Array的……比如这个有 [ 字符的,就说明输出的消息,是一个array……

    未来已来——工作空间 WorkSpace 和物联网 IoT (2)

    好吧……让我们把这个消息改成 {{msg[0].joinURL}}……

    为了让消息看起来更加可读,我用了一个文本模板来定制邮件和短信正文:

    Hi,

    Due to wather reason, please join meeting via:
    {{msg[0].joinURL}}

    GoToMeeting:在线会议,从未如此简单!

    后面顺手来个GoTo Meeting的广告,其实我是为了测试是不是支持多字节文本比如中文~

    Debug信息显示,终于不是null了……费了老大劲,所谓好事多磨?

    未来已来——工作空间 WorkSpace 和物联网 IoT (2)

    接下来,我要把邮件主题和邮件正文,拼成一个邮件,发给与会者。

    这工作可以交给Octoblu的邮件对象。在网站上同样可以找到相关的API介绍。非常简单~

    未来已来——工作空间 WorkSpace 和物联网 IoT (2)

    邮件创建成功,意味着就发出去了~ 友情提醒,一直收不到邮件的,请到垃圾邮件里翻翻……别问我为啥这么提醒(泪奔)

    未来已来——工作空间 WorkSpace 和物联网 IoT (2)

    既然邮件通知了,顺手也做个短信提醒吧。其实我是想试试能不能发短信给国内的手机……

    未来已来——工作空间 WorkSpace 和物联网 IoT (2)

    一样……Octoblu的短信API也是无比的简单…

 

    大功告成,双儿,来,香一个~

    首先到GoToMeeting的站点上,确认下我们的在线会议是否正确的创建出来了。

    未来已来——工作空间 WorkSpace 和物联网 IoT (2)

    当然,还有邮件,是不是正确的收到了(此处再次纪念null问题解决10秒……)

    未来已来——工作空间 WorkSpace 和物联网 IoT (2)

    再次提醒哦,找不到邮件的时候,除了debug和trouble-shooting,一定记得去翻翻垃圾邮件……

    让我惊喜的是~ 短信也顺利收到了!

    未来已来——工作空间 WorkSpace 和物联网 IoT (2)

    还支持中文哦~

   

    你问我为啥不介绍如果天气好,就Uber叫车那部分?大哥……叫车要给钱的…自己试试叫车吧,哈哈哈~

   

    还犹豫什么,现在就打开网站,注册账号,开始玩IoT吧!