johove / HAN-powermeter

AMS power meter node for Arduino and mysensors
GNU General Public License v3.0
7 stars 3 forks source link

Error compiling for ESP8266 board #3

Closed deve87 closed 5 years ago

deve87 commented 5 years ago

When I try the code on a NodeMCU ESP8266, it give me an error.

If I comment out: send(wattMsgF1.set(activePowerQ1Q4)); send(wattMsgF2.set(activePowerQ2Q3)); send(reavtMsg.set(reactivePowerQ1Q2));

code compile

C:\Program Files (x86)\Arduino\libraries\AidonMeterBuffer\AidonMeterBuffer.ino: In function 'void sendData()':

AidonMeterBuffer:430: error: call of overloaded 'set(long unsigned int&)' is ambiguous

send(wattMsgF1.set(activePowerQ1Q4));

`C:\Program Files (x86)\Arduino\libraries\AidonMeterBuffer\AidonMeterBuffer.ino:430:39: note: candidates are:

In file included from C:\Program Files (x86)\Arduino\libraries\MySensors-development/MySensors.h:431:0,

from C:\Program Files (x86)\Arduino\libraries\AidonMeterBuffer\AidonMeterBuffer.ino:32:

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:228:12: note: MyMessage& MyMessage::set(const char*)

MyMessage& MyMessage::set(const char* value)

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:228:12: note: no known conversion for argument 1 from 'long unsigned int' to 'const char*'

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:242:12: note: MyMessage& MyMessage::set(const __FlashStringHelper*)

MyMessage& MyMessage::set(const __FlashStringHelper* value)

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:242:12: note: no known conversion for argument 1 from 'long unsigned int' to 'const __FlashStringHelper*'

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:258:12: note: MyMessage& MyMessage::set(bool)

MyMessage& MyMessage::set(const bool value)

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:266:12: note: MyMessage& MyMessage::set(uint8_t)

MyMessage& MyMessage::set(const uint8_t value)

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:283:12: note: MyMessage& MyMessage::set(uint32_t)

MyMessage& MyMessage::set(const uint32_t value)

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:291:12: note: MyMessage& MyMessage::set(int32_t)

MyMessage& MyMessage::set(const int32_t value)

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:299:12: note: MyMessage& MyMessage::set(uint16_t)

MyMessage& MyMessage::set(const uint16_t value)

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:307:12: note: MyMessage& MyMessage::set(int16_t)

MyMessage& MyMessage::set(const int16_t value)

exit status 1 call of overloaded 'set(long unsigned int&)' is ambiguous

johove commented 5 years ago

Hi, This code is written for MySensorsnetwork on an Arduino with NFR24, it is not tested on your hardware, and there may be differences in the libraries, but try to comment out the useMysensors switch, Like this //#define useMySensors // If on compile mysensor

Then that library wil not be loaded, but you must write your own code for datatranfer on ESP8266.

On Thu, May 16, 2019 at 5:55 PM deve87 notifications@github.com wrote:

When I try the code on a NodeMCU ESP8266, it give me an error.

If I comment out: send(wattMsgF1.set(activePowerQ1Q4)); send(wattMsgF2.set(activePowerQ2Q3)); send(reavtMsg.set(reactivePowerQ1Q2));

code compile

C:\Program Files (x86)\Arduino\libraries\AidonMeterBuffer\AidonMeterBuffer.ino: In function 'void sendData()':

AidonMeterBuffer:430: error: call of overloaded 'set(long unsigned int&)' is ambiguous

send(wattMsgF1.set(activePowerQ1Q4));

`C:\Program Files (x86)\Arduino\libraries\AidonMeterBuffer\AidonMeterBuffer.ino:430:39: note: candidates are:

In file included from C:\Program Files (x86)\Arduino\libraries\MySensors-development/MySensors.h:431:0,

from C:\Program Files (x86)\Arduino\libraries\AidonMeterBuffer\AidonMeterBuffer.ino:32:

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:228:12: note: MyMessage& MyMessage::set(const char*)

MyMessage& MyMessage::set(const char* value)

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:228:12: note: no known conversion for argument 1 from 'long unsigned int' to 'const char*'

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:242:12: note: MyMessage& MyMessage::set(const __FlashStringHelper*)

MyMessage& MyMessage::set(const __FlashStringHelper* value)

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:242:12: note: no known conversion for argument 1 from 'long unsigned int' to 'const __FlashStringHelper*'

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:258:12: note: MyMessage& MyMessage::set(bool)

MyMessage& MyMessage::set(const bool value)

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:266:12: note: MyMessage& MyMessage::set(uint8_t)

MyMessage& MyMessage::set(const uint8_t value)

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:283:12: note: MyMessage& MyMessage::set(uint32_t)

MyMessage& MyMessage::set(const uint32_t value)

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:291:12: note: MyMessage& MyMessage::set(int32_t)

MyMessage& MyMessage::set(const int32_t value)

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:299:12: note: MyMessage& MyMessage::set(uint16_t)

MyMessage& MyMessage::set(const uint16_t value)

C:\Program Files (x86)\Arduino\libraries\MySensors-development/core/MyMessage.cpp:307:12: note: MyMessage& MyMessage::set(int16_t)

MyMessage& MyMessage::set(const int16_t value)

exit status 1 call of overloaded 'set(long unsigned int&)' is ambiguous

โ€” You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/johove/HAN-powermeter/issues/3?email_source=notifications&email_token=AH7SR53IU64JAERCHHPT473PVV7WLA5CNFSM4HNN6WPKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4GUGWJTA, or mute the thread https://github.com/notifications/unsubscribe-auth/AH7SR5ZYIQYKSTCOFJHXKT3PVV7WLANCNFSM4HNN6WPA .

johove commented 5 years ago

Check out: https://github.com/mysensors/MySensors/issues/1129 This is related to difference in the librarys of Mysensor for ESP8266 and Arduino

deve87 commented 5 years ago

Got it working by changing 'unsigned long' to 'uint16_t' on all 'activePower' , 'reactivePower' and 'cumulativeActive', 'cumulativeReactive'

Using Mysensors Gateway LAN with ESP8266 (WiFi) and Domoticz

Got:

But! My Volt on L2 / L3 and Amp on L3 keeps giving unrealistic values some times. It can go from 3.4VA and on some points give me peaks in log that says 6440VA etc

Any reason for that? ๐Ÿค”

Great code btw ๐Ÿ˜๐Ÿ˜

johove commented 5 years ago

Hi,

Nice that it works.

Which type of power meter have you connected to your hardware, a Norwegian one I assume as this is a Norwegian standard?

If you get erratic measurements then you might have problems with the serial line or the mbus to tll conversion. I donโ€™t know what type of serial interface you are using, there may be timing issues. This code do not check the CRC, there are code for that on the internet.

Try to use the debug options and list the values form the parcing

On Tue, May 21, 2019 at 12:16 PM deve87 notifications@github.com wrote:

Got it working by changing 'unsigned long' to 'uint16_t' on all 'activePower' , 'reactivePower' and 'cumulativeActive', 'cumulativeReactive'

Using Mysensors Gateway LAN with ESP8266 (WiFi) and Domoticz

Got:

  • Volt L1, L2, L3
  • Amp L1, L3
  • kWh(daily) and Watt unit

But! My Volt on L2 / L3 and Amp on L3 keeps giving unrealistic values some times. It can go from 3.4VA and on some points give me peaks in log that says 6440VA etc

Any reason for that? ๐Ÿค”

Great code btw ๐Ÿ˜๐Ÿ˜

โ€” You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/johove/HAN-powermeter/issues/3?email_source=notifications&email_token=AH7SR53RAHCUQFIA4UXJSSLPWPDWPA5CNFSM4HNN6WPKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODV3OGBA#issuecomment-494330628, or mute the thread https://github.com/notifications/unsubscribe-auth/AH7SR527TEZH5ED4AKHLEFTPWPDWPANCNFSM4HNN6WPA .

deve87 commented 5 years ago

It's an Aidon AMS (Skagerak Energi)

My M-Bus TTL device: TSS721

Only happens some times.

I think volt on L2 go to 0V for 5 sec. And Amp on L3 go to 6551VA.

deve87 commented 5 years ago

It looks like a desimal fault. Take voltage for an example. It can go from 240.2V to 24010V and go back to 240.3V again.

Same with amp.

Watt and kWh are stabil