Xively和Node-Red

我在这方面相当新颖,但是却让我的Arduino把值传递给我命名为“Lux and Temp”的Xivelystream。 三个价值观; 数量,勒克斯和温度。

现在我想要做的就是采取这些价值观,并用Node-Red做些什么。 http://nodered.org

我已经启动并运行了Node-Red,但是如果我能弄清楚如何parsing来自Xively API提要的数据,那么我将不胜感激。 https://api.xively.com/v2/feeds/1823833592

可悲的是,我没有足够的声望点能够将其返回的数据实际发布到这里,因为它的数据中embedded了3个以上的URL。 这也是一串长长的数据。 ;)

我只是难以理解如何编写函数来提取我想要的部分。

我最初的想法是做一个简单的Twitter的饲料。 就像是;

“数40,勒克斯30,温度78.3”

我最终会想要回收其他的东西,比如让我的RasPi做一些事情。 也许是一个显示器或一些LED。 无论哪种情况,我都需要parsing数据并用它构build各种消息。

任何人都可以使用Node-Red函数来体验一个解决scheme吗? Node-Red站点非常棒,但我认为它假设我是一个比我更有经验的用户。 它给出的提示,但坦率地说,我所知道的只是相当基本的Arduino和普通级别的Python。

好吧,它不应该太棘手,但请尝试把它放在一个function块:

var newPayload = ""; var count, lux, temp; var data = msg.payload.datastreams; for (var i = 0 ; i< data.length; i++) { if (data[i].id === 'Count') { count = data[i].current_value; }else if (data[i].id === 'Lux') { lux = data[i].current_value; } else if (data[i].id === 'Temp') { temp = data[i].current_value; } } newPayload = util.format('Count: %s, Lux: %s, Temp: %s', count, lux, temp); msg.payload = newPayload; return msg; 

您可能需要添加一个msg.payload = JSON.parse(msg.payload); 但是如果你从xively得到的feed不是已经被认为是json的话。 您也可以通过JSONparsing节点运行stream程。 (我总是忘记转换器节点)

你应该能够把它连接到一个twitter输出节点。