Eastron SDM230-LoRa - LoRaWAN issues

Yes. It’s because this device is not a friendly LoRa resident, and therefore we do not want to advertise how to use it.

Your best option is to contact the manufacturer and ask them to fix the obvious issues this device has, and then provide you with documentation.

Uhm, I see.
So, just a question: is there any other energy meter for mono and tri-phase electricity consumption more compliant with LoRa?
Because I could find none 'till now.

1 Like

I keep seeing you refer to ‘LoRa’, and you mention a Dragino GW…just to be sure you mean LoRaWAN right? Your GW is a full LoRaWAN GW (Dragino LPS8, LG308, etc. not a Dragino SCPF/DCPF LoRa only device?) and you have device operating in LoRaWAN mode, right? Not LoRa only… LOng/poor messages not withstanding , as an Acsip based device atleast the meter can be/should be set up as LoRaWAN vs LoRa propretary.

image

Yes, sorry, my mistake. Dragino LG308, configured as seen in picture.

Great :+1:

495 / 5000

Resultados de traducción

Hello fmanghi, delighted to contribute everything I can, from what I have been able to see, is that the team is a virgin so you have to configure first that you report and second that you want me to report. The manual where you can get the LORA information comes in SDM630 LORA. I need to create the command line to get: Voltage stacked power. If someone knows how to do what I contribute, Then you have to make it report every 1 min with the information that I have collected, I have not achieved it.Eastron_SDM630MCT-LoRaWAN_protocol_V1.0-combined_.pdf (440.4 KB)

some here.
Please share with me if you found them.
Regards

I managed to configure the device and connect it to the LoRaWAN network.
We had a problem with DevEui and AppEui because the device has been sent to another costumer before us and they changed all Euis (that was the reason we could not recieve any data before).

Ok, now the device is sending data.
The payload, btw, is something like this:

"uplink_message": {
"session_key_id": "AXvJaCvwkXwol6lWLvYbSg==",
"f_port": 1,
"f_cnt": 13,
"frm_payload": "ABIojwYMAAAAAAAAAAAAAAAAG/E=",

So, the payload seems to be ABIojwYMAAAAAAAAAAAAAAAAG/E=

It does not appear to have anything in common with the ASCII coding as described in the manual.
It is also true that the device sends like 6 messages in row, one after another.
We are guessing that the payload could have been splitted in these 6 messages, but it’s still a strange message.
Have you already seen something like this?
Thanks a lot in advance.

I’ll compile the document in next days since i’ve almost reached a result.

The payload will be encrypted - read LoRaWAN documentation…

It will need decrypting (using the set Keys) and decoding to extract useful readings/data

That’s not encrypted but it will need decoding …

From what I see, my device only sends a line, so I need to activate this data with an ascending command in the counter, someone can contribute something.

I have a report every minute and always on the same lineCaptura de pantalla 2021-09-21 010847

Thank you @jpmeijers for opening this thread.

I have successfully linked the device Eastron SDM630-Lora to TTN.
The problem is that I am only getting 2 types of payloads. In the manual, it is written that the auto-upload parameters could be set (max 30.) … anyone have any idea how to configure it so we can get more readings out of the meter?

Datasheet (page 8 → 10) :
https://www.eastroneurope.com/images/uploads/products/protocol/Eastron_SDM630MCT-LoRaWAN_protocol_V1.0-combined_.pdf

1 Like

Hello is it possible to send me the W1 Tool ?

[See edit history for email address]

THX

Hi, has anyone managed to configure the Active Upload feature on Eastron LoRAWAN meters? The documentation mentions that parameters can be configured for these messages and lists a table of the available parameters but I can’t see any mention of how to use these parameters. All help appreciated. Thanks.

I am coding the decoder, without having the device yet for the customer. Would you mind sharing 1-2 sample payload and the expected result after decode ?

Hi, I have integrated the eastron 630 Lora into my network server and I can read some of the values ​​saved in the registers every 5 minutes. However I can’t figure out how to choose which logs to read, any downlinks I send seem to be ignored. I am attaching the payload I receive. That said, if you have an example uplink to send to the meter to choose which logs to read please share with me

** “data”: “AVVjOQEUAAAAAEJIAAA/gAAAty3dGQAAAAAR3g==” **

decoded (from Base64) as:
01 55 63 39 → serial number
01 → data format
14 → (20 since is HEX) how many bytes
00 00 00 00 → some data
42 48 00 00 → (50) i guess it’s the frequency Hz
3f 80 00 00 → (1) some data i don t know
b7 2d dd 19 ->(1.036*10^-5) some data i don t know
00 00 00 00->some data
11 de → CRC (i guess)

The funny part is that i recieve the same numbers if the meter is attached to the electric line or no.
So if you can share some help it would be appreciated
Thank you so much

Are you polling the Eastron, via a downlink, for data every 5 minutes ?

Not actively, I set the polling time on the eastron to 5 minutes and it spontaneously sends this packet. Seems blind to my downlinks. I also tried to send him the package they use in the manual as an example (encoded as ascii) but nothing, he never responds.

I’ve got one of these with version 2.03. There is my decoding script for Chirpstack 2.03:

// v3 to v4 compatibility wrapper
function decodeUplink(input) {
	return {
		data: Decode(input.fPort, input.bytes, input.variables)
	};
}

function intFromBytes( x ){
    var val = 0;
    for (var i = 0; i < x.length; ++i) {        
        val += x[i];        
        if (i < x.length-1) {
            val = val << 8;
        }
    }
    return val;
}

function bytesToFloat(bytes) {
  var bits = bytes[0]<<24 | bytes[1]<<16 | bytes[2]<<8 | bytes[3];
  var sign = (bits>>>31 === 0) ? 1.0 : -1.0;
  var e = bits>>>23 & 0xff;
  var m = (e === 0) ? (bits & 0x7fffff)<<1 : (bits & 0x7fffff) | 0x800000;
  var f = sign * m * Math.pow(2, e - 150);
  return parseFloat(f);
}

// Decode decodes an array of bytes into an object.
//  - fPort contains the LoRaWAN fPort number
//  - bytes is an array of bytes, e.g. [225, 230, 255, 0]
//  - variables contains the device variables e.g. {"calibration": "3.5"} (both the key / value are of type string)
// The function must return an object, e.g. {"temperature": 22.5}
function Decode(fPort, bytes, variables) {
      var decoded = {};

if ( bytes[4] == 01) {

  decoded.SERIAL_NO = intFromBytes(bytes.slice(0, 4));   // Serial number
  decoded.INSTANT_WATT = (bytesToFloat(bytes.slice(06, 10))); // Instant W read
  decoded.KWH = (bytesToFloat(bytes.slice(10, 14))); //  Total Kwh
  decoded.CURRENT = (bytesToFloat(bytes.slice(14, 18)));  // Always zero?
  decoded.KWH_2 = (bytesToFloat(bytes.slice(18, 22)));  /// Absolute Kwh
  decoded.KVArh_imp  = (bytesToFloat(bytes.slice(22, 26))); // KVArh Imported
  decoded.KVArh_exp = (bytesToFloat(bytes.slice(26, 30))); // kVArh Exported
  decoded.KVArh_tot = (bytesToFloat(bytes.slice(30, 34))); // KVArh Total
}


return decoded;
}

1 Like