Custom profile/services in Bluetooth low energy - bluetooth-lowenergy

Please don't mind my naivety. I am new to developing for Bluetooth Low Energy devices. My recent application needs to interact with the Mi Band 2 device. Got some guidance for connecting with the generic services from https://www.bluetooth.com/specifications/gatt/services
Now I need to read and work with the Custom Services of the device's BLE Stack.
Is there any way to find out which Custom service is meant for which purpose?

Custom services are custom, and not standardised. Anyone can design their own custom service and they don't need to document it.

Related

Integrate custom device into Google Home

My idea is to have single addressable RGBW LED strips in all my rooms. For the sake of practice and interest, I do not simply want to by some controller, I want to start this project with some custom self-build infrastructure, consisting of some Arduinos and/or raspberry pis. My initial idea was to just setup a simple local server on a raspberry (which controls the arduinos connected to the LEDs) and build myself an app to control the lightning. That part is clear to me and should not be a problem, but I thought it might be a plus to integrate my devices directly to Google Home so I do not need any extra app.
I read through the Smart Home Platform but things are not 100% clear to me. I read things about requirements like public Oauth2 Server. I was wondering, if it is possible to get this working without setting up any server which has to be reached publicly, because otherwise I won't waste time on that topic.
If you want to control your room devices from a smartphone and are satisfied with local operation from few meters away than you should consider BLE on phone and devices.
Obviously, you would need to write your own app, but luckily with BLE you can use publicly available apps such as LightBlu for the dev phase and maybe even for later use (I have not looked into that lately).

Kaa to collect data from Tridium Niagara building automation system

I am currently evaluating IoT platforms which can connect to devices and controllers, then collect data and do some analytics
To start with I have this device "JACE 8000" which runs on Niagara platform, which has communication protocols like obix, mqtt etc
I would like to know if Kaa already has any existing module or plugin for this?
If not how to build a new one? and how easy is it to develop a new plugin
It appears that Kaa's preferred choice of protocol is MQTT. Niagara N4 happens to provide an abstract implementation of an MQTT driver, so I'm confident that would probably be your best route for development if you wanted a JACE to communicate with a Kaa network.
To go into any more depth is difficult here because you really need to be either a certified Niagara engineer or developer and have access to a workbench, documentation, and so on. The Niagara framework is a big beast!

ZigBee layers in Building Automation system

I'm currently working on a school project about building automation systems, and havent found a clean answer for a thing i've been searching for all day.
Is it possible to use ZigBee in all application layers in a building automation system ? Like in the 1) Managment layer , 2) Automation layer and ofcourse 3) the field layer.
Or do you need to have some other solution in the higher layers, like KNX og BACnet?
I am not sure what you mean by the field layer you mentioned. AFAIK the Building Automation profile does not suppor field upgrade (is this what you mean by field layer?). But you could use the OTA (Over The Air) update feature in Home Automation. Note that 'off the shelf' Building Automation device may not support this.
The building automation profile in ZigBee (pre 3.0) is similar to Home Automation but adds extra commitioning features, and other messages. The profile layer can be considered as the 'Data Plain' layer in ZigBee, maybe what you refer to as the 'Automation Layer'? It defines the device types and messages it supports; like a light or switch that supports input or output on/off message. This is spread over several spec's such as the ZCL Spec and Profile Spec (such as Buildeing Automation Spec). ZCL defines the message and the profile spec defines the devices and the messages they support.
The management layer in ZigBee is referred to as ZDO (ZigBee Device Object).
Finally you mention other standards like BACnet. Building Automation device support 'Protocol Tunnel' messages (defined in ZCL) which can be used to send BACnet messages over. But I think this is more for integrating into legacy systems.

Any good resources on implementing Firmware OTA over BLE?

I'd love to get a good overview of strategies applied to execute firmware updates over-the-air (FOTA / OTA via BLE) via Bluetooth Low Energy 4.1 and beyond.
The assumption being that the Client is an Android and / or iOS device.
Any hints and help are greatly appreciated.
Do you have a specific module/chip in mind for the peripheral device? Some vendors already provide a FOTA (Firmware Over the Air) service that is supported by their SDK or APIs on the embedded device.
Otherwise, if the vendor does not support it or you would like to implement your own, then you could follow the guidelines and model your system after theirs.
Here are some links that may help you:
mbed FOTA service
Cypress FOTA upgrade guidelines
ST FOTA upgrade
Make sure your firmware file and update process are secure

How to build a game with Adobe's RTMFP?

I want to develop a simple car race game, where certain number of players connect to a lobby and play the game at the same time. A game like haxball.
I read that RTMFP is a good choice for that. I know ActionScript 3, so where should I start to build such a game?
I found Cirrus, but in this article, it says :
In order to use RTMFP, Flash Player endpoints must connect to an
RTMFP-capable server, such as the Codename Cirrus (previously Codename
Stratus) service or Flash Media Server 4. Cirrus is a hosted
rendezvous service that aids establishing communications between Flash
Player endpoints. Unlike FMS, Cirrus does not support media relay,
shared objects, scripting, etc. So by using Cirrus, you can develop
applications only where Flash Player endpoints are directly
communicating with one another.
So is cirrus suitable for my need?
And so, where should I start to code? Maybe an example game?
Thanks in advance !
Citrus is fine for what you need. I created a game similar to haxball but connected the players directly to reduce lag in a real P2P mesh. At haxball, each client connects to a server and the latency is higher and if the host decides to leave = Game Over
Check out Bilu Ball you can see the game in action and the low latency gameplay.
Also check for some P2P libraries which will handle all the communication between client, I used this one: http://code.google.com/p/as3mul/
Also read about how to reduce lag and techniques how to decrease the size of the messages between clients.
Cirrus is deprecated by Adobe.
You can use either Flash Media Server for Amazon AWS.
Or hosting services like Influxis.
Yes. You can very well go with Adobe Cirrus for your application.
However, it's a free p2p service and there are certain limitations for using their service. If your application makes use of more than 10000 concurrent connections to cirrus, then you need to get a consent from Adobe.
Currently, the cirrus service is being abused by some people it may be down at present. But Cirrus is not officially deprecated

Resources