platformio / platform-espressif8266

Espressif 8266: development platform for PlatformIO
https://registry.platformio.org/platforms/platformio/espressif8266
Apache License 2.0
323 stars 219 forks source link

error: 'class WiFiUDP' has no member named 'beginMulticast' #188

Closed spieker closed 4 years ago

spieker commented 4 years ago

I want to use fauxmoESP on a Node MCU board. In the Arduino IDE this works without any issues, however, when compiling the same code in PlatformIO, I get the following error:

Compiling .pio/build/nodemcuv2/FrameworkArduino/FunctionalInterrupt.cpp.o
Compiling .pio/build/nodemcuv2/FrameworkArduino/HardwareSerial.cpp.o
Archiving .pio/build/nodemcuv2/libbee/libWiFi_ID870.a
Indexing .pio/build/nodemcuv2/libbee/libWiFi_ID870.a
~/.platformio/lib/FauxmoESP_ID1303/src/fauxmoESP.cpp: In member function 'void fauxmoESP::enable(bool)':
~/.platformio/lib/FauxmoESP_ID1303/src/fauxmoESP.cpp:520:18: error: 'class WiFiUDP' has no member named 'beginMulticast'
             _udp.beginMulticast(WiFi.localIP(), FAUXMO_UDP_MULTICAST_IP, FAUXMO_UDP_MULTICAST_PORT);
                  ^
Compiling .pio/build/nodemcuv2/FrameworkArduino/IPAddress.cpp.o
Compiling .pio/build/nodemcuv2/FrameworkArduino/MD5Builder.cpp.o
*** [.pio/build/nodemcuv2/libb2a/FauxmoESP_ID1303/fauxmoESP.cpp.o] Error 1
; platformio.ini

[env:nodemcuv2]
; platform = espressif8266
platform = https://github.com/platformio/platform-espressif8266.git#master
board = nodemcuv2
framework = arduino
upload_port = /dev/cu.wchusbserial1440
// main.cpp

#include <Arduino.h>

#ifdef ESP32
#include <WiFi.h>
#else
#include <ESP8266WiFi.h>
#endif

#include "fauxmoESP.h"

#define WL_SSID "***"
#define WL_PASS "***"

fauxmoESP fauxmo;

void wifiSetup() {
  WiFi.mode(WIFI_STA);

  // Connect
  Serial.printf("[WIFI] Connecting to %s ", WL_SSID);
  WiFi.begin(WL_SSID, WL_PASS);

  // Wait to be connected
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(100);
  }
  Serial.println();

  // Connected
  Serial.printf("[WIFI] Client Modus, SSID: %s, IP Adresse: %s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str());
}

void setup() {
  // Setup serial
  Serial.begin(SERIAL_SPEED);
  Serial.println();
  Serial.flush();

  // Connect to WiFi
  wifiSetup();

  // Setup Fauxmo to communicate with Alexa
  fauxmo.createServer(true);
  fauxmo.setPort(80);
  fauxmo.enable(true);

  // ...
}

void loop() {
  fauxmo.handle();
}

Are there any suggestions on how I can make it work in PlatformIO?

valeros commented 4 years ago

Cannot reproduce with the latest PlatformIO and the upstream platform-espressif8266. Please reopen if you still need any help.