• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Сохранить состояние выходов.

Добрый день.
Помогите решить задачу. необходимо сохранить состояние выходов после отключения питания.
Создаю файл пишу состояния выхода, при перезагрузке проверяю состояние выходов из файла, вывожу в порт.
Запись в файл: stpin1
if(_GET.pin1~=nil)then
if(_GET.pin1 == "ON")then
gpio.write(out1, gpio.HIGH);
file.open("stpin1","w");
file.writeline("ON")
file.close()
elseif(_GET.pin1 == "OFF")then
gpio.write(out1, gpio.LOW);

Записывает без проблем.

Код чтения не работает:

--Проверка состояний выходов
out2=7
out1=5;
local cfg_state_pin
gpio.mode(out1, gpio_OUTPUT);
if (file.open('stpin1') == true) then
cfg_state_pin = string.gsub(file.readline(), "\n", "");

print (cfg_state_pin) -- Просто проверка
if cfg_state_pin == ON then
gpio.write(out1, gpio.HIGH);
-- elseif (cfg_state_pin == "OFF") then
-- gpio.write(out1, gpio.LOW);
file.close();
--print (file.readline())
end
end
file.close();
 
Пробовал и так и так, не работает модуль перезагружается.
Рабочий код

local cfg_state_pin1
local cfg_state_pin2
if (file.open('stpin1') == true) then
cfg_state_pin1 = string.gsub(file.readline(), "\n", "");
file.close();
print (1)
print (cfg_state_pin1)
if (cfg_state_pin1 == ('ON')) then gpio.write(out1, gpio.HIGH);
elseif (cfg_state_pin1 == ('OFF')) then gpio.write(out1, gpio.LOW);
end
end
А есть ли ещё варианты как запомнить состояние выходов, не используя файл ?
 

nikolz

Well-known member
Рабочий код

local cfg_state_pin1
local cfg_state_pin2
if (file.open('stpin1') == true) then
cfg_state_pin1 = string.gsub(file.readline(), "\n", "");
file.close();
print (1)
print (cfg_state_pin1)
if (cfg_state_pin1 == ('ON')) then gpio.write(out1, gpio.HIGH);
elseif (cfg_state_pin1 == ('OFF')) then gpio.write(out1, gpio.LOW);
end
end
А есть ли ещё варианты как запомнить состояние выходов, не используя файл ?
Пишите в память RTC .
system_rtc_mem_write
system_rtc_mem_read
 
Сверху Снизу