PHPackages                             munisense/zigbee - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. munisense/zigbee

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

munisense/zigbee
================

Zigbee Frame Encoding/Decoding Library

v2.4.1(11y ago)241486Apache-2.0PHPPHP &gt;=5.4.0

Since Jul 17Pushed 11y ago8 watchersCompare

[ Source](https://github.com/munisense/zigbee)[ Packagist](https://packagist.org/packages/munisense/zigbee)[ RSS](/packages/munisense-zigbee/feed)WikiDiscussions master Synced today

READMEChangelog (5)Dependencies (1)Versions (11)Used By (0)

Munisense Zigbee Library
========================

[](#munisense-zigbee-library)

PHP library for encoding and decoding ZigBee Frames
---------------------------------------------------

[](#php-library-for-encoding-and-decoding-zigbee-frames)

This library contains classes that map to the various ZigBee frames. Each of those classes can be either constructed using a bytestring or using the getters/setters and static constructors.

### Using the library

[](#using-the-library)

#### Installation

[](#installation)

The easiest way to use the library is to add it as dependency in the [composer.json](http://getcomposer.org) of your project.

```
"require": {
    "munisense/zigbee": "~2.4",
}

```

Then run `composer update` and include the `vendor/autoload.php` in your project files, if not already.

#### Use the ZigBee library to unpack ZigBee frames

[](#use-the-zigbee-library-to-unpack-zigbee-frames)

The library can be used to unpack a zigbee frame (for instance encoded in a base64 string) to the object model.

```
$input = base64_decode("AP8AAAA=");
$frame = new Munisense\Zigbee\ZCL\ZCLFrame($input);
echo $frame;

```

gives

```
ZCLFrame (length: 5)
|- FrameControl     : 0b00000000
|  |- FrameType     : Profile Wide (0x00)
|  |- ManufIdPres   : Not Present (0x00)
|  |- Direction     : Server->Client (0x00)
|  `- DefaultResp   : Enabled (0x00)
|- TransactionId    : 0x8e
|- CommandId        : Read Attributes
|- Payload (length: 2)
`- Munisense\Zigbee\ZCL\General\ReadAttributesCommand (count: 1, length: 2)
   `- AttributeId: 0x0000

```

#### Use the ZigBee library to pack ZigBee frames

[](#use-the-zigbee-library-to-pack-zigbee-frames)

It is also possible to build a ZigBee frame using the objects, and extract the actual frame payload to send to the ZigBee network.

```
$zcl = ReadAttributesCommand::construct([
  AttributeIdentifier::construct(0x02),
  AttributeIdentifier::construct(0x0809)
]);

$output = $zcl->getFrame();

```

### Running the tests

[](#running-the-tests)

To run the tests you need phpunit installed. Instead of downloading the library as requirement for a project using Composer (and Packagist) you should have a clone of the library itself. Make sure you've ran `composer install`.

After that it is as simple as calling `phpunit` in the root folder everytime you want to run the tests.

### Travis Continuous Integration

[](#travis-continuous-integration)

- Master [![Build Status](https://camo.githubusercontent.com/48306ab0613d0c54c6811d5b802a4b828911f19c6c09a6315053ef66a93abfae/68747470733a2f2f7472617669732d63692e6f72672f6d756e6973656e73652f7a69676265652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/munisense/zigbee)
- Stable [![Build Status](https://camo.githubusercontent.com/13e379c75fc15ecb20646943f5bd500074bd1ae1049d84fa632925a61f824d46/68747470733a2f2f7472617669732d63692e6f72672f6d756e6973656e73652f7a69676265652e7376673f6272616e63683d737461626c65)](https://travis-ci.org/munisense/zigbee)

### Revision History

[](#revision-history)

#### 2.4.0

[](#240)

Added ZDP Discovery Commands

- ExtendedSimpleDescReq and Rsp Command
- UserDescConf and Set Command

Added ZDP Network Commands

- MgmtBindReq, MgmtCacheReqCommand
- MmtLqiReq and Rsp Command, with NeighborDescriptor structure
- MmtRtgReq and Rsp Command, with RoutingDescriptor structure

#### 2.3.0

[](#230)

Minor code organisation changes and added more ZDP Discovery functionality.

- Renamed MuniZigbeeException to ZigbeeException
- Removed Munisense specific frames
- Added Node Descriptor + Commands
- Added Power Descriptor + Commands
- Added User Descriptor + Commands

#### 2.2.0

[](#220)

Added the following ZDP Commands:

- ActiveEP Req and Rsp
- IEEEAddr Req and Rsp
- NodeDesc Req
- NWKAddr Req and Rsp
- PowerDesc Req
- SimpleDesc Req and Rsp

### License

[](#license)

```
Copyright 2014 Munisense BV

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

```

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 95.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~3 days

Total

9

Last Release

4343d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/733306?v=4)[Joost Pastoor](/maintainers/jpastoor)[@jpastoor](https://github.com/jpastoor)

---

Top Contributors

[![jpastoor](https://avatars.githubusercontent.com/u/733306?v=4)](https://github.com/jpastoor "jpastoor (64 commits)")[![jvwag](https://avatars.githubusercontent.com/u/1188258?v=4)](https://github.com/jvwag "jvwag (3 commits)")

---

Tags

phpencodingdecodingframemunisensezigbee

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/munisense-zigbee/health.svg)

```
[![Health](https://phpackages.com/badges/munisense-zigbee/health.svg)](https://phpackages.com/packages/munisense-zigbee)
```

###  Alternatives

[sybio/gif-frame-extractor

PHP class that separates all the frames (and their duration) of an animated GIF

180437.0k9](/packages/sybio-gif-frame-extractor)[falseclock/advanced-cms

A PHP Library that allows you to decode and manipulate CAdES or in other words CMS Advanced Electronic Signatures described in ETSI standart TS 101 733.

223.5k](/packages/falseclock-advanced-cms)[adapik/cms

A PHP Library that allows you to decode ASN.1 CMS using Basic Encoding Rules (BER).

148.1k1](/packages/adapik-cms)[anisimov/emoji

Allows to detect emoji, remove emoji, encode emoji and decode emoji in string.

103.9k](/packages/anisimov-emoji)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
