ABP Device V2 to V3 Migration Issue

Not sure if this is clear to me, what is v2 in this equation?

When you created the device on v3, did you click Resets Frame Counters BEFORE you saved changes.

YES : it is clearly mentioned in the beelogger tuto and i read a lot on that counter to be reseted.

No changes …

you can see on the following image the 2 other devices that I can still read on Stack V2, the first line shows the device created on V3 :

DHT 21/22 is configured but I don’t implement it .
I use the T° information from the DS3231 module (RT clock)
For Volt, Nano board analog input are used.

You can use also a DS18b20 sensor for T°

Does this mean it is wired to the Nano?

Does this mean it is NOT used in the code?

I am asking what you are using on your device so I can check the compiled size.

I think we have now established that you have the HX711 and a DS3231.

Is there anything else (apart from the SX1276 & the batteries) that is wired to the Nano?

Please do not embellish.

Can you see the serial output from the device so we can tell what is happening?

I have to go on the hives but the weather is really poor (let’s say a bit Brit…). We will have to wait until bees can go out also …
I will have the time to read more .
Thanks anyway

This was the right direction : with an updated library ,tonight i have some better results. Some messages are properly decoded at the level of the console. They do not reach my server presently but it’s a great step already. Tomorrow is an other day !
Thanks for your help. It has been a pleasure to fly with you a moment.
See you later.

Dear Descartes, please find the information on the message transferred :

  • at the level of the device :
    07:28:12.806 → Payload
    07:28:12.806 → 5 T°-Out:2125
    07:28:12.806 → 1 V-Batt:7727
    07:28:12.853 → 2 V-Sol:3
    07:28:12.853 → 3 65 FC1F Gewicht: -993
    07:28:12.901 → 4 65 939 Gewicht: 2361
    07:28:12.901 → Length ; 20
    07:28:12.901 → Packet queued len:20
    07:28:14.173 → 11413143: TX Complete!
    07:28:14.173 → Cnt:113 bs:0 wr:1
    07:28:14.173 → Wakeup:7:33

  • at the level of the Device console :

  • 07:28:12

Forward uplink data message

Payload decoded
analog_out_1 77.27 ; analog_out_2 0.03 ; luminosity_3 64543 ; luminosity_4 2361 ; temperature_5 212.5
Raw Payload
0567084D01031E2F020300030365FC1F04650939
FPort 1
SNR 10.5
RSSI -32
Bandwidth 125000

Analog out fort Volts, luminosity for Weight, T° for Temperature. This work fine now with the proper LMIC library .
Now I have to understand why I cannot read the MQTT server V3 such as in V2 . But this is an other topic , if I have well understood.
Bye on that one.

The MQTT topics are different from v2:

https://www.thethingsindustries.com/docs/integrations/mqtt/

Thanks . Very interesting information in it
Have a good day

hi, i also run multiple bee sensors. the setup is :

  • micropython
  • esp32
  • sx1276 / abp activation
  • rpi4_ic880_lora_gw

when moving from v2 to v3:

  • for single esp i have used all new data from ttn v3

ttn_config = {
‘devaddr’: bytearray([0x…]),
‘nwkey’: bytearray([0x…]),
‘app’: bytearray([0x…]),
‘country’: ‘EU’,
}

then i had to totally rewrite mqtt handler as V3 has different format then V2 (this makes sense)

there was only one pitfall: if you start fresh device and your frame_counter start at 0, then mqtt payload is missing key: [‘uplink_message’][‘f_cnt’]

(but probably i should start with 1 not 0)

pavel

That is a ‘feature’ (according to some, others consider it the error it is) of the V3 backend. You can start your counter at one if you want to or just catch the ‘missing’ field by defaulting it to zero.

yes you are right, it can be taken as feature.

please is there anything like json schema for ttn data formats, let’s say for uplink message

i have only find info here:
https://www.thethingsindustries.com/docs/reference/data-formats/

thank you, pavel

What the second item down on your link?

https://www.thethingsindustries.com/docs/reference/data-formats/#uplink-messages

yes i know, but for example: where can i see that if frame_counter is 0 that the key “f_cnt” is not present?

You can’t but if you search the forum, you’ll find that it was it was me that discovered this and you’ll find out why. But basically, if a field is not there, it’s zero or null or empty.

nice, thank you for info. all is working, but was just curious. pavel

Yes and the receiving party has to figure which of those applies :confused: Not sound API design in my book.

Agreed, raised this on GitHub and on here months ago. For some reason it’s viewed as breaking the API if they include the field - which it wouldn’t because we have to code for checking if the field is there and if it isn’t, assume it’s zero. If the field is there and is zero, we’d pick up the value - so no real chance of breaking the API really.

But what would I know, I’ve only been coding 40+ years, Z80 assembly on TRS-80 II, Commodore Pet, BBC Micro, Dragon 32, Sinclair QL using Forth, Mac Plus (which still runs but I can’t find my 20MB SCSI HD, somewhere I still have my Inside Macintosh docs) after that it seems to go down hill with Windows 3.1 and some upstart in Finland usurping my use of Minix on my Amstrad PC that then ran Novell Netware 386 with IBM DB2 as an add-on …

I tell Johan I’ve got the T Shirt’s - over the weekend I ended up wearing one I got from Apple 28 years ago, bit tattered but still viable. Not that I’m not getting old …

1 Like