Les possibilités de Samovar peuvent être largement étendues grâce à des modules supplémentaires raccordés au bus I2C et à des scripts supplémentaires :
PCF8575 — un extenseur à 16 ports numériques. Il s'active dans le micrologiciel avec la ligne #define USE_EXPANDER 0x20 (l'adresse du module sur le bus).
PCF8591 — un extenseur à quatre entrées analogiques et une sortie analogique. Il s'active avec la ligne #define USE_ANALOG_EXPANDER 0x48.
I2CStepper — une carte avec un moteur pas à pas pour un agitateur ou une pompe doseuse, et quatre relais. Elle est détectée automatiquement au démarrage de Samovar.
La programmation des fonctions supplémentaires repose sur le langage de scriptLua. La prise en charge de Lua s'active à la compilation du micrologiciel : dans le configurateur, avec la case « Utiliser Lua » («Использовать Lua») (section « Matériel » («Оборудование»)) ; dans PlatformIO, avec l'environnement Samovar_lua ; lors d'une compilation manuelle, avec la ligne #define USE_LUA dans le fichier user_config_override.h. L'éditeur de scripts s'ouvre avec le bouton « Éditeur » («Редактор») de la page Réglages.
Vous pouvez raccorder à l'extenseur de ports n'importe quels actionneurs ou boutons (capteurs fonctionnant comme des boutons), et définir vous-même ce qui doit se passer à un moment donné pendant le fonctionnement de Samovar.
Le script d'initialisation s'exécute au démarrage de Samovar, puis un autre script s'exécute une fois par seconde. Dans le premier, vous décrivez les appareils nécessaires, dans le second, leur comportement. Par exemple, il peut vérifier la température ou l'état actuel de Samovar et/ou allumer ou éteindre une pompe, ouvrir ou fermer une vanne, ou piloter une résistance supplémentaire.
Vous pouvez enregistrer des variables dans la mémoire de Samovar, lancer jusqu'à 10 minuteries, obtenir l'état de fonctionnement de Samovar, piloter l'agitateur, la pompe et les relais de la carte I2CStepper, et envoyer des requêtes HTTP. Autrement dit, vous pouvez raccorder un équipement supplémentaire et le piloter automatiquement pendant le fonctionnement de Samovar.
Vous pouvez vérifier qu'un capteur de sécurité ne s'est pas déclenché et, si c'est le cas, éteindre Samovar directement depuis le script, ou augmenter ou couper l'arrivée d'eau. Les scénarios possibles sont nombreux. Ils dépendent de l'équipement concret.