Compartir como he resuelto la climatización con splits.
Era un tema que tenia pendiente, la casa tenia una pre instalación para 6 estancias en formato split y la idea era que funcionara como la calefacción con danfoss, utilizando el panel del controlador, en este caso el de climatización. Para gustos colores y a mi me gusta que la casa funcione sola, sin tocar botones salvo para las excepciones, así que la solución pasaba por un sistema que pudiera utilizar el panel de AC.
Quería un sistema que pudiera manejar desde el controlador directamente y que tuviera comunicación bidireccional, asi que descarte los remotec y repetidores iR, mire intesishome pero la api parecía complicada para mi.
Después de leer y releer sobre que marca instalar que pudiera ser domotizado, elegí la marca Daikin (los modulos wifi son AirZone), que aunque no hay documentación de api oficial, el sistema esta basado en llamadas http GET y esto mas o menos se como va (además, aunque no tenga intención de usarla, la app esta muy bien hecha), también vi un plugin en el foro francés de fibaro que esta bastante bien, solo faltaba terminarlo con la parte on/off para poder integrarlo en el panel.
http://www.domotique-fibaro.fr/index.php/topic/4929-plugin-clim-daikin/?hl=daikinSi alguien esta mirando los Daikin, hay varios modulos wifi con diferentes números de serie, en realidad son todos iguales y tienen la misma api, la numeración cambia según la terminación de conexión al split.
Finalmente puse los 6 split, 2 multisplit 3x1Daikin, cada split con su modulo wifi, quedaba la parte divertida, acabar el plugin del foro francés para poder usarlo en el panel AC, y hacer el dispositivo virtual para manejar cada uno de los splits por separado para las excepciones.
Sobre el panel AC
————
Funciona exactamente igual que el calefacción, las diferencias son que, lógicamente enciende el actuador (en este caso el split) cuando la temperatura sube de la consignada en el panel, y apaga el actuador (split) al bajar de la temperatura consignada. El panel tampoco tiene en cuenta el termostato (en mi caso danfoss) asignado a la habitación, parece que solo se usa en el panel de calefacción. Así que todo funciona como esperaba.
El panel solo admite como dispositivos para encendido y apagado los tipo switch (módulos físicos on/off), no sirven los dispositivos virtuales, así que necesitamos el plugin que comenté antes para tener el split como un modulo físico on/off, justo la parte que estaba sin acabar del plugin
, nada irremediable.
El plugin
—————
Terminarlo y darle la funcionalidad on/off no fue difícil, no soy programador pero se me da bien entender los códigos así que con paciencia pude conseguirlo.
El plugin ofrece por cada uno de los split, el on/off, la temperatura ambiente, la temperatura exterior y la velocidad de los ventiladores.
En fibaro aunque los plugins están operativos, deshabilitaron la opción de cargar plugins personales, parece ser porque amenazaban la seguridad del sistema
?? no lo entiendo cuando se puede tener acceso root siguiendo 4 pasos, en fin… y así llevan mas de 6 meses, pero el caso es que se pueden cargar siguiendo estos pasos.
http://www.domotique-fibaro.fr/index.php/topic/4832-installer-un-plugin-utilisateur-en-40x/una vez cargado el plugin, al añadir, indicar ip del split y puerto 80, creará los dispositivos de ese split, añadir tantos como splits tengamos y asignar los dispositivos cada uno en su habitación.
la pega es que hasta que vuelvan a habilitar la carga de plugins personales al actualizar el sistema se eliminan y hay que volverlos a cargar, pero es un mal menor, calculo que me llevará 5 minutos cargarlos y re configurar el panel en caso que actualice el firmware.
aqui el zip
v 1.2
https://www.dropbox.com/s/4tcm8nlvelm22rr/Plugin_Daikin.zip?dl=0v 1.3
https://www.dropbox.com/s/t01v8eftw3t2mep/Plugin_Daikin_1.3.zip?dl=0v 1.4
https://www.dropbox.com/s/cl3a7f4604hqdsc/Plugin_Daikin_1.4.zip?dl=0v 1.7
https://www.dropbox.com/s/ycf1am6e29ak6cc/Plugin_Daikin_1.7.zip?dl=0Modificaciones 1.3:
Interface de uso en plugin.
Eliminado dispositivo dimmer que mostraba el estado del ventilador. (no tenia mucho sentido)
nuevo valor de refresco ajustable a 5 seg.
Modificaciones 1.4:
Al pulsar los botones sobre la interface, confirma con un ok la recepción del comando por el split, también refresca la información en la interface al pulsar sobre los botones.
Modificaciones 1.7:
Aisladas las acciones sobre el bucle principal de actualización. Ahora las acciones se muestran en el momento.
Botón reiniciar el plugin.
escena para reiniciar los dispositivos del plugin cada cierto tiempo. Cada hora en el ejemplo. Poner escena en modo automático.
--[[
%% autostart
%% properties
%% weather
%% events
%% globals
--]]
local sourceTrigger = fibaro:getSourceTrigger();
local ht = json.decode(fibaro:getGlobalValue("HomeTable"))
function tempFunc()
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (string.format("%02d", currentDate.min) == "00")
then
fibaro:call(id, "restartPlugin")
fibaro:sleep(5000)
fibaro:call(id, "restartPlugin")
fibaro:sleep(5000)
fibaro:call(id, "restartPlugin")
fibaro:sleep(5000)
fibaro:call(id, "restartPlugin")
fibaro:sleep(5000)
fibaro:call(id, "restartPlugin")
fibaro:sleep(5000)
fibaro:call(id, "restartPlugin")
end
setTimeout(tempFunc, 60*1000)
end
if (sourceTrigger["type"] == "autostart") then
tempFunc()
else
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
local ht = json.decode(fibaro:getGlobalValue("HomeTable"))
if (
startSource["type"] == "other"
)
then
fibaro:call(h id, "restartPlugin")
fibaro:sleep(5000)
fibaro:call(id, "restartPlugin")
fibaro:sleep(5000)
fibaro:call(id, "restartPlugin")
fibaro:sleep(5000)
fibaro:call(id, "restartPlugin")
fibaro:sleep(5000)
fibaro:call(id, "restartPlugin")
fibaro:sleep(5000)
fibaro:call(id, "restartPlugin")
end
end
ejemplo para pulsar botones desde un dispositivo virtual. b_vel_5 es el nombre del botón, id es el id del dispositivo del plugin.
local _id_daikin_plugin = id
local HC2 = Net.FHttp("127.0.0.1",11111);
local url = "/api/plugins/callUIEvent?deviceID=" .. _id_daikin_plugin .. "&elementName=b_vel_5&eventType=onReleased"
response ,status, errorCode = HC2:GET(url);
fibaro:debug("Pulsado velocidad maxima")
end
NOTA: Si vas a instalar el plugin sobre otro ya instalado, para que se apliquen los cambios elimina los dispositivos del plugin, sube el plugin y vuelve a crear los dispositivos.
El dispositivo virtual para cada split
—————
Como he comentado me gusta que vaya todo solo y no andar tocando salvo para las excepciones, así que con este dispositivo virtual se puede deshabilitar el split del panel AC temporalmente para utilizarlo de forma manual y volverlo a habilitar para que siga el panel, ademas de ajustar las opciones del split, encenderlo y apagarlo, también como los split tienen comunicación bidireccional, si se hacen cambios desde el mando físico del split, éstos se reflejan en el dispositivo virtual, independientemente del modo en el que este.
Para hacer el dispositivo virtual, indicar en el dispositivo virtual ip del split y puerto 80.
luego en el botón ‘Modo panel’ y en el ‘loop principal’ indicar el id de la zona del panel AC.
aqui el vd
https://www.dropbox.com/s/d1d3nj1wbg0b2x5/Daikin_VD_Split.vfib?dl=0El dispositivo virtual para manejar modo verano/invierno
—————
Este dispositivo virtual lo utilizo para encender el panel AC o anularlo, bastante simple, para anular el panel lo que hago es ponerlo en modo vacaciones a la consigna mas alta, 33º.
Esto también lo hago de esta forma para el panel de calefacción, cuando la casa esta en modo verano, se pone el panel de calefacción en modo vacaciones con una consigna de 12º.
para hacer funcional el dispositivo, hacer lo siguiente.
crear variable ‘Modo_AA’ con valores ‘verano’ e ‘invierno’
crear variable ‘Modo_refrigeracion’ con valores ‘Ausente’ y ‘Normal’
en el ‘loop principal’ cambiar los ‘currentIcon’ con el numero de icono personalizado.
en los botones, poner en idzonas = {} todos los id de las zonas a manejar, si hay una ej. idzonas = {numero} , si hay mas de una añadir con ‘,’ entre números ej. idzonas = {numero1, numero2, numero3}
aqui el vd
https://www.dropbox.com/s/n03grmuyech9cc7/Panel_AC_%28modo%29.vfib?dl=0