ZigBee layers in Building Automation system - zigbee

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.

Related

Does the Qt MQTT package provide an easy way of writing my own broker?

I'm considering trying the MQTT implementation provided by Qt.
I've studied the documentation, the classes, the members of the classes, and the examples. Nowhere did I find anything indicating how to make my own broker.
All the examples, and all the classes and the available source code seem to be limited to creating a client. The examples use some online broker service to test this client.
So, does the Qt MQTT package provide an easy way of writing my own broker?
No, it is for clients. The overview pretty much says so
It enables applications to act as telemetry displays and devices to publish telemetry data.

Which is the best zigbee mode for my following requirements?

I am a beginner in Zigbee. I wanna create a mesh network of Zigbee modules in which all nodes can communicate with each other.
I found that Zigbee can be operated in different modes and each modes have its own features. I want to know that which mode will provide an effortless communication in real time applications. We want to build a system that automatically connects to the neighboring Zigbee modules and establishing a communication path to each other.
Is anyone knows about it,please give me the answer to clarify my doubts.
You can use both
Transparent mode has limited functionality and not suitable for larger networks but
API mode allows you to form larger networks and is more appropriate for creating sensor networks to perform tasks such as collecting data from multiple locations, controlling devices remotely, automating your home or for real time systems.

Android Kernel - Switch between network types at runtime

I'm currently working on an experimental Android Kernel (Research). I'actually trying to find some ways to preserve battery charge by implementing a kind of power management tool on the kernel level. I'm working on the msm-hammerahead kernel (used by the nexus 5 running Android 5.0).
I'm trying to figure out if there exists a way to switch between network types (2G,3G,Wifi) at runtime. I know that there exist the possibility to switch the default network type within the build.prop file(ro.telephony.default_network).
Does anybody know if it is even possible to achive this?
The android kernel is not the place to look for network switching. build.prop is also useless for this because it just contain the default boot values.
Switching network interfaces is a very bad idea, because the android framework need to be synchronized with the lower linux layer state.
I would suggest checking the ConnectivityManager.java in the android framework to understand better how the network switching works.

How can I get data from a scale into a web application?

*If you think I should ask this question elsewhere, please let me know.
Background:
I need to build an application for converting weights into piece counts. The weights currently come from scales that are connected to PCs via serial ports. I am replacing PC based applications that connect to the scales via a serial connection. I am considering the feasibility of making the next generation of these applications into a web based solution. However, I do not want to do this if it is not a better solution than building an application that runs on the client. In addition, I do not want to use any sort of browser specific technology (ActiveX).
FYI, we currently run a Windows based environment.
What I have so far:
I am currently thinking that I will need some sort of client side “service” to allow the scale data to be retrieved by the web application. I have looked into creating a WCF service for this task and have determined that it would probably work. This would require that the scale be connected to some sort of Windows based computer that is on the network. I would then interface the WCF service (running as a Windows Service on the PC) from an ASP.NET web application running on an IIS web server. This would minimize the footprint on the client and allow us to use a web application.
I am looking for any constructive thoughts and ideas. I am open to reviewing any feasible option that would make this solution as simple and reliable as possible.
Answering my own question per request #honeycomb.
I discovered two viable options for this purpose. Following are high-level overviews of the techniques we leveraged.
Develop a scale reader to be run on a PC connected to the weigh scale device via an RS-232 connection. This reader will forward any information received from the scale into a database. Combined with technologies like change notifications and server-side push notifications, this option will allow data from a weigh scale to be pushed into a web page with little effort and no additional cost. (This option has performed well during testing but is not yet in production)
Invest in converting weigh scale devices to use ethernet connections and connect them to the network. Use an OPC server with a driver that can connect to the weigh scales you are using to read the data from these devices. Consider KEPWare's offering for this purpose. Use KEPWare's tools to forward this data to a database or wherever it is needed. Once again, you can leverage change notifications and server-side push technologies to push this data into web applications in near real-time without polling. (This option is currently working in a critical, production environment)
The second option is probably better in the long-term, but this may vary based on your specific situation. It has some up front costs and would be better suited to new implementations. For my system, I am using the first option because it will ease the transition between the new and old systems.
Note: I am not in any way associated with KEPWare. I am only suggesting their product because it is the only one I am aware of that supports this functionality. I am sure there are other OPC servers that support this type of device.

What is 'proprietary ZigBee'?

I recently purchased an assortment of sensors from a company and have been having little success in getting them to communicate with my software. I sent a note to the manufacturer asking about compatibility and was told that the devices use 'proprietary ZigBee'.
What does this mean? Do they use a different command set? Is the information is encrypted somehow?
If they are "ZigBee certified" or have a ZigBee logo on the packaging, then they have to implement the standard ZigBee protocols, including ZCL (ZigBee Cluster Library) and ZDO/ZDP (ZigBee Device Object/Profile) on endpoint 0.
Their product could include Manufacturer-Specific clusters with undocumented commands.
If they're using ZCL, then standard ZDO discovery should still work and allow you to enumerate all endpoints and their clusters that don't have the manufacturer-specific bit set. If you know the 16-bit manufacturer ID they're using, you can discover those attributes as well, and display their values (you won't know what they are though).
You should consider reading the ZCL specification at zigbee.org, as it may help you to understand how ZigBee devices communicate with each other. It also explains the manufacturer-specific extensions to the standard.
If you are a developer or are just curious to see the ZigBee traffic among the devices and sensors you have, you might want to try sniffing the traffic.
We use the Perytons sniffer. They support many off-the-shelf dongles you can use as front-ends and provide a 30 days free evaluation of their application.
Proprietary Zigbee usually called as Manufacturer Specific Profile(MSP) in zigbee and is very commonly used by developers and companies. Also Zigbee used to certify MSP till some time last year and used to issue the certificate too of the same. But now the certification is only limited to compliance of zigbee but not the logo usage.
https://www.udemy.com/internet-of-things-and-everything-a-workshop-on-zigbee/

Resources