I bought an Efergy e2 IR optical power meter (wireless transmission every 30s) a couple of days ago and received my R820T dongle two days ago. Installed and fired up rtl-sdr hoping Nathan's/Gough's c hack would just give me power readings right away. Didn't happen.
Once I found your contribution at the end of the comments on Gough's site I got my hopes up. After a bit of frequency tuning I finally got a validated preamble but still no successful readings. Just the same sequence of bytes.
09 33 64 40 00 00 00 00
I assumed that the pulses-to-bits-converion was ok since I got the same sequence over and over again. Started to get frustrated and increased the FRAMEBYTECOUNT to 19 (!) just to see if there were anything interesting further down and to my surprise I found some interesting data that varied with different power readings but was the same for specific readings.
Ex:
09 33 64 40 00 00 00 00 0a 0f bd 55 00 00 00 00 = 1199W
09 33 64 40 00 00 00 00 0b 0f 8e 64 00 00 00 00 = 1319W
09 33 64 40 00 00 00 00 0c 0f 17 f3 00 00 00 00 = 1439W
09 33 64 40 00 00 00 00 0d 0f 24 c2 00 00 00 00 = 1559W
I noticed that byte 9 was increasing with higher watt numbers and I suddenly remembered that the resolution of the meter is 120W (1 pulse per 30s on a 1000p/kwh meter). Added these two things together and came to the conclusion that
power = byte[8] * 120W. The monitor has some really weird round off error though.
So now I just have to figure out the rest :).
byte[0-3] is always 09 33 64 40. Some device identifier?
byte[9] is always 0f. Battery status?
byte[10-11] is consistent with the power reading but doesn't add information. Checksum/CRC?
I got really excited about this and I basically just wanted to say thanks! I will add to your code locally. If I get things fully working I could push if you'd like me to,
I bought an Efergy e2 IR optical power meter (wireless transmission every 30s) a couple of days ago and received my R820T dongle two days ago. Installed and fired up rtl-sdr hoping Nathan's/Gough's c hack would just give me power readings right away. Didn't happen.
Once I found your contribution at the end of the comments on Gough's site I got my hopes up. After a bit of frequency tuning I finally got a validated preamble but still no successful readings. Just the same sequence of bytes.
09 33 64 40 00 00 00 00
I assumed that the pulses-to-bits-converion was ok since I got the same sequence over and over again. Started to get frustrated and increased the FRAMEBYTECOUNT to 19 (!) just to see if there were anything interesting further down and to my surprise I found some interesting data that varied with different power readings but was the same for specific readings.
Ex:
09 33 64 40 00 00 00 00 0a 0f bd 55 00 00 00 00 = 1199W
09 33 64 40 00 00 00 00 0b 0f 8e 64 00 00 00 00 = 1319W
09 33 64 40 00 00 00 00 0c 0f 17 f3 00 00 00 00 = 1439W
09 33 64 40 00 00 00 00 0d 0f 24 c2 00 00 00 00 = 1559W
I noticed that byte 9 was increasing with higher watt numbers and I suddenly remembered that the resolution of the meter is 120W (1 pulse per 30s on a 1000p/kwh meter). Added these two things together and came to the conclusion that
power = byte[8] * 120W. The monitor has some really weird round off error though.
So now I just have to figure out the rest :).
byte[0-3] is always 09 33 64 40. Some device identifier?
byte[9] is always 0f. Battery status?
byte[10-11] is consistent with the power reading but doesn't add information. Checksum/CRC?
I got really excited about this and I basically just wanted to say thanks! I will add to your code locally. If I get things fully working I could push if you'd like me to,