Hi All: Thanks to everyone at Ubidots and and the Ubidots Community! I teach IoT in Singapore and my students love using Ubidots to create IoT projects (even though I’m teaching Amazon Web Services IoT, a much more complicated platform).
I work for UnaBiz, we are the Sigfox network operator for Singapore and Taiwan. Some schools here have asked for Ubidots support, so I have created some code that integrates Sigfox devices into Ubidots.
The code runs on Google Cloud (because it’s cheaper than AWS and Azure). It receives Sigfox messages via the standard Sigfox HTTP callback interface and calls the (very well designed) Ubidots API to push the Sigfox messages into Ubidots as Ubidots Devices and Variables.
But it’s not fully automated - you need to create the Sigfox device in Ubidots and fill in the variable names. Below is the code and a simple guide for creating Sigfox devices in Ubidots. Anybody else here interested in Sigfox integration?
Hello @lupyuen, nice job congrats! Thanks for your support. I’m attaching an article where you can find more information on how to integrate Ubidots with Sigfox. I hope it gives you additional hints or ideas for your future projects.
Article: Connect PyCom Sigfox with Ubidots.
Regards
Cool Jose - Great to see a fellow Sigfox geek!
I’m planning to add the Sigfox downlink feature (i.e. pushing messages from Sigfox to device) since my Google Cloud code can handle that. How do you think I should integrate that with the Ubidots API?
Also what are your thoughts about Sigfox message decoding? I teach Sigfox in schools and it really annoys me to decode messages in the Sigfox Backend using the Sigfox formulas.
That’s why I use Google Cloud to decode my messages, which have field names and field values compressed into 12 bytes.
Greetings Mr. @lupyuen, I’ll do my best to complement your queries:
-
"I’m planning to add the Sigfox downlink feature (i.e. pushing messages from Sigfox to device) since my Google Cloud code can handle that. How do you think I should integrate that with the Ubidots API? : I think that if you already has an environment developed at GC you should continue using GC to parse and send data to Ubidots using HTTP. If you have as purpose to implement control routines, you should use MQTT instead of HTTP at GC as MQTT is faster.
-
Also what are your thoughts about Sigfox message decoding? I teach Sigfox in schools and it really annoys me to decode messages in the Sigfox Backend using the Sigfox formulas: To learn and decode hexadecimal numbers and to learn about BigEndian or LittleEndian may be is not very easy for kids, we thought that may be some of our users (specially whose has not any previous experience programming) would see this hard to understand in a first look too so we advice them to use callbacks, Sigfox has a strong feature that lets to its backend the job of parsing the data and to send as ASCII through a callback, which we believe is easier to understand. In the article that I share you previously you would see an example using LittleEndian and float types data to custom the Sigfox payload to be send.
-
That’s why I use Google Cloud to decode my messages, which have field names and field values compressed into 12 bytes: Right now we support to decode a single hexadecimal dot or a bunch of data from a custom payload. I think that the parser is the hardest part of the implementation for Sigfox, we also have some custom parser for some of our business users to fix their needs but if you already have a parser at GC I thinkg that for teaching purposes is a very good way to begin to learn about Sigfox.
All the best - Jose García
1 Like
Good day Lee Lup Yuen, nice to meet you My name is Ruben, I am from Colombia, thank you for your great work and good contribution. I would like to speak with you and be able to support you in your knowledge and projects. My email is rudasestn@gmail.com I am looking forward to your response.
Hi All: Thanks for the terrific response to my original post!
I have created a new tutorial on programming Sigfox and Ubidots with the UnaShield Arduino Shield. Check it out here: