EmonGLCD does not read time nor Power

No, you do not change the node. It receives every node within range, and displays the NodeID. The top button must be pressed before and during startup to receive 868 MHz, otherwise it defaults to 433 MHz.
Read the notes in the sketch for more.
It can miss a message occasionally.

Does your emonGLCD have the RFM12B or the RFM69CW? If it is the RFM12B, it is said that this is not as good as the RFM69CW when receiving weak signals.

Hello.
Sorry to bother you again on this topic.
I’ve restarted playing with the EMonGLCD and I face still issues reading my EMonTX data.
I have been able to read the time from my EMonPI and all the info’s from one of mine EMonTH but still no joçy for the EMonTX.
According to the EMonPI, it is on the node 8 and is sending perfectly its data to the EMonPI.
This EMonTX has also a set of temperature sensors connected to it and the setting on the EMonPI are defined like this:

[[5]]
nodename = emonpi
[[[rx]]]
names = power1,power2,power1pluspower2,vrms,t1,t2,t3,t4,t5,t6,pulsecount
datacodes = h, h, h, h, h, h, h, h, h, h, L
scales = 1,1,1,0.01,0.1,0.1,0.1,0.1,0.1,0.1,1
units = W,W,W,V,C,C,C,C,C,C,p

[[6]]
nodename = emontxshield
[[[rx]]]
names = power1, power2, power3, power4, vrms
datacode = h
scales = 1,1,1,1,0.01
units =W,W,W,W,V

[[7]]
nodename = emontx4
[[[rx]]]
names = power1, power2, power3, power4, vrms, temp1, temp2, temp3, temp4, temp5, temp6, pulse
datacodes = h,h,h,h,h,h,h,h,h,h,h,L
scales = 1,1,1,1,0.01,0.1,0.1, 0.1,0.1,0.1,0.1,1
units =W,W,W,W,V,C,C,C,C,C,C,p

[[8]]
nodename = emontx3
[[[rx]]]
names = power1, power2, power3, power4, vrms, temp1, temp2, temp3, temp4, temp5, temp6, pulse
datacodes = h,h,h,h,h,h,h,h,h,h,h,L
scales = 1,1,1,1,0.01,0.1,0.1, 0.1,0.1,0.1,0.1,1
units =W,W,W,W,V,C,C,C,C,C,C,p

Could you please help me to define the right structure to read this EMonTX into my EMonGLCD?
Is it possible to read from the EMonPI the same recorded data?

Thanks for your time and effort.

Laurent

Don’t worry about that.

First, is your emonGLCD receiving the data - using the “debug” sketch, can you see data from Node 8? It does not need to know the data structure - it receives and displays the complete string of data as byte values. You can step through the data using the buttons to interpret the values in various number formats.

If you see Node 8 displayed and some data, then the GLCD is receiving it.

If you can ONLY see Node 5 (your emonPi), then the GLCD is not receiving the data. Try moving it closer to the emonTx.

To satisfactorily decode the data, you need exactly the same structure as in your emonTx. The easy way is to copy from the emonTx sketch. It should be this:

typedef struct {
  int power1, power2, power3, power4, Vrms, temp[6];
  unsigned long pulseCount;
} PayloadTX;

and that should be what you have in the HEM sketch HomeEnergyMonitor_Hoplite.zip

In theory, yes. In practice, no, because the emonPi is not set to send the data out by radio. The GLCD will receive the data direct from the emonTx, at the same time as the emonPi receives it.

Hello Robert.

Thanks for this super fast answer.
In fact, I’ve never been able to receive any data from thze EMonTX into the EMonGLCD but I receive it propoerly into my EMonPI since many years (as well as the multiple EmonTH’s I have).
So far, I’ve been able to receive perfectly all the data from the EmonTH into the GLCD but never any data from the EmonTX.

Do you think I should update the EmonTX software? (I’ve never done it and it is a version V3)

Laurent

No, that is not the answer. The GLCD will receive the emonTx V2 and all versions following, provided that you use the correct sketch.

I cannot help you if you repeat information but do not answer my questions: I asked you “Is your emonGLCD receiving the data - using the “debug” sketch, can you see data from Node 8?”

Please upload to your emonGLCD my “debugger” sketch that I sent you a year ago.
What does the “debug” sketch display?
You should see a green flash from the LEDs each time it receives anything from anywhere. It should display a short block of data from Node 5 (the time from your emonPi), then a larger block from your emonTx.

If you cannot see anything from Node 8, what radio frequency are you using?
Are the RF modules all working on the same frequency, and what frequency is that?
Are all the RF modules the correct one for the frequency you are using? (See https://learn.openenergymonitor.org/electricity-monitoring/networking/which-radio-module)

I have run the DEBUG script to the GLCD but it remains “red”.
Just to be sure, I do not have to change anything in this sketch? just transfer it to the GLCD?

If that is correct the sketch results displays nothing more than zero’s.
This is strange because I receive data from the node 19 (EmonTH) & node 5. Or I miss something?

Regarding the freq : I’m using 433MHz modules on all the network.

Did you change this to the correct value?

#define RF69_COMPAT 0                                 // Set to 1 if using RFM69CW or 0 if using RFM12B

Do NOT press the “Enter” switch as you power up - if you do, that will change the frequency to 868 MHz.

You do now see a green flash when the emonPi sends the time?

I do not see any Green LED flashing at all. Could you resend me your test sketch? … just in case …

Just for information, I have attached my current sketch (not the Debut one) which receives the EmonPI time, EMonTH data.HomeEnergyMonitor_Hoplite2.zip (5.8 KB)

That sketch (HomeEnergyMonitor_Hoplite2) should not receive data from your emonTx, because the receiving structure does not match the equivalent in the emonTx - which you have not changed because your emonPi works.

You have
typedef struct { int power1, power2, power3, Vrms; } PayloadTX;
It does not have the temperatures nor the pulse count. Even though you might not want to use and display those, they must be included, because otherwise the checksum fails and the data is rejected. That is one reason why it does not receive the emonTx. There might be other reasons also.

Here is
emonGLCD_Debug.zip (3.2 KB)
You must change
#define RF69_COMPAT 0
to
#define RF69_COMPAT 1
to suit your RFM69CW.

Thanks for the new DEBUT sketch.
It works well and I receive the Node 5, 19 and 26. In otehr words, the EMONPI, and my two EmonTH’s but never the EmonTx is mentioned (node 8).

What is the distance, in a straight line, between the emonTx and the emonGLCD?
What lies between them?

about 3meters. But my EmonPI and my GLCD are just near each others. Also I have tryed to put the GLCD close to the TX without any success either.

The TH is even further away between walls.and the reception is perfect for it.
Could it be we have a packaet colision ie at teh same time each time? - if so I cannot get why the EmonPI would get the data.

It is possible then, that the signal is too strong, or that the emonGLCD is being swamped by electrical noise from the emonPi. Can you try moving the emonGLCD away from the emonPi?

I do not think anyone else had reported that as a problem. I think the only way that could happen is if the emonPi transmitted the time at the same time as it was receiving data from the emonTx, and that is impossible - it can only do one thing at a time. If it was anything else causing the collisions, then because each has its own clock, they would eventually drift out of synchronism and the data would get through.

There is a very small possibility that this could happen, if the emonPi was shielded from the interfering signal and the emonGLCD was not. The interfering signal need not necessarily be from your equipment.

I have tried to move the GLCD away from the EMonPI and also close to the Tx, no change.
May I ask you the Sketches for the EmonTx V3 and I would upload the Sketch again … just in case.

If the Sketch is the same, I should see no difference at all but it is the only thing which I have not yet tried.

The emonTx sketch is available on GitHub:

I recommend you do not change the emonTx sketch. The emonPi is receiving it correctly, and the emonGLCD is, or should be, receiving the very same radio transmission.

Your emonTx data structure should be:

typedef struct {
  int power1, power2, power3, power4, Vrms, temp[6];
  unsigned long pulseCount;
} PayloadTX;

You wrote that your emonPi config. is:

names = power1, power2, power3, power4, vrms, temp1, temp2, temp3, temp4, temp5, temp6, pulse
datacodes = h,h,h,h,h,h,h,h,h,h,h,L

Both represent 11 integers and one unsigned long integer, so they are consistent. The only thing that can be wrong is your emonGLCD.

What I do not understand is how the emonPi can receive from the emonTx and the emonTHs, but the GLCD, especially with the debug sketch - which will receive anything from any node - cannot receive from the emonTx when it can from the emonPi and the emonTHs.

You could try compiling the emonGLCD sketch with an earlier version JeeLib.

The current emonPi, emonTH and emonTH sketches are all compiled with outdated JeeLib

When the emonPi firmware is compiled with a later JeeLib it fails to receive emonTx packets (Or least that used to be the case, see Emon TXs not updating after Emonpi update - #12 by glyn.hudson)

[edit - also see “emonTx Node Communicates to one RFM69Pi, but not another” for a similar issue with a RFM69Pi recompiled with a later JeeLib, and again here “Recompiling RFM69Pi firmware - #6 by adpeace”]

@Hoplite

@pb66’s post just made me remember the problems we had when the receiver and transmitter clocks lost synchronism while a long series of zero values - the temperatures - was transmitted. But it cannot be that - your unused temperatures report “300”.

Hello.
I’ve just changed the jeelib library as proposed earlier by pb66.
I have then run the DEBUG sketch and I can now see my EMonTX perfectly well.

Many thanks for your help Guys! Very appreciated.

Laurent

2 Likes