Anfänge braucht hilfe bei OneButton Sketch

Hallo Leute, ich brauche eure Hilfe beim OneButton Sketch. Folgender Sketch ist für die Außenbeleuchtung gedacht:

// by Vladolino

#include "OneButton.h"

//////////////////// DEFINITION PINBELEGUNG TASTER ////////////////////
OneButton Taster_Haustuer(A0, true);
OneButton Taster_Sprechanlage_Tor(A1, true);
OneButton Taster_Tor(A2, true);
OneButton Taster_Sprechanlage_1OG_Hauptgebeude(A3, true);
OneButton Taster_Sprechanlage_EG_Hauptgebeude_Flur(A4, true);
OneButton Taster_Sprechanlage_EG_Nebengebeude_Partyraum(A5, true);
OneButton Taster_Sprechanlage_1OG_Nebengebeude(A6, true);
OneButton Taster_1OG_Nebengebeude(A7, true);

//////////////////// DEFINITION PINBELEGUNG BELEUCHTUNG ///////////////
const int Beleuchtung_Hof_Pin = 2;
const int Beleuchtung_Hauptgebeude_Treppe_Pin = 3;
const int Beleuchtung_Hof_Sitzgruppe_Pin = 4;
const int Beleuchtung_Hof_Durchgang_Pin = 5;
const int Beleuchtung_Partyraum_Pin = 6;
const int Beleuchtung_Waschkueche_Pin = 7;
const int Beleuchtung_Keller_Pin = 8;
const int Beleuchtung_Terasse_Pin = 9;

//////////////////// DEFINITION TASTER START //////////////////////////
unsigned long StopTime = 0;
unsigned long StartTime = 0;

//////////////////// DEFINITION BELEUCHTUNGSZEIT IN MILISEKUNDEN //////
int Beleuchtung_Kurz= 6000;
int Beleuchtung_Lang= 10000;

//////////////////// DEFINITION TASTERZUORDNUNG ///////////////////////
// TASTER EINFACH //

void Taster_Einfach_Haustuer() {
  StopTime = millis() + Beleuchtung_Kurz;
  digitalWrite(Beleuchtung_Hauptgebeude_Treppe_Pin, LOW);
}
void Taster_Einfach_Sprechanlage_Tor() {
  StopTime = millis() + Beleuchtung_Kurz;
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Einfach_Tor() {
  StopTime = millis() + Beleuchtung_Kurz;
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Einfach_Sprechanlage_1OG_Hauptgebeude() {
  StopTime = millis() + Beleuchtung_Kurz;
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Einfach_Sprechanlage_EG_Hauptgebeude_Flur() {
  StopTime = millis() + Beleuchtung_Kurz;
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Einfach_Sprechanlage_EG_Nebengebeude_Partyraum() {
  StopTime = millis() + Beleuchtung_Kurz;
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Einfach_Sprechanlage_1OG_Nebengebeude() {
  StopTime = millis() + Beleuchtung_Kurz;
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Einfach_1OG_Nebengebeude() {
  StopTime = millis() + Beleuchtung_Kurz;
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}

// TASTER ZWEIFACH //

void Taster_Zweifach_Haustuer() {
  StopTime = millis() + Beleuchtung_Lang;
  digitalWrite(Beleuchtung_Hauptgebeude_Treppe_Pin, LOW);
}
void Taster_Zweifach_Sprechanlage_Tor() {
  StopTime = millis() + Beleuchtung_Lang;
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Zweifach_Tor() {
  StopTime = millis() + Beleuchtung_Lang;
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Zweifach_Sprechanlage_1OG_Hauptgebeude() {
  StopTime = millis() + Beleuchtung_Lang;
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Zweifach_Sprechanlage_EG_Hauptgebeude_Flur() {
  StopTime = millis() + Beleuchtung_Lang;
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Zweifach_Sprechanlage_EG_Nebengebeude_Partyraum() {
  StopTime = millis() + Beleuchtung_Lang;
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Zweifach_Sprechanlage_1OG_Nebengebeude() {
  StopTime = millis() + Beleuchtung_Lang;
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Zweifach_1OG_Nebengebeude() {
  StopTime = millis() + Beleuchtung_Lang;
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}

// TASTER LANG AUS //

void Taster_Lang_Aus_Haustuer() {
  digitalWrite(Beleuchtung_Hauptgebeude_Treppe_Pin, HIGH);
}
void Taster_Lang_Aus_Sprechanlage_Tor() {
  digitalWrite(Beleuchtung_Hof_Pin, HIGH);
}
void Taster_Lang_Aus_Tor() {
  digitalWrite(Beleuchtung_Hof_Pin, HIGH);
}
void Taster_Lang_Aus_Sprechanlage_1OG_Hauptgebeude() {
  digitalWrite(Beleuchtung_Hof_Pin, HIGH);
}
void Taster_Lang_Aus_Sprechanlage_EG_Hauptgebeude_Flur() {
  digitalWrite(Beleuchtung_Hof_Pin, HIGH);
}
void Taster_Lang_Aus_Sprechanlage_EG_Nebengebeude_Partyraum() {
  digitalWrite(Beleuchtung_Hof_Pin, HIGH);
}
void Taster_Lang_Aus_Sprechanlage_1OG_Nebengebeude() {
  digitalWrite(Beleuchtung_Hof_Pin, HIGH);
}
void Taster_Lang_Aus_1OG_Nebengebeude() {
  digitalWrite(Beleuchtung_Hof_Pin, HIGH);
}

// TASTER LANG AN //

void Taster_Lang_An_Haustuer() {
  digitalWrite(Beleuchtung_Hauptgebeude_Treppe_Pin, LOW);
}
void Taster_Lang_An_Sprechanlage_Tor() {
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Lang_An_Tor() {
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Lang_An_Sprechanlage_1OG_Hauptgebeude() {
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Lang_An_Sprechanlage_EG_Hauptgebeude_Flur() {
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Lang_An_Sprechanlage_EG_Nebengebeude_Partyraum() {
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Lang_An_Sprechanlage_1OG_Nebengebeude() {
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}
void Taster_Lang_An_1OG_Nebengebeude() {
  digitalWrite(Beleuchtung_Hof_Pin, LOW);
}

Es funktioniert alles bis auf Einschalten von Licht dauerhaft, beim langen drücken von Taster beim ausgeschalteten licht passiert Garnichts oder das Licht leuchtet nur ganz kurz auf und geht wieder aus. Ich sitze schon Stundenlang dran und mittlerweile habe ich einen Knoten im Gehirn.

Vielen Dank im Voraus

void setup()
{
//////////////////// INITIALISIERUNG PIN BELEUCHTUNG //////////////////

pinMode(Beleuchtung_Hof_Pin, OUTPUT);
digitalWrite(Beleuchtung_Hof_Pin, HIGH);

pinMode(Beleuchtung_Hauptgebeude_Treppe_Pin, OUTPUT);
digitalWrite(Beleuchtung_Hauptgebeude_Treppe_Pin, HIGH);

pinMode(Beleuchtung_Hof_Sitzgruppe_Pin, OUTPUT);
digitalWrite(Beleuchtung_Hof_Sitzgruppe_Pin, HIGH);

pinMode(Beleuchtung_Hof_Durchgang_Pin, OUTPUT);
digitalWrite(Beleuchtung_Hof_Durchgang_Pin, HIGH);

pinMode(Beleuchtung_Partyraum_Pin, OUTPUT);
digitalWrite(Beleuchtung_Partyraum_Pin, HIGH);

pinMode(Beleuchtung_Waschkueche_Pin, OUTPUT);
digitalWrite(Beleuchtung_Waschkueche_Pin, HIGH);

pinMode(Beleuchtung_Keller_Pin, OUTPUT);
digitalWrite(Beleuchtung_Keller_Pin, HIGH);

pinMode(Beleuchtung_Terasse_Pin, OUTPUT);
digitalWrite(Beleuchtung_Terasse_Pin, HIGH);

//////////////////// DEFINITION TASTER MEHRFACHBETAETIGUNG ////////////
// TASTER EINFACH //

Taster_Haustuer.attachClick(Taster_Einfach_Haustuer);
Taster_Sprechanlage_Tor.attachClick(Taster_Einfach_Sprechanlage_Tor);
Taster_Tor.attachClick(Taster_Einfach_Tor);
Taster_Sprechanlage_1OG_Hauptgebeude.attachClick(Taster_Einfach_Sprechanlage_1OG_Hauptgebeude);
Taster_Sprechanlage_EG_Hauptgebeude_Flur.attachClick(Taster_Einfach_Sprechanlage_EG_Hauptgebeude_Flur);
Taster_Sprechanlage_EG_Nebengebeude_Partyraum.attachClick(Taster_Einfach_Sprechanlage_EG_Nebengebeude_Partyraum);
Taster_Sprechanlage_1OG_Nebengebeude.attachClick(Taster_Einfach_Sprechanlage_1OG_Nebengebeude);
Taster_1OG_Nebengebeude.attachClick(Taster_Einfach_1OG_Nebengebeude);

// TASTER ZWEIFACH //

Taster_Haustuer.attachDoubleClick(Taster_Zweifach_Haustuer);
Taster_Sprechanlage_Tor.attachDoubleClick(Taster_Zweifach_Sprechanlage_Tor);
Taster_Tor.attachDoubleClick(Taster_Zweifach_Tor);
Taster_Sprechanlage_1OG_Hauptgebeude.attachDoubleClick(Taster_Zweifach_Sprechanlage_1OG_Hauptgebeude);
Taster_Sprechanlage_EG_Hauptgebeude_Flur.attachDoubleClick(Taster_Zweifach_Sprechanlage_EG_Hauptgebeude_Flur);
Taster_Sprechanlage_EG_Nebengebeude_Partyraum.attachDoubleClick(Taster_Zweifach_Sprechanlage_EG_Nebengebeude_Partyraum);
Taster_Sprechanlage_1OG_Nebengebeude.attachDoubleClick(Taster_Zweifach_Sprechanlage_1OG_Nebengebeude);
Taster_1OG_Nebengebeude.attachDoubleClick(Taster_Zweifach_1OG_Nebengebeude);

// TASTER LANG AUS //

Taster_Haustuer.attachLongPressStop(Taster_Lang_Aus_Haustuer);
Taster_Sprechanlage_Tor.attachLongPressStop(Taster_Lang_Aus_Sprechanlage_Tor);
Taster_Tor.attachLongPressStop(Taster_Lang_Aus_Tor);
Taster_Sprechanlage_1OG_Hauptgebeude.attachLongPressStop(Taster_Lang_Aus_Sprechanlage_1OG_Hauptgebeude);
Taster_Sprechanlage_EG_Hauptgebeude_Flur.attachLongPressStop(Taster_Lang_Aus_Sprechanlage_EG_Hauptgebeude_Flur);
Taster_Sprechanlage_EG_Nebengebeude_Partyraum.attachLongPressStop(Taster_Lang_Aus_Sprechanlage_EG_Nebengebeude_Partyraum);
Taster_Sprechanlage_1OG_Nebengebeude.attachLongPressStop(Taster_Lang_Aus_Sprechanlage_1OG_Nebengebeude);
Taster_1OG_Nebengebeude.attachLongPressStop(Taster_Lang_Aus_1OG_Nebengebeude);

// TASTER LANG AN //

Taster_Haustuer.attachLongPressStart(Taster_Lang_An_Haustuer);
Taster_Sprechanlage_Tor.attachLongPressStart(Taster_Lang_An_Sprechanlage_Tor);
Taster_Tor.attachLongPressStart(Taster_Lang_An_Tor);
Taster_Sprechanlage_1OG_Hauptgebeude.attachLongPressStart(Taster_Lang_An_Sprechanlage_1OG_Hauptgebeude);
Taster_Sprechanlage_EG_Hauptgebeude_Flur.attachLongPressStart(Taster_Lang_An_Sprechanlage_EG_Hauptgebeude_Flur);
Taster_Sprechanlage_EG_Nebengebeude_Partyraum.attachLongPressStart(Taster_Lang_An_Sprechanlage_EG_Nebengebeude_Partyraum);
Taster_Sprechanlage_1OG_Nebengebeude.attachLongPressStart(Taster_Lang_An_Sprechanlage_1OG_Nebengebeude);
Taster_1OG_Nebengebeude.attachLongPressStart(Taster_Lang_An_1OG_Nebengebeude);
}

void loop() {
//////////////////// DEFINITION SCHALTUNGSART /////////////////////////
Taster_Haustuer.tick();
Taster_Sprechanlage_Tor.tick();
Taster_Tor.tick();
Taster_Sprechanlage_1OG_Hauptgebeude.tick();
Taster_Sprechanlage_EG_Hauptgebeude_Flur.tick();
Taster_Sprechanlage_EG_Nebengebeude_Partyraum.tick();
Taster_Sprechanlage_1OG_Nebengebeude.tick();
Taster_1OG_Nebengebeude.tick();

//////////////////// AUSSCHALTEN BELEUCHTUNG NACH BEDARF //////////////
if(millis() >= StopTime){
digitalWrite(Beleuchtung_Hof_Pin, HIGH);
}
if(millis() >= StopTime){
digitalWrite(Beleuchtung_Hauptgebeude_Treppe_Pin, HIGH);
}
if(millis() >= StopTime){
digitalWrite(Beleuchtung_Hof_Sitzgruppe_Pin, HIGH);
}
if(millis() >= StopTime){
digitalWrite(Beleuchtung_Hof_Durchgang_Pin, HIGH);
}
if(millis() >= StopTime){
digitalWrite(Beleuchtung_Partyraum_Pin, HIGH);
}
if(millis() >= StopTime){
digitalWrite(Beleuchtung_Waschkueche_Pin, HIGH);
}
if(millis() >= StopTime){
digitalWrite(Beleuchtung_Keller_Pin, HIGH);
}
if(millis() >= StopTime){
digitalWrite(Beleuchtung_Terasse_Pin, HIGH);
}

}

Du verwendest nur eine einzige Zeitvariable um alle Lampen zu steuern, wie soll das gehen?

Du benutzt z.B.   StopTime = millis() + Beleuchtung_Kurz; Niemals etwas zu millis addieren, das gibt Probleme beim Überlauf.

besser

  Beleuchtung_Hof_Start = millis();
  Beleuchtung_Hof_Dauer = Beleuchtung_Kurz;
//....
  if (millis() - Beleuchtung_Hof_Start >= Beleuchtung_Hof_Dauer) {

Whandall:
Du verwendest nur eine einzige Zeitvariable um alle Lampen zu steuern, wie soll das gehen?

Du benutzt z.B.   StopTime = millis() + Beleuchtung_Kurz;
Niemals etwas zu millis addieren, das gibt Probleme beim Überlauf.

besser

  Beleuchtung_Hof_Start = millis();

Beleuchtung_Hof_Dauer = Beleuchtung_Kurz;
//…
  if (millis() - Beleuchtung_Hof_Start >= Beleuchtung_Hof_Dauer) {

Hi,
ich verstehe es nicht so ganz, ich habe nur das Problem das ich es nicht hinnkriege Licht dauerhaft einzuschalten mit Langen Tastendruck, das ausschalten funktioniert.

Deine gesamte Beleuchtung wird immer zu gleichen Zeitpunkt ausgeschaltet, ich stelle mir unter Steuerung etwas anderes vor.

Oh mann, ich sage es doch, knoten im Gehirn. Nach lauter kopieren und einfügen nicht drann gedacht.

Alles klar, Danke!