Problemas nextion domotica

Buenas estoy intentando automatizar la furgo con una pantalla nextion y un Arduino mega, la idea es k mediante los botones duales táctiles poder controlar los reles pero me salen un moton de errores
creo entender k hay k poner el código asi en el foro, sino por favor decirme como lo subo para k lo veais correctamente


#include <NexDualStateButton.h>

#include <Nextion.h>
#include <NexTouch.h>



#include "Nextion.h"

#define   iluminacion      2
#define   bomba            3
#define   enchufe          4
#define   calefaccion      5
#define   ventilador       6
#define   calefactor       7
#define   corriente        8
#define   sirena           9

NexDSButton b2iluminacion   = NexDSButton(0, 1, "b2iluminacion");
NexDSButton b2bomba         = NexDSButton(0, 2, "b2bomba ");
NexDSButton b2enchufe       = NexDSButton(0, 3, "b2enchufe");
NexDSButton b2calefaccion   = NexDSButton(0, 4, "b2calefaccion");
NexDSButton b2ventilador    = NexDSButton(0, 5, "b2ventilador");
NexDSButton b2calefactor   = NexDSButton(0, 6, "b2calefactor");
NexDSButton b2corriente    = NexDSButton(0, 7, "b2corriente");
NexDSButton b2sirena        = NexDSButton(0, 8, "b2sirena");

NexTouch *nex_listen_list[] =
{
  b2iluminacion,
  b2bomba,
  b2enchufe,
  b2calefaccion,
  b2ventilador,
  b2calefactor,
  b2corriente ,
  b2sirena,
  NULL
);


void prender_iluminacion ()
{
  uint32_t estadoiluminacion ;
  b2iluminacion.getValue(&estadoiluminacion );
  if (estadoiluminacion  == 1)
  {
    digitalWrite(iluminacion , 1);
  }
  else
  {
    digitalWrite(iluminacion , 0);
  }
  void prender_bomba ()
  {
    uint32_t estadobomba ;
    b2bomba.getValue(&estadobomba );
    if (estadobomba  == 1)
    {
      digitalWrite(bomba , 1);
    }
    else
    {
      digitalWrite(bomba , 0);
    }
  }
  void prender_enchufe()
  {
    uint32_t estadoenchufe;
    b2enchufe.getValue(&estadoenchufe);
    if (estadoenchufe == 1)
    {
      digitalWrite(enchufe, 1);
    }
    else
    {
      digitalWrite(enchufe, 0);
    }
  }
  void prender_calefaccion ()
  {
    uint32_t estadocalefaccion ;
    b2calefaccion.getValue(&estadocalefaccion );
    if (estadocalefaccion  == 1)
    {
      digitalWrite(calefaccion , 1);
    }
    else
    {
      digitalWrite(calefaccion , 0);
    }
  }
  void prender_ventilador()
  {
    uint32_t estadoventilador;
    b2ventilador.getValue(&estadoventilador);
    if (estadoventilador == 1)
    {
      digitalWrite(ventilador, 1);
    }
    else
    {
      digitalWrite(ventilador, 0);
    }
  }
  void prender_calefactor()
  {
    uint32_t estadocalefactor;
    b2calefactor.getValue(&estadocalefactor);
    if (estadocalefactor == 1)
    {
      digitalWrite(calefactor, 1);
    }
    else
    {
      digitalWrite(calefactor, 0);
    }
  }
  void prender_corriente()
  {
    uint32_t estadocorriente;
    b2corriente.getValue(&estadocorriente);
    if (estadocorriente == 1)
    {
      digitalWrite(corriente, 1);
    }
    else
    {
      digitalWrite(corriente, 0);
    }
  }
  void prender_sirena()
  {
    uint32_t estadosirena;
    b2sirena.getValue(&estadosirena);
    if (estadosirena == 1)
    {
      digitalWrite(sirena, 1);
    }
    else
    {
      digitalWrite(sirena, 0);
    }
  }

  void setup() {
    nexInit();
    pinMode(iluminacion , OUTPUT);
    pinMode(bomba , OUTPUT);
    pinMode(enchufe, OUTPUT);
    pinMode(calefaccion , OUTPUT);
    pinMode(ventilador, OUTPUT);
    pinMode(calefactor, OUTPUT);
    pinMode(corriente, OUTPUT);
    pinMode(sirena, OUTPUT);
    b2iluminacion .attachPop(prender_iluminacion );
    b2bomba.attachPop(prender_bomba );
    b2enchufe.attachPop(prender_enchufe);
    b2calefaccion .attachPop(prender_calefaccion );
    b2ventilador.attachPop(prender_ventilador);
    b2calefactor.attachPop(prender_calefactor);
    b2corriente.attachPop(prender_corriente);
    b2sirena.attachPop(prender_sirena);

  }

  void loop() {
    nexLoop(nex_listen_list);
  }

Arduino:1.8.16 (Windows 10), Tarjeta:"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"





















PROYECTO_FURGO:42:1: error: expected '}' before ')' token

 );

 ^

PROYECTO_FURGO:42:1: error: cannot convert 'NexDSButton' to 'NexTouch*' in initialization

PROYECTO_FURGO:42:1: error: cannot convert 'NexDSButton' to 'NexTouch*' in initialization

PROYECTO_FURGO:42:1: error: cannot convert 'NexDSButton' to 'NexTouch*' in initialization

PROYECTO_FURGO:42:1: error: cannot convert 'NexDSButton' to 'NexTouch*' in initialization

PROYECTO_FURGO:42:1: error: cannot convert 'NexDSButton' to 'NexTouch*' in initialization

PROYECTO_FURGO:42:1: error: cannot convert 'NexDSButton' to 'NexTouch*' in initialization

PROYECTO_FURGO:42:1: error: cannot convert 'NexDSButton' to 'NexTouch*' in initialization

PROYECTO_FURGO:42:1: error: cannot convert 'NexDSButton' to 'NexTouch*' in initialization

C:\Users\polti\Desktop\iluminacion\arduino\PROYECTO_FURGO\PROYECTO_FURGO.ino: In function 'void prender_iluminacion()':

PROYECTO_FURGO:58:3: error: a function-definition is not allowed here before '{' token

   {

   ^

PROYECTO_FURGO:71:3: error: a function-definition is not allowed here before '{' token

   {

   ^

PROYECTO_FURGO:84:3: error: a function-definition is not allowed here before '{' token

   {

   ^

PROYECTO_FURGO:97:3: error: a function-definition is not allowed here before '{' token

   {

   ^

PROYECTO_FURGO:110:3: error: a function-definition is not allowed here before '{' token

   {

   ^

PROYECTO_FURGO:123:3: error: a function-definition is not allowed here before '{' token

   {

   ^

PROYECTO_FURGO:136:3: error: a function-definition is not allowed here before '{' token

   {

   ^

PROYECTO_FURGO:149:16: error: a function-definition is not allowed here before '{' token

   void setup() {

                ^

PROYECTO_FURGO:170:15: error: a function-definition is not allowed here before '{' token

   void loop() {

               ^

PROYECTO_FURGO:172:3: error: expected '}' at end of input

   }

   ^

Se encontraron varias bibliotecas para "NexButton.h"

Usado: C:\Users\polti\Documents\Arduino\libraries\ITEADLIB_Arduino_Nextion-master

 No usado: C:\Users\polti\Desktop\arduino-1.8.16-windows\arduino-1.8.16\libraries\ITEADLIB_Arduino_Nextion-master

exit status 1

expected '}' before ')' token



Este informe podría contener más información con
"Mostrar salida detallada durante la compilación"
opción habilitada en Archivo -> Preferencias.

¿Versión de la librería?
nextion.h

El error te dice que no puede convertir NexDSButton a la variable que indicas.
Fíjate en el puntero NexTouch *nex_listen_list =

La librería que debes usar es https://github.com/itead/ITEADLIB_Arduino_Nextion

Cuando la descargues coloca como nombre de la carpeta Nextion y no
ITEADLIB_Arduino_Nextion como termina resultando.
Verifica que dentro de la carpeta aparezcan todos los .cpp y .h correspondientes.

Non potrebbe essere che il relè sia difettoso? E fate attenzione al puntatore Nextouch nella variabile. Ho speso un sacco di tempo per capire questo e ho finito con un economico relè off-the-shelf da ajax. È stato in grado di integrarsi nel sistema di casa intelligente normalmente, anche se ne avevo bisogno per la protezione da cortocircuito e non ho avuto bisogno di configurare nulla, tutto funziona tramite app mobile. Devo anche controllare se tutto viene visualizzato correttamente nella cartella