Git Product home page Git Product logo

lights's Introduction

diyHue - A Hue Bridge Emulator

Discourse JoinSlack Build Status



diyHueLogo



diyHue provides a Ecosystem for several Smart Home Solutions, eliminating the need for vendor specific Bridges and Hardware. Written in Python and Open Source, you are now able to import and control all your Lights and Sensors into one System.

Lightweight and resource friendly, to run on small devices like the RPi .... 24/7

The Best part? No Cloud connection by Design!

Enjoy your diyHue enlighted Home.

diyHue ecosystem

Stats

DockerPulls CommitActivity arm version badge arm-size-batch amd version badge amd size badge

Getting Started

All documentation and instructions can be found over at diyhue.readthedocs.io

Requirements

  • coap-client: i.e. via apt install libcoap2-bin
  • Python 3
  • Python modules: ws4py, requests, astral, paho-mqtt see requirements.txt
  • faketime: i.e. via apt install faketime

or

  • Docker

Recommendation - minimal setup

You need a System that can run the python script or Docker Image 24/7!

Emulator Lights App
RaspberryPi 3B WS2812 Strip + Wemos D1 mini Board Hue Essentials (iOS & Android)

Working diyHue features

Functions Devices Apps Lights Smarthome
Control lights (all functions) Amazon Alexa (control only the lights) Hue Essentials WS2812B and SK6812 smart led strips Home Assistant
Control groups (all functions) Deconz (Conbee 1 & 2) Hue App Phillips Hue Openhab
Scenes (all functions) Trådfri Gateway hueManic Ikea Trådfri Jeedom
Routines Hue Bridge (original + other emulators) Kodi Hue Ambilight Yeelight Domoticz
Wake up Logitech Harmony OnSwitch MiLight Home Assistant Add-on
Go to sleep Philips Ambilight TV's LampShade Hyperion.ng
Switches (custom esp8266 switches) Hue Sync for PC MQTT lights see mqtt
Autodiscover lights HueSwitcher any PWM(CCT, RGB, RGBW) incl. Dimming
Hue entertainment On/Off 433Mhz devices (multiple devices for every esp8266)
LYT8266
WLED

Support

All documentation and instructions can be found over at diyhue.readthedocs.io

If you need help with diyHue you can get support from other users, aswell as the maintainer.

Slack JoinSlack SlackStatus

Use Slack for a general chat or fast live support.

However: Since Slack is faster at providing live Support but not as good when it comes to save and show known Issues, we kindly ask you to open a Topic at our Discourse group. This will provide Help for others in the future.

Discourse Discourse

Our Board might already have your fix and answer ready. Have a look!

General Note: Please provide some Logs to make it easier for all of us. Enable Debug by manually starting diyHue with additional --debug true argument.

Stability

Starting in Dec. 2020 we will introduce one Master and one Dev Branch. The Master will have the most stable code.

If you want to tinker and experiment you can try the dev Branch. Active development will take place here.

You want to get the latest features? Try the experimental Branch. Use at own Risk!

Please post on our Slack team any other device/application that you find to work with this emulator.

Contribute

diyHue is Opensource and maintained by volunteers in their free time. You are welcome to contribute and become a recognised member of the diyHue community. Feel free to add PR and Commits to our Dev Branch. If you are experienced in

  • Webdesign
  • Python
  • Arduino
  • Coding in general

We highly appreciate your support, making diyHue even better!

Support

diyHue is and will be Free to use. However it does take a lot of time to maintain the code etc etc.

Long story short.... you can support us at Ko-Fi

ko-fi

Thank you very much!

Credits

Additional Projects and Ideas

Hue living color light project for 3D printing: Thingiverse 2773413

License

license

lights's People

Contributors

alexyao2015 avatar basktrading avatar bb-benbridges avatar cad435 avatar captainroot avatar freddebo avatar giantorth avatar hendriksen-mark avatar jdaandersj avatar jeanbie0 avatar juanesf avatar linuzer avatar mariusmotea avatar mcer12 avatar mevel avatar mheijnemans01 avatar nikfinn99 avatar okanskose avatar panovvv avatar scubiedoo avatar shbatm avatar shivasiddharth avatar solmath avatar stefankante avatar thesquashymaker avatar trusselo avatar vknmnn avatar vlad-the-compiler avatar wqrld avatar zhuoyang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lights's Issues

SK6812HueStrip not detected

Hello,

i have some problems with SK6812HueStrip , when i flash it no lights are detected by the emulator, if i flash on the same nodemcu board the WS2812BHueStrip firmware lights are detected.

i am compiling with arduino .

thank you

WS2812 Hue Ring - Hue App - Unstable Connection in Official Hue App

Hey guys!

I was looking to create customized groupings of lights, using WS2812B lights.

I was recommended to use the WS2812B Hue Ring sketch.

Did this, and the groupings work!
Woot!!

However, I am experiencing an unstable connection in the Official Hue App.
I am using the sketch, as is - with no modifications.

The "lights" are constantly going between "Connected" and "Unable to Connect" in the app, when interfacing with them.
After I stop touching the screen, for about 2 seconds, the Room and Lights turn to the "Off Position" in app.
However, the lights themselves stay on - in their last used setting.
The only means of control, I can use are the Room On/Off switch, and the Room Scene Selector.
Other than that, I am unable to control values for the "lights" individually.

I can edit scenes, then launch said scenes to control individual values for lights.
But there is no direct control of the lights individually, other than scenes.

Is this the intention of the WS2812B Hue Ring sketch?

Thanks for your help guys!
I REALLY appreciate everything you have done here!

Chris

Hue Entertainment not working

I don´t know exactly why hue entertainment doesnt work (i can setup an entertainment area, but lights don´t recognize color changes), but i get following error when running in debug mode:
Is it possible this causes the problem?

Exception in thread Thread-3:
Traceback (most recent call last):
File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
self.run()
File "/usr/lib/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "/opt/hue-emulator/functions/ssdp.py", line 28, in ssdpSearch
data = data.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xdb in position 377: invali d continuation byte

ESP8266 Upload Error

First off, I wanted to say THANK YOU to you guys helping me out!
I would assume my issue is coming from not properly flashing the firmware?
I'm using WS2812B LED strips, and a Raspberry Pi 3 B+ as a DIY Hue emulator.

Here is a link to the ESP8266 I have: https://www.amazon.com/gp/product/B010N1SPRK/ref=ppx_yo_dt_b_asin_title_o08__o00_s00?ie=UTF8&psc=1

These are the steps I followed to upload your firmware:

1. Download entire folder at: https://github.com/diyhue/Lights
2. Plug in ESP8266 Device
3. Open Arduino IDE
4. Within IDE, open Board Manager and search for ESP8266.
5. Download only option, and select it as board.
6. Confirm COM Port of board, and set that within Arduino IDE.
7. Set ESP8266 Upload Speed to 115200 within Arduino IDE.
8. Plug in USB-UART Adapter for troubleshooting, and run it through Putty at a speed of 115200.
9. In Arduino IDE, open Sketch file "WS2812BHueStrip.ino" located here: https://github.com/diyhue/Lights/tree/master/Arduino/WS2812BHueStrip
10. Uncomment and change IP settings to allow Static IP Address of 192.168.1.201, and the Router set to 192.168.1.1.
11. set "lightsCount" to 5 and set "pixelCount" to 30
12. Resave Sketch as date/time based name in Arduino Documents folder
13. Verify
14. Upload

So, in Putty - I'm constantly seeing the ESP8266 search through the WiFi SSID's in the area (shown below):

`scan start
scan done
21 networks found
1: word56-42 (-72)*
2: xfinitywifi (-74)
3: NETGEAR36 (-81)*
4: NVR9ca3a94eb62f (-89)*
5: NETGEAR24 (-85)*
6: HailtotheVictors (-90)*
7: Harley (-86)*
8: PS4-59EB415741A1 (-40)*
9: CraigFam (-85)*
10: Harley (-89)*
11: Harley (-74)*
12: tl60fdbe (-86)*
13: ATT4bxJ7ZC (-88)*
14: Aperture Laboratories (-80)*
15: Aperture Innovators (-78)*
16: ATTBQMjuwa (-86)*
17: xfinitywifi (-89)
18: Blips and Chitz (-40)*
19: dbfcfbcbead5e3e456e1257d6bd01474
▒ (-60)*
20: Harley (-76)*
21: HP-Print-8C-Deskjet 2540 series (-91)*

scan start
scan done
20 networks found
1: word56-42 (-72)*
2: xfinitywifi (-74)
3: xfinitywifi (-91)
4: NETGEAR36 (-83)*
5: NETGEAR24 (-86)*
6: 68741b5a6977bc8ad260e494d5c59971▒ (-91)*
7: HailtotheVictors (-93)*
8: PS4-59EB415741A1 (-52)*
9: CraigFam (-85)*
10: Harley (-84)*
11: Harley (-73)*
12: tl60fdbe (-82)*
13: Aperture Laboratories (-78)*
14: Aperture Innovators (-77)*
15: NVR9ca3a94eb62f (-90)*
16: Blips and Chitz (-53)*
17: dbfcfbcbead5e3e456e1257d6bd01474
▒ (-60)*
18: ATTmuYDzMi (-93)*
19: Harley (-77)*
20: ATTgZWCFPi (-91)*
`

Here is the Error Message copied from Arduino IDE:

`Arduino: 1.8.8 (Windows 10), Board: "Generic ESP8266 Module, 80 MHz, Flash, Enabled, ck, 26 MHz, 40MHz, QIO, 512K (no SPIFFS), 2, v2 Lower Memory, Disabled, None, Sketch + WiFi Settings, 256000"

Build options changed, rebuilding all
Sketch uses 434640 bytes (86%) of program storage space. Maximum is 499696 bytes.
Global variables use 36464 bytes (44%) of dynamic memory, leaving 45456 bytes for local variables. Maximum is 81920 bytes.
C:\Users\charl\AppData\Local\Arduino15\packages\esp8266\tools\esptool\2.5.0-3-20ed2b9/esptool.exe -vv -cd ck -cb 256000 -cp COM3 -ca 0x7C000 -cz 0x4000 -ca 0x00000 -cf C:\Users\charl\AppData\Local\Temp\arduino_build_957736/sketch_jan21a.ino.bin
esptool v0.4.13-1-gf80ae31 - (c) 2014 Ch. Klippel [email protected]
setting board to ck
setting baudrate from 115200 to 256000
setting port from COM1 to COM3
setting address from 0x00000000 to 0x0007C000
setting erase size to 0x00004000
setting serial port timeouts to 1000 ms
opening bootloader
resetting board
trying to connect
flush start
setting serial port timeouts to 1 ms
setting serial port timeouts to 1000 ms
flush complete
espcomm_send_command: sending command header
An error occurred while uploading the sketch
espcomm_send_command: sending command payload
read 0, requested 1
trying to connect
flush start
setting serial port timeouts to 1 ms
setting serial port timeouts to 1000 ms
flush complete
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
serialport_receive_C0: 1E instead of C0
trying to connect
flush start
setting serial port timeouts to 1 ms
setting serial port timeouts to 1000 ms
flush complete
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
read 0, requested 1
resetting board
trying to connect
flush start
setting serial port timeouts to 1 ms
setting serial port timeouts to 1000 ms
flush complete
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
read 0, requested 1
trying to connect
flush start
setting serial port timeouts to 1 ms
setting serial port timeouts to 1000 ms
flush complete
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
serialport_receive_C0: 1E instead of C0
trying to connect
flush start
setting serial port timeouts to 1 ms
setting serial port timeouts to 1000 ms
flush complete
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
serialport_receive_C0: 9E instead of C0
resetting board
trying to connect
flush start
setting serial port timeouts to 1 ms
setting serial port timeouts to 1000 ms
flush complete
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
read 0, requested 1
trying to connect
flush start
setting serial port timeouts to 1 ms
setting serial port timeouts to 1000 ms
flush complete
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
serialport_receive_C0: 1E instead of C0
trying to connect
flush start
setting serial port timeouts to 1 ms
setting serial port timeouts to 1000 ms
flush complete
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
serialport_receive_C0: 00 instead of C0
warning: espcomm_sync failed
error: espcomm_open failed

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

Thank you all, again, for any help!!

Lights won´t be discovered

Hey Guys, I use a Wemos D1 mini With WS2812B Led Stripe.
I have flashed the lights gui. (Lights/Arduino/Generic_WS2812_Strip/)
I can change the color over the web interface, but when i try to discover it in HUE app,
nothing ist found. I have several Tasmota devices that are found.

Do i have to config something to make it work?

Can someone help me.

WS2812B - Custom Pixel Groupings (not dividing number of LEDs by light count)

Hey guys!

I wanted to see if anyone has already done this, before I go diving into it..

Has anybody made the sketch able to set custom groupings of LEDs with WS2812B strips?
..Where you can set several lights' pixelCount within a single ESP8266, without having to divide pixelCount by lightsCount..

For instance, a user could input these values for various sections of light..

genericLightName 1 has a Pixel Count of 16
genericLightName 2 has a Pixel Count of 16
genericLightName 3 has a Pixel Count of 78
genericLightName 4 has a Pixel Count of 28
genericLightName 5 has a Pixel Count of 40
genericLightName 6 has a Pixel Count of 20

I'm attempting to install this system throughout my kitchen, and my cabinets are different sizes.
Ideally, each cabinet has its own "light" section to control.. Allowing a user to use the hue app, and modify lighting cabinet-by-cabinet.

I am trying to avoid having sections span more than one cabinet.
Transition LEDs between the cabinets would be fine - but I don't want a "main" portion of LEDs to bridge two cabinets.

My first thought was to see how many LEDs fit on each section of cabinet, and organize my LED groupings based on a greatest common factor that related all of the required amounts.... Not very fruitful on practicality in the case of my cabinets, which are oddly sized.

For instance, I have two sections of cabinets that need 16 LEDs and another than needs 78 LEDs.. I plan for these sections to be on one ESP8266.
16 and 78 have a greatest common factor of 2.
I could program the entire strip to be operated in sections of 2 pixels - but it wouldn't be efficient with 55 fixtures, using the Hue app, to control three cabinets.. haha!

I haven't really dug into the code yet..
I'm assuming there could be a way to state a number of LEDs per light by putting information into an array.. or something..

something along the lines of:
pixelCount[0] = 16;
pixelCount[1] = 16;
pixelCount[2] = 78;

I'm pursuing a degree in computer science - but have only taken 2 classes in the subject matter so far.. I'm very new to coding in general. So I may be totally off the wall here.

I have found that at many times, "simple problems" can have "complicated solutions."
This may be one of those scenarios.. haha!

Thank you all for your time, and patience with me!

WS2812 Adjustable Hardware Button Control Wiring?

I am trying to figure out how to wire the circuit for the button control in the WS2812 Adjustable sketch. The sketch says to pull the pin to ground through a 10K resistor but that doesn't actually cause the button to work. When I look at the sketch, it appears that it is looking for a high signal to read that the button is pushed, so why would I pull it to ground? Maybe a wiring diagram would be helpful. For the life of me I can't get this to work with the hardware pins.

ESP8266: WS2812B - Maximum Control Quantity

Hello all!

I have successfully controlled a roll of 150 WS2812B LEDs.
I am using a 5v 60amp power supply, and should be able to power 900 LED's off of one supply..

I'm not necessarily planning on doing just that.
Maybe 400.

I wanted to see if anyone knew the maximum number of LEDs one can control, using a single ESP8266 microcontroller.

I JUST read of an individual controlling 1300 pixels..
Not sure how it was wired..

Thank you all!

can't find wemos d1 mini in app, but web page works (generic ws2812 strip)

Sorry to open a new issue but i'm trying to figure out why i can't add a Generic ws2812 strip!
Running the latest Emulator on a pi3 (tried both docker and host installation).

In the app i can see the other lights (Yeelight and tasmota's sonoff), but no Wemos d1 mini flashed with arduino ide.
Sorry for the noobsness, with nmap "wemos ip" it says "host seems down", but using port 80 i can ping it.

Thanks in advance for any kind help!

Docu about entertainment Upd packet

Hello. Is there any documentation about the upd packet for the entertainment feature? Or can someone briefly explain the packet structure to me? I want to add the feature that only the selected entertainment lights will switch to "entertainment-mode". But I don't know reallly how the packet looks like.
Greets,
obelix05

WS2812BHueRing Light Order

Hey guys!
Sorry for another post. I've had several questions recently, and you have no idea how much I appreciate the help!
What you are doing is AWESOME!
I've produced some beautiful arrangements with it! I'm trying to install them in my kitchen now!

I'm just trying to tie down the Ring sketch's light order by pixel count.

With the Ring sketch, how does one order the pixel(LED) groups?

I have a 39 pixel strip, and I'm trying to program it into equal(ish) parts for use with scenes in my kitchen.

I suppose a symmetrical way to order the sections of this LED Strip would be 5 sections with the following order:

Under Cabinet Light 1: 7 LEDs
Under Cabinet Light 2: 8 LEDs
Under Cabinet Light 3: 9 LEDs
Under Cabinet Light 4: 8 LEDs
Under Cabinet Light 5: 7 LEDs

Thank you all!!

resetting light

not so much an issue, wondering if possible to reset the light without re uploading firmware so i can change SSID that it connects to? using Generic RGBW light code

Scenes not working for Generic WS2812B device

Hello everyone,

I flashed the Generic WS2812 to an ESP8266, added OTA functionality and created a little test setup with a WS2812B strip (4 lights à 12 LEDs). So far, everything is working fine and I can control every separate light on my strip via the Hue Essentials app. However, it seems that I can only activate standard scenes. Custom scenes created by myself can be stored but not activated though. When trying to activate a custom scene, only a toast showing the scene name is popping up on my smartphone, that's it.

I already tried modifying the apply_scene function (l. 224 - 250; changing some values in order to check if the standard scenes applied via the Hue Essentials app would look any different), but unfortunately there was no change at all.

Effects seem to not work as well.
Is there any solution to this or is it simply not possible?

Thanks and regards
Ro4cHii

ESP Disconnecting Frequently

Hey guys!

So I have 7 ESP8266's - and only one of them is acting a little funky.

NOTE: I have not updated the code on the units for a since about February 18th.. I do not have the new firmware installed.

It has happened, in the past, where it connects - and after a little while - it disconnects.. Could be power surges dropping the router out of play.. Not entirely sure, as it generally happened when I'm away.

Anyways - at this point, the light is not detected at all.. once again - could definitely be router issues.

But I wanted to see if the new code does have a feature that reconnects the units, if they fail to connect at first..
Basically, whenever I power up the units now - one of them is constantly streaking red.
Would be nice if it just simply tried to reconnect!

Once again, haven't updated yet..

Is this part of the update?

Thank you all!!

SPIFFS.begin() fails on Lolin d1 mini V3.1.0

Hi,

I'm new here and just bought some Lolin d1 mini's V3.1.0, wanting to connect a ws2812b as an ambilight for my monitor.

When trying to get it all to work, I ran into trouble getting my d1 mini connected to the wifi. Here is what i did:

  1. Downloaded diyhue/lights
  2. Opened Generic_WS2812_Strip.ino in Arduino IDE
  3. Adjusted lightscount to 10
  4. Adjusted pixelcount to 80
  5. Adjusted transitionleds to 2
    Saved the script
  6. Compiled the script
  7. uploaded the script using Arduine IDE
  8. Tried searching for wifinetwork: Hue rgb strip. I couldn't find the network or anything remotely close
  9. Went back to Arduino IDE and looked for: void setup()
  10. Uncommented: Serial.begin(115200);
  11. Uncommented: Serial.println("Failed to mount file system");
  12. started serial monitor
  13. Saved, compiled and uploaded the script again
  14. Got the message in serial monitor: Failed to mount file system
  15. Went back to Arduino IDE and commented:
    // if (!SPIFFS.begin()) {
    //// Serial.println("Failed to mount file system");
    // return;
    // }
  16. Saved, compiled and uploaded the script again
  17. Tried searching for wifinetwork: Hue rgb strip
  18. Found the network this time
  19. configured the network, went to the ip adress I got from the serial monitor
  20. Could control the lights. But they are slow to respond.
  21. Trying to change the transitionleds via the ui, crashed the d1 mini

Have I missed some steps causing SPIFFS.begin() to fail?

WS2812BHueStrip:6:25: error: NeoPixelBus.h: No such file or directory

Hey, so I've tried to upload the .ino file, "WS2812BHueStrip.ino" and it gives me the error in the title.

What am I doing wrong?

I am connected to the ESP8266 via usb.
I am in the arduino IDE using com14, as the device is directly connected via USB... as opposed to a USB-UART device..

I have those too..

This is the ESP8266 unit I am using.
https://www.amazon.com/gp/product/B010N1SPRK/ref=ppx_yo_dt_b_asin_title_o03__o00_s00?ie=UTF8&psc=1

Thanks!!

Glitches when using over 200 leds

Hi,
im using ~220 WS2811 LEDs in my living room, when i set a value of over 200 LEDs in the web interface, everything just glitches out.
I cant turn the light off anymore, color changes have big delays and often end in a wrong color and similar stuff like this.
But when i set the value to exactly 200, everything works perfectly fine.. (except one conor of my ceiling is dark ^^)

Im using the "Generic_WS2812_Strip.ino" (i changed the GRB to BRG) and the Hue Essentials App.

regards

Arduino/Generic_Dimmable_Light ESP8266 crashes using only one pin

Hi folks,

i am fairly new in using github active, so please excuse some mistakes.

Lights/Arduino/Generic_Dimmable_Light/Generic_Dimmable_Light.ino sketch triggers an illegal array access in line 166 and 168 when using only one pin (one fake hue device):

if (! light_state[0]) { // Show that we are connected analogWrite(pins[1], 100); delay(500); analogWrite(pins[1], 0); }

I can replicate this problem, using two pins no erros occuring, using only one pin triggers a crash after pairing with diyHue, replacing pins[1] with pins[0] in line 166 & 168 fixes the problem.

New feature: Automatically merge left over Neopixels into new group

Thank you for this amazing project! I successfully created a DIY Neopixel light with the Wemos D1 mini and a WS812 strip. But I ended up at a total number of 142 pixels. After setting everthing up 140 of the pixels lit while the last two remained off. I figured out that the script divides the total number of pixels by the number of virtual lights. Unfortunatley is 142 only dividable by 1, 2, 71 and 142. Therefore there will always be pixel in that strip which wont light correctly.

Would it be possible to let the script merge any pixels that are left over after creating the virtuals lights from the whole strip into a new virtual light?

Pin Output for Relay Control

I'm hoping you'll be able to point me in the right direction. What I am trying to do is to use one of the digital pins to control a simple relay to control the power to my WS2812 LED strips. I have the strips all set up and working perfectly with the sketch in the Arduino folder but I was hoping that I could control the power to the strips when they are off. Since they are individuallly addressable, they still consume power when they are not on. And I travel for work so I am not home for long stretches of time. So, why power the LEDs if there's no chance of them having to turn on any time soon? I tried using a wifi switch to turn power off to the whole setup but the boot sequence takes a little while and is a bit of a pain. So, I was hoping that you could point me to some variable within the Arduino sketch that I could use to determine if the light was on or off. Then I could use that to write a digital pin high or low depending on that value. I tried a few different things but with no luck. Any assistance you could give would be greatly appreciated. Don't need help with the code, just some variable I could compare to or check the truth of would be a great first step.

Thanks! And thanks for this amazing project! Has saved me a boatload of cash and really worked well for me. Please, keep up the great work!!! And if you ever need beta testers, I've got a bunch of different ESP boards and LED strips/sticks. I'd be happy to help in any way I can.

Colors In entertainment mode seem slightly shifted in contrast to the TV ambilight color

Hi,
I'm using Generic_RGB_Light on an ESP01 with an analog RGB strip. Everything seems to be working perfectly fine, but the colors in the entertainment mode seem slightly shifted in comparison of the ambilight color of the TV.

I'm aware that different LED strips can show different colour outputs, but that doesn't seem to be the issue IMO (I added the color multiplier to the entertainment API to calibrate the colours, I would be able to calibrate let's say Cyan to be the same on the TV and the DIY light, but then all other colours would be even more off. I also tried with adding gamma correction to it but the colours got even worse).

While trying to debug the issue I was able to observe that when I was displaying a red image (RGB{255,0,0}) on the TV screen, I receive the color (RGB{255,0,0}) on the DIY light and as expected only the red LEDs are lit, but on the TV ambilight it seems to use the red and green LEDs, giving it a slightly different tone. Bluish tones on the TVs ambilight tend to go to a slightly purple colour in the diylight.

The pure red example where only the red led is expected to be lit but on the TV also the green LEDs are lit makes me believe that the colours are slightly shifted from the RGB values received or that it is using some custom colour matrix to reproduce the exact colors.

Anybody knows what could be wrong here?

generic-rgbw-light sketch fails to start server

Hi all,

i recently bought some MagicHome RGBW controllers and before flashing i updated to the latest master in git. now these lamps do not start any sort of webserver which could be used to set the Wifi. When the wifi-information is already set, the device successfully connects to wifi and responds to ICMP ping, but otherwise is unavailable.

My9291 Arilux e27 crash loop

Hello, yesterday i used the newest sketch of the my9291 light which worked fine in the past, now its stuck in an wtd reset loop:

ets Jan 8 2013,rst cause:4, boot mode:(3,5)

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
vbb28d4a3
~ld

Offline CSS

I am using the Generic_WS2812_Strip with a separate Wi-Fi from the raspberry pi without any internet access. Since the CSS file are an external resource the web interface can not load. I do not want to integrate the lights into my main wifi and also do not want to give the lights access to the internet. Is there any option to store the CSS files on the device itself?

ESP8266 NodeMCU WS2812 not working

I was trying to connect the led strip WS2812 to the ESP8266 and it didn't work. I used an other library (Adafruit_NeoPixel) to set manually a color and I did set static colors to it. It worked, but the original code wasn't working. Does it need any other config to work or is it really a bug?

Light Support WS2811

Hi is there still the possibility to use WS2811 Strips with an ESP8266(nodemcu), Thanks in advance for the help

Wemos D1 Mini wont broadcast on startup

Hey,
First, thanks for your great work! Enjoying my diyHue since a few months.
Today i did a fresh install of the latest version. Works fine with my yeelights. But i have problems with diy-LED-Strips. Im using SK6812-Strips connected to Wemos D1 mini. Everything was working fine with my older Version of diyHue and the "SK6812HueStrip.ino" (the one from the mariusmotea-repo). However, with the new Generic_SK6812_Strip.ino the wemos D1 mini is not broadcasting with the SSID set in the light_name variable. Instead it broadcasts with the SSID "ESP-C760DC". When connected to this network, nothing happens. I also tried with the Generic_WS2812_Strip.ino, but the result is the same.
When trying again with the old "SK6812HueStrip.ino" the strip is working with the Light GUI, but connection to the diyhue-bridge is not possible. I think it has to do with some name-variable.
Is there anything i'm missing out?

kind regards,
roman

Wemos D1 mini dimmable light not being found in app

Hello,

I have my bridge emulator, as well as the "dimmable light" firmware up-to-date. Everything relating WS2812 strips firmware works as expected (without issues, also got instantly detected).
However, my esp8266's with the dimmable sketch won't get detected by searching via the app...

If I run sudo nmap 10.0.0.62/24 -p80 --open -n | grep report | cut -d ' ' -f5
The rpi detects the ip-adresses of the lights.

Running curl 10.0.0.88/detect results in:
{"hue": "bulb","lights": 2,"modelid": "LWB010","mac": "f7:5f:73:eb:f3:84"}

What am I doing wrong?

NodeMCU web interface not showing

I'm trying to flash a nodemcu with ws2812b strip hooked up to it.
Using all the latest libraries the flash works without a problem.
After the flash a new Wifi shows up "ESP_E3441" and I can connect to it just fine.
However when trying to access the web interface on 192.168.4.1 it just comes up blank with the "unable to connect" error.

Tried flashing the board both as generic esp8266 and as nodemcu 1.0
I didn't change anything in the generic_WS2812_Strip.ino file.

Any idea whats going on?

no webui

Hey. Just uploaded your .bin file to my wemos. wifi shows up, i can connect - but there is no webui.
could you please update the .bin? i have no clue of compiling the .ino with SPIFFS .. what ever this is

thank you

Error while trying to reach light

Hi,

when trying to turn on/off new "Generic Dimmable" Lights, I'm getting this error:

`10.0.0.8 - - [21/Apr/2019 18:03:22] "PUT /api/a7161538be80d40b3de98dece6e91f90/lights/11/state HTTP/1.1" 200 -

Exception happened during processing of request from ('10.0.0.8', 50592)
Traceback (most recent call last):
File "/usr/lib/python3.5/socketserver.py", line 625, in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib/python3.5/socketserver.py", line 354, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python3.5/socketserver.py", line 681, in init
self.handle()
File "/usr/lib/python3.5/http/server.py", line 422, in handle
self.handle_one_request()
File "/usr/lib/python3.5/http/server.py", line 410, in handle_one_request
method()
File "./HueEmulator3.py", line 1454, in do_PUT
updateGroupStats(url_pices[4], bridge_config["lights"], bridge_config["groups"])
File "/opt/hue-emulator/functions/updateGroup.py", line 10, in updateGroupStats
if lights[group_light]["state"]["on"]:
KeyError: '14'
`

What could this mean? The light isn't responding, but can be controlled via its own ip address...
Deleting the mac from the config file also doesn't seem to help :/

Also, when uploading the newest Generic CCT Light sketch with deleting all eeprom settings, the wifimanager hosts just a standard-named Wifi (ESP-CD5R), instead of using the actually defined light name. Reinstalling the library doesn't work.

Any suggestions?

Cannot build PlatformIO Generic_RGB_Light

Hello!

I can't build PlatformIO Generic_RGB_Light

Processing nodemcuv2 (platform: espressif8266; board: nodemcuv2; framework: arduino)
-----------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/nodemcuv2.html
PLATFORM: Espressif 8266 > NodeMCU 1.0 (ESP-12E Module)
HARDWARE: ESP8266 80MHz 80KB RAM (4MB Flash)
Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 29 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ArduinoOTA> 1.0
|   |-- <ESP8266mDNS>
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <WifiManager> 0.14
|   |-- <DNSServer> 1.1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WebServer> 1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS>
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WebServer> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <EEPROM> 1.0
|-- <ESP8266WiFi> 1.0
Compiling .pioenvs/nodemcuv2/src/Generic_RGB_Light.cpp.o
In file included from src/Generic_RGB_Light.cpp:10:0:
src/pwm.c: In function 'uint8_t _pwm_phases_prep(pwm_phase*)':
src/pwm.c:212:11: warning: unused variable 'off_mask' [-Wunused-variable]
uint16_t off_mask = 0;
^
src/Generic_RGB_Light.cpp: In function 'void convert_hue()':
src/Generic_RGB_Light.cpp:58:17: warning: right operand of comma operator has no effect [-Wunused-value]
hh /= 11850, 0;
^
src/Generic_RGB_Light.cpp: At global scope:
src/Generic_RGB_Light.cpp:149:3: error: 'r' does not name a type
r = r <= 0.04045f ? r / 12.92f : pow((r + 0.055f) / (1.0f + 0.055f), 2.4f);
^
src/Generic_RGB_Light.cpp:150:3: error: 'g' does not name a type
g = g <= 0.04045f ? g / 12.92f : pow((g + 0.055f) / (1.0f + 0.055f), 2.4f);
^
src/Generic_RGB_Light.cpp:151:3: error: 'b' does not name a type
b = b <= 0.04045f ? b / 12.92f : pow((b + 0.055f) / (1.0f + 0.055f), 2.4f);
^
src/Generic_RGB_Light.cpp:153:3: error: expected unqualified-id before 'if'
if (r > b && r > g) {
^
*** [.pioenvs/nodemcuv2/src/Generic_RGB_Light.cpp.o] Error 1
======================================================= [ERROR] Took 1.39 seconds =======================================================

Processing d1_mini (platform: espressif8266; board: d1_mini; framework: arduino)
-----------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/d1_mini.html
PLATFORM: Espressif 8266 > WeMos D1 R2 & mini
HARDWARE: ESP8266 80MHz 80KB RAM (4MB Flash)
Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 29 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <EEPROM> 1.0
|-- <ArduinoOTA> 1.0
|   |-- <ESP8266mDNS>
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <WifiManager> 0.14
|   |-- <DNSServer> 1.1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WebServer> 1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS>
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WebServer> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WiFi> 1.0
Compiling .pioenvs/d1_mini/src/Generic_RGB_Light.cpp.o
In file included from src/Generic_RGB_Light.cpp:10:0:
src/pwm.c: In function 'uint8_t _pwm_phases_prep(pwm_phase*)':
src/pwm.c:212:11: warning: unused variable 'off_mask' [-Wunused-variable]
uint16_t off_mask = 0;
^
src/Generic_RGB_Light.cpp: In function 'void convert_hue()':
src/Generic_RGB_Light.cpp:58:17: warning: right operand of comma operator has no effect [-Wunused-value]
hh /= 11850, 0;
^
src/Generic_RGB_Light.cpp: At global scope:
src/Generic_RGB_Light.cpp:149:3: error: 'r' does not name a type
r = r <= 0.04045f ? r / 12.92f : pow((r + 0.055f) / (1.0f + 0.055f), 2.4f);
^
src/Generic_RGB_Light.cpp:150:3: error: 'g' does not name a type
g = g <= 0.04045f ? g / 12.92f : pow((g + 0.055f) / (1.0f + 0.055f), 2.4f);
^
src/Generic_RGB_Light.cpp:151:3: error: 'b' does not name a type
b = b <= 0.04045f ? b / 12.92f : pow((b + 0.055f) / (1.0f + 0.055f), 2.4f);
^
src/Generic_RGB_Light.cpp:153:3: error: expected unqualified-id before 'if'
if (r > b && r > g) {
^
*** [.pioenvs/d1_mini/src/Generic_RGB_Light.cpp.o] Error 1
======================================================= [ERROR] Took 1.29 seconds =======================================================

Processing esp12 (platform: espressif8266; board: esp12e; framework: arduino)
-----------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/esp12e.html
PLATFORM: Espressif 8266 > Espressif ESP8266 ESP-12E
HARDWARE: ESP8266 80MHz 80KB RAM (4MB Flash)
Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 29 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <EEPROM> 1.0
|-- <ArduinoOTA> 1.0
|   |-- <ESP8266mDNS>
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <WifiManager> 0.14
|   |-- <DNSServer> 1.1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WebServer> 1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS>
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WebServer> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WiFi> 1.0
Compiling .pioenvs/esp12/src/Generic_RGB_Light.cpp.o
Compiling .pioenvs/esp12/lib085/EEPROM/EEPROM.cpp.o
Compiling .pioenvs/esp12/lib628/ESP8266mDNS/ESP8266mDNS.cpp.o
Compiling .pioenvs/esp12/lib04c/ArduinoOTA/ArduinoOTA.cpp.o
In file included from src/Generic_RGB_Light.cpp:10:0:
src/pwm.c: In function 'uint8_t _pwm_phases_prep(pwm_phase*)':
src/pwm.c:212:11: warning: unused variable 'off_mask' [-Wunused-variable]
uint16_t off_mask = 0;
^
src/Generic_RGB_Light.cpp: In function 'void convert_hue()':
src/Generic_RGB_Light.cpp:58:17: warning: right operand of comma operator has no effect [-Wunused-value]
hh /= 11850, 0;
^
src/Generic_RGB_Light.cpp: At global scope:
src/Generic_RGB_Light.cpp:149:3: error: 'r' does not name a type
r = r <= 0.04045f ? r / 12.92f : pow((r + 0.055f) / (1.0f + 0.055f), 2.4f);
^
src/Generic_RGB_Light.cpp:150:3: error: 'g' does not name a type
g = g <= 0.04045f ? g / 12.92f : pow((g + 0.055f) / (1.0f + 0.055f), 2.4f);
^
src/Generic_RGB_Light.cpp:151:3: error: 'b' does not name a type
b = b <= 0.04045f ? b / 12.92f : pow((b + 0.055f) / (1.0f + 0.055f), 2.4f);
^
src/Generic_RGB_Light.cpp:153:3: error: expected unqualified-id before 'if'
if (r > b && r > g) {
^
Archiving .pioenvs/esp12/lib085/libEEPROM.a
*** [.pioenvs/esp12/src/Generic_RGB_Light.cpp.o] Error 1
Indexing .pioenvs/esp12/lib085/libEEPROM.a
======================================================= [ERROR] Took 2.00 seconds =======================================================

=============================================================== [SUMMARY] ===============================================================
Environment nodemcuv2   [ERROR]
Environment d1_mini     [ERROR]
Environment esp12       [ERROR]
======================================================= [ERROR] Took 4.69 seconds =======================================================
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.

After commenting strange bit of code lines 148 to 183 I'v got this:

Processing nodemcuv2 (platform: espressif8266; board: nodemcuv2; framework: arduino)
-----------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/nodemcuv2.html
PLATFORM: Espressif 8266 > NodeMCU 1.0 (ESP-12E Module)
HARDWARE: ESP8266 80MHz 80KB RAM (4MB Flash)
Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 29 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ArduinoOTA> 1.0
|   |-- <ESP8266mDNS>
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <WifiManager> 0.14
|   |-- <DNSServer> 1.1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WebServer> 1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS>
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WebServer> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <EEPROM> 1.0
|-- <ESP8266WiFi> 1.0
Compiling .pioenvs/nodemcuv2/src/Generic_RGB_Light.cpp.o
Compiling .pioenvs/nodemcuv2/src/pwm.c.o
Compiling .pioenvs/nodemcuv2/lib6e8/ESP8266WiFi/ESP8266WiFi.cpp.o
src/pwm.c: In function '_pwm_phases_prep':
src/pwm.c:212:11: warning: unused variable 'off_mask' [-Wunused-variable]
uint16_t off_mask = 0;
^
Compiling .pioenvs/nodemcuv2/lib6e8/ESP8266WiFi/ESP8266WiFiAP.cpp.o
Compiling .pioenvs/nodemcuv2/lib6e8/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o
In file included from src/Generic_RGB_Light.cpp:10:0:
src/pwm.c: In function 'uint8_t _pwm_phases_prep(pwm_phase*)':
src/pwm.c:212:11: warning: unused variable 'off_mask' [-Wunused-variable]
uint16_t off_mask = 0;
^
src/Generic_RGB_Light.cpp: In function 'void convert_hue()':
src/Generic_RGB_Light.cpp:58:17: warning: right operand of comma operator has no effect [-Wunused-value]
hh /= 11850, 0;
^
Compiling .pioenvs/nodemcuv2/lib6e8/ESP8266WiFi/ESP8266WiFiMulti.cpp.o
Compiling .pioenvs/nodemcuv2/lib6e8/ESP8266WiFi/ESP8266WiFiSTA.cpp.o
src/Generic_RGB_Light.cpp: In function 'void setup()::__lambda1::_ZZ5setupENKUlvE0_clEv$isra$27()':
src/Generic_RGB_Light.cpp:403:14: warning: array subscript is above array bounds [-Warray-bounds]
rgb[3] = server.arg(i).toInt();
^
src/Generic_RGB_Light.cpp:437:84: warning: array subscript is above array bounds [-Warray-bounds]
current_rgb[0] = 0; current_rgb[1] = 0; current_rgb[2] = 0; current_rgb[3] = 0;
^
src/Generic_RGB_Light.cpp:439:90: warning: array subscript is above array bounds [-Warray-bounds]
current_rgb[0] = 255; current_rgb[1] = 255; current_rgb[2] = 255; current_rgb[3] = 255;
^
src/Generic_RGB_Light.cpp: In static member function 'static void std::_Function_handler<void(_ArgTypes ...), _Functor>::_M_invoke(const std::_Any_data&, _ArgTypes ...) [with _Functor = setup()::__lambda0; _ArgTypes = {}]':
src/Generic_RGB_Light.cpp:357:12: warning: 'button' may be used uninitialized in this function [-Wmaybe-uninitialized]
} else if (button == 4000) {
^
src/Generic_RGB_Light.cpp:321:9: note: 'button' was declared here
int button;
^
src/Generic_RGB_Light.cpp: In function 'void setup()::__lambda4::_ZZ5setupENKUlvE3_clEv$isra$32()':
src/Generic_RGB_Light.cpp:535:82: warning: array subscript is above array bounds [-Warray-bounds]
current_rgb[0] = 0; current_rgb[1] = 0; current_rgb[2] = 0; current_rgb[3] = 0;
^
src/Generic_RGB_Light.cpp:537:22: warning: array subscript is above array bounds [-Warray-bounds]
current_rgb[3] = 255;
^
src/Generic_RGB_Light.cpp: In function 'void setup()':
src/Generic_RGB_Light.cpp:285:120: warning: array subscript is above array bounds [-Warray-bounds]
step_level[0] = rgb[0] / 150.0; step_level[1] = rgb[1] / 150.0; step_level[2] = rgb[2] / 150.0; step_level[3] = rgb[3] / 150.0;
^
src/Generic_RGB_Light.cpp:285:111: warning: array subscript is above array bounds [-Warray-bounds]
step_level[0] = rgb[0] / 150.0; step_level[1] = rgb[1] / 150.0; step_level[2] = rgb[2] / 150.0; step_level[3] = rgb[3] / 150.0;
^
Compiling .pioenvs/nodemcuv2/lib6e8/ESP8266WiFi/ESP8266WiFiScan.cpp.o
Compiling .pioenvs/nodemcuv2/lib6e8/ESP8266WiFi/WiFiClient.cpp.o
Compiling .pioenvs/nodemcuv2/lib6e8/ESP8266WiFi/WiFiClientSecure.cpp.o
Compiling .pioenvs/nodemcuv2/lib6e8/ESP8266WiFi/WiFiServer.cpp.o
Compiling .pioenvs/nodemcuv2/lib6e8/ESP8266WiFi/WiFiServerSecure.cpp.o
Compiling .pioenvs/nodemcuv2/lib6e8/ESP8266WiFi/WiFiUdp.cpp.o
Compiling .pioenvs/nodemcuv2/lib628/ESP8266mDNS/ESP8266mDNS.cpp.o
Compiling .pioenvs/nodemcuv2/lib04c/ArduinoOTA/ArduinoOTA.cpp.o
Compiling .pioenvs/nodemcuv2/lib71c/DNSServer/DNSServer.cpp.o
Archiving .pioenvs/nodemcuv2/lib6e8/libESP8266WiFi.a
Indexing .pioenvs/nodemcuv2/lib6e8/libESP8266WiFi.a
Compiling .pioenvs/nodemcuv2/lib774/ESP8266WebServer/ESP8266WebServer.cpp.o
Archiving .pioenvs/nodemcuv2/lib71c/libDNSServer.a
Indexing .pioenvs/nodemcuv2/lib71c/libDNSServer.a
Compiling .pioenvs/nodemcuv2/lib774/ESP8266WebServer/ESP8266WebServerSecure.cpp.o
Archiving .pioenvs/nodemcuv2/lib628/libESP8266mDNS.a
Indexing .pioenvs/nodemcuv2/lib628/libESP8266mDNS.a
Archiving .pioenvs/nodemcuv2/lib04c/libArduinoOTA.a
Indexing .pioenvs/nodemcuv2/lib04c/libArduinoOTA.a
Compiling .pioenvs/nodemcuv2/lib774/ESP8266WebServer/Parsing.cpp.o
Compiling .pioenvs/nodemcuv2/lib774/ESP8266WebServer/detail/mimetable.cpp.o
Compiling .pioenvs/nodemcuv2/libc13/WifiManager_ID567/WiFiManager.cpp.o
Compiling .pioenvs/nodemcuv2/lib085/EEPROM/EEPROM.cpp.o
Archiving .pioenvs/nodemcuv2/libFrameworkArduinoVariant.a
Indexing .pioenvs/nodemcuv2/libFrameworkArduinoVariant.a
Compiling .pioenvs/nodemcuv2/FrameworkArduino/Esp-version.cpp.o
Archiving .pioenvs/nodemcuv2/lib774/libESP8266WebServer.a
Indexing .pioenvs/nodemcuv2/lib774/libESP8266WebServer.a
Compiling .pioenvs/nodemcuv2/FrameworkArduino/Esp.cpp.o
Archiving .pioenvs/nodemcuv2/lib085/libEEPROM.a
Indexing .pioenvs/nodemcuv2/lib085/libEEPROM.a
Compiling .pioenvs/nodemcuv2/FrameworkArduino/FS.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/FunctionalInterrupt.cpp.o
Archiving .pioenvs/nodemcuv2/libc13/libWifiManager_ID567.a
Indexing .pioenvs/nodemcuv2/libc13/libWifiManager_ID567.a
Compiling .pioenvs/nodemcuv2/FrameworkArduino/HardwareSerial.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/IPAddress.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/MD5Builder.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/Print.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/Schedule.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/Stream.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/StreamString.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/Tone.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/Updater.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/WMath.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/WString.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/abi.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/base64.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/cbuf.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/cont.S.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/cont_util.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/core_esp8266_eboot_command.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/core_esp8266_flash_utils.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/core_esp8266_i2s.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/core_esp8266_main.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/core_esp8266_noniso.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/core_esp8266_phy.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/core_esp8266_postmortem.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/core_esp8266_si2c.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/core_esp8266_timer.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/core_esp8266_wiring.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/core_esp8266_wiring_analog.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/core_esp8266_wiring_digital.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/core_esp8266_wiring_pulse.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/core_esp8266_wiring_pwm.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/core_esp8266_wiring_shift.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/debug.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/heap.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/libb64/cdecode.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/libb64/cencode.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/libc_replacements.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/pgmspace.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/sntp-lwip2.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/spiffs/spiffs_cache.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/spiffs/spiffs_check.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/spiffs/spiffs_gc.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/spiffs/spiffs_hydrogen.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/spiffs/spiffs_nucleus.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/spiffs_api.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/spiffs_hal.cpp.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/time.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/uart.c.o
Compiling .pioenvs/nodemcuv2/FrameworkArduino/umm_malloc/umm_malloc.c.o
Archiving .pioenvs/nodemcuv2/libFrameworkArduino.a
Indexing .pioenvs/nodemcuv2/libFrameworkArduino.a
Linking .pioenvs/nodemcuv2/firmware.elf
.pioenvs/nodemcuv2/src/pwm.c.o: In function `pwm_start':
pwm.c:(.irom0.text+0x2a0): multiple definition of `pwm_start'
.pioenvs/nodemcuv2/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x2a0): first defined here
.pioenvs/nodemcuv2/src/pwm.c.o: In function `pwm_set_duty':
pwm.c:(.irom0.text+0x344): multiple definition of `pwm_set_duty'
.pioenvs/nodemcuv2/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x344): first defined here
.pioenvs/nodemcuv2/src/pwm.c.o: In function `pwm_get_duty':
pwm.c:(.irom0.text+0x364): multiple definition of `pwm_get_duty'
.pioenvs/nodemcuv2/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x364): first defined here
.pioenvs/nodemcuv2/src/pwm.c.o: In function `pwm_set_period':
pwm.c:(.irom0.text+0x384): multiple definition of `pwm_set_period'
.pioenvs/nodemcuv2/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x384): first defined here
.pioenvs/nodemcuv2/src/pwm.c.o: In function `pwm_init':
pwm.c:(.irom0.text+0x3c4): multiple definition of `pwm_init'
.pioenvs/nodemcuv2/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x3c4): first defined here
.pioenvs/nodemcuv2/src/pwm.c.o: In function `pwm_get_period':
pwm.c:(.irom0.text+0x4ec): multiple definition of `pwm_get_period'
.pioenvs/nodemcuv2/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x4ec): first defined here
.pioenvs/nodemcuv2/src/pwm.c.o: In function `get_pwm_version':
pwm.c:(.irom0.text+0x4f4): multiple definition of `get_pwm_version'
.pioenvs/nodemcuv2/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x4f4): first defined here
.pioenvs/nodemcuv2/src/pwm.c.o: In function `set_pwm_debug_en':
pwm.c:(.irom0.text+0x4f8): multiple definition of `set_pwm_debug_en'
.pioenvs/nodemcuv2/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x4f8): first defined here
collect2: error: ld returned 1 exit status
*** [.pioenvs/nodemcuv2/firmware.elf] Error 1
====================================================== [ERROR] Took 12.75 seconds ======================================================

Processing d1_mini (platform: espressif8266; board: d1_mini; framework: arduino)
-----------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/d1_mini.html
PLATFORM: Espressif 8266 > WeMos D1 R2 & mini
HARDWARE: ESP8266 80MHz 80KB RAM (4MB Flash)
Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 29 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <EEPROM> 1.0
|-- <ArduinoOTA> 1.0
|   |-- <ESP8266mDNS>
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <WifiManager> 0.14
|   |-- <DNSServer> 1.1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WebServer> 1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266mDNS>
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WebServer> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WiFi> 1.0
Compiling .pioenvs/d1_mini/lib6e8/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o
Compiling .pioenvs/d1_mini/lib6e8/ESP8266WiFi/ESP8266WiFiScan.cpp.o
Compiling .pioenvs/d1_mini/lib6e8/ESP8266WiFi/WiFiClient.cpp.o
Compiling .pioenvs/d1_mini/lib6e8/ESP8266WiFi/WiFiClientSecure.cpp.o
Compiling .pioenvs/d1_mini/lib6e8/ESP8266WiFi/WiFiServer.cpp.o
Compiling .pioenvs/d1_mini/lib6e8/ESP8266WiFi/WiFiServerSecure.cpp.o
Compiling .pioenvs/d1_mini/lib6e8/ESP8266WiFi/WiFiUdp.cpp.o
Compiling .pioenvs/d1_mini/lib628/ESP8266mDNS/ESP8266mDNS.cpp.o
Compiling .pioenvs/d1_mini/lib04c/ArduinoOTA/ArduinoOTA.cpp.o
Compiling .pioenvs/d1_mini/lib71c/DNSServer/DNSServer.cpp.o
Archiving .pioenvs/d1_mini/lib6e8/libESP8266WiFi.a
Indexing .pioenvs/d1_mini/lib6e8/libESP8266WiFi.a
Compiling .pioenvs/d1_mini/lib774/ESP8266WebServer/ESP8266WebServer.cpp.o
Archiving .pioenvs/d1_mini/lib04c/libArduinoOTA.a
Archiving .pioenvs/d1_mini/lib71c/libDNSServer.a
Indexing .pioenvs/d1_mini/lib71c/libDNSServer.a
Indexing .pioenvs/d1_mini/lib04c/libArduinoOTA.a
Compiling .pioenvs/d1_mini/lib774/ESP8266WebServer/ESP8266WebServerSecure.cpp.o
Archiving .pioenvs/d1_mini/lib628/libESP8266mDNS.a
Indexing .pioenvs/d1_mini/lib628/libESP8266mDNS.a
Compiling .pioenvs/d1_mini/lib774/ESP8266WebServer/Parsing.cpp.o
Compiling .pioenvs/d1_mini/lib774/ESP8266WebServer/detail/mimetable.cpp.o
Compiling .pioenvs/d1_mini/libc13/WifiManager_ID567/WiFiManager.cpp.o
Archiving .pioenvs/d1_mini/libFrameworkArduinoVariant.a
Indexing .pioenvs/d1_mini/libFrameworkArduinoVariant.a
Compiling .pioenvs/d1_mini/FrameworkArduino/Esp-version.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/Esp.cpp.o
Archiving .pioenvs/d1_mini/lib774/libESP8266WebServer.a
Indexing .pioenvs/d1_mini/lib774/libESP8266WebServer.a
Compiling .pioenvs/d1_mini/FrameworkArduino/FS.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/FunctionalInterrupt.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/HardwareSerial.cpp.o
Archiving .pioenvs/d1_mini/libc13/libWifiManager_ID567.a
Compiling .pioenvs/d1_mini/FrameworkArduino/IPAddress.cpp.o
Indexing .pioenvs/d1_mini/libc13/libWifiManager_ID567.a
Compiling .pioenvs/d1_mini/FrameworkArduino/MD5Builder.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/Print.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/Schedule.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/Stream.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/StreamString.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/Tone.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/Updater.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/WMath.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/WString.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/abi.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/base64.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/cbuf.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/cont.S.o
Compiling .pioenvs/d1_mini/FrameworkArduino/cont_util.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/core_esp8266_eboot_command.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/core_esp8266_flash_utils.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/core_esp8266_i2s.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/core_esp8266_main.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/core_esp8266_noniso.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/core_esp8266_phy.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/core_esp8266_postmortem.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/core_esp8266_si2c.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/core_esp8266_timer.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/core_esp8266_wiring.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/core_esp8266_wiring_analog.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/core_esp8266_wiring_digital.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/core_esp8266_wiring_pulse.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/core_esp8266_wiring_pwm.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/core_esp8266_wiring_shift.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/debug.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/heap.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/libb64/cdecode.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/libb64/cencode.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/libc_replacements.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/pgmspace.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/sntp-lwip2.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/spiffs/spiffs_cache.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/spiffs/spiffs_check.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/spiffs/spiffs_gc.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/spiffs/spiffs_hydrogen.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/spiffs/spiffs_nucleus.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/spiffs_api.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/spiffs_hal.cpp.o
Compiling .pioenvs/d1_mini/FrameworkArduino/time.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/uart.c.o
Compiling .pioenvs/d1_mini/FrameworkArduino/umm_malloc/umm_malloc.c.o
Archiving .pioenvs/d1_mini/libFrameworkArduino.a
Indexing .pioenvs/d1_mini/libFrameworkArduino.a
Linking .pioenvs/d1_mini/firmware.elf
.pioenvs/d1_mini/src/pwm.c.o: In function `pwm_start':
pwm.c:(.irom0.text+0x2a0): multiple definition of `pwm_start'
.pioenvs/d1_mini/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x2a0): first defined here
.pioenvs/d1_mini/src/pwm.c.o: In function `pwm_set_duty':
pwm.c:(.irom0.text+0x344): multiple definition of `pwm_set_duty'
.pioenvs/d1_mini/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x344): first defined here
.pioenvs/d1_mini/src/pwm.c.o: In function `pwm_get_duty':
pwm.c:(.irom0.text+0x364): multiple definition of `pwm_get_duty'
.pioenvs/d1_mini/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x364): first defined here
.pioenvs/d1_mini/src/pwm.c.o: In function `pwm_set_period':
pwm.c:(.irom0.text+0x384): multiple definition of `pwm_set_period'
.pioenvs/d1_mini/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x384): first defined here
.pioenvs/d1_mini/src/pwm.c.o: In function `pwm_init':
pwm.c:(.irom0.text+0x3c4): multiple definition of `pwm_init'
.pioenvs/d1_mini/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x3c4): first defined here
.pioenvs/d1_mini/src/pwm.c.o: In function `pwm_get_period':
pwm.c:(.irom0.text+0x4ec): multiple definition of `pwm_get_period'
.pioenvs/d1_mini/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x4ec): first defined here
.pioenvs/d1_mini/src/pwm.c.o: In function `get_pwm_version':
pwm.c:(.irom0.text+0x4f4): multiple definition of `get_pwm_version'
.pioenvs/d1_mini/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x4f4): first defined here
.pioenvs/d1_mini/src/pwm.c.o: In function `set_pwm_debug_en':
pwm.c:(.irom0.text+0x4f8): multiple definition of `set_pwm_debug_en'
.pioenvs/d1_mini/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x4f8): first defined here
collect2: error: ld returned 1 exit status
*** [.pioenvs/d1_mini/firmware.elf] Error 1
====================================================== [ERROR] Took 10.92 seconds ======================================================

Processing esp12 (platform: espressif8266; board: esp12e; framework: arduino)
-----------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/esp12e.html
PLATFORM: Espressif 8266 > Espressif ESP8266 ESP-12E
HARDWARE: ESP8266 80MHz 80KB RAM (4MB Flash)
Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 29 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ArduinoOTA> 1.0
|   |-- <ESP8266mDNS>
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <WifiManager> 0.14
|   |-- <DNSServer> 1.1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WebServer> 1.0
|   |   |-- <ESP8266WiFi> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <EEPROM> 1.0
|-- <ESP8266mDNS>
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WebServer> 1.0
|   |-- <ESP8266WiFi> 1.0
|-- <ESP8266WiFi> 1.0
Compiling .pioenvs/esp12/src/Generic_RGB_Light.cpp.o
Compiling .pioenvs/esp12/src/pwm.c.o
src/pwm.c: In function '_pwm_phases_prep':
src/pwm.c:212:11: warning: unused variable 'off_mask' [-Wunused-variable]
uint16_t off_mask = 0;
^
Compiling .pioenvs/esp12/lib6e8/ESP8266WiFi/ESP8266WiFi.cpp.o
Compiling .pioenvs/esp12/lib6e8/ESP8266WiFi/ESP8266WiFiAP.cpp.o
Compiling .pioenvs/esp12/lib6e8/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o
In file included from src/Generic_RGB_Light.cpp:10:0:
src/pwm.c: In function 'uint8_t _pwm_phases_prep(pwm_phase*)':
src/pwm.c:212:11: warning: unused variable 'off_mask' [-Wunused-variable]
uint16_t off_mask = 0;
^
src/Generic_RGB_Light.cpp: In function 'void convert_hue()':
src/Generic_RGB_Light.cpp:58:17: warning: right operand of comma operator has no effect [-Wunused-value]
hh /= 11850, 0;
^
Compiling .pioenvs/esp12/lib6e8/ESP8266WiFi/ESP8266WiFiMulti.cpp.o
Compiling .pioenvs/esp12/lib6e8/ESP8266WiFi/ESP8266WiFiSTA.cpp.o
src/Generic_RGB_Light.cpp: In function 'void setup()::__lambda1::_ZZ5setupENKUlvE0_clEv$isra$27()':
src/Generic_RGB_Light.cpp:403:14: warning: array subscript is above array bounds [-Warray-bounds]
rgb[3] = server.arg(i).toInt();
^
src/Generic_RGB_Light.cpp:437:84: warning: array subscript is above array bounds [-Warray-bounds]
current_rgb[0] = 0; current_rgb[1] = 0; current_rgb[2] = 0; current_rgb[3] = 0;
^
src/Generic_RGB_Light.cpp:439:90: warning: array subscript is above array bounds [-Warray-bounds]
current_rgb[0] = 255; current_rgb[1] = 255; current_rgb[2] = 255; current_rgb[3] = 255;
^
src/Generic_RGB_Light.cpp: In static member function 'static void std::_Function_handler<void(_ArgTypes ...), _Functor>::_M_invoke(const std::_Any_data&, _ArgTypes ...) [with _Functor = setup()::__lambda0; _ArgTypes = {}]':
src/Generic_RGB_Light.cpp:357:12: warning: 'button' may be used uninitialized in this function [-Wmaybe-uninitialized]
} else if (button == 4000) {
^
src/Generic_RGB_Light.cpp:321:9: note: 'button' was declared here
int button;
^
src/Generic_RGB_Light.cpp: In function 'void setup()::__lambda4::_ZZ5setupENKUlvE3_clEv$isra$32()':
src/Generic_RGB_Light.cpp:535:82: warning: array subscript is above array bounds [-Warray-bounds]
current_rgb[0] = 0; current_rgb[1] = 0; current_rgb[2] = 0; current_rgb[3] = 0;
^
src/Generic_RGB_Light.cpp:537:22: warning: array subscript is above array bounds [-Warray-bounds]
current_rgb[3] = 255;
^
src/Generic_RGB_Light.cpp: In function 'void setup()':
src/Generic_RGB_Light.cpp:285:120: warning: array subscript is above array bounds [-Warray-bounds]
step_level[0] = rgb[0] / 150.0; step_level[1] = rgb[1] / 150.0; step_level[2] = rgb[2] / 150.0; step_level[3] = rgb[3] / 150.0;
^
src/Generic_RGB_Light.cpp:285:111: warning: array subscript is above array bounds [-Warray-bounds]
step_level[0] = rgb[0] / 150.0; step_level[1] = rgb[1] / 150.0; step_level[2] = rgb[2] / 150.0; step_level[3] = rgb[3] / 150.0;
^
Compiling .pioenvs/esp12/lib6e8/ESP8266WiFi/ESP8266WiFiScan.cpp.o
Compiling .pioenvs/esp12/lib6e8/ESP8266WiFi/WiFiClient.cpp.o
Compiling .pioenvs/esp12/lib6e8/ESP8266WiFi/WiFiClientSecure.cpp.o
Compiling .pioenvs/esp12/lib6e8/ESP8266WiFi/WiFiServer.cpp.o
Compiling .pioenvs/esp12/lib6e8/ESP8266WiFi/WiFiServerSecure.cpp.o
Compiling .pioenvs/esp12/lib6e8/ESP8266WiFi/WiFiUdp.cpp.o
Compiling .pioenvs/esp12/lib628/ESP8266mDNS/ESP8266mDNS.cpp.o
Compiling .pioenvs/esp12/lib04c/ArduinoOTA/ArduinoOTA.cpp.o
Compiling .pioenvs/esp12/lib71c/DNSServer/DNSServer.cpp.o
Archiving .pioenvs/esp12/lib6e8/libESP8266WiFi.a
Indexing .pioenvs/esp12/lib6e8/libESP8266WiFi.a
Compiling .pioenvs/esp12/lib774/ESP8266WebServer/ESP8266WebServer.cpp.o
Archiving .pioenvs/esp12/lib71c/libDNSServer.a
Indexing .pioenvs/esp12/lib71c/libDNSServer.a
Compiling .pioenvs/esp12/lib774/ESP8266WebServer/ESP8266WebServerSecure.cpp.o
Archiving .pioenvs/esp12/lib628/libESP8266mDNS.a
Indexing .pioenvs/esp12/lib628/libESP8266mDNS.a
Compiling .pioenvs/esp12/lib774/ESP8266WebServer/Parsing.cpp.o
Archiving .pioenvs/esp12/lib04c/libArduinoOTA.a
Indexing .pioenvs/esp12/lib04c/libArduinoOTA.a
Compiling .pioenvs/esp12/lib774/ESP8266WebServer/detail/mimetable.cpp.o
Compiling .pioenvs/esp12/libc13/WifiManager_ID567/WiFiManager.cpp.o
Compiling .pioenvs/esp12/lib085/EEPROM/EEPROM.cpp.o
Archiving .pioenvs/esp12/libFrameworkArduinoVariant.a
Indexing .pioenvs/esp12/libFrameworkArduinoVariant.a
Compiling .pioenvs/esp12/FrameworkArduino/Esp-version.cpp.o
Archiving .pioenvs/esp12/lib774/libESP8266WebServer.a
Indexing .pioenvs/esp12/lib774/libESP8266WebServer.a
Compiling .pioenvs/esp12/FrameworkArduino/Esp.cpp.o
Archiving .pioenvs/esp12/lib085/libEEPROM.a
Indexing .pioenvs/esp12/lib085/libEEPROM.a
Compiling .pioenvs/esp12/FrameworkArduino/FS.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/FunctionalInterrupt.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/HardwareSerial.cpp.o
Archiving .pioenvs/esp12/libc13/libWifiManager_ID567.a
Indexing .pioenvs/esp12/libc13/libWifiManager_ID567.a
Compiling .pioenvs/esp12/FrameworkArduino/IPAddress.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/MD5Builder.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/Print.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/Schedule.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/Stream.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/StreamString.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/Tone.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/Updater.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/WMath.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/WString.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/abi.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/base64.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/cbuf.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/cont.S.o
Compiling .pioenvs/esp12/FrameworkArduino/cont_util.c.o
Compiling .pioenvs/esp12/FrameworkArduino/core_esp8266_eboot_command.c.o
Compiling .pioenvs/esp12/FrameworkArduino/core_esp8266_flash_utils.c.o
Compiling .pioenvs/esp12/FrameworkArduino/core_esp8266_i2s.c.o
Compiling .pioenvs/esp12/FrameworkArduino/core_esp8266_main.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/core_esp8266_noniso.c.o
Compiling .pioenvs/esp12/FrameworkArduino/core_esp8266_phy.c.o
Compiling .pioenvs/esp12/FrameworkArduino/core_esp8266_postmortem.c.o
Compiling .pioenvs/esp12/FrameworkArduino/core_esp8266_si2c.c.o
Compiling .pioenvs/esp12/FrameworkArduino/core_esp8266_timer.c.o
Compiling .pioenvs/esp12/FrameworkArduino/core_esp8266_wiring.c.o
Compiling .pioenvs/esp12/FrameworkArduino/core_esp8266_wiring_analog.c.o
Compiling .pioenvs/esp12/FrameworkArduino/core_esp8266_wiring_digital.c.o
Compiling .pioenvs/esp12/FrameworkArduino/core_esp8266_wiring_pulse.c.o
Compiling .pioenvs/esp12/FrameworkArduino/core_esp8266_wiring_pwm.c.o
Compiling .pioenvs/esp12/FrameworkArduino/core_esp8266_wiring_shift.c.o
Compiling .pioenvs/esp12/FrameworkArduino/debug.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/heap.c.o
Compiling .pioenvs/esp12/FrameworkArduino/libb64/cdecode.c.o
Compiling .pioenvs/esp12/FrameworkArduino/libb64/cencode.c.o
Compiling .pioenvs/esp12/FrameworkArduino/libc_replacements.c.o
Compiling .pioenvs/esp12/FrameworkArduino/pgmspace.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/sntp-lwip2.c.o
Compiling .pioenvs/esp12/FrameworkArduino/spiffs/spiffs_cache.c.o
Compiling .pioenvs/esp12/FrameworkArduino/spiffs/spiffs_check.c.o
Compiling .pioenvs/esp12/FrameworkArduino/spiffs/spiffs_gc.c.o
Compiling .pioenvs/esp12/FrameworkArduino/spiffs/spiffs_hydrogen.c.o
Compiling .pioenvs/esp12/FrameworkArduino/spiffs/spiffs_nucleus.c.o
Compiling .pioenvs/esp12/FrameworkArduino/spiffs_api.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/spiffs_hal.cpp.o
Compiling .pioenvs/esp12/FrameworkArduino/time.c.o
Compiling .pioenvs/esp12/FrameworkArduino/uart.c.o
Compiling .pioenvs/esp12/FrameworkArduino/umm_malloc/umm_malloc.c.o
Archiving .pioenvs/esp12/libFrameworkArduino.a
Indexing .pioenvs/esp12/libFrameworkArduino.a
Linking .pioenvs/esp12/firmware.elf
.pioenvs/esp12/src/pwm.c.o: In function `pwm_start':
pwm.c:(.irom0.text+0x2a0): multiple definition of `pwm_start'
.pioenvs/esp12/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x2a0): first defined here
.pioenvs/esp12/src/pwm.c.o: In function `pwm_set_duty':
pwm.c:(.irom0.text+0x344): multiple definition of `pwm_set_duty'
.pioenvs/esp12/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x344): first defined here
.pioenvs/esp12/src/pwm.c.o: In function `pwm_get_duty':
pwm.c:(.irom0.text+0x364): multiple definition of `pwm_get_duty'
.pioenvs/esp12/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x364): first defined here
.pioenvs/esp12/src/pwm.c.o: In function `pwm_set_period':
pwm.c:(.irom0.text+0x384): multiple definition of `pwm_set_period'
.pioenvs/esp12/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x384): first defined here
.pioenvs/esp12/src/pwm.c.o: In function `pwm_init':
pwm.c:(.irom0.text+0x3c4): multiple definition of `pwm_init'
.pioenvs/esp12/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x3c4): first defined here
.pioenvs/esp12/src/pwm.c.o: In function `pwm_get_period':
pwm.c:(.irom0.text+0x4ec): multiple definition of `pwm_get_period'
.pioenvs/esp12/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x4ec): first defined here
.pioenvs/esp12/src/pwm.c.o: In function `get_pwm_version':
pwm.c:(.irom0.text+0x4f4): multiple definition of `get_pwm_version'
.pioenvs/esp12/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x4f4): first defined here
.pioenvs/esp12/src/pwm.c.o: In function `set_pwm_debug_en':
pwm.c:(.irom0.text+0x4f8): multiple definition of `set_pwm_debug_en'
.pioenvs/esp12/src/Generic_RGB_Light.cpp.o:Generic_RGB_Light.cpp:(.irom0.text+0x4f8): first defined here
collect2: error: ld returned 1 exit status
*** [.pioenvs/esp12/firmware.elf] Error 1
====================================================== [ERROR] Took 12.22 seconds ======================================================

=============================================================== [SUMMARY] ===============================================================
Environment nodemcuv2   [ERROR]
Environment d1_mini     [ERROR]
Environment esp12       [ERROR]
====================================================== [ERROR] Took 35.89 seconds ======================================================
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.

WS2812 Hue ring - black = white

ESP8266 Node MCU v3 board

when using entertainment room, black colors are not dimmed, instead they turn full white

is this as expected?

Color conversion for WS2812 (xy to rgb)

I was wondering if there was an intention for the current setup in the sketch - I've changed this for me, but maybe somebody is also looking for similar issue...

What I'm talking about: set a color to 0 saturation and full brightnes in the hue app and you'll see (almost) white but not with the full bright.

Change Color Order

Is it possible to change the color order in any of the sketches? I have tried the SK6812 and WS2812 Sketches and I can't seem to find an easy way to change the color order. I am finding the my Red and Green are exactly opposite each other. So, setting the light color to green gives me total red and red gives me total green. Blue is correct. I have tried reversing the "RGBColor red" and "RGBColor green" and that doesn't seem to change anything. Any assistance would be appreciated.

RGBW Hue Ring?

Any chance someone could add the FW that changes the original Hue Ring code from RGB to RGBW?

BUG - Entertainment causes flashing white

Wemos D1 Mini
WS2812 generic led strip

when using entertainment, at a random time the leds start pulsing white.
controls keep working, turning the leds or room of turns off the leds but the pulsing stays.

unplugging and plugging back in seems to be to only way to resolve this

Hue app reflects the pulsing with on / off

Arduino OTA not working, cannot change led count

The Arduino OTA is not finding my SK6812 Lightstrip anymore. So i need to hook up the nodemcu directly to the computer again.
Also if i change any variable like ledcount, the change gets ignored (cause it loads the settings from the json, how do i delete the setting store?)

Multiplier has to be at least 1 to get a light.

After flashing my wemos to light version 3.0 with the ws2812b sketch, I had to set the red, green and blue multiplier to at least 1 to get any light out of the strip and to 100 to get full brightness. Shouldn’t this be default values, set in the code?

ESP8266 Library Version?

I don't see anything listed about which version of the esp8266 library we should be using when building sketches for DIY lights. If there is a recommendation or a non-recommended version, I think it would be helpful to list. Even it if it is just what version it was developed on, it would be helpful in debugging purposes. Thanks!!! Love the project, keep up the very excellent and very appreciated work!

Generic_Dimmable_Light pin can not be changed

hy I use the Generic_Dimmable_Light with the following board.

https://www.esp8266.com/viewtopic.php?f=13&t=2929

  For this I need a control of the GPIO 13. my setup looks like this.

#define

use_hardware_switch false // To control on / off state and brightness using GPIO / pushbutton, set this value to true.
// For GPIO based on / off and brightness control, the following is GPIO pins to ground using 10k resistor
#define button1_pin 4 // on and brightness up
#define button2_pin 5 // off and brightness down

// define pins
#define LIGHTS_COUNT 1
uint8_t pins [LIGHTS_COUNT] = {13};

However, the GIPO 0 is addressed. no matter which pin I specify, only the GPIO 0 will be activated.

Generic onoff arduino

Uploaded to a wemos d1 mini, connected to a 4relay board, added the esp to the diyhue bridge (with the hue official app) but the realtime status is a mess.. when i try to turn on One of the four output it do it but after few second all the 4 “bulbs “ change state and there is no way to know the real state of them, useless.
I’m doing something wrong?
Also i need to change the logic on how the relay works (inverting the default state in off) because now when i powered it up it starts by turning on all the 4relays

ESP8266(Nodemcu 1.0) Generic_RGB_Light Pin D3 bug

Hello,
i think there is a problem with the pin D3 (GPIO 0).
When setting pin d3 as output for the strip
pins[] = {D1,D2,D3}; in line 37 the output of the pin stays high, even when the strip is turned of using the hue app.
The other pins are working fine but pin d3 stays at 3.3v.

Travis compiled firmware not working

When i update the light using firmware from the repo the light is connecting to wifi but the light webserver is not responding, and the only way to recover the light is to flash it using USB port.

Automatic upgrade future is implemented using /lights path of the hue emulator.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.