{"id":1635,"date":"2022-07-25T09:45:31","date_gmt":"2022-07-25T09:45:31","guid":{"rendered":"https:\/\/www.mainmind.com\/blog\/?p=1635"},"modified":"2023-06-18T16:54:18","modified_gmt":"2023-06-18T16:54:18","slug":"autocalibrar-persianas-en-home-assistant","status":"publish","type":"post","link":"https:\/\/www.mainmind.com\/blog\/autocalibrar-persianas-en-home-assistant\/","title":{"rendered":"Autocalibrar persianas en Home Assistant"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">El uso de persianas exteriores en ventanas es muy nuestro, fuera de Espa\u00f1a raramente se utiliza y menos de forma tan generalizada. A la hora de domotizarlas, podemos optar por instalar motores capaces de reportar la posici\u00f3n pero su precio suele ser superior. Si optamos por fabricantes gen\u00e9ricos de m\u00f3dulos la gran mayor\u00eda solo permite fijar un tiempo (en segundos) de actuaci\u00f3n.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">La propia persiana sin domotizar cuenta con unos finales de carrera mec\u00e1nicos, en los que dejar\u00e1 de actuar el motor tanto para subir como bajar aunque sigamos pulsando el bot\u00f3n, esto no var\u00eda. En este ejemplo utilizaremos <a rel=\"noreferrer noopener\" href=\"https:\/\/www.zigbee2mqtt.io\/devices\/MS-108ZR.html#moes-ms-108zr\" data-type=\"URL\" data-id=\"https:\/\/www.zigbee2mqtt.io\/devices\/MS-108ZR.html#moes-ms-108zr\" target=\"_blank\">m\u00f3dulos Zigbee del fabricante Moes MS-108ZR<\/a>, los cuales reportan la posici\u00f3n y el estado, pero solo es un c\u00e1lculo en funci\u00f3n del tiempo que hemos definido en la calibraci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para la instalaci\u00f3n el\u00e9ctrica intercalamos el modulo controlador entre los pulsadores y el motor de 4 cables de la persiana:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"397\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2022\/HomeAssistant\/circuito_persianas_zigbee.jpg\" alt=\"\" class=\"wp-image-1636\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2022\/HomeAssistant\/circuito_persianas_zigbee.jpg 900w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2022\/HomeAssistant\/circuito_persianas_zigbee-300x132.jpg 300w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2022\/HomeAssistant\/circuito_persianas_zigbee-768x339.jpg 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Si configuramos 10 segundos para bajar la persiana y se ha activado 5 segundos est\u00e1ra al 50%, esta aproximaci\u00f3n no estar\u00eda mal en situaciones ideales&#8230; pero con el paso del tiempo la persiana empieza a no llegar a su posici\u00f3n inicial. Debemos tener en cuenta que, en la mayor\u00eda de casos, el tiempo que el motor actua para subir la persiana ser\u00e1 ligeramente superior al que tarda en bajar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dependiendo de la calidad del motor, el rozamiento de la persiana, la propia gravedad&#8230; se ir\u00e1 incrementando la diferencia con tiempo, la soluci\u00f3n pasar\u00eda por poder configurar dos tiempos diferentes, uno para subida y otro para bajada y que el mismo dispositivo calculara la diferencia en cada caso. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El fabricante aconsejaba utilizar su gateway de Zigbee y su aplicaci\u00f3n para realizar el proceso de calibrado, el cual no est\u00e1 disponible de manera externa, tampoco daban seguridad de solucionar el problema de este manera&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mientras tanto, una aproximaci\u00f3n para resolver el problema parcialmente, sin tener que pasar por la consola de Zigbee2MQTT continuamente, ser\u00e1 reproducir lo pasos de calibraci\u00f3n de manera m\u00e1s automatizada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enviando el tiempo de calibraci\u00f3n de nuevo en una posici\u00f3n diferente no soluciona el problema, pero si queremos fijar en 35 segundos el tiempo de subida\/bajada de la persiana, con la persiana en la posici\u00f3n abierta m\u00e1xima establecemos el valor de calibraci\u00f3n en un tiempo diferente al actual (34 por ejemplo) y despu\u00e9s el que queremos (35 de nuevo). De esta forma el dispositivo SI pone a cero la posici\u00f3n reportada, abrimos al 100% de nuevo y esperamos. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NOTA: seguramente existan otras posibilidades m\u00e1s directas para establecer y resetear el dispositivo, pero est\u00e1 sirve de manera sencilla para el mismo prop\u00f3sito.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este tiempo de actuaci\u00f3n en la que la persiana no se mover\u00e1 al llegar al final de carrera, contar\u00e1 para el dispositivo vuelva al punto de partida correcto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para ello vamos a separar en un script la funci\u00f3n [<a href=\"https:\/\/github.com\/mainmind83\/HA-varios\/\" data-type=\"URL\" data-id=\"https:\/\/github.com\/mainmind83\/HomeAssistant-persianas\/blob\/main\/script.yaml\" target=\"_blank\" rel=\"noreferrer noopener\">descargar YAML<\/a>]:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nos aseguramos que la persiana este abierta al 100% en Home Assistant<\/li>\n\n\n\n<li>Esperamos el tiempo m\u00e1ximo, a\u00f1adimos unos segundos adicionales de margen.<\/li>\n\n\n\n<li>Establecemos el valor de calibraci\u00f3n a un valor diferente al actual, 34 segundos<\/li>\n\n\n\n<li>Establecemos el valor de calibraci\u00f3n a nuestro valor deseado, 35 segundos (la posici\u00f3n reportada se resetea)<\/li>\n\n\n\n<li>Ajustamos de nuevo a la posici\u00f3n abierta al 100%<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"852\" height=\"1024\" src=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2022\/HomeAssistant\/calibracion_persiana-852x1024.jpg\" alt=\"\" class=\"wp-image-1637\" srcset=\"https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2022\/HomeAssistant\/calibracion_persiana-852x1024.jpg 852w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2022\/HomeAssistant\/calibracion_persiana-250x300.jpg 250w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2022\/HomeAssistant\/calibracion_persiana-768x923.jpg 768w, https:\/\/www.mainmind.com\/blog\/wp-content\/uploads\/2022\/HomeAssistant\/calibracion_persiana.jpg 949w\" sizes=\"auto, (max-width: 852px) 100vw, 852px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Si adem\u00e1s queremos que se regule habitualmente podemos crear una automatizaci\u00f3n, por ejemplo una vez al d\u00eda entre las 9h y las 21h, si detecta que lleva 10 segundos en la posici\u00f3n reportada como abierta al 100%. Pudiendo personalizar en cada instalaci\u00f3n seg\u00fan el uso. [<a href=\"https:\/\/github.com\/mainmind83\/HA-varios\/\" data-type=\"URL\" data-id=\"https:\/\/github.com\/mainmind83\/HomeAssistant-persianas\/blob\/main\/automation_last_triggered.yaml\" target=\"_blank\" rel=\"noreferrer noopener\">descargar YAML<\/a>]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NOTA 1: al a\u00f1adir una condici\u00f3n que comprueba cuando se ejecut\u00f3 por \u00faltima vez la automatizaci\u00f3n, parece <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/home-assistant\/frontend\/issues\/12282\" data-type=\"URL\" data-id=\"https:\/\/github.com\/home-assistant\/frontend\/issues\/12282\" target=\"_blank\">existir un bug que no permite lanzar correctamente<\/a>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\n{{ state_attr(&#039;automation.auto_calibrar_persiana_1&#039;, &#039;last_triggered&#039;) | default(today_at(), true) &lt; today_at(&#039;09:00&#039;) }}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">NOTA 2: actualizado con otra opci\u00f3n para comprobar si la automatizaci\u00f3n se ha ejecutado hace menos de X minutos\/horas<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: yaml; title: ; notranslate\" title=\"\">\n{{ now() - state_attr(&#039;automation.auto_calibrar_persiana_1&#039;, &#039;last_triggered&#039;).astimezone() &gt; timedelta(minutes=30) }}\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Como m\u00e9todo alternativo y r\u00e1pido, es posible establecer la calibraci\u00f3n cuando la persiana est\u00e9 al 100% durante 10 segundos y despu\u00e9s del proceso ponerla al 99% para evitar que est\u00e9 ejecut\u00e1ndose continuamente. [<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/mainmind83\/HA-varios\/\" data-type=\"URL\" data-id=\"https:\/\/github.com\/mainmind83\/HomeAssistant-persianas\/blob\/main\/automation_last_triggered.yaml\" target=\"_blank\">descargar YAML<\/a>]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El uso de persianas exteriores en ventanas es muy nuestro, fuera de Espa\u00f1a raramente se utiliza y menos de forma tan generalizada. A la hora de domotizarlas, podemos optar por instalar motores capaces de reportar la posici\u00f3n pero su precio suele ser superior. Si optamos por fabricantes gen\u00e9ricos de m\u00f3dulos la gran mayor\u00eda solo permite [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1640,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[864],"tags":[895,894,896,866,893],"class_list":["post-1635","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-domotica","tag-autocalibrar","tag-calibrar","tag-calibration-time","tag-home-assistant","tag-persianas"],"_links":{"self":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/1635","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/comments?post=1635"}],"version-history":[{"count":0,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/posts\/1635\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media\/1640"}],"wp:attachment":[{"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/media?parent=1635"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/categories?post=1635"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mainmind.com\/blog\/wp-json\/wp\/v2\/tags?post=1635"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}