Efergy e2 power meter
-
Hi @gtortone ,
I finally found some time to hock up the RFM12B. Seems to be almost working. I just get the value "inf" for current. Do I have some datatype problem or maybe it should be calculated differently my Efergy engage hub?
I'm using a Arduino Pro Mini 3.3VAttached the serial print.0_1484211281663_efergyLog.txt
I should see values around 100W most of the time and some smaller down to 30W.
Edit: It seems like it might be payload[6] that is equal to 255 at 100W and 254 at under 40W that is causing problems with the calculation.
Edit2: Took 3 samples at around 30W, 60W and 100W. 0_1484220204136_efergyLog2.txt I need to find something so that I could test higher values to so I could figure out the formula to use.
Hi @korttoma,
take a look to this decoding based on your collected data for 30W, 60W and 100W;everything seems to be ok !!
Regards,
Gennarop.s. I checked in your profile that you live in Finland and power voltage is 220/240 V :-)
- bytes #1: 0x09 fixed value
- bytes #2: 0X50 fixed value
- bytes #3: 0x2E fixed value
- bytes #4: 0x40 fixed value
- bytes #5: current MSB
- bytes #6: current LSB
- bytes #7: exponent
- bytes #8: CRC
- current detected = ((MSB << 8) + LSB / 65535) / pow(2, (255-exponent))
30 W = 0.13 A (@220V)
9 - 0x09
80 - 0x50
46 - 0x2E
64 - 0x4071 - 0x47
172 - 0xAC
254 - 0xFE
184 - 0xB80x47AC = 18348
current = 18348 / 65535 / pow(2, 1) = 0.139 A
60 W = 0.26 A (@220V)
9 - 0x09
80 - 0x50
46 - 0x2E
64 - 0x4069 - 0x45
29 - 0x1D
255 - 0xFF
40 - 0x280x451D = 17693
current = 17693 / 65535 / pow(2, 0) = 0.269 A
100 W = 0.45 A (@220V)
9 - 0x09
80 - 0x50
46 - 0x2E
64 - 0x40112 - 0x70
163 - 0xA3
255 - 0xFF
217 - 0xD90x70A3 = 28835 (10)
current = 28835 / 65535 / pow(2, 0) = 0.439 A
-
Thanks @gtortone your formula seems to work. I just need to find a way to test higher values.
I almost had the same formula but I did not have the "65535". Could you explain where you got this value from?
-- S -- 9 80 46 64 76 204 254 221 -- E -- abc_value = 19660current = 0.15A - power = 34.50 W 23701 TSF:MSG:SEND,9-9-0-0,s=9,c=1,t=17,pt=2,l=2,sg=0,ft=0,st=OK:34 OK = 4 - short pk = 0 - long pk = 0 - crc bad = 0 -- S -- 9 80 46 64 71 173 255 186 -- E -- abc_value = 18349current = 0.28A - power = 64.40 W 29693 TSF:MSG:SEND,9-9-0-0,s=9,c=1,t=17,pt=2,l=2,sg=0,ft=0,st=OK:64 OK = 5 - short pk = 0 - long pk = 0 - crc bad = 0 -- S -- 9 80 46 64 115 51 255 108 -- E -- abc_value = 29491current = 0.45A - power = 103.50 W 35688 TSF:MSG:SEND,9-9-0-0,s=9,c=1,t=17,pt=2,l=2,sg=0,ft=0,st=OK:103 OK = 6 - short pk = 0 - long pk = 0 - crc bad = 0 -
Thanks @gtortone your formula seems to work. I just need to find a way to test higher values.
I almost had the same formula but I did not have the "65535". Could you explain where you got this value from?
-- S -- 9 80 46 64 76 204 254 221 -- E -- abc_value = 19660current = 0.15A - power = 34.50 W 23701 TSF:MSG:SEND,9-9-0-0,s=9,c=1,t=17,pt=2,l=2,sg=0,ft=0,st=OK:34 OK = 4 - short pk = 0 - long pk = 0 - crc bad = 0 -- S -- 9 80 46 64 71 173 255 186 -- E -- abc_value = 18349current = 0.28A - power = 64.40 W 29693 TSF:MSG:SEND,9-9-0-0,s=9,c=1,t=17,pt=2,l=2,sg=0,ft=0,st=OK:64 OK = 5 - short pk = 0 - long pk = 0 - crc bad = 0 -- S -- 9 80 46 64 115 51 255 108 -- E -- abc_value = 29491current = 0.45A - power = 103.50 W 35688 TSF:MSG:SEND,9-9-0-0,s=9,c=1,t=17,pt=2,l=2,sg=0,ft=0,st=OK:103 OK = 6 - short pk = 0 - long pk = 0 - crc bad = 0Hi @korttoma,
the value 65535 or 32768 often is used as multiplier from sensor that send metric;
usually when you have to send a "small" float value (temperature, current) you can send it as integer
multiplied by a big constant instead of sending it with a float value converted in binary...I just refined my formula with this that is more close to formula I found for my Efergy using a small
constant:current = 18348 / 32768 / pow(2, 255-254 + 1) = 0.139 A
current = 17693 / 32768 / pow(2, 255-255 + 1) = 0.269 A
current = 28835 / 32768 / pow(2, 255-255 + 1) = 0.439 A -
Hi @gtortone I'm working on finalizing this node and I'm having some trouble with stability. The node stays alive from a few minutes to 30min and then stops communicating.
What kind of decoupling capacitors are you using in your setup?
I now have 2 pc 0.1uF, 2 pc 47uF and one 0.33uF.I use a HLK-PM03, a Pro Mini 3.3, and the NRF24L01+
Debugging output don't give me much to go in since it just stops responding.
-
Hi @gtortone I'm working on finalizing this node and I'm having some trouble with stability. The node stays alive from a few minutes to 30min and then stops communicating.
What kind of decoupling capacitors are you using in your setup?
I now have 2 pc 0.1uF, 2 pc 47uF and one 0.33uF.I use a HLK-PM03, a Pro Mini 3.3, and the NRF24L01+
Debugging output don't give me much to go in since it just stops responding.
-
Hi,
at the moment I'm defining some things in order to use RFM69 modules...
in the past, on my NRF24L01+ I was using 10 uF capacitor but I had same problems of "stop responding"...@gtortone My node has now been running for more then 40min since I added the 0.1uF and 0.33uF tantalum caps. I'm hoping this will be the solution for me since I have no tools to debug any disturbance like this.
EDIT: It failed again :(
-
Tried exchanging the NRF24L01+ with an RFM69 but it does not seem to work at all with this setup. Might be because the RFM69 is using the same frequency as the RFM12B or maybe I can not have the 2 in the same node because they are related.
-
Hi,
at the moment I'm defining some things in order to use RFM69 modules...
in the past, on my NRF24L01+ I was using 10 uF capacitor but I had same problems of "stop responding"...@gtortone did you have any chance to look at the "stop responding" issue of this device?
I tried to add some more debug prints to your code today but if I add them to the wrong places the efergy receive function stops working and receives only 0 value. I guess it messes with the timing.
-
@gtortone did you have any chance to look at the "stop responding" issue of this device?
I tried to add some more debug prints to your code today but if I add them to the wrong places the efergy receive function stops working and receives only 0 value. I guess it messes with the timing.
@korttoma Hi, I just returned to play with Efergy and Arduino. I realized that debug messages on UART reset the micro. Now I'm skipping (with a #define DEBUG and #ifdef) all debug messages and it seems to work fine. But take into account that now I'm not using any radio module... just to test the firmware.
-
:D What a coincidence. I returned to this project today also. Now trying to set this up as an Ethernet GW with local sensor without NRF radio. I still have to share the SPI bus with the Ethernet module though. I'll let you know how it goes.
I think I did try removing the serial prints earlier but I'm not sure..
-
The ethernet GW approach performs even worse than your original solution. I get one or 2 measurements and then nothing. Still responds to ping but no communication with the controller.
I don't know how to debug this since it just stops working. Is there by any chance anything in the code that consumes memory? -
-
Hi All,
First of all, great work man!
I was wondering do you know if we need to have established link between the wireless sensor and the receiver?
I only have the wireless sensor so I was wondering if I can use this without the receiver?
Any thoughts?
-
Hi,
I have been trying to receive the efergy signal using RFM69 and so far it's a dead end. I'm unable to receive any data on the RFM69 module.
Since you guys talked about RFM69 module here, I thought you might have some insight to share.
-
Any chance that I can see how you wired up the NRF24L01+? I bought the parts back in January 2017 and just found it in a drawer this evening. I assembled everything but the NRF24L01+ and I am a bit stuck right now.
BTW: Great build - I really hope that I will get mine up and running :)
/Jens
-
Since you guys talked about RFM69 module here, I thought you might have some insight to share. (spam links removed by moderator)
-
@gtortone that is the same useless junk I got from e-bay at first, range is terrible.
This gives me some hope to get this working with the RXB6. I will test this as son as I can (might be a few weeks until I can).
@korttoma
I resume an old topic: i'm trying to receive data from Energy2 whith arduino connected to an RXB6. I can't receive any data, and i don't know how to substitute the code block related to RF12 with a correct one for my receiver. Can someone help me? Thanks in advance, Mauro -
Long story short, try 433.55 MHz
I tried for years to received my Chacon Ecowatt 800 (a rebranded Efergy 2 classic) data. I knew the frequency wasn't 433.92 MHz.
I lastly opened transmitter case to find which RF chip was used ... but I didn't get any datasheet for the "A71C03AUF" I found :(On last resort, I sought a signal on all "433.92MHz" ISM band (433.05~434.79 MHz, with sdr-sharp). I did find something centered on 433.51 (433.47 and 433.56, FSK?) MHz.
As for Somfy stuff (which uses 433.42 MHz), many generic receiver can't work with those *special" 433MHz frequencies.In the end, I tested this new frequency using rtl-433 and guess what, there's a working Efergy module ! Moreover, I did not make a great discover, 433.55MHz is well precised in the "efergy_e2_classic.c" module comments...
RFM69 or NRF24L01 may be frequency ajustable!