nymea-zigbee/libnymea-zigbee/zigbee.h

1110 lines
56 KiB
C++

// SPDX-License-Identifier: LGPL-3.0-or-later
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* nymea-zigbee
* Zigbee integration module for nymea
*
* Copyright (C) 2013 - 2024, nymea GmbH
* Copyright (C) 2024 - 2025, chargebyte austria GmbH
*
* This file is part of nymea-zigbee.
*
* nymea-zigbee is free software: you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation, either version 3
* of the License, or (at your option) any later version.
*
* nymea-zigbee is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with nymea-zigbee. If not, see <https://www.gnu.org/licenses/>.
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef ZIGBEE_H
#define ZIGBEE_H
#include <QObject>
#include <QString>
#include <QVariant>
#include <QByteArray>
// Note: a good source of data https://github.com/wireshark/wireshark/blob/master/epan/dissectors/packet-zbee.h
class Zigbee
{
Q_GADGET
public:
enum ZigbeeBackendType {
ZigbeeBackendTypeDeconz,
ZigbeeBackendTypeNxp,
#ifndef ZIGBEE_DISABLE_TI
ZigbeeBackendTypeTi
#endif
};
Q_ENUM(ZigbeeBackendType)
enum ZigbeeProfile {
ZigbeeProfileDevice = 0x0000,
ZigbeeProfileIndustrialPlantMonitoring = 0x0101,
ZigbeeProfileHomeAutomation = 0x0104,
ZigbeeProfileCommercialBuildingAutomation = 0x0105,
ZigbeeProfileTelecomAutomation = 0x0107,
ZigbeeProfilePersonalHomeHospitalCare = 0x0108,
ZigbeeProfileAdvancedMetering = 0x0109,
ZigbeeProfileLightLink = 0xC05E,
ZigbeeProfileDevelco = 0xC0C9,
ZigbeeProfileGreenPower = 0xA1E0
};
Q_ENUM(ZigbeeProfile)
enum ZigbeeChannel {
ZigbeeChannel11 = 0x00000800,
ZigbeeChannel12 = 0x00001000,
ZigbeeChannel13 = 0x00002000,
ZigbeeChannel14 = 0x00004000,
ZigbeeChannel15 = 0x00008000,
ZigbeeChannel16 = 0x00010000,
ZigbeeChannel17 = 0x00020000,
ZigbeeChannel18 = 0x00040000,
ZigbeeChannel19 = 0x00080000,
ZigbeeChannel20 = 0x00100000,
ZigbeeChannel21 = 0x00200000,
ZigbeeChannel22 = 0x00400000,
ZigbeeChannel23 = 0x00800000,
ZigbeeChannel24 = 0x01000000,
ZigbeeChannel25 = 0x02000000,
ZigbeeChannel26 = 0x04000000
};
Q_ENUM(ZigbeeChannel)
Q_DECLARE_FLAGS(ZigbeeChannels, ZigbeeChannel)
enum LightLinkDevice {
// Lightning devices
LightLinkDeviceOnOffLight = 0x0000,
LightLinkDeviceOnOffPlugin = 0x0010,
LightLinkDeviceDimmableLight = 0x0100,
LightLinkDeviceDimmablePlugin = 0x0110,
LightLinkDeviceColourLight = 0x0200,
LightLinkDeviceExtendedColourLight = 0x0210,
LightLinkDeviceColourTemperatureLight = 0x0220,
// Controller devices
LightLinkDeviceColourController = 0x0800,
LightLinkDeviceColourSceneController = 0x0810,
LightLinkDeviceNonColourController = 0x0820,
LightLinkDeviceNonColourSceneController = 0x0830,
LightLinkDeviceControlBridge = 0x0840,
LightLinkDeviceOnOffSensor = 0x0850
};
Q_ENUM(LightLinkDevice)
enum HomeAutomationDevice {
// Generic devices
HomeAutomationDeviceOnOffSwitch = 0x0000,
HomeAutomationDeviceLevelControlSwitch = 0x0001,
HomeAutomationDeviceOnOffOutput = 0x0002,
HomeAutomationDeviceLevelControlableOutput = 0x0003,
HomeAutomationDeviceSceneSelector = 0x0004,
HomeAutomationDeviceConfigurationTool = 0x0005,
HomeAutomationDeviceRemoteControl = 0x0006,
HomeAutomationDeviceCombinedInterface = 0x0007,
HomeAutomationDeviceRangeExtender = 0x0008,
HomeAutomationDeviceMainPowerOutlet = 0x0009,
HomeAutomationDeviceDoorLock = 0x000A,
HomeAutomationDeviceDoorLockController = 0x000B,
HomeAutomationDeviceSimpleSensor = 0x000C,
HomeAutomationDeviceConsumtionAwarenessDevice = 0x000D,
HomeAutomationDeviceHomeGateway = 0x0050,
HomeAutomationDeviceSmartPlug = 0x0051,
HomeAutomationDeviceWhiteGoods = 0x0052,
HomeAutomationDeviceMeterInterface = 0x0053,
HomeAutomationDeviceColourController = 0x0800,
HomeAutomationDeviceColourSceneController = 0x0810,
HomeAutomationDeviceNonColourController = 0x0820,
HomeAutomationDeviceNonColourSceneController = 0x0830,
HomeAutomationDeviceControlBridge = 0x0840,
HomeAutomationDeviceOnOffSensor = 0x0850,
// Lightning devices
HomeAutomationDeviceOnOffLight = 0x0100,
HomeAutomationDeviceDimmableLight = 0x0101,
HomeAutomationDeviceDimmableColorLight = 0x0102,
HomeAutomationDeviceOnOffLightSwitch = 0x0103,
HomeAutomationDeviceDimmableSwitch = 0x0104,
HomeAutomationDeviceColourDimmerSwitch = 0x0105,
HomeAutomationDeviceLightSensor = 0x0106,
HomeAutomationDeviceOccupacySensor = 0x0107,
HomeAutomationDeviceOnOffBallast = 0x0108,
HomeAutomationDeviceDimmableBallast = 0x0109,
HomeAutomationDeviceOnOffPlugin = 0x010A,
HomeAutomationDeviceDimmablePlugin = 0x010B,
HomeAutomationDeviceColourTemperatureLight = 0x010C,
HomeAutomationDeviceExtendedColourLight = 0x010D,
HomeAutomationDeviceLightLevelSensor = 0x010E,
// Closures
HomeAutomationDeviceShade = 0x02000,
HomeAutomationDeviceShadeController = 0x02001,
HomeAutomationWindowCoveringDevice = 0x02002,
HomeAutomationWindowCoveringController = 0x02003,
// Heating, Ventilation and Air-Conditioning (HVAC) devices
HomeAutomationDeviceHeatingCoolingUnit = 0x0300,
HomeAutomationDeviceThermostat = 0x0301,
HomeAutomationDeviceTemperatureSensor = 0x0302,
HomeAutomationDevicePump = 0x0303,
HomeAutomationDevicePumpController = 0x0304,
HomeAutomationDevicePressureSensor = 0x0305,
HomeAutomationDeviceFlowSensor = 0x0306,
// Intruder Alarm System (IAS) devices
HomeAutomationDeviceIasControlEquipment = 0x0400, // CIE
HomeAutomationDeviceIasAncillaryControlEquipment = 0x0401, // ACE
HomeAutomationDeviceIasZone = 0x0402,
HomeAutomationDeviceIasWarningDevice = 0x0403 // WD
};
Q_ENUM(HomeAutomationDevice)
enum GreenPowerDevice {
GreenPowerDeviceProxy = 0x0060,
GreenPowerDeviceProxyMinimum = 0x0061,
GreenPowerDeviceProxyTargetPlus = 0x0062,
GreenPowerDeviceProxyTarget = 0x0063,
GreenPowerDeviceProxyCommissioningTool = 0x0064,
GreenPowerDeviceProxyCombo = 0x0065,
GreenPowerDeviceProxyComboMinimum = 0x0066
};
Q_ENUM(GreenPowerDevice)
enum DataType {
NoData = 0x00,
Data8 = 0x08,
Data16 = 0x09,
Data24 = 0x0a,
Data32 = 0x0b,
Data40 = 0x0c,
Data48 = 0x0d,
Data56 = 0x0e,
Data64 = 0x0f,
Bool = 0x10,
BitMap8 = 0x18,
BitMap16 = 0x19,
BitMap24 = 0x1a,
BitMap32 = 0x1b,
BitMap40 = 0x1c,
BitMap48 = 0x1d,
BitMap56 = 0x1e,
BitMap64 = 0x1f,
Uint8 = 0x20,
Uint16 = 0x21,
Uint24 = 0x22,
Uint32 = 0x23,
Uint40 = 0x24,
Uint48 = 0x25,
Uint56 = 0x26,
Uint64 = 0x27,
Int8 = 0x28,
Int16 = 0x29,
Int24 = 0x2a,
Int32 = 0x2b,
Int40 = 0x2c,
Int48 = 0x2d,
Int56 = 0x2e,
Int64 = 0x2f,
Enum8 = 0x30,
Enum16 = 0x31,
FloatSemi = 0x38,
FloatSingle = 0x39,
FloatDouble = 0x3a,
OctetString = 0x41,
CharString = 0x42,
LongOctetString = 0x43,
LongCharString = 0x44,
Array = 0x48,
Structure = 0x4c,
Set = 0x50,
Bag = 0x51,
TimeOfDay = 0xe0,
Date = 0xe1,
UtcTime = 0xe2,
Cluster = 0xe8,
Attribute = 0xe9,
BacnetId = 0xea,
IeeeAddress = 0xf0,
BitKey128 = 0xf1,
Unknown = 0xff
};
Q_ENUM(DataType)
enum BroadcastAddress {
BroadcastAddressAllNodes = 0xffff,
BroadcastAddressAllNonSleepingNodes = 0xfffd,
BroadcastAddressAllRouters = 0xfffc
};
Q_ENUM(BroadcastAddress)
enum DestinationAddressMode {
DestinationAddressModeGroup = 0x01,
DestinationAddressModeShortAddress = 0x02,
DestinationAddressModeIeeeAddress = 0x03
};
Q_ENUM(DestinationAddressMode)
enum SourceAddressMode {
SourceAddressModeShortAddress = 0x02,
SourceAddressModeIeeeAddress = 0x03,
SourceAddressModeShortAndIeeeAddress = 0x04
};
Q_ENUM(SourceAddressMode)
enum ZigbeeTxOption {
ZigbeeTxOptionSecurityEnabled = 0x01,
ZigbeeTxOptionUseNetworkKey = 0x02,
ZigbeeTxOptionAckTransmission = 0x04,
ZigbeeTxOptionFragmentationPermitted = 0x08,
ZigbeeTxOptionIncludeExtendedNonceInSecurityFrame = 0x10
};
Q_ENUM(ZigbeeTxOption)
Q_DECLARE_FLAGS(ZigbeeTxOptions, ZigbeeTxOption)
enum Manufacturer {
// RF4CE
PanasonicRF4CE = 0x0001,
SonyRF4CE = 0x0002,
SamsungRF4CE = 0x0003,
PhilipsRF4CE = 0x0004,
FreescaleRF4CE = 0x0005,
OkiSemiRF4CE = 0x0006,
TiRF4CE = 0x0007,
// Manufacturer Codes for non RF4CE devices
Cirronet = 0x1000,
Chipcon = 0x1001,
Ember = 0x1003,
Philips = 0x100b,
Develco = 0x1015,
Ikea = 0x117C,
FeiBit = 0x117E
};
Q_ENUM(Manufacturer)
enum ZigbeeMacLayerStatus {
ZigbeeMacLayerStatusSuccess = 0x00,
ZigbeeMacLayerStatusBeaconLoss = 0xE0,
ZigbeeMacLayerStatusChannelAccessFailure = 0xE1,
ZigbeeMacLayerStatusDenied = 0xE2,
ZigbeeMacLayerStatusDisableTrxFailure = 0xE3,
ZigbeeMacLayerStatusFailedSecurityCheck = 0xE4,
ZigbeeMacLayerStatusFrameToLong = 0xE5,
ZigbeeMacLayerStatusInvalidGts = 0xE6,
ZigbeeMacLayerStatusInvalidHandle = 0xE7,
ZigbeeMacLayerStatusInvalidParameter = 0xE8,
ZigbeeMacLayerStatusNoAck = 0xE9,
ZigbeeMacLayerStatusNoBeacon = 0xEA,
ZigbeeMacLayerStatusNoData = 0xEB,
ZigbeeMacLayerStatusNoShortAddress = 0xEC,
ZigbeeMacLayerStatusOutOfCap = 0xED,
ZigbeeMacLayerStatusPanIdConflict = 0xEE,
ZigbeeMacLayerStatusRealignment = 0xEF,
ZigbeeMacLayerStatusTransactionExpired = 0xF0,
ZigbeeMacLayerStatusTransactionOverflow = 0xF1,
ZigbeeMacLayerStatusTxActive = 0xF2,
ZigbeeMacLayerStatusUnavailableKey = 0xF3,
ZigbeeMacLayerStatusUnsupportedAttribute = 0xF4
};
Q_ENUM(ZigbeeMacLayerStatus)
enum ZigbeeNwkLayerStatus {
ZigbeeNwkLayerStatusSuccess = 0x00,
ZigbeeNwkLayerStatusInvalidParameter = 0xc1,
ZigbeeNwkLayerStatusInvalidRequest = 0xc2,
ZigbeeNwkLayerStatusNotPermitted = 0xc3,
ZigbeeNwkLayerStatusStartupFailure = 0xc4,
ZigbeeNwkLayerStatusAlreadyPresent = 0xc5,
ZigbeeNwkLayerStatusSynchFailure = 0xc6,
ZigbeeNwkLayerStatusTableFull = 0xc7,
ZigbeeNwkLayerStatusUnknownDevice = 0xc8,
ZigbeeNwkLayerStatusUnsupportedAttribute = 0xc9,
ZigbeeNwkLayerStatusNoNetworks = 0xca,
ZigbeeNwkLayerStatusMaxFrmCntr = 0xcc,
ZigbeeNwkLayerStatusNoKey = 0xcd,
ZigbeeNwkLayerStatusBadCcmOutput = 0xce,
ZigbeeNwkLayerStatusNoRoutingCapacity = 0xef, // Resource problem on the hardware
ZigbeeNwkLayerStatusRouteDiscoveryFailed = 0xd0,
ZigbeeNwkLayerStatusRouteError = 0xd1,
ZigbeeNwkLayerStatusBtTableFull = 0xd2,
ZigbeeNwkLayerStatusFrameNotBuffered = 0xd3,
ZigbeeNwkLayerStatusFrameBuffered = 0xd4 // Buffered until route discovery has been done
};
Q_ENUM(ZigbeeNwkLayerStatus)
enum ZigbeeApsStatus {
ZigbeeApsStatusSuccess = 0x00,
ZigbeeApsStatusAsduTooLong = 0xa0,
ZigbeeApsStatusDefragDeferred = 0xa1,
ZigbeeApsStatusDefragUnsupported = 0xa2,
ZigbeeApsStatusIllegalRequest = 0xa3,
ZigbeeApsStatusInvalidBinding = 0xa4,
ZigbeeApsStatusInvalidGroup = 0xa5,
ZigbeeApsStatusInvalidParameter = 0xa6,
ZigbeeApsStatusNoAck = 0xa7,
ZigbeeApsStatusNoBoundDevice = 0xa8,
ZigbeeApsStatusNoShortAddress = 0xa9,
ZigbeeApsStatusNotSupported = 0xaa,
ZigbeeApsStatusSecuredLinkKey = 0xab,
ZigbeeApsStatusSecuredNwkKey = 0xac,
ZigbeeApsStatusSecurityFail = 0xad,
ZigbeeApsStatusTableFull = 0xae,
ZigbeeApsStatusUnsecured = 0xaf,
ZigbeeApsStatusUnsupportedAttribute = 0xb0
};
Q_ENUM(ZigbeeApsStatus)
// Basic struct for interface data.
typedef struct ApsdeDataConfirm {
quint8 requestId = 0;
quint8 destinationAddressMode = Zigbee::DestinationAddressModeShortAddress;
quint16 destinationShortAddress = 0;
quint64 destinationIeeeAddress = 0;
quint8 destinationEndpoint = 0;
quint8 sourceEndpoint = 0;
quint8 zigbeeStatusCode = 0;
} ApsdeDataConfirm;
typedef struct ApsdeDataIndication {
quint8 destinationAddressMode = 0;
quint16 destinationShortAddress = 0;
quint64 destinationIeeeAddress = 0;
quint8 destinationEndpoint = 0;
quint8 sourceAddressMode = 0;
quint16 sourceShortAddress = 0;
quint64 sourceIeeeAddress = 0;
quint8 sourceEndpoint = 0;
quint16 profileId = 0;
quint16 clusterId = 0;
QByteArray asdu;
quint8 lqi = 0;
qint8 rssi = 0;
} ApsdeDataIndication;
typedef struct ApsdeDataAck {
quint8 requestId = 0;
quint8 destinationAddressMode = Zigbee::DestinationAddressModeShortAddress;
quint16 destinationAddress = 0;
quint8 destinationEndpoint = 0;
quint8 sourceEndpoint = 0;
quint16 profileId = 0;
quint16 clusterId = 0;
quint8 zigbeeStatusCode = 0;
} ApsdeDataAck;
///* Manufacturer Codes */
///* Codes less than 0x1000 were issued for RF4CE */
//#define ZBEE_MFG_CODE_PANASONIC_RF4CE 0x0001
//#define ZBEE_MFG_CODE_SONY_RF4CE 0x0002
//#define ZBEE_MFG_CODE_SAMSUNG_RF4CE 0x0003
//#define ZBEE_MFG_CODE_PHILIPS_RF4CE 0x0004
//#define ZBEE_MFG_CODE_FREESCALE_RF4CE 0x0005
//#define ZBEE_MFG_CODE_OKI_SEMI_RF4CE 0x0006
//#define ZBEE_MFG_CODE_TI_RF4CE 0x0007
///* Manufacturer Codes for non RF4CE devices */
//#define ZBEE_MFG_CODE_CIRRONET 0x1000
//#define ZBEE_MFG_CODE_CHIPCON
//#define ZBEE_MFG_CODE_EMBER 0x1002
//#define ZBEE_MFG_CODE_NTS 0x1003
//#define ZBEE_MFG_CODE_FREESCALE 0x1004
//#define ZBEE_MFG_CODE_IPCOM 0x1005
//#define ZBEE_MFG_CODE_SAN_JUAN 0x1006
//#define ZBEE_MFG_CODE_TUV 0x1007
//#define ZBEE_MFG_CODE_COMPXS 0x1008
//#define ZBEE_MFG_CODE_BM 0x1009
//#define ZBEE_MFG_CODE_AWAREPOINT 0x100a
//#define ZBEE_MFG_CODE_PHILIPS 0x100b
//#define ZBEE_MFG_CODE_LUXOFT 0x100c
//#define ZBEE_MFG_CODE_KORWIN 0x100d
//#define ZBEE_MFG_CODE_1_RF 0x100e
//#define ZBEE_MFG_CODE_STG 0x100f
//#define ZBEE_MFG_CODE_TELEGESIS 0x1010
//#define ZBEE_MFG_CODE_VISIONIC 0x1011
//#define ZBEE_MFG_CODE_INSTA 0x1012
//#define ZBEE_MFG_CODE_ATALUM 0x1013
//#define ZBEE_MFG_CODE_ATMEL 0x1014
//#define ZBEE_MFG_CODE_DEVELCO 0x1015
//#define ZBEE_MFG_CODE_HONEYWELL1 0x1016
//#define ZBEE_MFG_CODE_RADIO_PULSE 0x1017
//#define ZBEE_MFG_CODE_RENESAS 0x1018
//#define ZBEE_MFG_CODE_XANADU 0x1019
//#define ZBEE_MFG_CODE_NEC 0x101a
//#define ZBEE_MFG_CODE_YAMATAKE 0x101b
//#define ZBEE_MFG_CODE_TENDRIL 0x101c
//#define ZBEE_MFG_CODE_ASSA 0x101d
//#define ZBEE_MFG_CODE_MAXSTREAM 0x101e
//#define ZBEE_MFG_CODE_NEUROCOM 0x101f
//#define ZBEE_MFG_CODE_III 0x1020
//#define ZBEE_MFG_CODE_VANTAGE 0x1021
//#define ZBEE_MFG_CODE_ICONTROL 0x1022
//#define ZBEE_MFG_CODE_RAYMARINE 0x1023
//#define ZBEE_MFG_CODE_LSR 0x1024
//#define ZBEE_MFG_CODE_ONITY 0x1025
//#define ZBEE_MFG_CODE_MONO 0x1026
//#define ZBEE_MFG_CODE_RFT 0x1027
//#define ZBEE_MFG_CODE_ITRON 0x1028
//#define ZBEE_MFG_CODE_TRITECH 0x1029
//#define ZBEE_MFG_CODE_EMBEDIT 0x102a
//#define ZBEE_MFG_CODE_S3C 0x102b
//#define ZBEE_MFG_CODE_SIEMENS 0x102c
//#define ZBEE_MFG_CODE_MINDTECH 0x102d
//#define ZBEE_MFG_CODE_LGE 0x102e
//#define ZBEE_MFG_CODE_MITSUBISHI 0x102f
//#define ZBEE_MFG_CODE_JOHNSON 0x1030
//#define ZBEE_MFG_CODE_PRI 0x1031
//#define ZBEE_MFG_CODE_KNICK 0x1032
//#define ZBEE_MFG_CODE_VICONICS 0x1033
//#define ZBEE_MFG_CODE_FLEXIPANEL 0x1034
//#define ZBEE_MFG_CODE_PIASIM 0x1035
//#define ZBEE_MFG_CODE_TRANE 0x1036
//#define ZBEE_MFG_CODE_JENNIC 0x1037
//#define ZBEE_MFG_CODE_LIG 0x1038
//#define ZBEE_MFG_CODE_ALERTME 0x1039
//#define ZBEE_MFG_CODE_DAINTREE 0x103a
//#define ZBEE_MFG_CODE_AIJI 0x103b
//#define ZBEE_MFG_CODE_TEL_ITALIA 0x103c
//#define ZBEE_MFG_CODE_MIKROKRETS 0x103d
//#define ZBEE_MFG_CODE_OKI_SEMI 0x103e
//#define ZBEE_MFG_CODE_NEWPORT 0x103f
//#define ZBEE_MFG_CODE_C4 0x1040
//#define ZBEE_MFG_CODE_STM 0x1041
//#define ZBEE_MFG_CODE_ASN 0x1042
//#define ZBEE_MFG_CODE_DCSI 0x1043
//#define ZBEE_MFG_CODE_FRANCE_TEL 0x1044
//#define ZBEE_MFG_CODE_MUNET 0x1045
//#define ZBEE_MFG_CODE_AUTANI 0x1046
//#define ZBEE_MFG_CODE_COL_VNET 0x1047
//#define ZBEE_MFG_CODE_AEROCOMM 0x1048
//#define ZBEE_MFG_CODE_SI_LABS 0x1049
//#define ZBEE_MFG_CODE_INNCOM 0x104a
//#define ZBEE_MFG_CODE_CANNON 0x104b
//#define ZBEE_MFG_CODE_SYNAPSE 0x104c
//#define ZBEE_MFG_CODE_FPS 0x104d
//#define ZBEE_MFG_CODE_CLS 0x104e
//#define ZBEE_MFG_CODE_CRANE 0x104F
//#define ZBEE_MFG_CODE_MOBILARM 0x1050
//#define ZBEE_MFG_CODE_IMONITOR 0x1051
//#define ZBEE_MFG_CODE_BARTECH 0x1052
//#define ZBEE_MFG_CODE_MESHNETICS 0x1053
//#define ZBEE_MFG_CODE_LS_IND 0x1054
//#define ZBEE_MFG_CODE_CASON 0x1055
//#define ZBEE_MFG_CODE_WLESS_GLUE 0x1056
//#define ZBEE_MFG_CODE_ELSTER 0x1057
//#define ZBEE_MFG_CODE_SMS_TEC 0x1058
//#define ZBEE_MFG_CODE_ONSET 0x1059
//#define ZBEE_MFG_CODE_RIGA 0x105a
//#define ZBEE_MFG_CODE_ENERGATE 0x105b
//#define ZBEE_MFG_CODE_CONMED 0x105c
//#define ZBEE_MFG_CODE_POWERMAND 0x105d
//#define ZBEE_MFG_CODE_SCHNEIDER 0x105e
//#define ZBEE_MFG_CODE_EATON 0x105f
//#define ZBEE_MFG_CODE_TELULAR 0x1060
//#define ZBEE_MFG_CODE_DELPHI 0x1061
//#define ZBEE_MFG_CODE_EPISENSOR 0x1062
//#define ZBEE_MFG_CODE_LANDIS_GYR 0x1063
//#define ZBEE_MFG_CODE_KABA 0x1064
//#define ZBEE_MFG_CODE_SHURE 0x1065
//#define ZBEE_MFG_CODE_COMVERGE 0x1066
//#define ZBEE_MFG_CODE_DBS_LODGING 0x1067
//#define ZBEE_MFG_CODE_ENERGY_AWARE 0x1068
//#define ZBEE_MFG_CODE_HIDALGO 0x1069
//#define ZBEE_MFG_CODE_AIR2APP 0x106a
//#define ZBEE_MFG_CODE_AMX 0x106b
//#define ZBEE_MFG_CODE_EDMI 0x106c
//#define ZBEE_MFG_CODE_CYAN 0x106d
//#define ZBEE_MFG_CODE_SYS_SPA 0x106e
//#define ZBEE_MFG_CODE_TELIT 0x106f
//#define ZBEE_MFG_CODE_KAGA 0x1070
//#define ZBEE_MFG_CODE_4_NOKS 0x1071
//#define ZBEE_MFG_CODE_CERTICOM 0x1072
//#define ZBEE_MFG_CODE_GRIDPOINT 0x1073
//#define ZBEE_MFG_CODE_PROFILE_SYS 0x1074
//#define ZBEE_MFG_CODE_COMPACTA 0x1075
//#define ZBEE_MFG_CODE_FREESTYLE 0x1076
//#define ZBEE_MFG_CODE_ALEKTRONA 0x1077
//#define ZBEE_MFG_CODE_COMPUTIME 0x1078
//#define ZBEE_MFG_CODE_REMOTE_TECH 0x1079
//#define ZBEE_MFG_CODE_WAVECOM 0x107a
//#define ZBEE_MFG_CODE_ENERGY 0x107b
//#define ZBEE_MFG_CODE_GE 0x107c
//#define ZBEE_MFG_CODE_JETLUN 0x107d
//#define ZBEE_MFG_CODE_CIPHER 0x107e
//#define ZBEE_MFG_CODE_CORPORATE 0x107f
//#define ZBEE_MFG_CODE_ECOBEE 0x1080
//#define ZBEE_MFG_CODE_SMK 0x1081
//#define ZBEE_MFG_CODE_MESHWORKS 0x1082
//#define ZBEE_MFG_CODE_ELLIPS 0x1083
//#define ZBEE_MFG_CODE_SECURE 0x1084
//#define ZBEE_MFG_CODE_CEDO 0x1085
//#define ZBEE_MFG_CODE_TOSHIBA 0x1086
//#define ZBEE_MFG_CODE_DIGI 0x1087
//#define ZBEE_MFG_CODE_UBILOGIX 0x1088
//#define ZBEE_MFG_CODE_ECHELON 0x1089
///* */
//#define ZBEE_MFG_CODE_GREEN_ENERGY 0x1090
//#define ZBEE_MFG_CODE_SILVER_SPRING 0x1091
//#define ZBEE_MFG_CODE_BLACK 0x1092
//#define ZBEE_MFG_CODE_AZTECH_ASSOC 0x1093
//#define ZBEE_MFG_CODE_A_AND_D 0x1094
//#define ZBEE_MFG_CODE_RAINFOREST 0x1095
//#define ZBEE_MFG_CODE_CARRIER 0x1096
//#define ZBEE_MFG_CODE_SYCHIP 0x1097
//#define ZBEE_MFG_CODE_OPEN_PEAK 0x1098
//#define ZBEE_MFG_CODE_PASSIVE 0x1099
//#define ZBEE_MFG_CODE_MMB 0x109a
//#define ZBEE_MFG_CODE_LEVITON 0x109b
//#define ZBEE_MFG_CODE_KOREA_ELEC 0x109c
//#define ZBEE_MFG_CODE_COMCAST1 0x109d
//#define ZBEE_MFG_CODE_NEC_ELEC 0x109e
//#define ZBEE_MFG_CODE_NETVOX 0x109f
//#define ZBEE_MFG_CODE_UCONTROL 0x10a0
//#define ZBEE_MFG_CODE_EMBEDIA 0x10a1
//#define ZBEE_MFG_CODE_SENSUS 0x10a2
//#define ZBEE_MFG_CODE_SUNRISE 0x10a3
//#define ZBEE_MFG_CODE_MEMTECH 0x10a4
//#define ZBEE_MFG_CODE_FREEBOX 0x10a5
//#define ZBEE_MFG_CODE_M2_LABS 0x10a6
//#define ZBEE_MFG_CODE_BRITISH_GAS 0x10a7
//#define ZBEE_MFG_CODE_SENTEC 0x10a8
//#define ZBEE_MFG_CODE_NAVETAS 0x10a9
//#define ZBEE_MFG_CODE_LIGHTSPEED 0x10aa
//#define ZBEE_MFG_CODE_OKI 0x10ab
//#define ZBEE_MFG_CODE_SISTEMAS 0x10ac
//#define ZBEE_MFG_CODE_DOMETIC 0x10ad
//#define ZBEE_MFG_CODE_APLS 0x10ae
//#define ZBEE_MFG_CODE_ENERGY_HUB 0x10af
//#define ZBEE_MFG_CODE_KAMSTRUP 0x10b0
//#define ZBEE_MFG_CODE_ECHOSTAR 0x10b1
//#define ZBEE_MFG_CODE_ENERNOC 0x10b2
//#define ZBEE_MFG_CODE_ELTAV 0x10b3
//#define ZBEE_MFG_CODE_BELKIN 0x10b4
//#define ZBEE_MFG_CODE_XSTREAMHD 0x10b5
//#define ZBEE_MFG_CODE_SATURN_SOUTH 0x10b6
//#define ZBEE_MFG_CODE_GREENTRAP 0x10b7
//#define ZBEE_MFG_CODE_SMARTSYNCH 0x10b8
//#define ZBEE_MFG_CODE_NYCE 0x10b9
//#define ZBEE_MFG_CODE_ICM_CONTROLS 0x10ba
//#define ZBEE_MFG_CODE_MILLENNIUM 0x10bb
//#define ZBEE_MFG_CODE_MOTOROLA 0x10bc
//#define ZBEE_MFG_CODE_EMERSON 0x10bd
//#define ZBEE_MFG_CODE_RADIO_THERMOSTAT 0x10be
//#define ZBEE_MFG_CODE_OMRON 0x10bf
//#define ZBEE_MFG_CODE_GIINII 0x10c0
//#define ZBEE_MFG_CODE_FUJITSU 0x10c1
//#define ZBEE_MFG_CODE_PEEL 0x10c2
//#define ZBEE_MFG_CODE_ACCENT 0x10c3
//#define ZBEE_MFG_CODE_BYTESNAP 0x10c4
//#define ZBEE_MFG_CODE_NEC_TOKIN 0x10c5
//#define ZBEE_MFG_CODE_G4S_JUSTICE 0x10c6
//#define ZBEE_MFG_CODE_TRILLIANT 0x10c7
//#define ZBEE_MFG_CODE_ELECTROLUX 0x10c8
//#define ZBEE_MFG_CODE_ONZO 0x10c9
//#define ZBEE_MFG_CODE_ENTEK 0x10ca
//#define ZBEE_MFG_CODE_PHILIPS2 0x10cb
//#define ZBEE_MFG_CODE_MAINSTREAM 0x10cc
//#define ZBEE_MFG_CODE_INDESIT 0x10cd
//#define ZBEE_MFG_CODE_THINKECO 0x10ce
//#define ZBEE_MFG_CODE_2D2C 0x10cf
//#define ZBEE_MFG_CODE_GREENPEAK 0x10d0
//#define ZBEE_MFG_CODE_INTERCEL 0x10d1
//#define ZBEE_MFG_CODE_LG 0x10d2
//#define ZBEE_MFG_CODE_MITSUMI1 0x10d3
//#define ZBEE_MFG_CODE_MITSUMI2 0x10d4
//#define ZBEE_MFG_CODE_ZENTRUM 0x10d5
//#define ZBEE_MFG_CODE_NEST 0x10d6
//#define ZBEE_MFG_CODE_EXEGIN 0x10d7
//#define ZBEE_MFG_CODE_HONEYWELL2 0x10d8
//#define ZBEE_MFG_CODE_TAKAHATA 0x10d9
//#define ZBEE_MFG_CODE_SUMITOMO 0x10da
//#define ZBEE_MFG_CODE_GE_ENERGY 0x10db
//#define ZBEE_MFG_CODE_GE_APPLIANCES 0x10dc
//#define ZBEE_MFG_CODE_RADIOCRAFTS 0x10dd
//#define ZBEE_MFG_CODE_CEIVA 0x10de
//#define ZBEE_MFG_CODE_TEC_CO 0x10df
//#define ZBEE_MFG_CODE_CHAMELEON 0x10e0
//#define ZBEE_MFG_CODE_SAMSUNG 0x10e1
//#define ZBEE_MFG_CODE_RUWIDO 0x10e2
//#define ZBEE_MFG_CODE_HUAWEI_1 0x10e3
//#define ZBEE_MFG_CODE_HUAWEI_2 0x10e4
//#define ZBEE_MFG_CODE_GREENWAVE 0x10e5
//#define ZBEE_MFG_CODE_BGLOBAL 0x10e6
//#define ZBEE_MFG_CODE_MINDTECK 0x10e7
//#define ZBEE_MFG_CODE_INGERSOLL_RAND 0x10e8
//#define ZBEE_MFG_CODE_DIUS 0x10e9
//#define ZBEE_MFG_CODE_EMBEDDED 0x10ea
//#define ZBEE_MFG_CODE_ABB 0x10eb
//#define ZBEE_MFG_CODE_SONY 0x10ec
//#define ZBEE_MFG_CODE_GENUS 0x10ed
//#define ZBEE_MFG_CODE_UNIVERSAL1 0x10ee
//#define ZBEE_MFG_CODE_UNIVERSAL2 0x10ef
//#define ZBEE_MFG_CODE_METRUM 0x10f0
//#define ZBEE_MFG_CODE_CISCO 0x10f1
//#define ZBEE_MFG_CODE_UBISYS 0x10f2
//#define ZBEE_MFG_CODE_CONSERT 0x10f3
//#define ZBEE_MFG_CODE_CRESTRON 0x10f4
//#define ZBEE_MFG_CODE_ENPHASE 0x10f5
//#define ZBEE_MFG_CODE_INVENSYS 0x10f6
//#define ZBEE_MFG_CODE_MUELLER 0x10f7
//#define ZBEE_MFG_CODE_AAC_TECH 0x10f8
//#define ZBEE_MFG_CODE_U_NEXT 0x10f9
//#define ZBEE_MFG_CODE_STEELCASE 0x10fa
//#define ZBEE_MFG_CODE_TELEMATICS 0x10fb
//#define ZBEE_MFG_CODE_SAMIL 0x10fc
//#define ZBEE_MFG_CODE_PACE 0x10fd
//#define ZBEE_MFG_CODE_OSBORNE 0x10fe
//#define ZBEE_MFG_CODE_POWERWATCH 0x10ff
//#define ZBEE_MFG_CODE_CANDELED 0x1100
//#define ZBEE_MFG_CODE_FLEXGRID 0x1101
//#define ZBEE_MFG_CODE_HUMAX 0x1102
//#define ZBEE_MFG_CODE_UNIVERSAL 0x1103
//#define ZBEE_MFG_CODE_ADVANCED_ENERGY 0x1104
//#define ZBEE_MFG_CODE_BEGA 0x1105
//#define ZBEE_MFG_CODE_BRUNEL 0x1106
//#define ZBEE_MFG_CODE_PANASONIC 0x1107
//#define ZBEE_MFG_CODE_ESYSTEMS 0x1108
//#define ZBEE_MFG_CODE_PANAMAX 0x1109
//#define ZBEE_MFG_CODE_PHYSICAL 0x110a
//#define ZBEE_MFG_CODE_EM_LITE 0x110b
//#define ZBEE_MFG_CODE_OSRAM 0x110c
//#define ZBEE_MFG_CODE_2_SAVE 0x110d
//#define ZBEE_MFG_CODE_PLANET 0x110e
//#define ZBEE_MFG_CODE_AMBIENT 0x110f
//#define ZBEE_MFG_CODE_PROFALUX 0x1110
//#define ZBEE_MFG_CODE_BILLION 0x1111
//#define ZBEE_MFG_CODE_EMBERTEC 0x1112
//#define ZBEE_MFG_CODE_IT_WATCHDOGS 0x1113
//#define ZBEE_MFG_CODE_RELOC 0x1114
//#define ZBEE_MFG_CODE_INTEL 0x1115
//#define ZBEE_MFG_CODE_TREND 0x1116
//#define ZBEE_MFG_CODE_MOXA 0x1117
//#define ZBEE_MFG_CODE_QEES 0x1118
//#define ZBEE_MFG_CODE_SAYME 0x1119
//#define ZBEE_MFG_CODE_PENTAIR 0x111a
//#define ZBEE_MFG_CODE_ORBIT 0x111b
//#define ZBEE_MFG_CODE_CALIFORNIA 0x111c
//#define ZBEE_MFG_CODE_COMCAST2 0x111d
//#define ZBEE_MFG_CODE_IDT 0x111e
//#define ZBEE_MFG_CODE_PIXELA 0x111f
//#define ZBEE_MFG_CODE_TIVO 0x1120
//#define ZBEE_MFG_CODE_FIDURE 0x1121
//#define ZBEE_MFG_CODE_MARVELL 0x1122
//#define ZBEE_MFG_CODE_WASION 0x1123
//#define ZBEE_MFG_CODE_JASCO 0x1124
//#define ZBEE_MFG_CODE_SHENZHEN 0x1125
//#define ZBEE_MFG_CODE_NETCOMM 0x1126
//#define ZBEE_MFG_CODE_DEFINE 0x1127
//#define ZBEE_MFG_CODE_IN_HOME_DISP 0x1128
//#define ZBEE_MFG_CODE_MIELE 0x1129
//#define ZBEE_MFG_CODE_TELEVES 0x112a
//#define ZBEE_MFG_CODE_LABELEC 0x112b
//#define ZBEE_MFG_CODE_CHINA_ELEC 0x112c
//#define ZBEE_MFG_CODE_VECTORFORM 0x112d
//#define ZBEE_MFG_CODE_BUSCH_JAEGER 0x112e
//#define ZBEE_MFG_CODE_REDPINE 0x112f
//#define ZBEE_MFG_CODE_BRIDGES 0x1130
//#define ZBEE_MFG_CODE_SERCOMM 0x1131
//#define ZBEE_MFG_CODE_WSH 0x1132
//#define ZBEE_MFG_CODE_BOSCH 0x1133
//#define ZBEE_MFG_CODE_EZEX 0x1134
//#define ZBEE_MFG_CODE_DRESDEN 0x1135
//#define ZBEE_MFG_CODE_MEAZON 0x1136
//#define ZBEE_MFG_CODE_CROW 0x1137
//#define ZBEE_MFG_CODE_HARVARD 0x1138
//#define ZBEE_MFG_CODE_ANDSON 0x1139
//#define ZBEE_MFG_CODE_ADHOCO 0x113a
//#define ZBEE_MFG_CODE_WAXMAN 0x113b
//#define ZBEE_MFG_CODE_OWON 0x113c
//#define ZBEE_MFG_CODE_HITRON 0x113d
//#define ZBEE_MFG_CODE_SCEMTEC 0x113e
//#define ZBEE_MFG_CODE_WEBEE 0x113f
//#define ZBEE_MFG_CODE_GRID2HOME 0x1140
//#define ZBEE_MFG_CODE_TELINK 0x1141
//#define ZBEE_MFG_CODE_JASMINE 0x1142
//#define ZBEE_MFG_CODE_BIDGELY 0x1143
//#define ZBEE_MFG_CODE_LUTRON 0x1144
//#define ZBEE_MFG_CODE_IJENKO 0x1145
//#define ZBEE_MFG_CODE_STARFIELD 0x1146
//#define ZBEE_MFG_CODE_TCP 0x1147
//#define ZBEE_MFG_CODE_ROGERS 0x1148
//#define ZBEE_MFG_CODE_CREE 0x1149
//#define ZBEE_MFG_CODE_ROBERT_BOSCH 0x114a
//#define ZBEE_MFG_CODE_IBIS 0x114b
//#define ZBEE_MFG_CODE_QUIRKY 0x114c
//#define ZBEE_MFG_CODE_EFERGY 0x114d
//#define ZBEE_MFG_CODE_SMARTLABS 0x114e
//#define ZBEE_MFG_CODE_EVERSPRING 0x114f
//#define ZBEE_MFG_CODE_SWANN 0x1150
///* Manufacturer Names */
//#define ZBEE_MFG_CIRRONET "Cirronet"
//#define ZBEE_MFG_CHIPCON "Chipcon"
//#define ZBEE_MFG_EMBER "Ember"
//#define ZBEE_MFG_NTS "National Tech"
//#define ZBEE_MFG_FREESCALE "Freescale"
//#define ZBEE_MFG_IPCOM "IPCom"
//#define ZBEE_MFG_SAN_JUAN "San Juan Software"
//#define ZBEE_MFG_TUV "TUV"
//#define ZBEE_MFG_COMPXS "CompXs"
//#define ZBEE_MFG_BM "BM SpA"
//#define ZBEE_MFG_AWAREPOINT "AwarePoint"
//#define ZBEE_MFG_PHILIPS "Philips"
//#define ZBEE_MFG_LUXOFT "Luxoft"
//#define ZBEE_MFG_KORWIN "Korvin"
//#define ZBEE_MFG_1_RF "One RF"
//#define ZBEE_MFG_STG "Software Technology Group"
//#define ZBEE_MFG_TELEGESIS "Telegesis"
//#define ZBEE_MFG_VISIONIC "Visionic"
//#define ZBEE_MFG_INSTA "Insta"
//#define ZBEE_MFG_ATALUM "Atalum"
//#define ZBEE_MFG_ATMEL "Atmel"
//#define ZBEE_MFG_DEVELCO "Develco"
//#define ZBEE_MFG_HONEYWELL "Honeywell"
//#define ZBEE_MFG_RADIO_PULSE "RadioPulse"
//#define ZBEE_MFG_RENESAS "Renesas"
//#define ZBEE_MFG_XANADU "Xanadu Wireless"
//#define ZBEE_MFG_NEC "NEC Engineering"
//#define ZBEE_MFG_YAMATAKE "Yamatake"
//#define ZBEE_MFG_TENDRIL "Tendril"
//#define ZBEE_MFG_ASSA "Assa Abloy"
//#define ZBEE_MFG_MAXSTREAM "Maxstream"
//#define ZBEE_MFG_NEUROCOM "Neurocom"
//#define ZBEE_MFG_III "Institute for Information Industry"
//#define ZBEE_MFG_VANTAGE "Vantage Controls"
//#define ZBEE_MFG_ICONTROL "iControl"
//#define ZBEE_MFG_RAYMARINE "Raymarine"
//#define ZBEE_MFG_LSR "LS Research"
//#define ZBEE_MFG_ONITY "Onity"
//#define ZBEE_MFG_MONO "Mono Products"
//#define ZBEE_MFG_RFT "RF Tech"
//#define ZBEE_MFG_ITRON "Itron"
//#define ZBEE_MFG_TRITECH "Tritech"
//#define ZBEE_MFG_EMBEDIT "Embedit"
//#define ZBEE_MFG_S3C "S3C"
//#define ZBEE_MFG_SIEMENS "Siemens"
//#define ZBEE_MFG_MINDTECH "Mindtech"
//#define ZBEE_MFG_LGE "LG Electronics"
//#define ZBEE_MFG_MITSUBISHI "Mitsubishi"
//#define ZBEE_MFG_JOHNSON "Johnson Controls"
//#define ZBEE_MFG_PRI "PRI"
//#define ZBEE_MFG_KNICK "Knick"
//#define ZBEE_MFG_VICONICS "Viconics"
//#define ZBEE_MFG_FLEXIPANEL "Flexipanel"
//#define ZBEE_MFG_PIASIM "Piasim Corporation"
//#define ZBEE_MFG_TRANE "Trane"
//#define ZBEE_MFG_JENNIC "Jennic" -> NXP
//#define ZBEE_MFG_LIG "Living Independently"
//#define ZBEE_MFG_ALERTME "AlertMe"
//#define ZBEE_MFG_DAINTREE "Daintree"
//#define ZBEE_MFG_AIJI "Aiji"
//#define ZBEE_MFG_TEL_ITALIA "Telecom Italia"
//#define ZBEE_MFG_MIKROKRETS "Mikrokrets"
//#define ZBEE_MFG_OKI_SEMI "Oki Semi"
//#define ZBEE_MFG_NEWPORT "Newport Electronics"
//#define ZBEE_MFG_C4 "Control4"
//#define ZBEE_MFG_STM "STMicro"
//#define ZBEE_MFG_ASN "Ad-Sol Nissin"
//#define ZBEE_MFG_DCSI "DCSI"
//#define ZBEE_MFG_FRANCE_TEL "France Telecom"
//#define ZBEE_MFG_MUNET "muNet"
//#define ZBEE_MFG_AUTANI "Autani"
//#define ZBEE_MFG_COL_VNET "Colorado vNet"
//#define ZBEE_MFG_AEROCOMM "Aerocomm"
//#define ZBEE_MFG_SI_LABS "Silicon Labs"
//#define ZBEE_MFG_INNCOM "Inncom"
//#define ZBEE_MFG_CANNON "Cannon"
//#define ZBEE_MFG_SYNAPSE "Synapse"
//#define ZBEE_MFG_FPS "Fisher Pierce/Sunrise"
//#define ZBEE_MFG_CLS "CentraLite"
//#define ZBEE_MFG_CRANE "Crane"
//#define ZBEE_MFG_MOBILARM "Mobilarm"
//#define ZBEE_MFG_IMONITOR "iMonitor"
//#define ZBEE_MFG_BARTECH "Bartech"
//#define ZBEE_MFG_MESHNETICS "Meshnetics"
//#define ZBEE_MFG_LS_IND "LS Industrial"
//#define ZBEE_MFG_CASON "Cason"
//#define ZBEE_MFG_WLESS_GLUE "Wireless Glue"
//#define ZBEE_MFG_ELSTER "Elster"
//#define ZBEE_MFG_SMS_TEC "SMS Tec"
//#define ZBEE_MFG_ONSET "Onset Computer"
//#define ZBEE_MFG_RIGA "Riga Development"
//#define ZBEE_MFG_ENERGATE "Energate"
//#define ZBEE_MFG_CONMED "ConMed Linvatec"
//#define ZBEE_MFG_POWERMAND "PowerMand"
//#define ZBEE_MFG_SCHNEIDER "Schneider Electric"
//#define ZBEE_MFG_EATON "Eaton"
//#define ZBEE_MFG_TELULAR "Telular"
//#define ZBEE_MFG_DELPHI "Delphi Medical"
//#define ZBEE_MFG_EPISENSOR "EpiSensor"
//#define ZBEE_MFG_LANDIS_GYR "Landis+Gyr"
//#define ZBEE_MFG_KABA "Kaba Group"
//#define ZBEE_MFG_SHURE "Shure"
//#define ZBEE_MFG_COMVERGE "Comverge"
//#define ZBEE_MFG_DBS_LODGING "DBS Lodging"
//#define ZBEE_MFG_ENERGY_AWARE "Energy Aware"
//#define ZBEE_MFG_HIDALGO "Hidalgo"
//#define ZBEE_MFG_AIR2APP "Air2App"
//#define ZBEE_MFG_AMX "AMX"
//#define ZBEE_MFG_EDMI "EDMI Pty"
//#define ZBEE_MFG_CYAN "Cyan Ltd"
//#define ZBEE_MFG_SYS_SPA "System SPA"
//#define ZBEE_MFG_TELIT "Telit"
//#define ZBEE_MFG_KAGA "Kaga Electronics"
//#define ZBEE_MFG_4_NOKS "4-noks s.r.l."
//#define ZBEE_MFG_CERTICOM "Certicom"
//#define ZBEE_MFG_GRIDPOINT "Gridpoint"
//#define ZBEE_MFG_PROFILE_SYS "Profile Systems"
//#define ZBEE_MFG_COMPACTA "Compacta International"
//#define ZBEE_MFG_FREESTYLE "Freestyle Technology"
//#define ZBEE_MFG_ALEKTRONA "Alektrona"
//#define ZBEE_MFG_COMPUTIME "Computime"
//#define ZBEE_MFG_REMOTE_TECH "Remote Technologies"
//#define ZBEE_MFG_WAVECOM "Wavecom"
//#define ZBEE_MFG_ENERGY "Energy Optimizers"
//#define ZBEE_MFG_GE "GE"
//#define ZBEE_MFG_JETLUN "Jetlun"
//#define ZBEE_MFG_CIPHER "Cipher Systems"
//#define ZBEE_MFG_CORPORATE "Corporate Systems Eng"
//#define ZBEE_MFG_ECOBEE "ecobee"
//#define ZBEE_MFG_SMK "SMK"
//#define ZBEE_MFG_MESHWORKS "Meshworks Wireless"
//#define ZBEE_MFG_ELLIPS "Ellips B.V."
//#define ZBEE_MFG_SECURE "Secure electrans"
//#define ZBEE_MFG_CEDO "CEDO"
//#define ZBEE_MFG_TOSHIBA "Toshiba"
//#define ZBEE_MFG_DIGI "Digi International"
//#define ZBEE_MFG_UBILOGIX "Ubilogix"
//#define ZBEE_MFG_ECHELON "Echelon"
//#define ZBEE_MFG_GREEN_ENERGY "Green Energy Options"
//#define ZBEE_MFG_SILVER_SPRING "Silver Spring Networks"
//#define ZBEE_MFG_BLACK "Black & Decker"
//#define ZBEE_MFG_AZTECH_ASSOC "Aztech AssociatesInc."
//#define ZBEE_MFG_A_AND_D "A&D Co"
//#define ZBEE_MFG_RAINFOREST "Rainforest Automation"
//#define ZBEE_MFG_CARRIER "Carrier Electronics"
//#define ZBEE_MFG_SYCHIP "SyChip/Murata"
//#define ZBEE_MFG_OPEN_PEAK "OpenPeak"
//#define ZBEE_MFG_PASSIVE "Passive Systems"
//#define ZBEE_MFG_G4S_JUSTICE "G4S JusticeServices"
//#define ZBEE_MFG_MMB "MMBResearch"
//#define ZBEE_MFG_LEVITON "Leviton"
//#define ZBEE_MFG_KOREA_ELEC "Korea Electric Power Data Network"
//#define ZBEE_MFG_COMCAST "Comcast"
//#define ZBEE_MFG_NEC_ELEC "NEC Electronics"
//#define ZBEE_MFG_NETVOX "Netvox"
//#define ZBEE_MFG_UCONTROL "U-Control"
//#define ZBEE_MFG_EMBEDIA "Embedia Technologies"
//#define ZBEE_MFG_SENSUS "Sensus"
//#define ZBEE_MFG_SUNRISE "SunriseTechnologies"
//#define ZBEE_MFG_MEMTECH "MemtechCorp"
//#define ZBEE_MFG_FREEBOX "Freebox"
//#define ZBEE_MFG_M2_LABS "M2 Labs"
//#define ZBEE_MFG_BRITISH_GAS "BritishGas"
//#define ZBEE_MFG_SENTEC "Sentec"
//#define ZBEE_MFG_NAVETAS "Navetas"
//#define ZBEE_MFG_LIGHTSPEED "Lightspeed Technologies"
//#define ZBEE_MFG_OKI "Oki Electric"
//#define ZBEE_MFG_SISTEMAS "Sistemas Inteligentes"
//#define ZBEE_MFG_DOMETIC "Dometic"
//#define ZBEE_MFG_APLS "Alps"
//#define ZBEE_MFG_ENERGY_HUB "EnergyHub"
//#define ZBEE_MFG_KAMSTRUP "Kamstrup"
//#define ZBEE_MFG_ECHOSTAR "EchoStar"
//#define ZBEE_MFG_ENERNOC "EnerNOC"
//#define ZBEE_MFG_ELTAV "Eltav"
//#define ZBEE_MFG_BELKIN "Belkin"
//#define ZBEE_MFG_XSTREAMHD "XStreamHD Wireless"
//#define ZBEE_MFG_SATURN_SOUTH "Saturn South"
//#define ZBEE_MFG_GREENTRAP "GreenTrapOnline"
//#define ZBEE_MFG_SMARTSYNCH "SmartSynch"
//#define ZBEE_MFG_NYCE "Nyce Control"
//#define ZBEE_MFG_ICM_CONTROLS "ICM Controls"
//#define ZBEE_MFG_MILLENNIUM "Millennium Electronics"
//#define ZBEE_MFG_MOTOROLA "Motorola"
//#define ZBEE_MFG_EMERSON "EmersonWhite-Rodgers"
//#define ZBEE_MFG_RADIO_THERMOSTAT "Radio Thermostat"
//#define ZBEE_MFG_OMRON "OMRONCorporation"
//#define ZBEE_MFG_GIINII "GiiNii GlobalLimited"
//#define ZBEE_MFG_FUJITSU "Fujitsu GeneralLimited"
//#define ZBEE_MFG_PEEL "Peel Technologies"
//#define ZBEE_MFG_ACCENT "Accent"
//#define ZBEE_MFG_BYTESNAP "ByteSnap Design"
//#define ZBEE_MFG_NEC_TOKIN "NEC TOKIN Corporation"
//#define ZBEE_MFG_TRILLIANT "Trilliant Networks"
//#define ZBEE_MFG_ELECTROLUX "Electrolux Italia"
//#define ZBEE_MFG_ONZO "OnzoLtd"
//#define ZBEE_MFG_ENTEK "EnTekSystems"
///**/
//#define ZBEE_MFG_MAINSTREAM "MainstreamEngineering"
//#define ZBEE_MFG_INDESIT "IndesitCompany"
//#define ZBEE_MFG_THINKECO "THINKECO"
//#define ZBEE_MFG_2D2C "2D2C"
//#define ZBEE_MFG_GREENPEAK "GreenPeak"
//#define ZBEE_MFG_INTERCEL "InterCEL"
//#define ZBEE_MFG_LG "LG Electronics"
//#define ZBEE_MFG_MITSUMI1 "Mitsumi Electric"
//#define ZBEE_MFG_MITSUMI2 "Mitsumi Electric"
//#define ZBEE_MFG_ZENTRUM "Zentrum Mikroelektronik Dresden"
//#define ZBEE_MFG_NEST "Nest Labs"
//#define ZBEE_MFG_EXEGIN "Exegin Technologies"
//#define ZBEE_MFG_HONEYWELL "Honeywell"
//#define ZBEE_MFG_TAKAHATA "Takahata Precision"
//#define ZBEE_MFG_SUMITOMO "Sumitomo Electric Networks"
//#define ZBEE_MFG_GE_ENERGY "GE Energy"
//#define ZBEE_MFG_GE_APPLIANCES "GE Appliances"
//#define ZBEE_MFG_RADIOCRAFTS "Radiocrafts AS"
//#define ZBEE_MFG_CEIVA "Ceiva"
//#define ZBEE_MFG_TEC_CO "TEC CO Co., Ltd"
//#define ZBEE_MFG_CHAMELEON "Chameleon Technology (UK) Ltd"
//#define ZBEE_MFG_SAMSUNG "Samsung"
//#define ZBEE_MFG_RUWIDO "ruwido austria gmbh"
//#define ZBEE_MFG_HUAWEI "Huawei Technologies Co., Ltd."
//#define ZBEE_MFG_GREENWAVE "Greenwave Reality"
//#define ZBEE_MFG_BGLOBAL "BGlobal Metering Ltd"
//#define ZBEE_MFG_MINDTECK "Mindteck"
//#define ZBEE_MFG_INGERSOLL_RAND "Ingersoll-Rand"
//#define ZBEE_MFG_DIUS "Dius Computing Pty Ltd"
//#define ZBEE_MFG_EMBEDDED "Embedded Automation, Inc."
//#define ZBEE_MFG_ABB "ABB"
//#define ZBEE_MFG_SONY "Sony"
//#define ZBEE_MFG_GENUS "Genus Power Infrastructures Limited"
//#define ZBEE_MFG_UNIVERSA L "Universal Electronics, Inc."
//#define ZBEE_MFG_METRUM "Metrum Technologies, LLC"
//#define ZBEE_MFG_CISCO "Cisco"
//#define ZBEE_MFG_UBISYS "Ubisys technologies GmbH"
//#define ZBEE_MFG_CONSERT "Consert"
//#define ZBEE_MFG_CRESTRON "Crestron Electronics"
//#define ZBEE_MFG_ENPHASE "Enphase Energy"
//#define ZBEE_MFG_INVENSYS "Invensys Controls"
//#define ZBEE_MFG_MUELLER "Mueller Systems, LLC"
//#define ZBEE_MFG_AAC_TECH "AAC Technologies Holding"
//#define ZBEE_MFG_U_NEXT "U-NEXT Co., Ltd"
//#define ZBEE_MFG_STEELCASE "Steelcase Inc."
//#define ZBEE_MFG_TELEMATICS "Telematics Wireless"
//#define ZBEE_MFG_SAMIL "Samil Power Co., Ltd"
//#define ZBEE_MFG_PACE "Pace Plc"
//#define ZBEE_MFG_OSBORNE "Osborne Coinage Co."
//#define ZBEE_MFG_POWERWATCH "Powerwatch"
//#define ZBEE_MFG_CANDELED "CANDELED GmbH"
//#define ZBEE_MFG_FLEXGRID "FlexGrid S.R.L"
//#define ZBEE_MFG_HUMAX "Humax"
//#define ZBEE_MFG_UNIVERSAL "Universal Devices"
//#define ZBEE_MFG_ADVANCED_ENERGY "Advanced Energy"
//#define ZBEE_MFG_BEGA "BEGA Gantenbrink-Leuchten"
//#define ZBEE_MFG_BRUNEL "Brunel University"
//#define ZBEE_MFG_PANASONIC "Panasonic R&D Center Singapore"
//#define ZBEE_MFG_ESYSTEMS "eSystems Research"
//#define ZBEE_MFG_PANAMAX "Panamax"
//#define ZBEE_MFG_PHYSICAL "Physical Graph Corporation"
//#define ZBEE_MFG_EM_LITE "EM-Lite Ltd."
//#define ZBEE_MFG_OSRAM "Osram Sylvania"
//#define ZBEE_MFG_2_SAVE "2 Save Energy Ltd."
//#define ZBEE_MFG_PLANET "Planet Innovation Products Pty Ltd"
//#define ZBEE_MFG_AMBIENT "Ambient Devices, Inc."
//#define ZBEE_MFG_PROFALUX "Profalux"
//#define ZBEE_MFG_BILLION "Billion Electric Company (BEC)"
//#define ZBEE_MFG_EMBERTEC "Embertec Pty Ltd"
//#define ZBEE_MFG_IT_WATCHDOGS "IT Watchdogs"
//#define ZBEE_MFG_RELOC "Reloc"
//#define ZBEE_MFG_INTEL "Intel Corporation"
//#define ZBEE_MFG_TREND "Trend Electronics Limited"
//#define ZBEE_MFG_MOXA "Moxa"
//#define ZBEE_MFG_QEES "QEES"
//#define ZBEE_MFG_SAYME "SAYME Wireless Sensor Networks"
//#define ZBEE_MFG_PENTAIR "Pentair Aquatic Systems"
//#define ZBEE_MFG_ORBIT "Orbit Irrigation"
//#define ZBEE_MFG_CALIFORNIA "California Eastern Laboratories"
//#define ZBEE_MFG_COMCAST "Comcast"
//#define ZBEE_MFG_IDT "IDT Technology Limited"
//#define ZBEE_MFG_PIXELA "Pixela"
//#define ZBEE_MFG_TIVO "TiVo"
//#define ZBEE_MFG_FIDURE "Fidure"
//#define ZBEE_MFG_MARVELL "Marvell Semiconductor"
//#define ZBEE_MFG_WASION "Wasion Group"
//#define ZBEE_MFG_JASCO "Jasco Products"
//#define ZBEE_MFG_SHENZHEN "Shenzhen Kaifa Technology"
//#define ZBEE_MFG_NETCOMM "Netcomm Wireless"
//#define ZBEE_MFG_DEFINE "Define Instruments"
//#define ZBEE_MFG_IN_HOME_DISP "In Home Displays"
//#define ZBEE_MFG_MIELE "Miele & Cie. KG"
//#define ZBEE_MFG_TELEVES "Televes S.A."
//#define ZBEE_MFG_LABELEC "Labelec"
//#define ZBEE_MFG_CHINA_ELEC "China Electronics Standardization Institute"
//#define ZBEE_MFG_VECTORFORM "Vectorform"
//#define ZBEE_MFG_BUSCH_JAEGER "Busch-Jaeger Elektro"
//#define ZBEE_MFG_REDPINE "Redpine Signals"
//#define ZBEE_MFG_BRIDGES "Bridges Electronic Technology"
//#define ZBEE_MFG_SERCOMM "Sercomm"
//#define ZBEE_MFG_WSH "WSH GmbH wirsindheller"
//#define ZBEE_MFG_BOSCH "Bosch Security Systems"
//#define ZBEE_MFG_EZEX "eZEX Corporation"
//#define ZBEE_MFG_DRESDEN "Dresden Elektronik Ingenieurtechnik GmbH"
//#define ZBEE_MFG_MEAZON "MEAZON S.A."
//#define ZBEE_MFG_CROW "Crow Electronic Engineering"
//#define ZBEE_MFG_HARVARD "Harvard Engineering"
//#define ZBEE_MFG_ANDSON "Andson(Beijing) Technology"
//#define ZBEE_MFG_ADHOCO "Adhoco AG"
//#define ZBEE_MFG_WAXMAN "Waxman Consumer Products Group"
//#define ZBEE_MFG_OWON "Owon Technology"
//#define ZBEE_MFG_HITRON "Hitron Technologies"
//#define ZBEE_MFG_SCEMTEC "Scemtec Steuerungstechnik GmbH"
//#define ZBEE_MFG_WEBEE "Webee"
//#define ZBEE_MFG_GRID2HOME "Grid2Home"
//#define ZBEE_MFG_TELINK "Telink Micro"
//#define ZBEE_MFG_JASMINE "Jasmine Systems"
//#define ZBEE_MFG_BIDGELY "Bidgely"
//#define ZBEE_MFG_LUTRON "Lutron"
//#define ZBEE_MFG_IJENKO "IJENKO"
//#define ZBEE_MFG_STARFIELD "Starfield Electronic"
//#define ZBEE_MFG_TCP "TCP"
//#define ZBEE_MFG_ROGERS "Rogers Communications Partnership"
//#define ZBEE_MFG_CREE "Cree"
//#define ZBEE_MFG_ROBERT_BOSCH "Robert Bosch"
//#define ZBEE_MFG_IBIS "Ibis Networks"
//#define ZBEE_MFG_QUIRKY "Quirky"
//#define ZBEE_MFG_EFERGY "Efergy Technologies"
//#define ZBEE_MFG_SMARTLABS "Smartlabs"
//#define ZBEE_MFG_EVERSPRING "Everspring Industry"
//#define ZBEE_MFG_SWANN "Swann Communications"
//#define ZBEE_MFG_TI "Texas Instruments"
};
QDebug operator<<(QDebug debug, const Zigbee::ApsdeDataConfirm &confirm);
QDebug operator<<(QDebug debug, const Zigbee::ApsdeDataIndication &indication);
QDebug operator<<(QDebug debug, const Zigbee::ApsdeDataAck &acknowledgement);
Q_DECLARE_OPERATORS_FOR_FLAGS(Zigbee::ZigbeeChannels)
Q_DECLARE_OPERATORS_FOR_FLAGS(Zigbee::ZigbeeTxOptions)
#endif // ZIGBEE_H