peter-h
February 18, 2023, 9:41am
1
Hallo
Mein Name ist Peter, ich bin neu hier und habe noch keine große Erfahrung mit Arduino
Ich hätte eine Frage, ich hoffe ich bin im richtigen Bereich und man kann mir helfen
Ich habe mir eine Wortuhr gebaut aus dem Microcontroller Forum
Die Sketche wurden zur Verfügung gestellt.
Bei der Installation von Blink hatte ich schon Probleme (ich hatte die Bibliotheken vergessen)
Ich bin noch beim Lernen, aber das funktioniert jetzt einwandfrei.
Der Sketch CWC bringt immer eine Fehlermeldung und ich habe schon Stunden im Internet verbracht und vieles probiert, ich bringe es nicht zum laufen
Es wäre super wenn mich jemand unterstützen könnte
Die Fehlermeldung ist:
exit status 1
´class fauxmoESP´ has not member named ´onSetState´
Hier der Sketch
Gruß Peter
#include <fauxmoESP.h>
#include <Arduino.h>
#include <functional>
#include "WifiControl.h"
#include "BrowserGui.h"
#include "DnsControl.h"
#include "LedControl.h"
#include "Timecontrol.h"
#include "CallbackFunction.h"
#include "AmbientLightControl.h"
#include "Storage.h"
#include <FastLED.h>
#include <fauxmoESP.h>
#define RETRY_TIME 10*60*1000 //10 minutes in milliseconds
#define CWC_VERSION 1.1
bool ClockOn = true;
//if alexa received an order to switch the state
bool SwitchClockState = false;
static TimeControl& timecontrol = TimeControl::getInstance();
static WifiControl& wificontrol = WifiControl::getInstance();
static BrowserGui& browsergui = BrowserGui::getInstance();
static DnsControl& dnscontrol = DnsControl::getInstance();
static LedControl& ledcontrol = LedControl::getInstance();
static AmbientLightControl& ambcontrol = AmbientLightControl::getInstance();
static fauxmoESP fauxmo;
static long lastTry = 0;
/* indicator, if one time has passed, then update leds */
uint8_t last_minutes = 0;
uint8_t last_hours = 0;
uint8_t last_seconds = 0;
void setup()
{
Serial.begin(115200);
Serial.println("");
Serial.print("CWC Version: ");
Serial.println(CWC_VERSION);
storageInit();
ambcontrol.start();
ledcontrol.start();
if (!wificontrol.connectWifi())
{
if (!wificontrol.connectWifi())
{
Serial.println("Save retry time");
lastTry = millis();
}
}
browsergui.start();
timecontrol.start();
dnscontrol.start();
fauxmo.addDevice("Uhr");
fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state)
{
if (state)
{
ClockOn = true;
}
else
{
ClockOn = false;
}
SwitchClockState = true;
});
fauxmo.onGetState([](unsigned char device_id, const char * device_name)
{
return ClockOn;
});
fauxmo.enable(true);
}
void loop()
{
uint8_t hours = 0;
uint8_t minutes = 0;
uint8_t seconds = 0;
browsergui.serverLoop();
dnscontrol.serverLoop();
fauxmo.handle();
if (wificontrol.isWifiConnected())
{
timecontrol.getTime(&hours, &minutes, &seconds);
if (last_minutes != minutes || last_hours != hours)
{
Serial.print("Time: ");
Serial.print(hours);
Serial.print(":");
Serial.println(minutes);
last_minutes = minutes;
last_hours = hours;
ledcontrol.setTime(hours, minutes);
}
if (last_seconds != seconds)
{
last_seconds = seconds;
ambcontrol.updateBrightness();
}
}
else
{
Serial.print("No WIFI. Reconnect in ");
Serial.println((RETRY_TIME - (millis() - lastTry)) / 1000);
if ((millis() - lastTry) > RETRY_TIME)
{
lastTry = millis();
wificontrol.connectWifi();
}
}
if (true == SwitchClockState)
{
SwitchClockState = false;
if (true == ClockOn)
{
ledcontrol.unsetTemporaryColor();
}
else
{
CRGB newColor = 0;
ledcontrol.setTemporaryColor(newColor);
}
}
}
Tommy56
February 18, 2023, 9:51am
2
Den Sketch sollen wir uns jetzt in den Tiefen des Web suchen? Dein Link führt zum Verkauf einer Domain.
Am Besten wird Dir da wohl der Autor der Sketche helfen können.
Gruß Tommy
peter-h
February 18, 2023, 10:22am
4
Hallo
Ich hier der Sketch
#include <fauxmoESP.h>
#include <Arduino.h>
#include <functional>
#include "WifiControl.h"
#include "BrowserGui.h"
#include "DnsControl.h"
#include "LedControl.h"
#include "Timecontrol.h"
#include "CallbackFunction.h"
#include "AmbientLightControl.h"
#include "Storage.h"
#include <FastLED.h>
#include <fauxmoESP.h>
#define RETRY_TIME 10*60*1000 //10 minutes in milliseconds
#define CWC_VERSION 1.1
bool ClockOn = true;
//if alexa received an order to switch the state
bool SwitchClockState = false;
static TimeControl& timecontrol = TimeControl::getInstance();
static WifiControl& wificontrol = WifiControl::getInstance();
static BrowserGui& browsergui = BrowserGui::getInstance();
static DnsControl& dnscontrol = DnsControl::getInstance();
static LedControl& ledcontrol = LedControl::getInstance();
static AmbientLightControl& ambcontrol = AmbientLightControl::getInstance();
static fauxmoESP fauxmo;
static long lastTry = 0;
/* indicator, if one time has passed, then update leds */
uint8_t last_minutes = 0;
uint8_t last_hours = 0;
uint8_t last_seconds = 0;
void setup()
{
Serial.begin(115200);
Serial.println("");
Serial.print("CWC Version: ");
Serial.println(CWC_VERSION);
storageInit();
ambcontrol.start();
ledcontrol.start();
if (!wificontrol.connectWifi())
{
if (!wificontrol.connectWifi())
{
Serial.println("Save retry time");
lastTry = millis();
}
}
browsergui.start();
timecontrol.start();
dnscontrol.start();
fauxmo.addDevice("Uhr");
fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state)
{
if (state)
{
ClockOn = true;
}
else
{
ClockOn = false;
}
SwitchClockState = true;
});
fauxmo.onGetState([](unsigned char device_id, const char * device_name)
{
return ClockOn;
});
fauxmo.enable(true);
}
void loop()
{
uint8_t hours = 0;
uint8_t minutes = 0;
uint8_t seconds = 0;
browsergui.serverLoop();
dnscontrol.serverLoop();
fauxmo.handle();
if (wificontrol.isWifiConnected())
{
timecontrol.getTime(&hours, &minutes, &seconds);
if (last_minutes != minutes || last_hours != hours)
{
Serial.print("Time: ");
Serial.print(hours);
Serial.print(":");
Serial.println(minutes);
last_minutes = minutes;
last_hours = hours;
ledcontrol.setTime(hours, minutes);
}
if (last_seconds != seconds)
{
last_seconds = seconds;
ambcontrol.updateBrightness();
}
}
else
{
Serial.print("No WIFI. Reconnect in ");
Serial.println((RETRY_TIME - (millis() - lastTry)) / 1000);
if ((millis() - lastTry) > RETRY_TIME)
{
lastTry = millis();
wificontrol.connectWifi();
}
}
if (true == SwitchClockState)
{
SwitchClockState = false;
if (true == ClockOn)
{
ledcontrol.unsetTemporaryColor();
}
else
{
CRGB newColor = 0;
ledcontrol.setTemporaryColor(newColor);
}
}
}
Tommy56
February 18, 2023, 10:26am
5
onSetState ist in der aktuellen Version von fauxmoESP vorhanden.
Entweder Du hast die falsche Version oder die Lib falsch installiert.
Gruß Tommy
peter-h
February 18, 2023, 2:38pm
6
Den einen Fehler habe ich weg bekommen leider geht es mit Fehler 2 weiter.
Der Ersteller des Sketches gibt leider keine Antwort mehr der Beitrag ist leider schon älter.
Kann sich bitte jemand mal den Sketch anschauen und mir Tipps geben.
Und daran Denken ich bin Anfänger, da muss man mehr erklären
Im Voraus vielen Dank
Gruß Peter
state was not declaired in this scope, did your mean static
#include <SpacebrewYun.h>
#include <Arduino.h>
#include <functional>
#include "WifiControl.h"
#include "BrowserGui.h"
#include "DnsControl.h"
#include "LedControl.h"
#include "Timecontrol.h"
#include "CallbackFunction.h"
#include "AmbientLightControl.h"
#include "Storage.h"
#include <FastLED.h>
#define RETRY_TIME 10*60*1000 //10 minutes in milliseconds
#define CWC_VERSION 1.1
bool ClockOn = true;
//if alexa received an order to switch the state
bool SwitchClockState = false;
static TimeControl& timecontrol = TimeControl::getInstance();
static WifiControl& wificontrol = WifiControl::getInstance();
static BrowserGui& browsergui = BrowserGui::getInstance();
static DnsControl& dnscontrol = DnsControl::getInstance();
static LedControl& ledcontrol = LedControl::getInstance();
static AmbientLightControl& ambcontrol = AmbientLightControl::getInstance();
static long lastTry = 0;
/* indicator, if one time has passed, then update leds */
uint8_t last_minutes = 0;
uint8_t last_hours = 0;
uint8_t last_seconds = 0;
void setup()
{
Serial.begin(115200);
Serial.println("");
Serial.print("CWC Version: ");
Serial.println(CWC_VERSION);
storageInit();
ambcontrol.start();
ledcontrol.start();
if (!wificontrol.connectWifi())
{
if (!wificontrol.connectWifi())
{
Serial.println("Save retry time");
lastTry = millis();
}
}
browsergui.start();
timecontrol.start();
dnscontrol.start();
{
if (state)
{
ClockOn = true;
}
else
{
ClockOn = false;
}
SwitchClockState = true;
});
{
return ClockOn;
});
fauxmo.enable(true);
}
void loop()
{
uint8_t hours = 0;
uint8_t minutes = 0;
uint8_t seconds = 0;
browsergui.serverLoop();
dnscontrol.serverLoop();
if (wificontrol.isWifiConnected())
{
timecontrol.getTime(&hours, &minutes, &seconds);
if (last_minutes != minutes || last_hours != hours)
{
Serial.print("Time: ");
Serial.print(hours);
Serial.print(":");
Serial.println(minutes);
last_minutes = minutes;
last_hours = hours;
ledcontrol.setTime(hours, minutes);
}
if (last_seconds != seconds)
{
last_seconds = seconds;
ambcontrol.updateBrightness();
}
}
else
{
Serial.print("No WIFI. Reconnect in ");
Serial.println((RETRY_TIME - (millis() - lastTry)) / 1000);
if ((millis() - lastTry) > RETRY_TIME)
{
lastTry = millis();
wificontrol.connectWifi();
}
}
if (true == SwitchClockState)
{
SwitchClockState = false;
if (true == ClockOn)
{
ledcontrol.unsetTemporaryColor();
}
else
{
CRGB newColor = 0;
ledcontrol.setTemporaryColor(newColor);
}
}
}
Dann solltest du dich mal fragen, wo du diese Variable "state" definiert und mit Daten gefüllt hast.
Tommy56
February 18, 2023, 3:31pm
8
In dem gezeigten Code nirgendwo.
Gruß Tommy
Vermutlich dauert die Suche deshalb so lange.
peter-h
February 18, 2023, 3:49pm
10
Ich habe das doch nicht selbst gemacht, sag mir bitte was ich tun muss genau.
Bitte jeden Schritt
Vielen Dank
Wir kennen den Sketch nicht, wir kennen die Quelle nicht.
Wie sollen wir das was zu sagen.
Ok, wir können raten, aber hilft das ?
Ach....wenn du natürlich nur einen zerpflückten Sketch postest und verwendest, dann kann es auch nicht funktionieren.
Du darfst Anweisungen, die benötigt werden nicht einfach rauslöschen, und dann meinen, es ist alles gut.
peter-h
February 18, 2023, 5:09pm
12
Vielen Dank für die Antwort
Ich kann es nicht besser
Aber ich habe den Sketch so bekommen und ihn in Arduino geladen
Ich habe ihn dann aus Arduino kopiert fürs Forum kopieren und hier eingefügt
Hier nochmals der 2 Versuch mit der selben Vorgangsweise einer neu geladenen Version aus dem Microcontroller Forum. Sketch geladen Kopiert und eingefügt
Jetzt wieder die: class FauxmoESP no member named on Setstate Fehlermeldung
FauxmoESP wurde ihn verschiedenen Varianten über die Boardverwaltung installiert
Tut mir Leid das ich so viele Fragen stelle
Gruß Peter
#include <Arduino.h>
#include <functional>
#include "WifiControl.h"
#include "BrowserGui.h"
#include "DnsControl.h"
#include "LedControl.h"
#include "Timecontrol.h"
#include "CallbackFunction.h"
#include "AmbientLightControl.h"
#include "Storage.h"
#include <FastLED.h>
#include <fauxmoESP.h>
#define RETRY_TIME 10*60*1000 //10 minutes in milliseconds
#define CWC_VERSION 1.1
bool ClockOn = true;
//if alexa received an order to switch the state
bool SwitchClockState = false;
static TimeControl& timecontrol = TimeControl::getInstance();
static WifiControl& wificontrol = WifiControl::getInstance();
static BrowserGui& browsergui = BrowserGui::getInstance();
static DnsControl& dnscontrol = DnsControl::getInstance();
static LedControl& ledcontrol = LedControl::getInstance();
static AmbientLightControl& ambcontrol = AmbientLightControl::getInstance();
static fauxmoESP fauxmo;
static long lastTry = 0;
/* indicator, if one time has passed, then update leds */
uint8_t last_minutes = 0;
uint8_t last_hours = 0;
uint8_t last_seconds = 0;
uint8_t lastPrintSeconds = 0;
void setup()
{
Serial.begin(115200);
Serial.println("");
Serial.print("CWC Version: ");
Serial.println(CWC_VERSION);
storageInit();
ambcontrol.start();
ledcontrol.start();
if (!wificontrol.connectWifi())
{
if (!wificontrol.connectWifi())
{
Serial.println("Save retry time");
lastTry = millis();
}
}
browsergui.start();
timecontrol.start();
dnscontrol.start();
fauxmo.addDevice("Uhr");
fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state)
{
if (state)
{
ClockOn = true;
}
else
{
ClockOn = false;
}
SwitchClockState = true;
});
fauxmo.onGetState([](unsigned char device_id, const char * device_name)
{
return ClockOn;
});
fauxmo.enable(true);
}
void loop()
{
uint8_t hours = 0;
uint8_t minutes = 0;
uint8_t seconds = 0;
browsergui.serverLoop();
dnscontrol.serverLoop();
fauxmo.handle();
timecontrol.getTime(&hours, &minutes, &seconds);
if (wificontrol.isWifiConnected())
{
if (last_minutes != minutes || last_hours != hours)
{
Serial.print("Time: ");
Serial.print(hours);
Serial.print(":");
Serial.println(minutes);
last_minutes = minutes;
last_hours = hours;
ledcontrol.setTime(hours, minutes);
}
if (last_seconds != seconds)
{
last_seconds = seconds;
ambcontrol.updateBrightness();
}
}
else
{
if (lastPrintSeconds != seconds)
{
lastPrintSeconds = seconds;
Serial.print("No WIFI. Reconnect in ");
Serial.println((RETRY_TIME - (millis() - lastTry)) / 1000);
}
if ((millis() - lastTry) > RETRY_TIME)
{
lastTry = millis();
wificontrol.connectWifi();
}
}
if (true == SwitchClockState)
{
SwitchClockState = false;
if (true == ClockOn)
{
ledcontrol.unsetTemporaryColor();
}
else
{
CRGB newColor = 0;
ledcontrol.setTemporaryColor(newColor);
}
}
}
ist das ein ganz einfacher Tippfehler ?
List du auch mal was wir dir schreiben ?
Z.B. den Link aus Post#3 und auch den Post #5
Und warum zeigst du uns nicht die Quelle ?
Tommy56
February 18, 2023, 5:15pm
15
Wenn Du uns mal dem Link aus dem Mikrokontrollerforum, wo Du den runter lädst, gibst (das hatte ich Dir bereits in #2 geschrieben). könnten wir evtl. helfen.
Nochmal schreibe ich es nicht, dann musst Du halt Deinen Fehler behalten.
Gruß Tommy
peter-h
February 18, 2023, 5:43pm
16
Hallo und Entschuldigung
Bin etwas gestresst
Hier der Link Noch ne Wordclock - Mikrocontroller.net
Hie gibt es die ZIP Dateien mit allen Dateien
Bin dann mal weg, schönes Wochenende und Danke für die Geduld
Gruß Peter
Tommy56
February 18, 2023, 6:04pm
17
Welchen davon meinst Du? Den CWC.zip? Es gibt da mehrere.
Der CWC kann es eigentlich nicht sein, der enthält kein fauxmo.
Also irgendwie passen Deine Angaben nicht zusammen.
Entweder Du hast (wie behauptet den Sketch übernommen, dann ist das nicht der, den Du hier vorgestellt hast oder Du hast daran rum gebastelt und verheimlichst uns das.
Ich halte mich erst mal raus, das kommt mir alles komisch vor.
Gruß Tommy
Moko
February 18, 2023, 6:17pm
18
Das ist bestimmt die falsche Version.
Die richtige Versionsnummer ist nebenan angegeben.
Und nein, ich werde sie nicht raussuchen, wenn der TO dafür selber zu faul ist.
Immerhin hat er sich anscheinend nicht mal die Arbeit gemacht den Thread durchzulesen.
peter-h:
Bin etwas gestresst
Und warum soll es dir besser gehen, als deine Helfer.
system
Closed
August 17, 2023, 11:05pm
21
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.