Good morning.
Last week I installed three brand new Water meters from the company Zenner with an EDC Lorawan Module in my basement (concrete).
After I received the Keys I registered them inside TTN.
Everything looked fine until I received my first Payload. Or should I say message? because I don’t receive a useful “message” which includes the used Water meters value.
I only get this:
I tried a few different network layer Settings but nothing changed at all. I’m not sure if this is a problem with the network coverage or the fact that I don’t have a “Payload formatters”.
These Water meters are for Citys and therefore the documentation is pretty complex (for me).
I will upload the documentation to my dropbox.
I’m hoping someone has an idea.
If there are any questions please ask them.
Looks like messages being received ok and forwarded - 1st image tells you there is a decoder failure…
Yep you will be receiving the message with its encapsulated payload… but without a payload decoder on the uplink you wont get any useable information out…
Up link frequency looks high based on the small sample given, and uplinks appear to be trigggering downlinks - you need to under what and why and fix if device isnt handling any e.g. LNS MAC commands etc, I trust you are NOT using confirmed uplinks (forum search)…
Or you could use “Uplink”. The job of the LNS is to get the byte array to you, you have to decode it based on your device’s format. Payload formatters are fully documented.
Your send rate will be attracting the interests of the local police and is a mockery of the Fair Use Policy for TTN.
Duty Cycle breaches (rather than busting the FUP) are generally legally enforced
I believe Zenner has been mentioned on the Forum many times in the past - use forum search (top right) and you might find a helpful gem
Then you need to be responsibe and do something about it!
Sounds like you need to read the device documentation and compare with the links Nicks has provided, then take action to reduce…before proceeding to use the TTN services…
There is. But the console is not a dashboard - it is a debugging tool - if you click on a live “Forward uplink data message” you will see the whole JSON message with the frm_payload and you will see the encoded bytes on the console line.
btw this kind of “police” is called “Bundesnetzagentur” in DE. They are monitoring the frequencies and don’t like it, if your device exeeds the duty-cycle limits.
In DE the user of a transmitter is responsible too, that his device fulfills the legal requirements.
I checked if there are any "duty cycle problems and it seems like in the past 2 nights there were none.
So this problem is not a problem anymore. but the next problem I’m running into is that there is no “Payload decoder” for this device.
I got so far that I have the “frm_payload” and now I need to make my own Payload decoder but I have no clue how I’m going to do this…
I tried to decode the message an got something but I’m not sure if that’s the right way to do this job.
I’m logging the Data I’m getting from the water meter nodes and there I’m getting the “frm_payload”, the “f_port”, “f_cnt” and the “decoded_payload”.
The frm_payload is in the Base64 format. When I remember correctly the frm_payload is not the one I should decode with. but the decoded payload seems wrong to me.
So I tried it with the frm_payload.
I converted the frm_Payload into Hex and got “11 47 1b 00 00”.
According to the datasheet, the part after the 11 is the current water meter value.
So I took the “d903” and converted it with big endian so I got “1b 47”.
After converting this into Decimal I have the value of the water meter (6983) which is the correct one.
I never wrote a javascript Payload decoder before so my knowledge is more than nothing about this…
Is there any documentation about this? More than TTN has on the docs.
Why does the bytes from the “decoded Payload” not match with the bytes I converted from the “frm_payload”
Can someone assist me with writing the payload decoder to get the value from the water meters?
frm_payload IS your data, a hex array encoded as Base64.
This is correct - bearing in mind it’s a HEX array - 0x11 = 17, 0x47 = 71 etc
What is “d903”??
But overall, you arrived at the reading.
Given the huge number of example payload formatters on here, the docs, the number of JavaScript tutorials on the inter webs and assuming you have some basic programming skills so you could use those to program in what is just another dialect of a procedural language.
It does, it’s which number base you are using.
Have you asked Zenner for a PF as it’s in their best interests to provide one.
But at the least, you could start with the template that the console provides and add a bit in that matches the words you use above to get to the reading and post it here.
As above, by agreement this is an English language forum due to the mix of different nationalities even if you happen to know the native language of the person you are replying to - it precludes anyone else answering and means others searching for answers can lose out.
Posting in native language underneath is OK but somewhat redundant.