Las posibilidades de Samovar pueden ampliarse considerablemente con módulos adicionales conectados por el bus I2C y con scripts adicionales:
PCF8575 — un expansor de 16 puertos digitales. Se activa en el firmware con la línea #define USE_EXPANDER 0x20 (la dirección del módulo en el bus).
PCF8591 — un expansor con cuatro entradas analógicas y una salida analógica. Se activa con la línea #define USE_ANALOG_EXPANDER 0x48.
I2CStepper — una placa con un motor paso a paso para un agitador o una bomba dosificadora y cuatro relés. Se detecta automáticamente al arrancar Samovar.
La programación de funciones adicionales se realiza con el lenguaje de scriptsLua. El soporte de Lua se activa al compilar el firmware: en el configurador, con la casilla «Usar Lua» («Использовать Lua») (sección «Equipo» («Оборудование»)); en PlatformIO, con el entorno Samovar_lua; en una compilación manual, con la línea #define USE_LUA en el archivo user_config_override.h. El editor de scripts se abre con el botón «Editor» («Редактор») de la página de Ajustes.
Al expansor de puertos se pueden conectar cualquier actuador o botón (sensores que funcionan como botones), y usted mismo puede definir qué debe ocurrir en un momento dado mientras Samovar trabaja.
El script de inicialización se ejecuta al arrancar Samovar, y después otro script se ejecuta una vez por segundo. En el primero puede describir los dispositivos que necesita; en el segundo, su comportamiento. Por ejemplo, puede comprobar la temperatura o el estado actual de Samovar y/o encender o apagar una bomba, abrir o cerrar una válvula o controlar una resistencia adicional.
Puede guardar variables en la memoria de Samovar, lanzar hasta 10 temporizadores, obtener el estado de funcionamiento de Samovar, controlar el agitador, la bomba y los relés de la placa I2CStepper y enviar peticiones HTTP. Es decir, puede conectar equipos adicionales y controlarlos automáticamente mientras Samovar trabaja.
Puede comprobar que no se ha disparado un sensor de seguridad y, si se ha disparado, apagar Samovar directamente desde el script, o aumentar o cortar el suministro de agua. Los escenarios pueden ser muchos. Los determina el equipo concreto.