Browse Source

Refactored defines

master
Torsten Stauder 5 years ago
parent
commit
16b526e9f9
  1. 252
      src/main.cpp

252
src/main.cpp

@ -1,12 +1,12 @@
// Define modules to compile: // Define modules to compile:
#define MQTT
#define FTP
//#define NEOPIXEL
#define MQTT_ENABLE
#define FTP_ENABLE
#define NEOPIXEL_ENABLE
#include <ESP32Encoder.h> #include <ESP32Encoder.h>
#include "Arduino.h" #include "Arduino.h"
#include <WiFi.h> #include <WiFi.h>
#ifdef FTP
#ifdef FTP_ENABLE
#include "ESP32FtpServer.h" #include "ESP32FtpServer.h"
#endif #endif
#include "Audio.h" #include "Audio.h"
@ -16,13 +16,13 @@
#include "esp_task_wdt.h" #include "esp_task_wdt.h"
#include <MFRC522.h> #include <MFRC522.h>
#include <Preferences.h> #include <Preferences.h>
#ifdef MQTT
#ifdef MQTT_ENABLE
#include <PubSubClient.h> #include <PubSubClient.h>
#endif #endif
#include <WebServer.h> #include <WebServer.h>
#ifdef NEOPIXEL
//#ifdef NEOPIXEL_ENABLE
#include <FastLED.h> #include <FastLED.h>
#endif
//#endif
#include "logmessages.h" #include "logmessages.h"
#include <ESPAsyncWebServer.h> #include <ESPAsyncWebServer.h>
#include "website.h" #include "website.h"
@ -80,11 +80,11 @@ char logBuf[160]; // Buffer for all log-messag
#define LED_PIN 12 #define LED_PIN 12
// Neopixel-configuration // Neopixel-configuration
#ifdef NEOPIXEL
//#ifdef NEOPIXEL_ENABLE
#define NUM_LEDS 24 // Configure number of LEDs here #define NUM_LEDS 24 // Configure number of LEDs here
#define CHIPSET WS2811 #define CHIPSET WS2811
#define COLOR_ORDER GRB #define COLOR_ORDER GRB
#endif
//#endif
// Track-Control // Track-Control
#define STOP 1 // Stop play #define STOP 1 // Stop play
@ -153,7 +153,7 @@ uint8_t nightLedBrightness = 2; // Brightness of Neopixe
// MQTT // MQTT
bool enableMqtt = true; bool enableMqtt = true;
#ifdef MQTT
#ifdef MQTT_ENABLE
uint8_t mqttFailCount = 3; // Number of times mqtt-reconnect is allowed to fail. If >= mqttFailCount to further reconnects take place uint8_t mqttFailCount = 3; // Number of times mqtt-reconnect is allowed to fail. If >= mqttFailCount to further reconnects take place
uint8_t const stillOnlineInterval = 60; // Interval 'I'm still alive' is sent via MQTT (in seconds) uint8_t const stillOnlineInterval = 60; // Interval 'I'm still alive' is sent via MQTT (in seconds)
#endif #endif
@ -176,14 +176,14 @@ uint16_t intervalToLongPress = 700; // Interval in ms to dis
// WiFi // WiFi
unsigned long wifiCheckLastTimestamp = 0; unsigned long wifiCheckLastTimestamp = 0;
// Neopixel // Neopixel
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
bool showLedError = false; bool showLedError = false;
bool showLedOk = false; bool showLedOk = false;
bool showPlaylistProgress = false; bool showPlaylistProgress = false;
bool showRewind = false; bool showRewind = false;
#endif #endif
// MQTT // MQTT
#ifdef MQTT
#ifdef MQTT_ENABLE
unsigned long lastOnlineTimestamp = 0; unsigned long lastOnlineTimestamp = 0;
#endif #endif
// RFID // RFID
@ -213,7 +213,7 @@ char ftpPassword[15] = "esp32"; // FTP-password
// MQTT-configuration // MQTT-configuration
char mqtt_server[16] = "192.168.2.43"; // IP-address of MQTT-server char mqtt_server[16] = "192.168.2.43"; // IP-address of MQTT-server
#ifdef MQTT
#ifdef MQTT_ENABLE
#define DEVICE_HOSTNAME "ESP32-Tonuino" // Name that that is used for MQTT #define DEVICE_HOSTNAME "ESP32-Tonuino" // Name that that is used for MQTT
static const char topicSleepCmnd[] PROGMEM = "Cmnd/Tonuino/Sleep"; static const char topicSleepCmnd[] PROGMEM = "Cmnd/Tonuino/Sleep";
static const char topicSleepState[] PROGMEM = "State/Tonuino/Sleep"; static const char topicSleepState[] PROGMEM = "State/Tonuino/Sleep";
@ -249,7 +249,7 @@ AsyncWebServer wServer(81);
SPIClass spiSD(HSPI); SPIClass spiSD(HSPI);
TaskHandle_t mp3Play; TaskHandle_t mp3Play;
TaskHandle_t rfid; TaskHandle_t rfid;
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
TaskHandle_t LED; TaskHandle_t LED;
#endif #endif
@ -257,7 +257,7 @@ TaskHandle_t rfid;
WebServer server(80); WebServer server(80);
// FTP // FTP
#ifdef FTP
#ifdef FTP_ENABLE
FtpServer ftpSrv; FtpServer ftpSrv;
#endif #endif
@ -266,7 +266,7 @@ WiFiClient wifiClient;
IPAddress myIP; IPAddress myIP;
// MQTT-helper // MQTT-helper
#ifdef MQTT
#ifdef MQTT_ENABLE
PubSubClient MQTTclient(wifiClient); PubSubClient MQTTclient(wifiClient);
#endif #endif
@ -314,7 +314,7 @@ uint8_t getRepeatMode(void);
void handleWifiSetup(); void handleWifiSetup();
void loggerNl(const char *str, const uint8_t logLevel); void loggerNl(const char *str, const uint8_t logLevel);
void logger(const char *str, const uint8_t logLevel); void logger(const char *str, const uint8_t logLevel);
#ifdef MQTT
#ifdef MQTT_ENABLE
bool publishMqtt(const char *topic, const char *payload, bool retained); bool publishMqtt(const char *topic, const char *payload, bool retained);
#endif #endif
void postHeartbeatViaMqtt(void); void postHeartbeatViaMqtt(void);
@ -517,7 +517,7 @@ void doButtonActions(void) {
/* Wrapper-functions for MQTT-publish */ /* Wrapper-functions for MQTT-publish */
#ifdef MQTT
#ifdef MQTT_ENABLE
bool publishMqtt(const char *topic, const char *payload, bool retained) { bool publishMqtt(const char *topic, const char *payload, bool retained) {
if (strcmp(topic, "") != 0) { if (strcmp(topic, "") != 0) {
if (MQTTclient.connected()) { if (MQTTclient.connected()) {
@ -657,14 +657,14 @@ void callback(const char *topic, const byte *payload, uint32_t length) {
if (strcmp(receivedString, "EOP") == 0) { if (strcmp(receivedString, "EOP") == 0) {
playProperties.sleepAfterPlaylist = true; playProperties.sleepAfterPlaylist = true;
loggerNl((char *) FPSTR(sleepTimerEOP), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(sleepTimerEOP), LOGLEVEL_NOTICE);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
return; return;
} else if (strcmp(receivedString, "EOT") == 0) { } else if (strcmp(receivedString, "EOT") == 0) {
playProperties.sleepAfterCurrentTrack = true; playProperties.sleepAfterCurrentTrack = true;
loggerNl((char *) FPSTR(sleepTimerEOT), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(sleepTimerEOT), LOGLEVEL_NOTICE);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
return; return;
@ -672,14 +672,14 @@ void callback(const char *topic, const byte *payload, uint32_t length) {
if (sleepTimerStartTimestamp) { if (sleepTimerStartTimestamp) {
sleepTimerStartTimestamp = 0; sleepTimerStartTimestamp = 0;
loggerNl((char *) FPSTR(sleepTimerStop), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(sleepTimerStop), LOGLEVEL_NOTICE);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
publishMqtt((char *) FPSTR(topicSleepState), 0, false); publishMqtt((char *) FPSTR(topicSleepState), 0, false);
return; return;
} else { } else {
loggerNl((char *) FPSTR(sleepTimerAlreadyStopped), LOGLEVEL_INFO); loggerNl((char *) FPSTR(sleepTimerAlreadyStopped), LOGLEVEL_INFO);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
return; return;
@ -688,7 +688,7 @@ void callback(const char *topic, const byte *payload, uint32_t length) {
sleepTimer = strtoul(receivedString, NULL, 10); sleepTimer = strtoul(receivedString, NULL, 10);
snprintf(logBuf, sizeof(logBuf) / sizeof(logBuf[0]), "%s: %lu Minute(n)", (char *) FPSTR(sleepTimerSetTo), sleepTimer); snprintf(logBuf, sizeof(logBuf) / sizeof(logBuf[0]), "%s: %lu Minute(n)", (char *) FPSTR(sleepTimerSetTo), sleepTimer);
loggerNl(logBuf, LOGLEVEL_NOTICE); loggerNl(logBuf, LOGLEVEL_NOTICE);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
@ -707,14 +707,14 @@ void callback(const char *topic, const byte *payload, uint32_t length) {
if (strcmp(receivedString, "OFF") == 0) { if (strcmp(receivedString, "OFF") == 0) {
lockControls = false; lockControls = false;
loggerNl((char *) FPSTR(allowButtons), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(allowButtons), LOGLEVEL_NOTICE);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
} else if (strcmp(receivedString, "ON") == 0) { } else if (strcmp(receivedString, "ON") == 0) {
lockControls = true; lockControls = true;
loggerNl((char *) FPSTR(lockButtons), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(lockButtons), LOGLEVEL_NOTICE);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
} }
@ -730,7 +730,7 @@ void callback(const char *topic, const byte *payload, uint32_t length) {
snprintf(rBuf, 2, "%u", getRepeatMode()); snprintf(rBuf, 2, "%u", getRepeatMode());
publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false); publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false);
loggerNl((char *) FPSTR(noPlaylistNotAllowedMqtt), LOGLEVEL_ERROR); loggerNl((char *) FPSTR(noPlaylistNotAllowedMqtt), LOGLEVEL_ERROR);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
} else { } else {
@ -741,7 +741,7 @@ void callback(const char *topic, const byte *payload, uint32_t length) {
snprintf(rBuf, 2, "%u", getRepeatMode()); snprintf(rBuf, 2, "%u", getRepeatMode());
publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false); publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false);
loggerNl((char *) FPSTR(modeRepeatNone), LOGLEVEL_INFO); loggerNl((char *) FPSTR(modeRepeatNone), LOGLEVEL_INFO);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
break; break;
@ -752,7 +752,7 @@ void callback(const char *topic, const byte *payload, uint32_t length) {
snprintf(rBuf, 2, "%u", getRepeatMode()); snprintf(rBuf, 2, "%u", getRepeatMode());
publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false); publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false);
loggerNl((char *) FPSTR(modeRepeatTrack), LOGLEVEL_INFO); loggerNl((char *) FPSTR(modeRepeatTrack), LOGLEVEL_INFO);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
break; break;
@ -763,7 +763,7 @@ void callback(const char *topic, const byte *payload, uint32_t length) {
snprintf(rBuf, 2, "%u", getRepeatMode()); snprintf(rBuf, 2, "%u", getRepeatMode());
publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false); publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false);
loggerNl((char *) FPSTR(modeRepeatPlaylist), LOGLEVEL_INFO); loggerNl((char *) FPSTR(modeRepeatPlaylist), LOGLEVEL_INFO);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
break; break;
@ -774,13 +774,13 @@ void callback(const char *topic, const byte *payload, uint32_t length) {
snprintf(rBuf, 2, "%u", getRepeatMode()); snprintf(rBuf, 2, "%u", getRepeatMode());
publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false); publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false);
loggerNl((char *) FPSTR(modeRepeatTracknPlaylist), LOGLEVEL_INFO); loggerNl((char *) FPSTR(modeRepeatTracknPlaylist), LOGLEVEL_INFO);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
break; break;
default: default:
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
snprintf(rBuf, 2, "%u", getRepeatMode()); snprintf(rBuf, 2, "%u", getRepeatMode());
@ -800,7 +800,7 @@ void callback(const char *topic, const byte *payload, uint32_t length) {
else { else {
snprintf(logBuf, sizeof(logBuf) / sizeof(logBuf[0]), "%s: %s", (char *) FPSTR(noValidTopic), topic); snprintf(logBuf, sizeof(logBuf) / sizeof(logBuf[0]), "%s: %s", (char *) FPSTR(noValidTopic), topic);
loggerNl(logBuf, LOGLEVEL_ERROR); loggerNl(logBuf, LOGLEVEL_ERROR);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
} }
@ -953,7 +953,7 @@ char ** returnPlaylistFromSD(File _fileOrDirectory) {
files = (char **) malloc(sizeof(char *) * 2); // +1 because [0] is used for number of elements; [1] -> [n] is used for payload files = (char **) malloc(sizeof(char *) * 2); // +1 because [0] is used for number of elements; [1] -> [n] is used for payload
if (files == NULL) { if (files == NULL) {
loggerNl((char *) FPSTR(unableToAllocateMemForPlaylist), LOGLEVEL_ERROR); loggerNl((char *) FPSTR(unableToAllocateMemForPlaylist), LOGLEVEL_ERROR);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
return NULL; return NULL;
@ -993,7 +993,7 @@ char ** returnPlaylistFromSD(File _fileOrDirectory) {
loggerNl((char *) FPSTR(reallocCalled), LOGLEVEL_DEBUG); loggerNl((char *) FPSTR(reallocCalled), LOGLEVEL_DEBUG);
if (serializedPlaylist == NULL) { if (serializedPlaylist == NULL) {
loggerNl((char *) FPSTR(unableToAllocateMemForLinearPlaylist), LOGLEVEL_ERROR); loggerNl((char *) FPSTR(unableToAllocateMemForLinearPlaylist), LOGLEVEL_ERROR);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
return files; return files;
@ -1017,7 +1017,7 @@ char ** returnPlaylistFromSD(File _fileOrDirectory) {
files = (char **) malloc(sizeof(char *) * cnt + 1); files = (char **) malloc(sizeof(char *) * cnt + 1);
if (files == NULL) { if (files == NULL) {
loggerNl((char *) FPSTR(unableToAllocateMemForPlaylist), LOGLEVEL_ERROR); loggerNl((char *) FPSTR(unableToAllocateMemForPlaylist), LOGLEVEL_ERROR);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
free(serializedPlaylist); free(serializedPlaylist);
@ -1038,7 +1038,7 @@ char ** returnPlaylistFromSD(File _fileOrDirectory) {
files[0] = (char *) malloc(sizeof(char) * 5); files[0] = (char *) malloc(sizeof(char) * 5);
if (files[0] == NULL) { if (files[0] == NULL) {
loggerNl((char *) FPSTR(unableToAllocateMemForPlaylist), LOGLEVEL_ERROR); loggerNl((char *) FPSTR(unableToAllocateMemForPlaylist), LOGLEVEL_ERROR);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
return NULL; return NULL;
@ -1094,7 +1094,7 @@ void playAudio(void *parameter) {
snprintf(logBuf, sizeof(logBuf) / sizeof(logBuf[0]), "%s: %d", (char *) FPSTR(newLoudnessReceivedQueue), currentVolume); snprintf(logBuf, sizeof(logBuf) / sizeof(logBuf[0]), "%s: %d", (char *) FPSTR(newLoudnessReceivedQueue), currentVolume);
loggerNl(logBuf, LOGLEVEL_INFO); loggerNl(logBuf, LOGLEVEL_INFO);
audio.setVolume(currentVolume); audio.setVolume(currentVolume);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicLoudnessState), currentVolume, false); publishMqtt((char *) FPSTR(topicLoudnessState), currentVolume, false);
#endif #endif
} }
@ -1137,7 +1137,7 @@ void playAudio(void *parameter) {
playProperties.currentTrackNumber++; playProperties.currentTrackNumber++;
} else { } else {
loggerNl((char *) FPSTR(repeatTrackDueToPlaymode), LOGLEVEL_INFO); loggerNl((char *) FPSTR(repeatTrackDueToPlaymode), LOGLEVEL_INFO);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showRewind = true; showRewind = true;
#endif #endif
} }
@ -1146,7 +1146,7 @@ void playAudio(void *parameter) {
if (playProperties.playlistFinished && trackCommand != 0) { if (playProperties.playlistFinished && trackCommand != 0) {
loggerNl((char *) FPSTR(noPlaymodeChangeIfIdle), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(noPlaymodeChangeIfIdle), LOGLEVEL_NOTICE);
trackCommand = 0; trackCommand = 0;
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
continue; continue;
@ -1182,7 +1182,7 @@ void playAudio(void *parameter) {
playProperties.repeatCurrentTrack = !playProperties.repeatCurrentTrack; playProperties.repeatCurrentTrack = !playProperties.repeatCurrentTrack;
char rBuf[2]; char rBuf[2];
snprintf(rBuf, 2, "%u", getRepeatMode()); snprintf(rBuf, 2, "%u", getRepeatMode());
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false); publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false);
#endif #endif
} }
@ -1199,7 +1199,7 @@ void playAudio(void *parameter) {
} else { } else {
loggerNl((char *) FPSTR(lastTrackAlreadyActive), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(lastTrackAlreadyActive), LOGLEVEL_NOTICE);
trackCommand = 0; trackCommand = 0;
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
continue; continue;
@ -1216,7 +1216,7 @@ void playAudio(void *parameter) {
playProperties.repeatCurrentTrack = !playProperties.repeatCurrentTrack; playProperties.repeatCurrentTrack = !playProperties.repeatCurrentTrack;
char rBuf[2]; char rBuf[2];
snprintf(rBuf, 2, "%u", getRepeatMode()); snprintf(rBuf, 2, "%u", getRepeatMode());
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false); publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false);
#endif #endif
} }
@ -1234,7 +1234,7 @@ void playAudio(void *parameter) {
} else { } else {
if (playProperties.playMode == WEBSTREAM) { if (playProperties.playMode == WEBSTREAM) {
loggerNl((char *) FPSTR(trackChangeWebstream), LOGLEVEL_INFO); loggerNl((char *) FPSTR(trackChangeWebstream), LOGLEVEL_INFO);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
trackCommand = 0; trackCommand = 0;
@ -1244,7 +1244,7 @@ void playAudio(void *parameter) {
nvsRfidWriteWrapper(playProperties.playRfidTag, *(playProperties.playlist + playProperties.currentTrackNumber), 0, playProperties.playMode, playProperties.currentTrackNumber, playProperties.numberOfTracks); nvsRfidWriteWrapper(playProperties.playRfidTag, *(playProperties.playlist + playProperties.currentTrackNumber), 0, playProperties.playMode, playProperties.currentTrackNumber, playProperties.numberOfTracks);
} }
audio.stopSong(); audio.stopSong();
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showRewind = true; showRewind = true;
#endif #endif
audio.connecttoSD(*(playProperties.playlist + playProperties.currentTrackNumber)); audio.connecttoSD(*(playProperties.playlist + playProperties.currentTrackNumber));
@ -1272,7 +1272,7 @@ void playAudio(void *parameter) {
} }
} else { } else {
loggerNl((char *) FPSTR(firstTrackAlreadyActive), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(firstTrackAlreadyActive), LOGLEVEL_NOTICE);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
trackCommand = 0; trackCommand = 0;
@ -1298,7 +1298,7 @@ void playAudio(void *parameter) {
} }
} else { } else {
loggerNl((char *) FPSTR(lastTrackAlreadyActive), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(lastTrackAlreadyActive), LOGLEVEL_NOTICE);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
trackCommand = 0; trackCommand = 0;
@ -1313,7 +1313,7 @@ void playAudio(void *parameter) {
default: default:
trackCommand = 0; trackCommand = 0;
loggerNl((char *) FPSTR(cmndDoesNotExist), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(cmndDoesNotExist), LOGLEVEL_NOTICE);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
continue; continue;
@ -1326,12 +1326,12 @@ void playAudio(void *parameter) {
// Set back to first track // Set back to first track
nvsRfidWriteWrapper(playProperties.playRfidTag, *(playProperties.playlist + 0), 0, playProperties.playMode, 0, playProperties.numberOfTracks); nvsRfidWriteWrapper(playProperties.playRfidTag, *(playProperties.playlist + 0), 0, playProperties.playMode, 0, playProperties.numberOfTracks);
} }
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicTrackState), "<Ende>", false); publishMqtt((char *) FPSTR(topicTrackState), "<Ende>", false);
#endif #endif
playProperties.playlistFinished = true; playProperties.playlistFinished = true;
playProperties.playMode = NO_PLAYLIST; playProperties.playMode = NO_PLAYLIST;
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false); publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false);
#endif #endif
playProperties.currentTrackNumber = 0; playProperties.currentTrackNumber = 0;
@ -1367,7 +1367,7 @@ void playAudio(void *parameter) {
continue; continue;
} else { } else {
audio.connecttoSD(*(playProperties.playlist + playProperties.currentTrackNumber)); audio.connecttoSD(*(playProperties.playlist + playProperties.currentTrackNumber));
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showPlaylistProgress = true; showPlaylistProgress = true;
#endif #endif
if (playProperties.startAtFilePos > 0) { if (playProperties.startAtFilePos > 0) {
@ -1377,7 +1377,7 @@ void playAudio(void *parameter) {
} }
char buf[255]; char buf[255];
snprintf(buf, sizeof(buf)/sizeof(buf[0]), "(%d/%d) %s", (playProperties.currentTrackNumber+1), playProperties.numberOfTracks, (const char*) *(playProperties.playlist + playProperties.currentTrackNumber)); snprintf(buf, sizeof(buf)/sizeof(buf[0]), "(%d/%d) %s", (playProperties.currentTrackNumber+1), playProperties.numberOfTracks, (const char*) *(playProperties.playlist + playProperties.currentTrackNumber));
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicTrackState), buf, false); publishMqtt((char *) FPSTR(topicTrackState), buf, false);
#endif #endif
snprintf(logBuf, sizeof(logBuf) / sizeof(logBuf[0]), "'%s' wird abgespielt (%d von %d)", *(playProperties.playlist + playProperties.currentTrackNumber), (playProperties.currentTrackNumber+1) , playProperties.numberOfTracks); snprintf(logBuf, sizeof(logBuf) / sizeof(logBuf[0]), "'%s' wird abgespielt (%d von %d)", *(playProperties.playlist + playProperties.currentTrackNumber), (playProperties.currentTrackNumber+1) , playProperties.numberOfTracks);
@ -1388,7 +1388,7 @@ void playAudio(void *parameter) {
} }
// Calculate relative position in file (for neopixel) for SD-card-mode // Calculate relative position in file (for neopixel) for SD-card-mode
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
if (!playProperties.playlistFinished && playProperties.playMode != WEBSTREAM) { if (!playProperties.playlistFinished && playProperties.playMode != WEBSTREAM) {
double fp = (double) audio.getFilePos() / (double) audio.getFileSize(); double fp = (double) audio.getFilePos() / (double) audio.getFileSize();
if (millis() % 100 == 0) { if (millis() % 100 == 0) {
@ -1445,7 +1445,7 @@ void rfidScanner(void *parameter) {
cardIdString = (char *) malloc(cardIdSize*3 +1); cardIdString = (char *) malloc(cardIdSize*3 +1);
if (cardIdString == NULL) { if (cardIdString == NULL) {
logger((char *) FPSTR(unableToAllocateMem), LOGLEVEL_ERROR); logger((char *) FPSTR(unableToAllocateMem), LOGLEVEL_ERROR);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
continue; continue;
@ -1475,7 +1475,7 @@ void rfidScanner(void *parameter) {
// This task handles everything for Neopixel-visualisation // This task handles everything for Neopixel-visualisation
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
void showLed(void *parameter) { void showLed(void *parameter) {
static uint8_t hlastVolume = currentVolume; static uint8_t hlastVolume = currentVolume;
static uint8_t lastPos = playProperties.currentRelPos; static uint8_t lastPos = playProperties.currentRelPos;
@ -1754,12 +1754,12 @@ void deepSleepManager(void) {
if (gotoSleep) { if (gotoSleep) {
loggerNl((char *) FPSTR(goToSleepNow), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(goToSleepNow), LOGLEVEL_NOTICE);
Serial.flush(); Serial.flush();
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicState), "Offline", false); publishMqtt((char *) FPSTR(topicState), "Offline", false);
publishMqtt((char *) FPSTR(topicTrackState), "---", false); publishMqtt((char *) FPSTR(topicTrackState), "---", false);
MQTTclient.disconnect(); MQTTclient.disconnect();
#endif #endif
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
FastLED.clear(); FastLED.clear();
FastLED.show(); FastLED.show();
#endif #endif
@ -1834,7 +1834,7 @@ void trackQueueDispatcher(const char *_itemToPlay, const uint32_t _lastPlayPos,
char **musicFiles; char **musicFiles;
playProperties.playMode = BUSY; // Show @Neopixel, if uC is busy with creating playlist playProperties.playMode = BUSY; // Show @Neopixel, if uC is busy with creating playlist
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicLedBrightnessState), 0, false); publishMqtt((char *) FPSTR(topicLedBrightnessState), 0, false);
publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false); publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false);
#endif #endif
@ -1843,20 +1843,20 @@ void trackQueueDispatcher(const char *_itemToPlay, const uint32_t _lastPlayPos,
} else { } else {
musicFiles = returnPlaylistFromWebstream(filename); musicFiles = returnPlaylistFromWebstream(filename);
} }
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false); publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false);
#endif #endif
if (musicFiles == NULL) { if (musicFiles == NULL) {
loggerNl((char *) FPSTR(errorOccured), LOGLEVEL_ERROR); loggerNl((char *) FPSTR(errorOccured), LOGLEVEL_ERROR);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
playProperties.playMode = NO_PLAYLIST; playProperties.playMode = NO_PLAYLIST;
return; return;
} else if (!strcmp(*(musicFiles-1), "0")) { } else if (!strcmp(*(musicFiles-1), "0")) {
loggerNl((char *) FPSTR(noMp3FilesInDir), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(noMp3FilesInDir), LOGLEVEL_NOTICE);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
playProperties.playMode = NO_PLAYLIST; playProperties.playMode = NO_PLAYLIST;
@ -1876,7 +1876,7 @@ void trackQueueDispatcher(const char *_itemToPlay, const uint32_t _lastPlayPos,
switch(playProperties.playMode) { switch(playProperties.playMode) {
case SINGLE_TRACK: { case SINGLE_TRACK: {
loggerNl((char *) FPSTR(modeSingleTrack), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modeSingleTrack), LOGLEVEL_NOTICE);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false); publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false);
publishMqtt((char *) FPSTR(topicRepeatModeState), NO_REPEAT, false); publishMqtt((char *) FPSTR(topicRepeatModeState), NO_REPEAT, false);
#endif #endif
@ -1887,7 +1887,7 @@ void trackQueueDispatcher(const char *_itemToPlay, const uint32_t _lastPlayPos,
case SINGLE_TRACK_LOOP: { case SINGLE_TRACK_LOOP: {
playProperties.repeatCurrentTrack = true; playProperties.repeatCurrentTrack = true;
loggerNl((char *) FPSTR(modeSingleTrackLoop), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modeSingleTrackLoop), LOGLEVEL_NOTICE);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false); publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false);
publishMqtt((char *) FPSTR(topicRepeatModeState), TRACK, false); publishMqtt((char *) FPSTR(topicRepeatModeState), TRACK, false);
#endif #endif
@ -1898,7 +1898,7 @@ void trackQueueDispatcher(const char *_itemToPlay, const uint32_t _lastPlayPos,
case AUDIOBOOK: { // Tracks need to be alph. sorted! case AUDIOBOOK: { // Tracks need to be alph. sorted!
playProperties.saveLastPlayPosition = true; playProperties.saveLastPlayPosition = true;
loggerNl((char *) FPSTR(modeSingleAudiobook), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modeSingleAudiobook), LOGLEVEL_NOTICE);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false); publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false);
publishMqtt((char *) FPSTR(topicRepeatModeState), NO_REPEAT, false); publishMqtt((char *) FPSTR(topicRepeatModeState), NO_REPEAT, false);
#endif #endif
@ -1911,7 +1911,7 @@ void trackQueueDispatcher(const char *_itemToPlay, const uint32_t _lastPlayPos,
playProperties.repeatPlaylist = true; playProperties.repeatPlaylist = true;
playProperties.saveLastPlayPosition = true; playProperties.saveLastPlayPosition = true;
loggerNl((char *) FPSTR(modeSingleAudiobookLoop), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modeSingleAudiobookLoop), LOGLEVEL_NOTICE);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false); publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false);
publishMqtt((char *) FPSTR(topicRepeatModeState), PLAYLIST, false); publishMqtt((char *) FPSTR(topicRepeatModeState), PLAYLIST, false);
#endif #endif
@ -1924,7 +1924,7 @@ void trackQueueDispatcher(const char *_itemToPlay, const uint32_t _lastPlayPos,
snprintf(logBuf, sizeof(logBuf)/sizeof(logBuf[0]), "%s '%s' ", (char *) FPSTR(modeAllTrackAlphSorted), filename); snprintf(logBuf, sizeof(logBuf)/sizeof(logBuf[0]), "%s '%s' ", (char *) FPSTR(modeAllTrackAlphSorted), filename);
loggerNl(logBuf, LOGLEVEL_NOTICE); loggerNl(logBuf, LOGLEVEL_NOTICE);
sortPlaylist((const char**) musicFiles, strtoul(*(musicFiles-1), NULL, 10)); sortPlaylist((const char**) musicFiles, strtoul(*(musicFiles-1), NULL, 10));
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false); publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false);
publishMqtt((char *) FPSTR(topicRepeatModeState), NO_REPEAT, false); publishMqtt((char *) FPSTR(topicRepeatModeState), NO_REPEAT, false);
#endif #endif
@ -1935,7 +1935,7 @@ void trackQueueDispatcher(const char *_itemToPlay, const uint32_t _lastPlayPos,
case ALL_TRACKS_OF_DIR_RANDOM: { case ALL_TRACKS_OF_DIR_RANDOM: {
loggerNl((char *) FPSTR(modeAllTrackRandom), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modeAllTrackRandom), LOGLEVEL_NOTICE);
randomizePlaylist(musicFiles, strtoul(*(musicFiles-1), NULL, 10)); randomizePlaylist(musicFiles, strtoul(*(musicFiles-1), NULL, 10));
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false); publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false);
publishMqtt((char *) FPSTR(topicRepeatModeState), NO_REPEAT, false); publishMqtt((char *) FPSTR(topicRepeatModeState), NO_REPEAT, false);
#endif #endif
@ -1947,7 +1947,7 @@ void trackQueueDispatcher(const char *_itemToPlay, const uint32_t _lastPlayPos,
playProperties.repeatPlaylist = true; playProperties.repeatPlaylist = true;
loggerNl((char *) FPSTR(modeAllTrackAlphSortedLoop), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modeAllTrackAlphSortedLoop), LOGLEVEL_NOTICE);
sortPlaylist((const char**) musicFiles, strtoul(*(musicFiles-1), NULL, 10)); sortPlaylist((const char**) musicFiles, strtoul(*(musicFiles-1), NULL, 10));
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false); publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false);
publishMqtt((char *) FPSTR(topicRepeatModeState), PLAYLIST, false); publishMqtt((char *) FPSTR(topicRepeatModeState), PLAYLIST, false);
#endif #endif
@ -1959,7 +1959,7 @@ void trackQueueDispatcher(const char *_itemToPlay, const uint32_t _lastPlayPos,
playProperties.repeatPlaylist = true; playProperties.repeatPlaylist = true;
loggerNl((char *) FPSTR(modeAllTrackRandomLoop), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modeAllTrackRandomLoop), LOGLEVEL_NOTICE);
randomizePlaylist(musicFiles, strtoul(*(musicFiles-1), NULL, 10)); randomizePlaylist(musicFiles, strtoul(*(musicFiles-1), NULL, 10));
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false); publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false);
publishMqtt((char *) FPSTR(topicRepeatModeState), PLAYLIST, false); publishMqtt((char *) FPSTR(topicRepeatModeState), PLAYLIST, false);
#endif #endif
@ -1971,7 +1971,7 @@ void trackQueueDispatcher(const char *_itemToPlay, const uint32_t _lastPlayPos,
loggerNl((char *) FPSTR(modeWebstream), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modeWebstream), LOGLEVEL_NOTICE);
if (wifiManager() == WL_CONNECTED) { if (wifiManager() == WL_CONNECTED) {
xQueueSend(trackQueue, &(musicFiles), 0); xQueueSend(trackQueue, &(musicFiles), 0);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false); publishMqtt((char *) FPSTR(topicPlaymodeState), playProperties.playMode, false);
publishMqtt((char *) FPSTR(topicRepeatModeState), NO_REPEAT, false); publishMqtt((char *) FPSTR(topicRepeatModeState), NO_REPEAT, false);
#endif #endif
@ -1983,7 +1983,7 @@ void trackQueueDispatcher(const char *_itemToPlay, const uint32_t _lastPlayPos,
default: default:
loggerNl((char *) FPSTR(modeDoesNotExist), LOGLEVEL_ERROR); loggerNl((char *) FPSTR(modeDoesNotExist), LOGLEVEL_ERROR);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
} }
@ -1999,18 +1999,18 @@ void doRfidCardModifications(const uint32_t mod) {
lockControls = !lockControls; lockControls = !lockControls;
if (lockControls) { if (lockControls) {
loggerNl((char *) FPSTR(modificatorAllButtonsLocked), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorAllButtonsLocked), LOGLEVEL_NOTICE);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicLockControlsState), "ON", false); publishMqtt((char *) FPSTR(topicLockControlsState), "ON", false);
#endif #endif
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
} else { } else {
loggerNl((char *) FPSTR(modificatorAllButtonsUnlocked), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorAllButtonsUnlocked), LOGLEVEL_NOTICE);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicLockControlsState), "OFF", false); publishMqtt((char *) FPSTR(topicLockControlsState), "OFF", false);
#endif #endif
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
} }
@ -2019,23 +2019,23 @@ void doRfidCardModifications(const uint32_t mod) {
case SLEEP_TIMER_MOD_15: // Puts/undo uC to sleep after 15 minutes case SLEEP_TIMER_MOD_15: // Puts/undo uC to sleep after 15 minutes
if (sleepTimer == 15) { if (sleepTimer == 15) {
sleepTimerStartTimestamp = 0; sleepTimerStartTimestamp = 0;
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
ledBrightness = initialLedBrightness; ledBrightness = initialLedBrightness;
#endif #endif
loggerNl((char *) FPSTR(modificatorSleepd), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorSleepd), LOGLEVEL_NOTICE);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false); publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false);
#endif #endif
} else { } else {
sleepTimer = 15; sleepTimer = 15;
sleepTimerStartTimestamp = millis(); sleepTimerStartTimestamp = millis();
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
ledBrightness = nightLedBrightness; ledBrightness = nightLedBrightness;
#endif #endif
loggerNl((char *) FPSTR(modificatorSleepTimer15), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorSleepTimer15), LOGLEVEL_NOTICE);
loggerNl((char *) FPSTR(ledsDimmedToNightmode), LOGLEVEL_INFO); loggerNl((char *) FPSTR(ledsDimmedToNightmode), LOGLEVEL_INFO);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicSleepTimerState), sleepTimer, false); publishMqtt((char *) FPSTR(topicSleepTimerState), sleepTimer, false);
publishMqtt((char *) FPSTR(topicLedBrightnessState), nightLedBrightness, false); publishMqtt((char *) FPSTR(topicLedBrightnessState), nightLedBrightness, false);
#endif #endif
@ -2043,7 +2043,7 @@ void doRfidCardModifications(const uint32_t mod) {
playProperties.sleepAfterCurrentTrack = false; // deactivate/overwrite if already active playProperties.sleepAfterCurrentTrack = false; // deactivate/overwrite if already active
playProperties.sleepAfterPlaylist = false; // deactivate/overwrite if already active playProperties.sleepAfterPlaylist = false; // deactivate/overwrite if already active
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
break; break;
@ -2051,23 +2051,23 @@ void doRfidCardModifications(const uint32_t mod) {
case SLEEP_TIMER_MOD_30: // Puts/undo uC to sleep after 30 minutes case SLEEP_TIMER_MOD_30: // Puts/undo uC to sleep after 30 minutes
if (sleepTimer == 30) { if (sleepTimer == 30) {
sleepTimerStartTimestamp = 0; sleepTimerStartTimestamp = 0;
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
ledBrightness = initialLedBrightness; ledBrightness = initialLedBrightness;
#endif #endif
loggerNl((char *) FPSTR(modificatorSleepd), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorSleepd), LOGLEVEL_NOTICE);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false); publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false);
#endif #endif
} else { } else {
sleepTimer = 30; sleepTimer = 30;
sleepTimerStartTimestamp = millis(); sleepTimerStartTimestamp = millis();
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
ledBrightness = nightLedBrightness; ledBrightness = nightLedBrightness;
#endif #endif
loggerNl((char *) FPSTR(modificatorSleepTimer30), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorSleepTimer30), LOGLEVEL_NOTICE);
loggerNl((char *) FPSTR(ledsDimmedToNightmode), LOGLEVEL_INFO); loggerNl((char *) FPSTR(ledsDimmedToNightmode), LOGLEVEL_INFO);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicSleepTimerState), sleepTimer, false); publishMqtt((char *) FPSTR(topicSleepTimerState), sleepTimer, false);
publishMqtt((char *) FPSTR(topicLedBrightnessState), nightLedBrightness, false); publishMqtt((char *) FPSTR(topicLedBrightnessState), nightLedBrightness, false);
#endif #endif
@ -2075,7 +2075,7 @@ void doRfidCardModifications(const uint32_t mod) {
playProperties.sleepAfterCurrentTrack = false; // deactivate/overwrite if already active playProperties.sleepAfterCurrentTrack = false; // deactivate/overwrite if already active
playProperties.sleepAfterPlaylist = false; // deactivate/overwrite if already active playProperties.sleepAfterPlaylist = false; // deactivate/overwrite if already active
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
break; break;
@ -2083,23 +2083,23 @@ void doRfidCardModifications(const uint32_t mod) {
case SLEEP_TIMER_MOD_60: // Puts/undo uC to sleep after 60 minutes case SLEEP_TIMER_MOD_60: // Puts/undo uC to sleep after 60 minutes
if (sleepTimer == 60) { if (sleepTimer == 60) {
sleepTimerStartTimestamp = 0; sleepTimerStartTimestamp = 0;
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
ledBrightness = initialLedBrightness; ledBrightness = initialLedBrightness;
#endif #endif
loggerNl((char *) FPSTR(modificatorSleepd), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorSleepd), LOGLEVEL_NOTICE);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false); publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false);
#endif #endif
} else { } else {
sleepTimer = 60; sleepTimer = 60;
sleepTimerStartTimestamp = millis(); sleepTimerStartTimestamp = millis();
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
ledBrightness = nightLedBrightness; ledBrightness = nightLedBrightness;
#endif #endif
loggerNl((char *) FPSTR(modificatorSleepTimer60), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorSleepTimer60), LOGLEVEL_NOTICE);
loggerNl((char *) FPSTR(ledsDimmedToNightmode), LOGLEVEL_INFO); loggerNl((char *) FPSTR(ledsDimmedToNightmode), LOGLEVEL_INFO);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicSleepTimerState), sleepTimer, false); publishMqtt((char *) FPSTR(topicSleepTimerState), sleepTimer, false);
publishMqtt((char *) FPSTR(topicLedBrightnessState), nightLedBrightness, false); publishMqtt((char *) FPSTR(topicLedBrightnessState), nightLedBrightness, false);
#endif #endif
@ -2107,7 +2107,7 @@ void doRfidCardModifications(const uint32_t mod) {
playProperties.sleepAfterCurrentTrack = false; // deactivate/overwrite if already active playProperties.sleepAfterCurrentTrack = false; // deactivate/overwrite if already active
playProperties.sleepAfterPlaylist = false; // deactivate/overwrite if already active playProperties.sleepAfterPlaylist = false; // deactivate/overwrite if already active
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
break; break;
@ -2115,23 +2115,23 @@ void doRfidCardModifications(const uint32_t mod) {
case SLEEP_TIMER_MOD_120: // Puts/undo uC to sleep after 2 hrs case SLEEP_TIMER_MOD_120: // Puts/undo uC to sleep after 2 hrs
if (sleepTimer == 120) { if (sleepTimer == 120) {
sleepTimerStartTimestamp = 0; sleepTimerStartTimestamp = 0;
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
ledBrightness = initialLedBrightness; ledBrightness = initialLedBrightness;
#endif #endif
loggerNl((char *) FPSTR(modificatorSleepd), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorSleepd), LOGLEVEL_NOTICE);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false); publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false);
#endif #endif
} else { } else {
sleepTimer = 120; sleepTimer = 120;
sleepTimerStartTimestamp = millis(); sleepTimerStartTimestamp = millis();
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
ledBrightness = nightLedBrightness; ledBrightness = nightLedBrightness;
#endif #endif
loggerNl((char *) FPSTR(modificatorSleepTimer120), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorSleepTimer120), LOGLEVEL_NOTICE);
loggerNl((char *) FPSTR(ledsDimmedToNightmode), LOGLEVEL_INFO); loggerNl((char *) FPSTR(ledsDimmedToNightmode), LOGLEVEL_INFO);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicSleepTimerState), sleepTimer, false); publishMqtt((char *) FPSTR(topicSleepTimerState), sleepTimer, false);
publishMqtt((char *) FPSTR(topicLedBrightnessState), nightLedBrightness, false); publishMqtt((char *) FPSTR(topicLedBrightnessState), nightLedBrightness, false);
#endif #endif
@ -2139,7 +2139,7 @@ void doRfidCardModifications(const uint32_t mod) {
playProperties.sleepAfterCurrentTrack = false; // deactivate/overwrite if already active playProperties.sleepAfterCurrentTrack = false; // deactivate/overwrite if already active
playProperties.sleepAfterPlaylist = false; // deactivate/overwrite if already active playProperties.sleepAfterPlaylist = false; // deactivate/overwrite if already active
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
break; break;
@ -2147,25 +2147,25 @@ void doRfidCardModifications(const uint32_t mod) {
case SLEEP_AFTER_END_OF_TRACK: // Puts uC to sleep after end of current track case SLEEP_AFTER_END_OF_TRACK: // Puts uC to sleep after end of current track
if (playProperties.playMode == NO_PLAYLIST) { if (playProperties.playMode == NO_PLAYLIST) {
loggerNl((char *) FPSTR(modificatorNotallowedWhenIdle), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorNotallowedWhenIdle), LOGLEVEL_NOTICE);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
return; return;
} }
if (playProperties.sleepAfterCurrentTrack) { if (playProperties.sleepAfterCurrentTrack) {
loggerNl((char *) FPSTR(modificatorSleepAtEOTd), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorSleepAtEOTd), LOGLEVEL_NOTICE);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicSleepTimerState), "0", false); publishMqtt((char *) FPSTR(topicSleepTimerState), "0", false);
#endif #endif
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
ledBrightness = initialLedBrightness; ledBrightness = initialLedBrightness;
#endif #endif
} else { } else {
loggerNl((char *) FPSTR(modificatorSleepAtEOT), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorSleepAtEOT), LOGLEVEL_NOTICE);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicSleepTimerState), "EOT", false); publishMqtt((char *) FPSTR(topicSleepTimerState), "EOT", false);
#endif #endif
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
ledBrightness = nightLedBrightness; ledBrightness = nightLedBrightness;
#endif #endif
loggerNl((char *) FPSTR(ledsDimmedToNightmode), LOGLEVEL_INFO); loggerNl((char *) FPSTR(ledsDimmedToNightmode), LOGLEVEL_INFO);
@ -2174,10 +2174,10 @@ void doRfidCardModifications(const uint32_t mod) {
playProperties.sleepAfterPlaylist = false; playProperties.sleepAfterPlaylist = false;
sleepTimerStartTimestamp = 0; sleepTimerStartTimestamp = 0;
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false); publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false);
#endif #endif
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
break; break;
@ -2185,26 +2185,26 @@ void doRfidCardModifications(const uint32_t mod) {
case SLEEP_AFTER_END_OF_PLAYLIST: // Puts uC to sleep after end of whole playlist (can take a while :->) case SLEEP_AFTER_END_OF_PLAYLIST: // Puts uC to sleep after end of whole playlist (can take a while :->)
if (playProperties.playMode == NO_PLAYLIST) { if (playProperties.playMode == NO_PLAYLIST) {
loggerNl((char *) FPSTR(modificatorNotallowedWhenIdle), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorNotallowedWhenIdle), LOGLEVEL_NOTICE);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
return; return;
} }
if (playProperties.sleepAfterCurrentTrack) { if (playProperties.sleepAfterCurrentTrack) {
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicSleepTimerState), "0", false); publishMqtt((char *) FPSTR(topicSleepTimerState), "0", false);
#endif #endif
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
ledBrightness = initialLedBrightness; ledBrightness = initialLedBrightness;
#endif #endif
loggerNl((char *) FPSTR(modificatorSleepAtEOPd), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorSleepAtEOPd), LOGLEVEL_NOTICE);
} else { } else {
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
ledBrightness = nightLedBrightness; ledBrightness = nightLedBrightness;
#endif #endif
loggerNl((char *) FPSTR(ledsDimmedToNightmode), LOGLEVEL_INFO); loggerNl((char *) FPSTR(ledsDimmedToNightmode), LOGLEVEL_INFO);
loggerNl((char *) FPSTR(modificatorSleepAtEOP), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorSleepAtEOP), LOGLEVEL_NOTICE);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicSleepTimerState), "EOP", false); publishMqtt((char *) FPSTR(topicSleepTimerState), "EOP", false);
#endif #endif
} }
@ -2212,10 +2212,10 @@ void doRfidCardModifications(const uint32_t mod) {
playProperties.sleepAfterCurrentTrack = false; playProperties.sleepAfterCurrentTrack = false;
playProperties.sleepAfterPlaylist = !playProperties.sleepAfterPlaylist; playProperties.sleepAfterPlaylist = !playProperties.sleepAfterPlaylist;
sleepTimerStartTimestamp = 0; sleepTimerStartTimestamp = 0;
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false); publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false);
#endif #endif
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
break; break;
@ -2223,7 +2223,7 @@ void doRfidCardModifications(const uint32_t mod) {
case REPEAT_PLAYLIST: case REPEAT_PLAYLIST:
if (playProperties.playMode == NO_PLAYLIST) { if (playProperties.playMode == NO_PLAYLIST) {
loggerNl((char *) FPSTR(modificatorNotallowedWhenIdle), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorNotallowedWhenIdle), LOGLEVEL_NOTICE);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
} else { } else {
@ -2235,10 +2235,10 @@ void doRfidCardModifications(const uint32_t mod) {
playProperties.repeatPlaylist = !playProperties.repeatPlaylist; playProperties.repeatPlaylist = !playProperties.repeatPlaylist;
char rBuf[2]; char rBuf[2];
snprintf(rBuf, 2, "%u", getRepeatMode()); snprintf(rBuf, 2, "%u", getRepeatMode());
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false); publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false);
#endif #endif
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
} }
@ -2247,7 +2247,7 @@ void doRfidCardModifications(const uint32_t mod) {
case REPEAT_TRACK: // Introduces looping for track-mode case REPEAT_TRACK: // Introduces looping for track-mode
if (playProperties.playMode == NO_PLAYLIST) { if (playProperties.playMode == NO_PLAYLIST) {
loggerNl((char *) FPSTR(modificatorNotallowedWhenIdle), LOGLEVEL_NOTICE); loggerNl((char *) FPSTR(modificatorNotallowedWhenIdle), LOGLEVEL_NOTICE);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
} else { } else {
@ -2259,21 +2259,21 @@ void doRfidCardModifications(const uint32_t mod) {
playProperties.repeatCurrentTrack = !playProperties.repeatCurrentTrack; playProperties.repeatCurrentTrack = !playProperties.repeatCurrentTrack;
char rBuf[2]; char rBuf[2];
snprintf(rBuf, 2, "%u", getRepeatMode()); snprintf(rBuf, 2, "%u", getRepeatMode());
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false); publishMqtt((char *) FPSTR(topicRepeatModeState), rBuf, false);
#endif #endif
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedOk = true; showLedOk = true;
#endif #endif
} }
break; break;
case DIMM_LEDS_NIGHTMODE: case DIMM_LEDS_NIGHTMODE:
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false); publishMqtt((char *) FPSTR(topicLedBrightnessState), ledBrightness, false);
#endif #endif
loggerNl((char *) FPSTR(ledsDimmedToNightmode), LOGLEVEL_INFO); loggerNl((char *) FPSTR(ledsDimmedToNightmode), LOGLEVEL_INFO);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
ledBrightness = nightLedBrightness; ledBrightness = nightLedBrightness;
showLedOk = true; showLedOk = true;
#endif #endif
@ -2282,7 +2282,7 @@ void doRfidCardModifications(const uint32_t mod) {
default: default:
snprintf(logBuf, sizeof(logBuf) / sizeof(logBuf[0]), "%s %d !", (char *) FPSTR(modificatorDoesNotExist), mod); snprintf(logBuf, sizeof(logBuf) / sizeof(logBuf[0]), "%s %d !", (char *) FPSTR(modificatorDoesNotExist), mod);
loggerNl(logBuf, LOGLEVEL_ERROR); loggerNl(logBuf, LOGLEVEL_ERROR);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
} }
@ -2308,7 +2308,7 @@ void rfidPreferenceLookupHandler (void) {
String s = prefsRfid.getString(rfidTagId, "-1"); // Try to lookup rfidId in NVS String s = prefsRfid.getString(rfidTagId, "-1"); // Try to lookup rfidId in NVS
if (!s.compareTo("-1")) { if (!s.compareTo("-1")) {
loggerNl((char *) FPSTR(rfidTagUnknownInNvs), LOGLEVEL_ERROR); loggerNl((char *) FPSTR(rfidTagUnknownInNvs), LOGLEVEL_ERROR);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
return; return;
@ -2333,7 +2333,7 @@ void rfidPreferenceLookupHandler (void) {
if (i != 5) { if (i != 5) {
loggerNl((char *) FPSTR(errorOccuredNvs), LOGLEVEL_ERROR); loggerNl((char *) FPSTR(errorOccuredNvs), LOGLEVEL_ERROR);
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
showLedError = true; showLedError = true;
#endif #endif
} else { } else {
@ -2447,7 +2447,7 @@ wl_status_t wifiManager(void) {
myIP = WiFi.localIP(); myIP = WiFi.localIP();
snprintf(logBuf, sizeof(logBuf) / sizeof(logBuf[0]), "Aktuelle IP: %d.%d.%d.%d", myIP[0], myIP[1], myIP[2], myIP[3]); snprintf(logBuf, sizeof(logBuf) / sizeof(logBuf[0]), "Aktuelle IP: %d.%d.%d.%d", myIP[0], myIP[1], myIP[2], myIP[3]);
loggerNl(logBuf, LOGLEVEL_NOTICE); loggerNl(logBuf, LOGLEVEL_NOTICE);
#ifdef FTP
#ifdef FTP_ENABLE
ftpSrv.begin(ftpUser, ftpPassword); ftpSrv.begin(ftpUser, ftpPassword);
#endif #endif
} else { // Starts AP if WiFi-connect wasn't successful } else { // Starts AP if WiFi-connect wasn't successful
@ -2676,7 +2676,7 @@ void setup() {
&mp3Play, /* Task handle. */ &mp3Play, /* Task handle. */
1 /* Core where the task should run */ 1 /* Core where the task should run */
); );
#ifdef NEOPIXEL
#ifdef NEOPIXEL_ENABLE
xTaskCreatePinnedToCore( xTaskCreatePinnedToCore(
showLed, /* Function to implement the task */ showLed, /* Function to implement the task */
"LED", /* Name of the task */ "LED", /* Name of the task */
@ -2703,7 +2703,7 @@ void setup() {
// Only enable MQTT if requested // Only enable MQTT if requested
#ifdef MQTT
#ifdef MQTT_ENABLE
if (enableMqtt) { if (enableMqtt) {
MQTTclient.setServer(mqtt_server, 1883); MQTTclient.setServer(mqtt_server, 1883);
MQTTclient.setCallback(callback); MQTTclient.setCallback(callback);
@ -2764,18 +2764,18 @@ void loop() {
deepSleepManager(); deepSleepManager();
rfidPreferenceLookupHandler(); rfidPreferenceLookupHandler();
if (wifiManager() == WL_CONNECTED) { if (wifiManager() == WL_CONNECTED) {
#ifdef MQTT
#ifdef MQTT_ENABLE
if (enableMqtt) { if (enableMqtt) {
reconnect(); reconnect();
MQTTclient.loop(); MQTTclient.loop();
postHeartbeatViaMqtt(); postHeartbeatViaMqtt();
} }
#endif #endif
#ifdef FTP
#ifdef FTP_ENABLE
ftpSrv.handleFTP(); ftpSrv.handleFTP();
#endif #endif
} }
#ifdef FTP
#ifdef FTP_ENABLE
if (ftpSrv.isConnected()) { if (ftpSrv.isConnected()) {
lastTimeActiveTimestamp = millis(); // Re-adjust timer while client is connected to avoid ESP falling asleep lastTimeActiveTimestamp = millis(); // Re-adjust timer while client is connected to avoid ESP falling asleep
} }
@ -2803,7 +2803,7 @@ void audio_showstation(const char *info) {
loggerNl(logBuf, LOGLEVEL_NOTICE); loggerNl(logBuf, LOGLEVEL_NOTICE);
char buf[255]; char buf[255];
snprintf(buf, sizeof(buf)/sizeof(buf[0]), "Webradio: %s", info); snprintf(buf, sizeof(buf)/sizeof(buf[0]), "Webradio: %s", info);
#ifdef MQTT
#ifdef MQTT_ENABLE
publishMqtt((char *) FPSTR(topicTrackState), buf, false); publishMqtt((char *) FPSTR(topicTrackState), buf, false);
#endif #endif
} }

Loading…
Cancel
Save