Zusätzliche Funktionen lassen sich mit Lua und den Port-Erweiterungen PCF8575/PCF8591 über I2C umsetzen. Lua wird über die separate Build-Umgebung Samovar_lua in PlatformIO aktiviert, über das Kontrollkästchen „Lua verwenden“ («Использовать Lua») auf der Registerkarte „Hardware“ («Оборудование») des Konfigurators oder über die Direktive #define USE_LUA in user_config_override.h; die Erweiterungen werden an derselben Stelle mit den Direktiven USE_EXPANDER und USE_ANALOG_EXPANDER aktiviert (im Konfigurator die Felder „Adresse der PCF8575-Erweiterung“ («Адрес расширителя PCF8575») und „Adresse der PCF8591-Erweiterung“ («Адрес расширителя PCF8591»)).
Die Programmierung zusätzlicher Funktionen erfolgt auf Basis der SkriptspracheLua. Der Skripteditor ist auf der Seite Einstellungen – Editor verfügbar („Einstellungen“ («Настройки») – „Editor“ («Редактор»)).
An die Port-Erweiterung können Sie beliebige Aktoren oder Taster (Sensoren, die wie Taster arbeiten) anschließen und selbst festlegen, was zu einem bestimmten Zeitpunkt während des Betriebs von Samovar geschehen soll.
Die Datei init.lua wird bei der Initialisierung von Lua ausgeführt. Während Samovar arbeitet, laufen das gemeinsame script.lua und das in den Einstellungen gewählte Modusskript etwa einmal pro Sekunde. Sie können sie im Dateieditor der Weboberfläche ändern.
Sie können Variablen im Speicher von Samovar ablegen, bis zu 10 Timer starten, den Betriebszustand von Samovar abfragen usw. Sie können also zusätzliche Geräte anschließen und sie während des Betriebs von Samovar automatisch steuern
Sie können prüfen, ob ein Sicherheitssensor ausgelöst hat, und in diesem Fall Samovar direkt aus dem Skript abschalten oder die Wasserzufuhr erhöhen bzw. stoppen. Die Szenarien können vielfältig sein. Sie hängen von der konkreten Ausrüstung ab.
Die Grundfunktionen von Samovar ändern sich dadurch nicht.
Skripte können einen analogen Eingang der Platine nutzen — LUA_PIN (GPIO34 beim ESP32 DevKit, GPIO4 beim ESP32-S3), der mit der Funktion analogRead() gelesen wird. Samovar 7.00: Im Modus Käseherstellung belegt der pH-Sensor diesen Eingang, und ein Zugriff aus einem Skript endet mit einem Fehler. Die Ausgänge für Relais, Pumpen und Taster lassen sich nicht aus einem Skript schalten — nur über die Port-Erweiterung oder die Standardfunktionen von Samovar.