TypeScript/JavaScript payload codecs for WIKA IIoT devices.
⚠️ DO NOT DOWNLOAD THE SOURCE CODEIf you need the prebuilt JavaScript parsers for your gateway or network server, DO NOT download the source code from this repository.
Instead, get the prebuilt parsers from the Downloads section.
This monorepo hosts the build tooling, raw codecs, and TypeScript helpers that turn WIKA LPWAN device payloads into structured data. The same stack powers both uplink decoding and the optional downlink encoders. Detailed guides and API docs can be found here.
npm install @w2a-iiot/parsersimport { NETRIS2Parser } from '@w2a-iiot/parsers'
const parser = NETRIS2Parser()
const result = parser.decodeUplink({ bytes: [0x01, 0x00], fPort: 1 })
console.log(result)📚 Full guides, device references, and contributor docs: wika-group.github.io/javascript_parsers
packages/parsers/– Raw, build-ready codecs for direct use in gateways, network servers, or ZIP releases.packages/library/– TypeScript convenience layer published as@w2a-iiot/parsers.examples/– Sample integrations and scripts that demonstrate real-world usage.docs/– VitePress source for the hosted documentation.
pnpm build– Build all packages and regenerate release assets.pnpm test– Run the Vitest suite.pnpm docs:dev– Start the documentation site locally.
Review the contributor section of the docs for setup. Need help or spotted an issue? Please open a GitHub issue in this repository so we can follow up with you.
Distributed under the MIT License.
4.9.0
- fix: add missing PEW TULIP2 configuration status (0x06) decoder support
- test: add PEW TULIP2 configuration status success and bad-case examples
- feat: add PEW mioty configuration frame decoding for 0x0B, 0x0C, and 0x0D
- test: add PEW mioty configuration success and bad-case examples
- test: verify PEW mioty reserved bytes are ignored and add temperature-channel examples
4.8.3
- fix: process alarm type parsing for TULIP2 in NETRIS1, NETRISF, PEW and TRW
4.8.2
- fix: align NETRIS2 TULIP3 to have 2 sensors and 1 channel
4.8.1
No notable changes
4.8.0
- feat: add NETRIS2 TULIP3 uplink and downlink support 4.7.0
- feat: add GD20W TULIP2 downlink configuration support
- fix: type inference for TULIP2 downlink configuration encoding
4.6.0
- feat: add TRW TULIP3 downlink configuration support
- feat: add TRW TULIP2 downlink configuration support
- fix: use correct messageType for technical alarm uplink message in NETRIS1 TULIP2 decoder
- feat: add type exports to NPM package
- feat: add PGW TULIP2 downlink configuration support
- feat: add NETRIS_F TULIP2 downlink configuration support
- BREAKING: rename NETRIS_F device identification fields:
strainType→measurementType,measurementRangeStartStrain→measurementRangeStart,measurementRangeEndStrain→measurementRangeEnd,strainUnit→measurementUnit,strainUnitName→unitName - BREAKING: rename NETRIS_F
measurementTypevaluegauge / relative→relative - BREAKING: renamed
F98W6toNETRIS_F - fix: add missing configuration status message decoder for NETRIS_F TULIP2 codec
4.5.0
- feat: include all devices in npm module
- feat: add NETRIS3 family TULIP2 downlink configuration support
- feat: add NETRIS3 family to library
- feat: add NETRIS3 family TULIP3 downlink configuration support
- feat: add NETRIS1 to library
- feat: add NETRIS1 TULIP2 downlink configuration support
- feat: add NETRIS1 TULIP3 downlink configuration support
4.4.2
- fix: update schemas
4.4.1
- build: explicitly allow inlining of dependencies
4.4.0
- feat: added PEW parser to library
- feat: added PEW TULIP3 downlink configuration support
- feat: added PEW TULIP2 downlink configuration support
- fix: add real channel ranges for GD20W
- fix: remove not possible units and measurands for TRW
- fix: map product sub ID 0 to class A in TULIP3 codec (PEW shows 0 but is actually class A)
- chore: bump dependencies
- BREAKING: encoding now has to be called with
protocolinstead ofcodec - feat: added TULIP3 downlink implementation
4.3.2
- Fix: built parser interface according to LoRaWAN® Payload Codec API Specification TS013-1.0.0
4.3.1
- Clarified download instructions and added a prominent warning about using the prebuilt ZIP (docs).
4.3.0
- Migrated remaining devices (NETRIS2, NETRIS3 family, GD20W, A2G, PGW, F98W6) to the new codec structure
- NETRIS3 family: added TULIP3 codec support
- TULIP3: implemented granular register and alarm configuration
- Fix: slope value calculation
- GD20W!: adjusted channel names
- Schemas are now more accurate to the device
- Channel range adjustment restrictions for specific channels
4.2.1
- Added project documentation site
4.2.0
- TRW: migrate to typescript and TULIP2 codec
- TRW: add support for TULIP3
- NETRIS1: specify measurands in schema
4.1.0
- NETRIS1: migrate to typescript and TULIP2 codec
- NETRIS1: add support for TULIP3
- Fix: default and PEW alarm flags in TULIP3 codec
4.0.0
- Major refactor: modular codec architecture and unified device parser interface enabling multiple codecs (TULIP2/TULIP3).
- PEW: integrated TULIP3 codec and migrated parser/codec structure to TypeScript.
- Added TULIP3 codec and tests for tulip codecs; moved devices into nested
devicesdirectories. - Build: migrated to tsdown.
- Chores & housekeeping: rename TULIP1 → TULIP2, dependency cleanup and other refactors.
3.2.1
- parsers: correctly validate hex string in
decodeHexUplink
3.2.0
- library: updated NETRIS2
encodeDownlinkto useconfigurationIdinstead oftransactionId - library: updated NETRIS2
decodeUplinkto return structured output instead of raw frames
3.1.1
- use configurationId in favor of transactionId in downlink
3.1.0
- Added functionality to decode hex strings to new parsers
- Bumped valibot dependency to 1.1.0
3.0.1
- Correctly release built packages and simplify build process
3.0.0
- Enhanced repository structure
- Added the parser for NETRIS2
2.5.0
- Added parsing for the A2G alarm messages
- Fixed an issue A2G with low power messages
- Fixed an issue GD20W with schema and examples
2.4.1
- Fix GD20W image
2.4.0
- Added the parser for GD20W
- Added support for A2G low power messages.
2.3.0
- Added the parser for PEU+NETRIS3.
2.2.0
- Added the parser for NETRIS2.
2.1.0
- Fixed an issue where the use of the function padStart affected the ES5 compatibility.
- Added the parser for A2G.
- Added the parser for TRW.
2.0.0
- First Release