Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Habilitar / Inabilitar horarios
#1
Hola a todos:

A través del editor de codigo estoy intentando dar una orden para que cuando un pir detecte presencia habilite una escena, ¿alguien sabe como se habilita o inhabilita los horarios por codigo?
Manual Servidor EXCONTROL
Manual MKRSHIELD EXCONTROL
Manual Sistema Domotico EXCONTROL
"Una experiencia nunca es un fracaso, pues siempre viene a demostrar algo" Edison

Reply
#2
Para los horarios mira esto..

//NumeroElemento de 0 a 29 circuitos
//NumeroElemento de 30 a 39 escenas.
//NumeroElemento de 40 a 49 condicionados.
//NumeroElemento de 50 a 59 Funciones especiales.

EepromWrite(EM_STATECOPY_OFSSET + NumeroElemento,0);//apaga horario
EepromWrite(EM_STATECOPY_OFSSET + NumeroElemento,1);//activa horario

Para lo demás mejor hilos nuevos.
Reply
#3
Gracias Roberto...

... muy interesante, nunca hubiese pensado que se metia el dato en la EepromWrite.
Manual Servidor EXCONTROL
Manual MKRSHIELD EXCONTROL
Manual Sistema Domotico EXCONTROL
"Una experiencia nunca es un fracaso, pues siempre viene a demostrar algo" Edison

Reply
#4
Pues no me habilita o inabilita las escenas la instrucción:

EepromWrite(EM_STATECOPY_OFSSET + NumeroElemento,0);//apaga horario
EepromWrite(EM_STATECOPY_OFSSET + NumeroElemento,1);//activa horario

Comento lo que hago:

1 - La idea, es que unas escenas que tengo, ponen en marcha unos leds, pero si no hay nadie en casa, no tiene sentido que se enciendan. Para ello utilizo un PIR, de manera que si no detecta a nadie pues mantenga inabilitadas las escenas.

2- Código creado:

Tengo dos variables:
PHP Code:
int PresenciaPir 0// Declaro la variable Presencia

boolean Estoy=false    // Variable booleana para indicar si estamos en casa 

En void LoopNewSecond(){//This event occurs every second
PHP Code:
/////////// ¿ESTOY EN CASA? /////////////////
if (PresenciaPir>0 //Funcionando por pir
{
if (
PresenciaPir>=Consignas[1]){ // Si no detecta presencia o sobrepasa tiempo de consigna, estoy es falso
 
Estoy=false
 
PresenciaPir=0;}   
else{ 
 
PresenciaPir++;
 
Estoy=true  // Si detecta presencia estoy es verdadero


De manera que en Consigna 1 meto el tiempo en segundos que quiero que dure la variable "Estoy"

En void SwicthStateChange(int NumberInput, int value){ meto:
PHP Code:
////////////// PIR PARA ACTIVAR ESTOY EN CASA /////////////////
if (Condicionados[1] == true)
{
if (
NumberInput==0){PresenciaPir=1;}


Y para comprobar que la varible Estoy coge los valores true o false en String FreeText(byte Number){ meto:
PHP Code:
if (Number==1){
 if (
Estoy==true){return "Presencia detectada en Casa";}
 else {return 
"Presencia NO detectada en Casa";}

En estados si me indica cuando es true o false.


Por ultimo en void UserLoop(){ //EQUIVALENT ARDUINO LOOP FUNCTION aunque tambien en probado en void LoopNewSecond(){//This event occurs every second, porque no sé donde es aconsejable dejarlo, meto:

PHP Code:
if (Estoy==true){ 
 
EepromWrite(EM_STATECOPY_OFSSET +34,1);    // habilita escena 5
 
EepromWrite(EM_STATECOPY_OFSSET +33,1);    // habilita escena 4
 
EepromWrite(EM_STATECOPY_OFSSET +32,1);    // habilita escena 3
 
EepromWrite(EM_STATECOPY_OFSSET +31,1);    // habilita escena 2
 
}
 else {
 
EepromWrite(EM_STATECOPY_OFSSET +34,0);    // inabilita escena 5
 
EepromWrite(EM_STATECOPY_OFSSET +33,0);    // inabilita escena 4
 
EepromWrite(EM_STATECOPY_OFSSET +32,0);    // inabilita escena 3
 
EepromWrite(EM_STATECOPY_OFSSET +31,0);    // inabilita escena 2
 


Bueno, pues esta última parte no me habilita o inabilita la escena. Es decir si cuando llegue una hora determinada tengo puesto que se ejecute una escena, esto no realiza esa acción ¿alguna idea de porqué?

... perdón por el tochaco que me ha quedado.
Manual Servidor EXCONTROL
Manual MKRSHIELD EXCONTROL
Manual Sistema Domotico EXCONTROL
"Una experiencia nunca es un fracaso, pues siempre viene a demostrar algo" Edison

Reply
#5
Esto inhabilita horarios, con ejemplo de deshabilitar escenas cuando se ejecutan por horarios.... que es el titulo del post...

Las escenas no pueden deshabilitarse... para lo que quieres es mejor usar funciones especiales.
Reply
#6
Gracias Roberto, creo que no me expliqué bien... lo que intengo es habilitar/inabilitar el contenido que hay aquí
   

de ese modo estoy inabilitando que se produzca por ejemplo determinada escena a una hora que tiene programada.

A modo de prueba, en una funcion especial meto

PHP Code:
///User Functions 1

EepromWrite(EM_STATECOPY_OFSSET +31,0); 

... y si me voy al contenido de horario activado, me sigue apareciendo activo el horario de esa escena.

No sé si el concepto no lo pillo o me estoy equivocando en algo
Manual Servidor EXCONTROL
Manual MKRSHIELD EXCONTROL
Manual Sistema Domotico EXCONTROL
"Una experiencia nunca es un fracaso, pues siempre viene a demostrar algo" Edison

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)