Forum Navigation
You need to log in to create posts and topics.

Ayuda configurando entradas con editor de codigo (solucionado)

Hola tengo este codigo en un MEGA para cuando abra la ventana pasado un tiempo se cierre. Ahora estoy cambiando por un MKV y no me va. Sabéis por que será:

GLOBAL VARIABLES ZONE

int tiempo_ventana=0;

void ShortInput(int NumberInput){

if (Inputs[0].InState = 100){ // activa la variable de temporizador ( >0  ó  =0 según actives a nivel alto o nivel bajo)

tiempo_ventana = 1;

}

void LoopNewSecond(){//This event occurs every second

if (tiempo_ventana > 0){// El contador se inicia si su valor es mayor a 0

tiempo_ventana++;//incrementamos el tiempo

if (tiempo_ventana >= Consignas[0]){ // El tiempo seria el de la consigna, una vez llegue a su valor ejecuta la sentencia siguiente

circuits[0].Value=100; // 0 si la quieres cerrar ó valor de apertura que desees

tiempo_ventana=0; // Pone el valor de tiempo a 0 y se desactiva el temporizador.

}

}

GRACIAS

Tienes un error de código importarte... no creo que funcionara en mega... si lo hacia es por casualidad....

Una operador de igualdad en una condición lleva doble ==

Seria asi

if (Inputs[0].InState == 100)

Para iniciarse... te recomiendo que asumas que una condicion if el operador siempre es doble (esto es una verdad a medias pero para empezar es mas facil de entender y recordar)

Por ejemplo para mayor o igual usa >=

Para menor o igual <=

Para and &&

Por otra parte... para usar las entradas usa los menus para codigo automatizado... eso te escribe el código correcto optimizado... y es mas sencillo de leer y comprender... el código seria mas bien este.

if (ReadInput(0)==HIGH){ }

o este según corresponda

if (ReadInput(0)==LOW){ }

Mira esta imagen para ver como usar los menus para código automatizado... y te recomiendo que te  acostumbres a usarlo... es mas rápido y te ahorras dolores de cabeza.

Por otra parte... al usar el metodo ShortInput solo tiene que ver el parametro NumberInput....como en este ejemplo

void ShortInput(int NumberInput){

if (NumberInput == 0){ // activa la variable de temporizador ( >0 ó =0 según actives a nivel alto o nivel bajo)

tiempo_ventana = 1;

}

 

Uploaded files:
  • codigoEntrada.png
Desgraciadamente no disponemos de tiempo para atender el foro... Si es muy urgente puede solicitar un presupuesto de puesta en marcha en el formulario de contacto..

Una cosa mas... si no te importa cambiamos el titulo a ayuda configurando entradas con editor de codigo y marcamos el tema como solucionado.

Gracias.

Desgraciadamente no disponemos de tiempo para atender el foro... Si es muy urgente puede solicitar un presupuesto de puesta en marcha en el formulario de contacto..

Muchas gracias Roberto si meto este codigo en una entrada de la MKR que le puedes seleccionar que es un pulsador  me funciona bien pero si lo meto en  una tarjeta expander no me lo detecta me imagino que tengo que ponerle que es un pulsador ¿puede ser ? ¿como se hace?

void ShortInput(int NumberInput){

if (NumberInput==14){ tiempo_ventana = 1; }

Una entrada tipo interruptor no tiene metodo ShortInput (Pulsacion corta) .

Para una entrada tipo interruptor usa SwicthStateChange (Cambio en entrada interruptor)

Este es el método que tienes que usar.

void SwicthStateChange(int NumberInput, int value){

 

 

Desgraciadamente no disponemos de tiempo para atender el foro... Si es muy urgente puede solicitar un presupuesto de puesta en marcha en el formulario de contacto..

Perfecto es así . Muchas gracias

Hola para una entrada de extension tengo un puldador  pulsacion corta :

void SwicthStateChange(int NumberInput, int value){

if (NumberInput==37){SelectScene(8);} // SUBIR PERSIANA

y PULSACION LARGA:

void LongInput(int NumberInput){

if (NumberInput==37){SelectScene(7);} // BAJAR PERSIANA

La pulsacion corta me va pero la larga no. Con la pulsación corta se cambio en una estension hay que colocarlo en void SwicthStateChange ¿ en pulsacion larga hay que cambiarlo a otra sitio para que sepa que es un pulsador ?

Desgraciadamente lo tengo en tareas pendientes, ahora mismo entrada de la tarjeta extensión solo ejecuta eventos de cambio de estado.

En la primera semana de navidades me comprometo a tener esa ampliación en el configurador.

Desgraciadamente no disponemos de tiempo para atender el foro... Si es muy urgente puede solicitar un presupuesto de puesta en marcha en el formulario de contacto..

gracias