Nextion invio dati MCU, una soluzione

Non so se ho inventato l'acqua calda ma il "Send Component ID" non inviava lo stato (val) di un "dual state btn".

Ho risolto creando un mio protocollo inserendo questo script nell'evento di un bottone dual state.
Notare che inspiegabilmente usando pagename.id restituiva sempre 0 non rendendo possibile identificare la pagina, infatti l'id di ciascuna pagina nella finestra "attribute" dell'editor mostra sempre zero, anche modificando la visibilità da "local" a "global"

prints dp,1
prints LCbtn.id,1
prints LCbtn.val,1
prints 0xff,1
prints 0xff,1
prints 0xff,1

I 3 0xff finali sono più un vezzo che una necessità.

Ottengo così nei primi tre byte l pagina corrente, il componente ID che ha generato l'evento e il valore dello stesso.

Mi sembra una soluzione snella per passare valori compresi in un byte.

Cosa ne pensate

Ottima soluzione, io userei un prefisso specifico ed univoco, così da rendere le cose più semplici dal lato ricezione.
Ad esempio quando in nextion ti invia un dato numerico il formato è questo :

0x71 0x01 0x02 0x03 0x04 0xFF 0xFF 0xFF

Quindi quando ti arriva lo 0x71 sai già che sarà seguito da un numero a 4 byte, più la solita terminazione, ed agisci di conseguenza.
Scegliti un prefisso non usato da nextion , seguito dai tuoi 3 byte più la terminazione.
Magari nel tuo caso specifico può non essere importante, ma facendo così rimani più aderente allo standard nextion, e può tornarti utile anche in altre occasioni.
Se ti può interessare ho scritto una libreria per i display nextion, lontano dall'essere perfetta, ma che ha un impatto in memoria decisamente più basso di quella ufficiale (oltre a non usare le String, di cui l'altra è invece infarcita...).

Ciao, Ale.

Grazie per l'attenzione ho guardato l'esempio della tua libreria, niente male.

Proseguo per la mia strada perchè ho sullo stesso display 52 button che interagiscono con la MCU, via impraticabile con la libreria standard per il consumo di risorse.
16*3 button servono a richiamare dei valori nella eeprom, tre dual state li uso per attivare la modalità per scrivere un singolo valore nella eeprom, come le memorie di una autoradio la preferisco ad un tocco prolungato.
Certo è che devo scrivere molte volte il codice all'interno dell'evento di ciascun btn.

Saluti