arendst / Tasmota

Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
https://tasmota.github.io/docs
GNU General Public License v3.0
22.16k stars 4.8k forks source link

3.9.19 will not compile IRremoteESP8266 issue #86

Closed Plum67 closed 7 years ago

Plum67 commented 7 years ago

Tried to Compile 3.8.18 & 3.9.19 and always get error message below. What do I need to do to get it to compile I have added all the libraries but it looks like something in IRremoteESP8266, btu I am new to all this and I do not know what to do to get it to compile?

Arduino: 1.8.0 (Windows 10), Board: "Generic ESP8266 Module, 80 MHz, 40MHz, DIO, 115200, 1M (64K SPIFFS), ck, Disabled, None"

C:\Program Files (x86)\Arduino\libraries\IRremoteESP8266-master\IRremoteESP8266.cpp: In member function 'void IRsend::sendKelvinator(unsigned char*)':

C:\Program Files (x86)\Arduino\libraries\IRremoteESP8266-master\IRremoteESP8266.cpp:625:14: error: 'KELVINATOR_STATE_LENGTH' was not declared in this scope

for (; i < KELVINATOR_STATE_LENGTH; i++)

          ^

exit status 1 Error compiling for board Generic ESP8266 Module.

This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.

RockClimber81 commented 7 years ago

Same Issue here!

hoekbrwr commented 7 years ago

Find the library IRRemoteESP8266.h and install it in Arduino IDE Sketch/Library Manager.There is a new option that you can use an IR Remote on a ESP8266 or leave it out if you are not planning to use it now, comment the line with the include in user_config.h

davidelang commented 7 years ago

I fixed this by modifying the file IRremoteESP8266.cpp and adding the line

'#include "IRKelvinator.h"'

I don't have an IR transmitter available to use, but this let it compile and run on a couple units.

hoekbrwr commented 7 years ago

It seems that there are things added to this IRRemote further on after my version 3.9.17. Only Theo knows what has been added that causes this .

altelch commented 7 years ago

Looks like you directly installed IRRemoteESP8266 from github and not the Version included into the Arduino library manager. The Kelvinator was added about 22 days ago and doesn't exist in the Arduino managed version. So it has nothing todo with Theo but with the source of your library and it's version.

Plum67 commented 7 years ago

So what version are we supposed to use?

hoekbrwr commented 7 years ago

Yes I did took the original from the link, because it wa not yet in the library. I tried again to compile 3.9.19, no problem!

altelch commented 7 years ago

Arduino IDE -> Sketch -> Library... -> Manage Libraries, search for IRremoteESP8266 and you will find a 1.0.0 version from https://github.com/sebastienwarin/IRremoteESP8266 (which is a fork). This is the "official" Arduino Version.

hoekbrwr commented 7 years ago

Strange it does not find the latest version!, Which method to use should not be any difference?

altelch commented 7 years ago

The arduino IDE can't find the latest version as it uses a fork of sebatienwarin labeled 1.0.0 and not the original markszabo version which seems to have no versioning (what might be the problem for the arduino guys).

hoekbrwr commented 7 years ago

As @Plum67 already noticed. What version we are supposed to use? This is not only a problem with the IR lib, but is general. I think there must be a notice from the author who included the library in the first place. However one cannot be aware of forks of unofficial versions. I am absolutely not a software engineer and have never used Github for SW versioning, but I can handle the outcomes of examples and find me the accompanying libs on the net. But I have no idea about other versions. However the author of the "main" SW should point to the lib the SW has been tested with. All confusing???!!!???

altelch commented 7 years ago

All additional libraries are the Versions included in Arduino Library Manager (always tested with the latest version). I never had to install a library from github or somewhere else using a zip file.

https://www.arduino.cc/en/Guide/Libraries

In the Library Manager use the Filter to find the missing libs and install the latest version (default).

arendst commented 7 years ago

Sorry for the trouble you seem to be in.

One of the reasons I implemented my own drivers for DHT and DS18B20 was to not get involved with library issues. Library incompatibility issues are easy to occur as they are not managed centrally and everyone can fiddle around with them. That's also the reason why I stayed at PubSubClient from Nick O'Leary, a stable library with some issues to overcome locally.

In the last months extra features were suggested and implemented using libraries that now seem to forget their legacy users resulting in your experience.

Another problem is the 'force' of people wanting to use platformIO also used by Travis, the github online recompile service I use instead of Arduino IDE bringing it's own problems regarding library versions.

So for now Travis/platformIO is using the IRremoteESP8266 from https://github.com/sebastienwarin/IRremoteESP8266 version fee16e880b which seems to be rather stable as it hasn't changed for over 12 months. I downloaded and installed the zip file in my standalone Arduino IDE environment (portable/sketchbook/libraries/IRremoteESP8266) and use it.

So your options now are:

I'll update the wiki with version information regarding the used libraries.

hoekbrwr commented 7 years ago

I am not planning to use Platformio and stick to Arduino IDE and the way @altelch suggested way of including libraries. At the moment it is not an issue for an IRRemote but only the principle. I leave it now and go on doing other things. Thanks for your contributions to this subject.

0n3-70uch commented 7 years ago

Hello,

I checked the new wiki writings but I have one question:

Download and unzip the pubsubclient MQTT library version 2.6 into directory

For me there is no version 2.6 only 2.4. Is it possible that you mean version 2.4?

Greetings Fabi

arendst commented 7 years ago

Looking in file https://github.com/knolleary/pubsubclient/blob/master/library.properties it says 2.6 as does the Arduino library manager once installed.

0n3-70uch commented 7 years ago

Oh right. I looked only in this file: https://github.com/knolleary/pubsubclient/blob/master/CHANGES.txt

And sry for the next question. Where can I find the version 2.2.6 of NeoPixelBus. Because I only see this sort of version name: "85b250d"

arendst commented 7 years ago

Again, look in the https://github.com/Makuna/NeoPixelBus/blob/master/library.properties file for the version. Or go the the releases page https://github.com/Makuna/NeoPixelBus/releases

Once a monkey knows a trick....

0n3-70uch commented 7 years ago

Haha yes thank you... :-) I will never ask this question again ;)

arendst commented 7 years ago

Just updated links in Wiki to library releases if available.

davidelang commented 7 years ago

On Mon, 20 Feb 2017, Theo Arends wrote:

In the last months extra features were suggested and implemented using libraries that now seem to forget their legacy users resulting in your experience.

This sort of lack of backwards compatibility is very common in FOSS projects, few people do the sort of thing you have done of creating a new project when they go to make backwards incompatible changes.

I have three libraries installed via git because the instructions on the wiki had links to the github repos and just said that they needed to be installed. So if those are not the versions that you want us to use, please update the wiki to point us at the right versions.

since it seems that I have things running now, I'm going to stick with the github versions unless they cause me too much grief.

In this case, a missing include was easy to fix.

yann25 commented 7 years ago

Hey,

I sorry for my noob question, but what do you mean with "Disable IRremote by option USE_IR_REMOTE in user_config.h." ?

Do you mean comment it out? Because that did not work for me... (using PlatformIO)

It worked with the Arduino IDE :) Thank you for this wonderful piece of software

arendst commented 7 years ago

If you copy the lib folder into your platformIO project folder you should be fine.