Ayudando al polling

Kepasub

  • ***
  • 156
  • La domótica al servicio de las personas
    • Ver Perfil
Ayudando al polling
« en: Abril 30, 2021, 10:15:11 am »
Muy buenos días:
Tenía un serio problema, con un sensor que se disparaba cada dos, tres o cuatro segundos.
Por mucho que ajustase el polling a 10 minutos (en parámetros experto) , al revisar el histórico, notaba que el refresco de señal, se seguía produciendo cada pocos segundos. Es un sensor de luminancia zigbee , para controlar el cierre de las persianas, en función de la luz ambiente.
Los valores de luminancia, varían mucho, en especial si hay nubes.
He bajado de la Store Eedomus, la aplicación "Calculadora matemática". Quería dividir por mil el valor y tomar la parte entera.
No he sido capaz de hacerlo, y no he encontrado información sobre la aplicación, pero he visto que el polling de esta calculadora, si que responde. Así, que he sustituido en la regla la señal directa del sensor, por la señal recalculada y.......MILAGRO. La señal, ya está controlada por el polling. Ahora, puedo regular los disparos como yo quería. Además, de esta forma, las variaciones de luminancia de corta duración, casi desaparecen.

Actualización : Después de mucho trastear, por fin he conseguido eliminar decimales, mediante la siguiente expresión en la variable [VAR1]                                               round(device(Código API) /1000)
Yo he dividido por mil, pero se puede dividir por el valor que se desee. Hay dos cosas fundamentales. La expresión "round", que es la que hace que desaparezcan los decimales y encerrar entre paréntesis el resto de la fórmula (Código API) /1000)
Y hay que tener en cuenta, que si el valor del sensor llega a cero, al dividir cero por cualquier número, puede dar "error".

Si alguien conoce otras expresiones (aparte de las cuatro básicas, +, -, X y :) que se pueden utilizar con esta calculadora, le agradecería que lo publicase como contestación a este post. Gracias.

Gracias por vuestra atención y espero que a alguien le pueda servir de ayuda.
« Última modificación: Abril 30, 2021, 12:39:09 pm por Kepasub »
Controlador principal: Eedomus
Controladores secundarios : Tahoma Somfy, Zigate
Persianas Somfy RS100 io HYBRID
Varios sensores: Temperatura, luminosidad, Presión barométrica, humedad ,e intentando desde marzo de 2022, fabricar un sensor de lluvia efectivo, que funcione pero que no se oxide.......

Nax

  • ***
  • 191
    • Ver Perfil
Re:Ayudando al polling
« Respuesta #1 en: Abril 30, 2021, 12:28:43 pm »
Muchas gracias por el aporte. Es un truco intetesante y no muy complicado.

Morgoth

  • *
  • 34
  • Un mando para gobernarlos a todos
    • Ver Perfil
Re:Ayudando al polling
« Respuesta #2 en: Octubre 06, 2021, 16:59:35 pm »
Muy buenas:

me he puesto a trastear con la calculadora yo también, y lo cierto es que tiene mejor pinta de lo que parecía inicialmente. De momento la lista de funciones que he visto que soporta (echándole un ojo rápido y poco experto al código) es:

 'device', 'abs', 'acos', 'asin', 'atan', 'cos', 'deg2rad', 'exp', 'floor', 'log', 'pow', 'rad2deg', 'rand', 'round', 'sin', 'sqrt'.

Además se puede operar con "pi" y con "e".

La sintaxis en todas ellas es función(argumento). La mas obvia es device(código API) que devuelve el valor actual de ese dispositivo. Y a partir de ahí de puede complicar, como por ejemplo:

sqrt(device(código API) --> devuelve la raiz cuadrada del valor actual del dispositivo
sqrt(device(código API)*(device(código API2)) --> el resultado anterior multiplicado por el valor del dispositivo 2
floor(sqrt(device(código API)*(device(código API2))) --> el resultado anterior redondeado por defecto al entero más cercano
floor(sqrt(device(código API)*(device(código API2)))*pi --> el resultado anterior multiplicado por pi.

No he probado las funciones trigonométricas, y no consigo que me devuelva ningún resultado la función "pow" ni "rand()".

Os seguiré actualizando según vaya haciendo mas pruebas.

Un saludo.

Kepasub

  • ***
  • 156
  • La domótica al servicio de las personas
    • Ver Perfil
Re:Ayudando al polling
« Respuesta #3 en: Noviembre 15, 2021, 21:35:01 pm »
Muchas gracias Morgoth, por tu aportación.
En verdad, que tiene muchas posibilidades y muy interesantes.
Controlador principal: Eedomus
Controladores secundarios : Tahoma Somfy, Zigate
Persianas Somfy RS100 io HYBRID
Varios sensores: Temperatura, luminosidad, Presión barométrica, humedad ,e intentando desde marzo de 2022, fabricar un sensor de lluvia efectivo, que funcione pero que no se oxide.......

Kepasub

  • ***
  • 156
  • La domótica al servicio de las personas
    • Ver Perfil
Re:Ayudando al polling
« Respuesta #4 en: Julio 29, 2022, 16:40:17 pm »
Muy buenas tardes:
Como no puedo encontrar un sensor de sol compatible con eedomus, estoy probando una función compleja, para subir y bajar las persianas, en base a la temperatura en la calle, la temperatura en casa, la nubosidad, etc.
En particular, he podido observar, que la función EXP de la calculadora, es genial.
La función EXP(device(XXXXXXX)-20), hace que cuanto más lejos esté la temperatura de la temperatura ideal (En este caso 20ºC, mayor es el valor multiplicador y es más fácil controlar el cierre de persianas.
Controlador principal: Eedomus
Controladores secundarios : Tahoma Somfy, Zigate
Persianas Somfy RS100 io HYBRID
Varios sensores: Temperatura, luminosidad, Presión barométrica, humedad ,e intentando desde marzo de 2022, fabricar un sensor de lluvia efectivo, que funcione pero que no se oxide.......