Авторизация
Регистрация

Напомнить пароль

Датчик наличия 220В на основе Wemos D1 и о перипетиях с чатом GPT

У моего товарища дома установлен инвертор Anenji на 6,2 кВт, батарея на несколько кВт и солнечные панели. В летнее время в солнечные дни дом становится независим от городской сети. Но в пасмурные дни и осенне-весенний период энергии не хватает.

Практически весь дом работает через инвертор, включая духовку, микроволновку, электроводонагреватель, полотенцесушитель и пр. Напрямую к городской сети подключено несколько розеток на всякий случай.
Понятно, что в случае отключения сети, когда на улице пасмурно, духовкой и прочими мощными электроприборами никто не пользуется. Но отключать полотенцесушитель и нагреватель воды бывает некому. На этих и нескольких других приборах стоят WiFi розетки Tuya, но отключением дистанционно никто не занимается.
В связи с этим, понадобилось некое устройство, которое бы следило за состоянием городской сети.
Как ни странно, но поиски в инете не увенчались успехом. Очевидно китайцы считают, что отключения электроэнергии в доме невозможно, а может по какой другой причине.
Конечно, можно было попробовать использовать WiFi розетку или какой-нибудь power meter. Но при отключении энергии эти устройства не могут дать сигнал в сценарий, чтобы отключить лишние приборы, а просто сами отключаются.
Еще одной идее было купить датчик открытия окон/дверей, заменить геркон на реле, которое бы питалось от сети. Но мне не нравится идея батареек и вообще…


Совершенно неожиданно на Али попалась плата Wemos с холдером под аккумулятор 18650. Недавно был небольшой обзор.

Почему бы не попробовать использовать ее, сделав совместимой со Smart Life. Идея простая, от плюса USB порта берем сигнал и подаем через делитель на один из пинов D. При наличии напряжения на блоке питания на нем устанавливается 1, при пропадании — 0. При этом устройство остается в сети, питаясь от аккумулятора, как обещает продавец до 17 часов. В Smart Life устройство меняет статус, что позволяет сценарию управлять WiFi розетками, в частности подключенными к электронагревателям.
Копаться на форумах и в документации Tuya мне было лень, поэтому решил обратиться к «умному» чату GPT. «Без проблем» сказал он, «сваяем скетч за пять минут».
И тут началось...
Прежде всего нужно создать проект на сайте девелоперов Tuya. ИИ подсказывал на какие кнопки нужно нажать и что сделать. Только вот этих самых кнопок не находилось на странице. Пришлось отправлять скриншоты. И тут чат прозрел, так у тебя новый интерфейс 2026 сайта! Странно, разве я могу использовать старый, если сайт обновился. Ну, ладно. Создал проект. Теперь нужно создать скетч. Опять же чат пообещал, что вот буквально сейчас все сделает. Только в бесплатной версии количество сообщений ограничено. А этот гад, не выдавал сразу код, а обещал это сделать быстро и без ошибок, и следующем сообщением приходилось ему говорить: Да, давай. В результате через какое-то непродолжительное время было предложено или перейти на платную версию или подождать буквально часов 12. В результате такими темпами вся эта котовасия заняла чуть ли не две недели.
Вариантов создания программы под Wemos было несколько. Вначале ИИ предложил сделать в VS Code + библиотеки. В результате выяснилось, что Tuya убрала поддержку ESP8266 из виндоуз версии. Пришлось ставить виртуальную машину Ubuntu. Но и там такой библиотеки не оказалось. Как будто не мог ИИ выяснить это сразу. Вернулись к Arduino IDE.
В созданном проекте Tuya нужно было добавить ESP8266 как новое устройство. И опять выясняется, что Tuya убрала поддержку именно этого модуля, осталась ESP32, хотя и это не гарантировано.
«Давай создадим виртуальный девайс — это займет 2 минуты!». Я разве против? Давай. И опять он забыл что у меня новый интерфейс и опять извинения, ой это моя ошибка и сейчас исправим за пять минут. И опять приходится ждать, пока в очередной раз пройдет время на использование бесплатной версии чата.
Через две недели мне все это надоело и я обратился к другому «умному» чату: Gemini. Здесь дело пошло веселее. И, хотя, частенько ИИ делал те же ошибки, что и предыдущий, первая рабочая версия скетча была готова в общей сложности часа через два.
Доведение до ума заняло еще довольно много времени. Но об этом позже.


Новый «умный интеллект» сразу выдал скетч.
Предполагалось, что устройство на Wemos будет вести себя также как любое совместимое. Т.е. просто новое устройство обнаруживается приложением, указывается данные WiFi и все начинает работать. Но не тут то было. Модуль категорически не хотел обнаруживаться. Очевидно, из-за того, что Wemos не имеет на борту Bluetooth или устройства Tuya работают по какому-то своему протоколу.

Что ж, идем с претензией к ИИ.
Нужно сказать, что все время ИИ выдавал исправленные скетчи без всякого пафоса в отличие от чата Gpt набивающего себе цену.
Поиск истины занял довольно большой промежуток времени и тысячи строк кода, которые выдавал ИИ. Были предпринята куча вариантов, вплоть до пробы связать Tasmota и Tuya.
И вот наконец окончательное решение:
Единственный стабильный способ заставить автономный ESP8266 работать с Tuya Cloud через код — использовать прямую авторизацию устройства по ключам (Device ID + Device Secret). В этом случае плата подключается к вашему Wi-Fi обычным кодом, а затем сразу авторизуется в вашем Cloud-проекте Tuya.


Попробую воспроизвести последовательность действий. Возможно что-то пропущу, тогда у вас будет возможность проконсультироваться с ИИ.

И так, для начала нужно зайти на сайт разработчиков под своим логином в Smart Life и создать новый продукт.

Выбрать нужный тип устройства, режим TuyaOS заполнить обязательные поля. В моем конкретном случае пришлось выбирать «Can't find category», ваше устройство будет кастомным.

Далее система перебрасывает на список стандартных функций для этого устройства. Но в моем случае ничего выбирать не нужно.
Нажав на Ок попадаем на страницу списка функций, где добавляем несколько кастомных.

Для моего проекта нужен некий switch со значением boolean и Value, в котором будет отображаться текущее напряжение аккумулятора. Важное замечание, параметр Data Transfer Type должен быть обязательно Send and Report.


Именно поэтому, я не стал выбирать из списка стандартных функций. Некоторые из них имеют свойство Report only, которое нельзя изменить. А это один из камней преткновения почему долго пришлось колдовать со скетчем. Но, в принципе, среди списка можно подобрать те, которые могут отправлять и принимать данные. Главное, чтобы они подходили под ваш проект. Также можно комбинировать стандартные и кастомные функции.

Выбираем панель, которая будет в Smart Life. Здесь можно настроить по своему усмотрению и даже загрузить свой рисунок. Получаем QRcode, который можно отсканировать в приложении и посмотреть как будет эта панель выглядеть.

Далее нужно выбрать тип устройства. И вот здесь возникла проблема: в списке нет ESP8266 или совместимого. Поэтому было предложено выбрать любое поддерживающее WiFi.

В визарде есть еще несколько шагов, но по-большому счету этого достаточно. Все остальное можно настроить позже.

Теперь необходимо добавить устройство в облачный проект. Именно через него и будет оно общаться с программой Smart Life или Tuya.

В разделе Cloud/Development создаем новый проект, если он еще не существовал.
После создания необходимо зайти в него. На странице Overview будут интересовать Access ID/Client ID и AccessSecret/Client Secret. Эти значения необходимы, чтобы получить доступ к облаку Tuya.

Теперь необходимо созданный выше девайс добавить в этот проект.
Нужно перейти на вкладку Devices, нажать Add Device и выбрать Virtual.

Из списка на вкладке My Products нужно выбрать созданный.

Откроется очередное окно с кучей вкладок с непонятными параметрами. Но нам нужна вкладка Add To Tuya App Account. Здесь будет сгенерирован QR code, который нужно отсканировать в приложении Smart Life.

После этого устройство появится на странице приложения.

На вкладке созданного виртуального устройства понадобится параметр Device ID.

Еще один подводный камень, о который споткнулись мы с ИИ. Определенные функции еще не отображаются в виртуальном устройстве. Соответственно, обратиться к ним пока невозможно.
Если зайти на вкладку Device Debugging она будет пустая.

Вверху станице написан довольно большой текст. Суть, нужно зайти на Product Details и выбрать режим DP Instruction.

Только после этого функции устройства появятся и только тогда с ними можно будет работать.

Устройства общаются с облаком Tuya посредством запросов GET/POST.

Прежде всего, нужно получить access_token. Структура примерно следующая:
GET openapi.tuyaeu.com/v1.0/token?grant_type=1
Headers: clientId, timestamp (от начала веков-1970 года) и подпись.
Подпись формируется как: clientId+«HmacSHA256»+method + "\n" + contentHash + "\n\n" + urlPath, где contentHash — некая пустая строка Hash.
Все это криптуется HmacSHA256 тем самым secret_key.
В результате получаем заветный access_token.

Чтобы отправить какие-либо данные в Smart Life используется
POST openapi.tuyaeu.com/v1.0/devices/{{deviceId}}/commands с теми же header.
В теле запроса указывается {«commands»:[{«code»:«status»,«value»:true}]} название функции, значение которой нужно передать.
Точно также формируется подпись, с включением тела запроса.

Выдан очередной довольно длинный скетч. Однако, в консоли Arduino IDE появляется ошибка: Ошибка получения токена: «request time is invalid».
Отметка времени (Timestamp), которую отправляет Wemos D1, не совпадает с реальным временем на серверах Tuya (допустимый разрыв — не более нескольких секунд).

В коде использовался параметр millis(), который выдаёт время в миллисекундах с момента включения платы (например, 1500), а сервер Tuya ждёт реальное Unix UTC время в миллисекундах (13 цифр, например 1789474030676)
И вновь новый скетч с несколькими добавленными строчками кода.

Следующая ошибка: Ошибка получения токена: «code»:1004,«msg»:«sign invalid». Оказывается, что сервер Tuya требует обязательную HMAC-SHA256 подпись (sign) запроса. Еще один скетч.
Еще несколько ошибок, связанных все с тем же HMAC, то ему не хватает параметра при вызове, то он хочет, чтобы все символы были в UPPERCASE.
В итоге:
$$\text{StringToSign} = \text{client\_id} + t + \text{HTTP\_METHOD} + \text{"\n"} + \text{Content-SHA256} + \text{"\n\n"} + \text{URI}$$

Но, это была передача только одного параметра: наличия напряжения. Следующей моей идее, было передавать текущее напряжение на аккумуляторе. И тут нас ждал очередные часы поиска истины.
Как мы с ИИ не бились, но Tuya возвращала ошибку
{"code":2008,"msg":"command or value not support","success":false,"t":1790002210126,"tid":"be4c60a5b5cb11f18e74b24ed3ecc0bd"}
И вновь несколько часов разборки полетов. В итоге, выяснилось, что я создал параметр со свойством Report only, вместо Send and Report. На мое возражение, что мы хотим просто читать параметр, а не записывать на модуль, был ответ что так работает система через облако.
Ок, пересоздаем все и делаем параметр нужного свойства. Но ошибка так и не уходит. Мало того периодически появляются новые.
{"code":1108,"msg":"uri path invalid","success":false,"t":1790001646565,"tid":"6e69ff10b5ca11f1961972feba20a1c4"}


И наконец, вот он рабочий скетч для модуля Wemos D1!
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClientSecure.h>
#include <ArduinoJson.h>
#include <time.h>
#include <bearssl/bearssl.h>

// ============================================================================
//                          БЛОК КОНФИГУРАЦИИ И КОНСТАНТ
// ============================================================================

// 1. Параметры Wi-Fi
const char* WIFI_SSID                  = "xxx";
const char* WIFI_PASSWORD              = "12345678";

// 2. Данные Tuya Cloud API
const char* TUYA_CLIENT_ID          = "eq8pu8xxxxxxxxxxxx";
const char* TUYA_CLIENT_SECRET      = "dcf65c9xxxxxxxxxxxxxxxxxxxx";
const char* TUYA_DEVICE_ID          = "vdevo179xxxxxxxxxxxx";

// 3. Сетевые адреса и эндпоинты HTTP
const char* TUYA_HOST               = "openapi.tuyaeu.com"; // Региональный сервер (Европа)
const char* TUYA_BASE_URL           = "https://openapi.tuyaeu.com";
const char* NTP_SERVER_1            = "pool.ntp.org";
const char* NTP_SERVER_2            = "time.nist.gov";

// 4. Настройка аппаратных пинов
const int PIN_SENSOR_220V           = 14; // GPIO14 (Пин D5 на Wemos D1)
const int PIN_BATTERY_ADC           = A0; // Вход аналогового замера

// 5. Калибровка питания и логика Deep Sleep
const float BATTERY_CALIBRATION_FACTOR = 0.00412;            // Коэффициент калибровки делителя A0
const float LOW_BATTERY_THRESHOLD      = 3.1;                // Порог разряда для ухода в сон (В)
const uint64_t DEEP_SLEEP_DURATION_US  = 15ULL * 60ULL * 1000000ULL; // Время сна (15 минут в мкс)

// 6. Тайминги и системные параметры
const unsigned long BATTERY_CHECK_INTERVAL_MS = 60000;       // Интервал замеров АКБ (60 сек)
const unsigned long DEBOUNCE_DELAY_MS        = 50;          // Задержка антидребезга (мс)
const unsigned long SERIAL_BAUD_RATE         = 115200;      // Скорость Serial
const char* EMPTY_BODY_SHA256                = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";

// ============================================================================
//                         ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ СОСТОЯНИЯ
// ============================================================================

String access_token = "";
static bool last_state = HIGH;
unsigned long lastBatteryCheck = 0;

// ============================================================================
//                            ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ
// ============================================================================

// HMAC-SHA256 (HEX в ВЕРХНЕМ регистре UPPERCASE)
String calculateHMAC(String data, String key) {
  br_hmac_key_context kc;
  br_hmac_context hc;
  
  br_hmac_key_init(&kc, &br_sha256_vtable, key.c_str(), key.length());
  br_hmac_init(&hc, &kc, 0);
  br_hmac_update(&hc, data.c_str(), data.length());

  uint8_t hmac_out[32];
  br_hmac_out(&hc, hmac_out);

  String hex_str = "";
  for (int i = 0; i < 32; i++) {
    if (hmac_out[i] < 0x10) hex_str += "0";
    hex_str += String(hmac_out[i], HEX);
  }
  hex_str.toUpperCase();
  return hex_str;
}

// SHA-256 для тела POST-запроса (в LOWERCASE)
String calculateSHA256(String data) {
  br_sha256_context sc;
  br_sha256_init(&sc);
  br_sha256_update(&sc, data.c_str(), data.length());

  uint8_t hash_out[32];
  br_sha256_out(&sc, hash_out);

  String hex_str = "";
  for (int i = 0; i < 32; i++) {
    if (hash_out[i] < 0x10) hex_str += "0";
    hex_str += String(hash_out[i], HEX);
  }
  hex_str.toLowerCase();
  return hex_str;
}

uint64_t getEpochMillis() {
  time_t now = time(nullptr);
  return ((uint64_t)now * 1000ULL);
}

// Безопасная функция ухода в глубокий сон
void goToSleep(uint64_t sleepTimeUs) {
  Serial.println("-> Отключаем Wi-Fi и уходим в Deep Sleep...");
  Serial.flush(); // Ждем полной отправки данных по Serial

  // 1. Принудительно обесточиваем Wi-Fi радиомодуль
  WiFi.disconnect(true);
  WiFi.mode(WIFI_OFF);
  WiFi.forceSleepBegin();
  delay(100); // Задержка для завершения аппаратного отключения радиомодуля

  // 2. Переводим чип в глубокий сон
  ESP.deepSleep(sleepTimeUs, WAKE_RF_DEFAULT);

  // 3. Задержка ПОСЛЕ deepSleep блокирует поток до аппаратного отключения
  delay(1000);
}

// Запрос авторизационного токена Tuya
void getTuyaToken() {
  if (WiFi.status() != WL_CONNECTED) return;

  WiFiClientSecure client;
  client.setInsecure();

  HTTPClient http;
  String uri = "/v1.0/token?grant_type=1";
  String url = String(TUYA_BASE_URL) + uri;

  uint64_t t_now = getEpochMillis();
  String t_str = String(t_now);

  String strToSign = String(TUYA_CLIENT_ID) + t_str + "GET\n" + String(EMPTY_BODY_SHA256) + "\n\n" + uri;
  String sign = calculateHMAC(strToSign, TUYA_CLIENT_SECRET);

  http.begin(client, url);
  http.addHeader("client_id", TUYA_CLIENT_ID);
  http.addHeader("sign", sign);
  http.addHeader("t", t_str);
  http.addHeader("sign_method", "HMAC-SHA256");

  int httpCode = http.GET();
  if (httpCode > 0) {
    String payload = http.getString();
    DynamicJsonDocument doc(1024);
    deserializeJson(doc, payload);
    if (doc["success"]) {
      access_token = doc["result"]["access_token"].as<String>();
      Serial.println("-> УСПЕХ: Токен Tuya успешно получен!");
    } else {
      Serial.print("-> Ошибка получения токена: ");
      Serial.println(payload);
    }
  } else {
    Serial.print("-> Ошибка HTTP запроса: ");
    Serial.println(http.errorToString(httpCode));
  }
  http.end();
}

// Универсальная функция отправки payloads в Tuya
void sendTuyaPayload(String jsonBody, bool isRetry = false) {
  if (access_token == "") {
    getTuyaToken();
  }

  if (access_token == "") {
    Serial.println("-> Ошибка: Нет действительного токена доступа!");
    return;
  }

  WiFiClientSecure client;
  client.setInsecure();

  HTTPClient http;
  String uri = "/v1.0/devices/" + String(TUYA_DEVICE_ID) + "/commands";
  String url = String(TUYA_BASE_URL) + uri;

  uint64_t t_now = getEpochMillis();
  String t_str = String(t_now);

  String bodyHash = calculateSHA256(jsonBody);

  String strToSign = String(TUYA_CLIENT_ID) + access_token + t_str + "POST\n" + bodyHash + "\n\n" + uri;
  String sign = calculateHMAC(strToSign, TUYA_CLIENT_SECRET);

  http.begin(client, url);
  http.addHeader("client_id", TUYA_CLIENT_ID);
  http.addHeader("access_token", access_token);
  http.addHeader("sign", sign);
  http.addHeader("t", t_str);
  http.addHeader("sign_method", "HMAC-SHA256");
  http.addHeader("Content-Type", "application/json");

  int httpCode = http.POST(jsonBody);
  if (httpCode > 0) {
    String payload = http.getString();
    Serial.print("-> Ответ сервера Tuya: ");
    Serial.println(payload);

    DynamicJsonDocument doc(1024);
    DeserializationError err = deserializeJson(doc, payload);

    if (!err) {
      if (doc["success"]) {
        Serial.println("-> УСПЕХ: Команда доставлена!");
      } else {
        int errCode = doc["code"];
        // Проверка истечения токена (код 1010)
        if (errCode == 1010 || payload.indexOf("token invalid") != -1) {
          if (!isRetry) {
            Serial.println("-> ВНИМАНИЕ [1010]: Токен устарел. Запрашиваем новый...");
            access_token = "";  
            getTuyaToken();     

            if (access_token != "") {
              Serial.println("-> Повторная отправка команды с новым токеном...");
              http.end();
              sendTuyaPayload(jsonBody, true);
              return;
            }
          } else {
            Serial.println("-> Ошибка: Повторная отправка не удалась.");
          }
        }
      }
    }
  } else {
    Serial.print("-> Ошибка отправки: ");
    Serial.println(http.errorToString(httpCode));
  }
  http.end();
}

// Замер напряжения аккумулятора
float getBatteryVoltage() {
  int rawADC = analogRead(PIN_BATTERY_ADC);
  float voltage = rawADC * BATTERY_CALIBRATION_FACTOR;
  return voltage;
}

// Замер батареи и обработка логики сна
void processBatteryTelemetry() {
  float vBatt = getBatteryVoltage();
  
  Serial.print("Считано с A0: ");
  Serial.print(vBatt);
  Serial.println(" В");

  int tuyaValue = (int)(vBatt * 100);

  String payload = "{\"commands\":[{\"code\":\"voltage_current\",\"value\":" + String(tuyaValue) + "}]}";
  sendTuyaPayload(payload);

  bool is220Present = (digitalRead(PIN_SENSOR_220V) == LOW);

  if (vBatt < LOW_BATTERY_THRESHOLD) {
    if (is220Present) {
      Serial.println("-> Батарея разряжена, но 220V ЕСТЬ. Работаем и заряжаемся.");
    } else {
      Serial.println("-> КРИТИЧЕСКИЙ ЗАРЯД и 220V НЕТ! Вызываем Deep Sleep...");
      goToSleep(DEEP_SLEEP_DURATION_US); 
    }
  }
}

// ============================================================================
//                                   SETUP И LOOP
// ============================================================================

void setup() {
  Serial.begin(SERIAL_BAUD_RATE);
  pinMode(PIN_SENSOR_220V, INPUT_PULLUP);

  Serial.println("\nПодключение к Wi-Fi...");
  WiFi.mode(WIFI_STA);
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nWi-Fi успешно подключен!");

  configTime(0, 0, NTP_SERVER_1, NTP_SERVER_2);
  Serial.print("Синхронизация времени");
  time_t now = time(nullptr);
  while (now < 100000) {
    delay(500);
    Serial.print(".");
    now = time(nullptr);
  }
  Serial.println("\nВремя синхронизировано!");

  getTuyaToken();

  // Инициализация состояний при старте/пробуждении
  last_state = digitalRead(PIN_SENSOR_220V);
  Serial.print("Текущее состояние 220V при старте: ");
  Serial.println(last_state == LOW ? "ЕСТЬ" : "НЕТ");
  
  String statePayload = "{\"commands\":[{\"code\":\"charge_switch\",\"value\":" + String(last_state == LOW ? "true" : "false") + "}]}";
  sendTuyaPayload(statePayload);

  processBatteryTelemetry();
  lastBatteryCheck = millis();
}

void loop() {
  // 1. Периодический замер напряжения аккумулятора
  unsigned long currentMillis = millis();
  if (currentMillis - lastBatteryCheck >= BATTERY_CHECK_INTERVAL_MS) {
    lastBatteryCheck = currentMillis;
    processBatteryTelemetry();
  }

  // 2. Отслеживание изменения уровня 220V
  bool current_state = digitalRead(PIN_SENSOR_220V);

  if (current_state != last_state) {
    delay(DEBOUNCE_DELAY_MS);
    if (digitalRead(PIN_SENSOR_220V) == current_state) {
      last_state = current_state;
      
      Serial.print("Изменение состояния 220V: ");
      Serial.println(last_state == LOW ? "ЕСТЬ (LOW)" : "НЕТ (HIGH)");

      String statePayload = "{\"commands\":[{\"code\":\"charge_switch\",\"value\":" + String(last_state == LOW ? "true" : "false") + "}]}";
      sendTuyaPayload(statePayload);

      if (last_state == HIGH) {
        processBatteryTelemetry();
      }
    }
  }
}


Для того, чтобы модуль мог выходить из состояния глубокого сна, нужно GPIO16 (D0) соединить с пином Reset. Однако, ни первый ни второй не выведен на гребенку.

Я уже думал, что придется паяться к контактам самой микросхемы или дорожкам, но при изучении обнаружил площадку с двумя контактами, один из них соединялся с GPIO16, а второй с кнопкой Reset.

Так что, все свелось к соединению этих двух контактов.

В итоге, я выбрал одну стандартную функцию и одну кастомную для показа напряжения аккумулятора. В Smart Life это выглядит так:

Поскольку обе функции Read and Report, то в самом приложении их можно изменять. Если для первой это будет иметь значение, т.к. сработает сценарий, то изменение значения второй ничего не поменяет, потому что это значение не отправляется обратно в модуль.

Хочу сказать, что я на столько обленился, что даже очевидные ошибки, типа отсутствие нужной библиотеки при вызове функции не пробовал исправлять. Просто все ошибки, что выдавал Arduino IDE транслировались ИИ и тот тут же выдавал исправленный скетч. Кстати, любые ошибки с его стороны не только исправлялись, но и довольно подробно комментировались почему это произошло.
Но проверять и тестировать нужно тщательно. Например, в одном из предыдущих вариантов оказалось, что модуль вовсе не переходит в спящий режим. Потому что, после выполнения команды ESP.deepSleep() нужно сделать паузу, пока модуль перейдет в это самое состояние. Иначе начинает выполняться следующая команда и модуль никогда не переходит в сон. А ИИ сделал задержку до выполнения функции, а не после нее.
Время работы от аккумулятора оказалось примерно 17 часов, как и обещано на странице товара.
Ток потребления после перевода в сон составил чуть больше 9 мА.

Конечно скетч еще тестировать и тестировать. Тем не менее ИИ выдал вполне рабочий код и готов дорабатывать его по первому требованию. Например, я попросил вынести все константы в верх скетча, что было сделано практически мгновенно.
Уверен, что на изучение и перелопачивание всяких форумов по внедрению такого модуля в систему Tuya ушло бы гораздо больше сил и времени, чем пообщаться с ИИ.
Добавить в избранное
+52 +65
свернутьразвернуть
Комментарии (173)
RSS
+
avatar
+13
  • ABATAPA
  • 07 октября 2026, 07:20
Вайб-кодинг в естественной среде. :)
Я автоматизации и карточки для HA так делаю с помощью бесплатного Gemini в поиске Google. Причём, он вполне способен сохранять контекст в течение для (и это примерно сотня страниц диалога). И конфиги для ESPHome тоже делал.
Да, порою нужны десятки итераций, нужно следить, чтобы самостоятельно не «ушёл налево» (не поменял метод достижения цели), отсеивать совсем уж очевидные ошибки… Но вариант «поставил задачу — скопировал код — заскриншотил ошибку/результат — скормил ИИ — скопировал код...» работает.
+
avatar
+2
  • kvarkk
  • 07 октября 2026, 11:34
Причём, он вполне способен сохранять контекст в течение для
Да вроде и дольше хранит, не заметил, чтобы он что-то забывал.
+
avatar
0
  • ABATAPA
  • 07 октября 2026, 11:47
Бывает иногда. Не знаю, зависит ли это от глубины, лимита токенов или ещё чего, но бывает.
+
avatar
+7
  • Fobian
  • 07 октября 2026, 07:20
Так если дом питается от инвертора, то почему бы не поставить аналог pj-1203a, только под wifi, одни клещи повесить на вход в дом, вторые — на инвертор и написать сценарий в smart life что делать при пропадании городского электричества?
Ну или перейти с облачного smart life на православный Home Assistant, там возможно писать автоматизацию, основываясь на внезапной недоступности наблюдаемого устройства, так что умная розетка в городской сети была бы отличным индикатором и триггером для дальнейших действий.
+
avatar
0
  • starson
  • 07 октября 2026, 08:12
pj-1203a
Я писал это как вариант. Вопрос розетка от инвертора и городской сети должны быть рядом. Увы…
+
avatar
+1
  • Fobian
  • 07 октября 2026, 08:29
Нет, зачем? Оно же вешается в щит, куда и приходят кабели от инвертора и городской сети. А если использовать не облачное решение, то и этот power meter не нужен.
+
avatar
+9
  • xonixer
  • 07 октября 2026, 07:45
Не совсем понял сценарий работы. И общую задумку работы этого устройства. Имеем — солнечные панели, АКБ, инвертор, потребители. В какой-то момент света для восстановления потраченного из АКБ не хватает, и инвертор отрубает потребителей в доме. В этот-то момент эта свистулька должна подать сигнал на отключение мощных приборов. Понятны сентенции о просто отключении стандартной ВиФи, воткнутой в розетку. Но этот «прибор» отдавать состояние розетки собирается по ВиФи кому-то, что подразумевает наличие некоего роутера, запитанного от своего собственного аккумулятора, и живущего после отключения розеток. Тогда зачем этом «прибору» собственный аккумулятор? Что б была ещё одна точка отказа/заботы? Почему при богатейшей периферии в процессоре выбран один единственный бит, в состоянии 0/1 (есть в розетке, нет в розетке)? Непонятно.
Предлагаемый вариант — запитать «прибор» от того же, чем питается роутер. При просыпании раз в пять минут, мониторинге, репорте и засыпании это практически не увеличит расход от этого резерва, однако из схемы уйдёт лишний аккумулятор со своими проблемами — заряд, разряд, потеря ёмкости, вздутие… Далее не мерять присутствие напряжение в розетке, когда по факту инвертор уже фактически весь дом отключил, а мерять напряжение на АКБ, от которых инвертор дом питает. Это позволит не бороться с последствиями (дом обесточен полностью), а по мере разряда превентивно отключать мощные потребители, оставляя хоть что-то в доме работающем до последнего электрона в аккумуляторе.
+
avatar
+4
  • starson
  • 07 октября 2026, 08:15
Не понятно, что непонятно )
Все подключено через инвертор. Чтобы в отсутствие городской сети не высаживать быстро аккумулятор отключаются нагревательные приборы, потребляющие большое количество энергии. Все остальное: холодильник, освещение, роутеры остаются подлючеными.
В сценарии можно еще учитывать время суток и погоду. Если это день и яркое солнце, то в принципе можно и не отключать что-то
+
avatar
0
  • xonixer
  • 07 октября 2026, 08:36
А, отключается городская сеть, а не инвертор по разрядке АКБ. Тогда получается что дом не обесточен, зачем этому «прибору» автономное питание? И почему бы не мониторить уже имеющимся в «приборе» АЦП напряжение на АКБ, что б продолжать снимать нагрузку по мере их разряда?
В сценарии можно еще учитывать время суток и погоду. Если это день и яркое солнце, то в принципе можно и не отключать что-то
Банальный фотоэлемент может дать инфу о кол-ве света, попадающего на панели, и это будет настоящая информация, т.к. вычислить кол-во энергии, попадающей на панели из погоды и времени суток фактически невозможно. Вычислить можно много всего, вплоть до угла падения солнечных лучей на панели — но каждое пролетающее облачко, затеняющее панели — вычислить невозможно.
+
avatar
-2
  • starson
  • 07 октября 2026, 08:49
И как фотоэлемент интегрировать в ту же Тую? Собственно для данной конфигурации только при безоблачном небе панели покрывают все потребление нагревательными приборами
+
avatar
+2
  • iDDD
  • 07 октября 2026, 10:34
И как фотоэлемент интегрировать в ту же Тую?
Например, можно уколхозить стандартный датчик температуры/влажности, который вместо одного из параметров будет передавать освещенность в процентах.

Или тем же способом, которым вы еспшку туда подтянули.

Хотя от меня ускользает смысл в необходимости отдельного фотодатчика, если можно снимать данные о напряжении с панелей, которые к тому же сразу интегрированы текущей нагрузкой.
+
avatar
0
  • redcap
  • 07 октября 2026, 11:12
Банальный фотоэлемент может дать инфу о кол-ве света,
А смысл? Прилип листочек с дерева к панели и приехали :)
+
avatar
0
  • Tundra
  • 07 октября 2026, 20:36
Отличный сценарий для экономии. Чтобы потом докупить кучу барахла, которое зависит от работы китайских серверов, прошивок и прочего. В один момент это все нам отрубят, а они отрубить ничего не смогут.
+
avatar
0
  • redcap
  • 07 октября 2026, 11:10
Не совсем понял сценарий работы.
Здесь не будет результата, это бесконечный процесс :)
+
avatar
+14
  • serdio
  • 07 октября 2026, 07:50
Фу. Мне от статьи плохо стало, тут общение с ИИ выглядит как извращение. В жизни подобный датчик делается быстрее чем прочитать это. Минусуйте, не жалко.
+
avatar
+6
  • starson
  • 07 октября 2026, 08:16
Это как борьба теплого звука от грампластинки и холодного от оцифрованного или пленочного фотоаппарата и цифровика
+
avatar
+5
  • xNIXx
  • 07 октября 2026, 10:20
Нет, это как борьба с маразмом. Кто-то победил, кто-то нет.
Вы получили на выходе кусок неподлерживаемого говна, черный ящик с неизвестным количеством изощренных багов, которые не найти никаким тестированием.
Хорошо только то, что неважно работает это всё или нет.
+
avatar
+4
  • starson
  • 07 октября 2026, 12:13
Я получил во-первых, рабочий код, который вполне понятно написан и прокомментирован, так что я смогу без проблем его протестировать и модифицировать в случае необходимости.
А главное, я получил как работает в принципе интеграция в Tuya без копания в различных форумах и документации.
+
avatar
-2
  • xNIXx
  • 07 октября 2026, 12:46
Скажите, все это будет в деревянном доме установлено?

ЗЫ. Про рабочий, протестированный и документированный код даже несмешно комментировать, он примерно также рабочий как специальные провода для колонок из натренерованной :) безкислородной :))) меди.
ЗЫЫ. Без труда и рыбку из пруда не вытащить. Если ты не работаешь — ты не работаешь :), если не учишься — не учишься. Двое из ларца могут имитировать работу, но ты никогда не узнаешь насколько плохо она сделана, у тебя просто нету компетенций, чтобы её оценить. Там где это неважно — это приемлимо. Хоть как-то, тоже вариант решения проблем. Но вот неважно ли там…
+
avatar
+1
  • starson
  • 07 октября 2026, 13:49
Про рабочий, протестированный и документированный код даже несмешно комментировать
А зачем комментировать. Укажи конкретные нерабочие моменты
+
avatar
-1
  • xNIXx
  • 07 октября 2026, 13:58
Дом деревянный?
+
avatar
+4
ЗЫ. Про рабочий, протестированный и документированный код даже несмешно комментировать, он примерно также рабочий как специальные провода для колонок из натренерованной :) безкислородной :))) меди.
Эм. Из поста автора видно, что код рабочий — ну он просто работает и выполняет ту задачу, что от него автор ожидал.
Документированный? Если комментарии есть, значит — документированный. Я тоже вайбкодил — агенты все свои блоки подписывают и указывают, что этот блок должен делать

Но судя по агрессии и уровню аргументации, вайбкодингом ты не никогда не занимался, не пробовал, но осуждаешь. Какую конкретно альтернативу предложишь? 5 лет учить программу ВУЗа по программированию, потом еще полгода изучать необходимый язык программирования, потом две недели читать документацию TUYA, ESP и так далее?

Чтобы что, чтобы считать себя тру программистом? Так это и есть бескилородная медь в аудиокабеле. Именно этот подход будет аудиофилией в чистом виде. А Вайбкодеры — они в этой метафоре просто купили себе аудиоколонку и просто слушают музыку, а не анонизмом бесполезным занимаются. Если решаемая задача решена, то что еще нужно то?
+
avatar
-3
  • xNIXx
  • 07 октября 2026, 16:07
Из поста автора видно, что код КАК-ТО РАБОТАЕТ :)

Из вашего поста видно, что вы зачем-то хотите казаться каким-то «тру программистом» при этом очевидно инженером вы не являетесь и не понимаете, что без понимания и чтения документации всё что можно сделать — это изготовить какую-то небезопасную поделку, как сделал автор всего этого.

Если решаемая задача решена, то что еще нужно то?

Вам — не знаю.
Мне на месте автора нужна была бы уверенность, что не придется друга в закрытом гробу хоронить. Но ему и вам, наверное такая уверенность не нужна.
+
avatar
+3
  • aliex
  • 07 октября 2026, 16:12
Не то чтобы я поддерживал вашего собеседника, но совершенно не представляю, какой там может быть сценарий, чтобы хоронить кого-то пришлось. Учитывая, что оно всё низковольтное и тупо сигналит по радио о наличии напряжения на USB.
+
avatar
0
  • xNIXx
  • 07 октября 2026, 16:27
Ну т.е. как взрываются банки лития(огромные заметьте банки 18650) вы не видели :)?
Как весело горят дома так, что не все успевают в трусах выскочить — тоже?
Никогда у вас не бахали адаптеры на 5в? (у меня с месяц назад бахнул огого, но без возгорания, однако корпус сорвало)
Итд итп.

Любая электрическая фигня пожароопасна.
Любой аккумулятор (а особенно литиевый обычный не лифепо и не лто) опасен ОЧЕНЬ. Можно было обойтись без этих рисков.
Но не тогда, когда ты вайбинженер.

ЗЫ. У меня тут пару лет назад примагнитилась иголка от галтовки к магнитному проводу для зарядки. Что я вам могу сказать. Адаптер дает 5в без умных протоколов. Я сомневаюсь, что иголка смогла умный протокол поддержать :), ну т.е. то к чему она примагнитилась +- там не было пинов. Несмотря на это нашел я ее т.к. она раскалилась до бела, прожгла ламинат на котором всё это лежало, расплавила корпус с магнитом итд итп.
От пяти заметьте вольт. Сварка — она тоже не от киловольт вообще-то.
+
avatar
+2
  • aliex
  • 07 октября 2026, 16:37
У… Ну, с таким подходом только в пещеру.

Нет, почему-то у меня не взрываются USB адаптеры, причём они из розетки не вынимаются вообще никогда до замены на следющий, я не отключаю пол-дома, уходя, и так далее. Но даже если бахнет (уже шанс крайне мал) — чтобы было возгорание надо, чтобы он умел гореть (то есть был совсем левым — в нормальных корпус негорючий), чтобы при этом не вышиб автомат… В общем, шанс — как метеоритом по голове.

Аккумулятор эта штука может только разрядить насмерть — в предыдущем обзоре это обсуждали — защита от перезаряда там есть. И в любом случае к «вайбкодерству» это отношения не имеет — чисто электронная тема.
+
avatar
-1
  • xNIXx
  • 07 октября 2026, 16:42
С вашим только в морг.

Есть такая штука — риск менеджмент. Какие риски я получаю, и что я получаю взамен.
В данной поделке пользователь получает кучу рисков. Если он их не в состоянии оценить — это его личное дело. Получает ли он сопоставимый гешефт — решать ему.

Аккумуляторы бывают разные, зарядки тоже, как работает именно эта штука именно автора никто не знает, а автор очевидно не проверял. Это в любом случае точка отказа. И будет ли с ним всё хорошо не знает никто. Но чтобы это понимать надо быть хоть чуть-чуть в теме, если ты вайбспециалист — увы, ты об этом даже не догадываешься. Тебе не с чего понимать что несет риски, а что нет, как организовать всё безопасно, что опасно, что неопасно итд итп. Беда испюлючительно в этом.

Причем если включить мозг, то можно избежать ВСЕХ этих рисков, сделать проще, быстрее, надежнее, дешевле. Но включать увы нечего, есть только вайб.

Про код даже начинать не хочется — это бессмысленно. Оно всегда чудовищно. Нейросети обучены на самых мрачных практиках, к сожалению. Похоже они там ответы со стековерфлоу в основном использовали.

Может ли нейросеть в руках специалиста дать ему некий буст — да.
Может ли нейросеть в руках неспециалиста дать ему некий буст — как правило нет.
Понимаете, это как с елочными игрушками :), ну т.е. вроде бы они такие-же как в детстве, вроде это всё должно работать, вроде выглядит прям неплохо, но нет, нету радости :), и копнешь тут, копнешь там, и волосы на башке начинают шевелиться, и только один вопрос «как это всё вообще работает», «как удалось хоть какие-то тесты пройти».

ЗЫ. Если чё — у меня есть платная подписка на курсор… и да — я ей пользуюсь. Но совершенно не так, как автор. И да — я ее сам оплачиваю.
+
avatar
+4
  • aliex
  • 07 октября 2026, 16:51
Ещё раз — как именно гроб с моргом организуем? Пока что вы рассказали про зарядное (которые в любом случае в доме, и далеко не одно, которые ну никак массово не горят), и «аккумуляторы бывают разные» — что под этим подразумевалось — мне неведомо, но, опять же массовых возгораний не видать.

Что до «точек отказа» и прочего — это всё красиво, конечно, но в нормальной квартире, тем более доме постоянно включённых электорнных устройств минимум десятки, если не сотни. Тем более, что и так торчат туевские розетки и куча всего остального, про которое тоже «будет ли хорошо не знает никто» — потому что непонятно, кто там что сэкономил при изготовлении. И аккумуляторного тоже наверняка полно — хоть датчиков, хоть лампочек, хоть ещё чего. Ну мир сейчас такой — в электронике буквально купаемся.
+
avatar
0
  • xNIXx
  • 07 октября 2026, 17:06
Миллионы, чего уж.
Перечитайте, там сверху довольно подробно всё разжевано.

Если у вас на зарядке нонстоп стоят 18650 банки, то могу только посочуствовать.
Вы очень смелый человек.
+
avatar
+1
  • aliex
  • 07 октября 2026, 17:53
Простенький умный дом — это хотя бы штук тридцать устройств. Нормальный — за сотню. Плюс всё остальное, к умному дому не относящееся — всякие ночники, электронные сувениры, зарядные для всего и вся и так далее.

Насчёт зарядки нонстоп — ну убьёт она его, конечно, за какое-то время (за какое — вопрос отдельный). Но и только.

Коду, конечно, обработки ошибок бы добавить, но в остальном — ардуино как ардуино, ничего лучшего эта мелочь не достойна.
+
avatar
0
  • CuMr
  • 07 октября 2026, 20:05
Если у вас на зарядке нонстоп стоят 18650 банки, то могу только посочуствовать.
ну у меня последние лет 15 постоянно стоят на зарядке банки 18650 для электрососки и ничего не случилось. сочувствуйте.
+
avatar
+5
  • starson
  • 07 октября 2026, 19:29
Отказываемся от электричества, аккумуляторов и живем в каменном веке
+
avatar
+4
  • starson
  • 07 октября 2026, 16:12
Вот интересно, чем же это «поделка» так опасно, что друга придется хоронить?
Наверное тем, что система глюконет, отключит бойлер и товарищ будет мыться холодной водой, заболеет и умрет. Но тогда причем здесь закрытый гроб?
+
avatar
+3
  • Vadim2S
  • 07 октября 2026, 12:36
Зато у него есть что-то отличное от «RTFM, LMD!». P.S. Олды поймут :-)
+
avatar
+2
В жизни подобный датчик делается быстрее чем прочитать это.
Почти любая оптопара — вот тебе и гальваноразвязка, и датчик, и слежение за фазой сети (если надо).
+
avatar
+1
  • starson
  • 07 октября 2026, 10:16
Вопрос как этот датчик интегрировать в умный дом
+
avatar
+5
  • serg_m
  • 07 октября 2026, 11:13
Вопрос как этот датчик интегрировать в умный дом
Например, с помощью того же wemos.
Я для подобного проекта использовал wemos + вот такую оптопару.
https://aliexpress.ru/item/1005008543269512.html

Maxim_Sed верно заметил, что использовать оптопару- безопасное и правильное решение.
+
avatar
-1
  • starson
  • 07 октября 2026, 12:14
Безопаснее чего? 5В?
+
avatar
0
  • xNIXx
  • 07 октября 2026, 12:57
Откуда, кстати эти 5в берутся-то?
+
avatar
+2
  • redcap
  • 07 октября 2026, 11:13
выглядит как извращение
+100500. И в этом смысл умных домов
+
avatar
+3
  • aliex
  • 07 октября 2026, 12:53
Тут бы не было вообще никаких проблем, если б был тот же HA, а на tuya. Вообще ничего делать не надо было бы.Тупо событие по отключению «умной розетки», подключённой к городсткой сети.
+
avatar
+3
  • DIMAace
  • 07 октября 2026, 11:50
В жизни подобный датчик делается быстрее чем прочитать это.
Я грешным делом подумал, что мне одному так думается. Но нет, фуууух.
+
avatar
0
Монументальная работа!!! Однозначно ПЛЮС!!!
+
avatar
+7
  • runner
  • 07 октября 2026, 08:04
Потратить «чуть ли не две недели» на то чтобы выключать полотенцесушитель через Китайский сервер? Во истину ИИ творит чудеса! Похожую проблему решал с помощью Node-RED — инвертор Victron публикует в MQTT топик напряжение в сети, Node-RED сценарий подписан на топик и если напряжение пропало отправляет Modbus команду на отключение реле и сообщение в Телеграм канал что свет пропал. Правда у меня в каждом щитке малинка с Node-RED и все розетки подключены через многоканальное реле с Modbus но две SONOFF S60 прошитые ESPHome и малинка с Home Assistant решат ту-же проблему без особых усилий. Бонусом можно настроить управление полотенцесушителем через Телеграм канал :)
+
avatar
+3
  • starson
  • 07 октября 2026, 08:18
Чувствуете? Node-RED, Modbus, малинка, Home Assistant и человек, который во всем этом разбирается?
Так что проще, заменить все в щитке, установить ассистант или потратить две недели чтобы добавить еще одно устройство в существующую систему Tuya?
+
avatar
+7
Вопрос именно в существующей экосистеме. Также вопрос в том — у кого эта экосистема существует. Я согласен с существованием облачных УД только в контексте возможности их использования неискушенным пользователем, который просто будет покупать готовые устройства и собирать из них «лего» по готовым сценариями. Таким пользователям действительно не нужны ни HA, ни MQTT, ни прочая магия и rocket science.

Но преодолевать порог входа в программирование, выгружать токены и т.д., чтобы… остаться привязанным к облаку? Эм, зачем, если эта задача в итоге с меньшими трудозатратами решается переводом всего в локальное управление, которое в перспективе дает гибкость и энергонезависимость в разу большую? Если уж не нужен центральный узел, то можно и две ESP напрямую между собой связать — первая будет датчиком напряжения, вторая реле умной розетки просто выключает, получая прямую команду от первой.

Ну вот сделана сейчас автоматизация через китайское облако. А если интернет в поселке отключится? А если чебурнет превратит вообще всю эту выполненную работу в тыкву? Локальный HA однажды настроенный хотя бы без обновлений, но продолжит работать и даже будет поддерживать дальнейшую настройку в рамках уже существующих функций — автоматизации можно будет дописывать, например.
+
avatar
+2
  • mafnaa
  • 07 октября 2026, 09:37
Текст начинается со слов «У моего товарища...», т.е. автор это делает не для себя. НА великолепен, но и решать проблему одного датчика переездом на другую инфраструктуру тоже перебор. Как минимум, по стоимости готового решения.
+
avatar
+2
  • aliex
  • 07 октября 2026, 12:56
Переезд на локальное решение решает кучу проблем.
+
avatar
+2
  • Suhoff
  • 07 октября 2026, 20:19
Когда эти проблемы есть. Автор их явно не имеет))
+
avatar
0
  • aliex
  • 07 октября 2026, 20:38
Учитывая, что автор делал не себе — определённо.
+
avatar
0
  • Phanex
  • 08 октября 2026, 01:12
«Если у тебя есть проблема, но ты собираешься её решить рекэкспом, у тебя есть две проблемы.»

Решает. И порождает набор других.
+
avatar
0
  • aliex
  • 08 октября 2026, 02:34
Я как раз любитель регэкспов, кстати :-) Впрочем, я с Перла начинал, так что неудивительно.

Если серьёзно — то кроме вопросов безопасности, надёжности и подобного если вообще возникают мысли об изготовлении своей железки — то почти наверняка это значит, что китай-облако переросли. Что дальше — делать что-то самому, кого-то нанимать или осознать ограничения и костылить — вопрос отдельный, но сам момент отрефлексировать стоит.
+
avatar
+2
  • redcap
  • 07 октября 2026, 11:15
А если чебурнет превратит вообще всю эту выполненную работу в тыкву?
Ещё не превратил?
+
avatar
-1
  • xNIXx
  • 07 октября 2026, 12:54
Мониторите? Я да. Даже внутри москвы, даже крупнейшие ДЦ, даже по оптике от дома порою отваливаются. Ну т.е. ежемесячно мониторинг 1-2 раза срабатывает. Зарубеж страшно подумать что творится…
+
avatar
+2
  • starson
  • 07 октября 2026, 13:50
Отвалится и что? Сценарий не сработает. Это смертельно?
+
avatar
+4
  • xNIXx
  • 07 октября 2026, 13:57
Что-то. Не знаю, но если как работает неважно, то какой смысл вообще делать то, что не нужно…
+
avatar
+1
  • aliex
  • 07 октября 2026, 14:02
Ну так оно повышает комфорт, но в целом не критично. Если не повезёт и при непрошедшем сигнале врубятся мощные потребители — инвертор уйдёт в защиту. Но шанс достаточно мал.
+
avatar
+1
  • xNIXx
  • 07 октября 2026, 14:09
Понимаю.
Но извинить не могу…
+
avatar
+2
А зачем вообще надо было все это делать, если надежность изначально не важна? С таким критерием можно и просто родным дать ЦУ выключать нагрузку по сигналу от лампочки на столбе — если не горит, значит нагрузку не включать

Как я ранее писал, вопрос в ценности трудозатрат — их вложение уже обязывает закладывать какой-то уровень надежности иначе становится сильно обидно за потраченное время, когда эти трудозатраты оказываются выкинуты в мусорку
+
avatar
0
  • starson
  • 07 октября 2026, 16:14
Т.е. по вашему, в случае отключения 220 родственники должны вскакивать с постели ночью или лететь с работы, чтобы отключить бойлер?
+
avatar
0
  • xNIXx
  • 07 октября 2026, 10:35
Чувствуем. Разобраться во всем этом потребовало неделю…
+
avatar
0
  • Omnicorn
  • 07 октября 2026, 21:07
Один-два грамотных запроса к думающей модели, и проблема решена. Тоже не понял к чему вся эта заморочь с китайскими серверами. Купили бы уже готовый прибор, если все равно свои данные не жалко отправлять на съедение нейронкам и рекламным алгоритмам.
+
avatar
+4
  • iDDD
  • 07 октября 2026, 10:40
Выключать полотенцесушитель еспшкой — отстой.

Использовать для этого Node-RED, инвертор Victron, MQTT топик, Modbus, Телеграм (заблокированный в РФ), две SONOFF S60 и малинку сверху — вот решение данной проблемы без особых усилий.

При том, что по факту для этой автоматизации достаточно релюшки за сотку.
+
avatar
0
  • runner
  • 07 октября 2026, 10:56
Использовать для этого Node-RED
— просто он у меня уже есть
инвертор Victron
— он тоже стоит и питает квартиру когда нет ввода с города
Modbus
— каюсь, реле проектировал 7 лет назад, хотя нет, не каюсь, работает без нареканий
Телеграм (заблокированный в РФ)
— не все живут в РФ
При том, что по факту для этой автоматизации достаточно релюшки за сотку.
— и 20-30 метров провода если точка подключения бойлера и ввод городской сети не в одном щитке,
проблему проводов решают
две SONOFF S60
а
малинку сверху
только если хочется Home Assistant который умеет не только бойлер выключать.
А вообще, вы правы, каждый выбирает то решение которое его устраивает по цене, удобству или любым други критериям.
+
avatar
0
  • iDDD
  • 07 октября 2026, 11:14
две SONOFF S60
3000 рублей плюс все недостатки беспроводного соединения.
20-30 метров провода
300 рублей, 100% надежность.
+
avatar
0
  • xNIXx
  • 07 октября 2026, 12:52
>300 рублей, 100% надежность
Приезжайте, я вам заплачу в сто раз брльше. Только чур если вы загорбите чистовой ремонт — переделка за ваш счет. (Намекну — вы неминуемо попадаете на пол миллиона денЯк)

Может считать не цену кабеля, а цену прокладки :)? Она… разная.
+
avatar
0
  • iDDD
  • 07 октября 2026, 19:14
Да, мы уже поняли, что вы состоятельный гражданин.
+
avatar
+2
  • starson
  • 07 октября 2026, 12:16
Отлично. Выброшу Anenji, куплю виктрон, заменю малинку и пр. В итоге потрачу несколько тысяч баксов. И это предложение вместо использования розетки?
+
avatar
-1
  • xNIXx
  • 07 октября 2026, 12:51
Миллионов, чего уж там.
+
avatar
+10
  • AlekseyM
  • 07 октября 2026, 08:24
Получать сигнал есть на входе и нет на входе 220, можно через реле на 220 с нормально замкнутыми контактами.
+
avatar
+14
  • IWRY
  • 07 октября 2026, 08:30
через реле на 220 с нормально замкнутыми контактами
А как же тогда две недели возни с ИИ? )))
Мне вообще непонятен смысл этих телодвижений.
Сильно проще либо переключить некритичные потребители ДО ИБП, либо включить их через магнитный пускатель, управляемый напряжением городской сети.
Зачем плодить избыточные сущности?
+
avatar
+5
Сильно проще либо переключить некритичные потребители ДО ИБП, либо включить их через магнитный пускатель, управляемый напряжением городской сети.
Не проще, если разводка электроснабжения уже сделана, тут в целом подход разнесения датчика исполнителя через слаботочные сигналы я поддерживаю. Но разносить сигналы аж через Китай — это уж слишком…
+
avatar
0
  • DIMAace
  • 07 октября 2026, 11:56
Не проще, если разводка электроснабжения уже сделана
Бред полный. Ввод городской сети в дом, тоже наглухо замурован? Без электросчётчика, без автоматов?
+
avatar
+3
  • starson
  • 07 октября 2026, 12:17
Причем здесь ввод сети?
Разговор о разводке по дому.
+
avatar
0
  • DIMAace
  • 07 октября 2026, 13:43
Разговор про подключение датчика (реле и т.д.) к городскому сетевому напряжению, для контроля наличия такового.
+
avatar
+1
Прочитай обзор полностью и какую задачу автор решал. Чтобы не спорить с ложным образом ситуации в своей голове
+
avatar
0
  • DIMAace
  • 07 октября 2026, 15:28
В летнее время в солнечные дни дом становится независим от городской сети.
Напрямую к городской сети подключено несколько розеток на всякий случай.
Понятно, что в случае отключения сети, когда на улице пасмурно, духовкой и прочими мощными электроприборами никто не пользуется. Но отключать полотенцесушитель и нагреватель воды бывает некому. На этих и нескольких других приборах стоят WiFi розетки Tuya, но отключением дистанционно никто не занимается.
В связи с этим, понадобилось некое устройство, которое бы следило за состоянием городской сети.
Теперь ты почитай обзор полностью, свои сообщения и реши для себя — какие фантазии в твоей голове, не дают твоему организму адекватно воспринимать информацию.
+
avatar
0
  • IWRY
  • 07 октября 2026, 12:04
del))
+
avatar
0
  • starson
  • 07 октября 2026, 12:17
С помощью розеток WiFi
+
avatar
0
  • starson
  • 07 октября 2026, 08:49
И куда эти контакты девать?
+
avatar
0
  • AlekseyM
  • 07 октября 2026, 09:02
На те же сигнальные контакты контроллера. Это просто выключатель, который замкнётся, когда пропадёт напряжение сети. Есть реле прямо в дин рейку в щиток.
+
avatar
0
  • starson
  • 07 октября 2026, 09:15
Это хорошо, когда дом проектируется изначально под такую систему и отдельные устройства типа бойлера выведены в шкаф. А если дому пару десятков лет и разные приборы находятся в совершенно разных ветках проводки еще и совместно, например с холодильником, то толку от этого реле никакого
+
avatar
+6
  • ABATAPA
  • 07 октября 2026, 10:08
Толк есть. Человек предлагает завести логический сигнал (низковольтный) через «сухие контакты» реле с управляющей обмоткой 230В. Реле можно поставить где угодно (хоть у счётчика). Когда напряжение есть, реле замыкает (или размыкает) контакты. Когда 230В пропадут, реле «отпустит» нормально разомкнутые (из замкнутые, тут уж как логику пропишете) контакты «умного устройства» (можно готового, например, кнопки или датчика протечки/открытия двери), и то (разумеется, с автономным питанием) пошлёт изменение состояния в «умный дом». А дальше — посылаете команды нужным реле (которые сейчас запитаны от генератора) на отключение нагрузки.
+
avatar
+1
  • eReimann
  • 07 октября 2026, 12:13
в самом инверторе есть «сухой контакт». и NО, и NC. ну а если хочется автоматизацию, то тот же Туевский датчик открытия окон на него завести и не делать голову.
+
avatar
+2
  • ABATAPA
  • 07 октября 2026, 12:34
в самом инверторе есть «сухой контакт»
Откуда Вы знаете, что есть у человека?
Туевский датчик открытия окон на него завести и не делать голову.
Разве у меня не то же самое написано?
+
avatar
+2
  • cyberpuh
  • 07 октября 2026, 13:53
Простейший вариант обычную реле 220В, которая замыкает, либо размыкает контакты, когда питание на неё подаётся.
Эта релюшка замыкает контакты от трёхсотрублёвого реле, совместимого со Смартлайф, которые (контакты) должны идти на комнатный выключатель. Итого питание пропадает, реле размыкаект контакты, туевское реле думает, что выключатель выключили и отправляет сигнал об этом в смартлайф, а дальше уже автоматизация по выключению потребителей с помощью умных розеток.

А можно вообще реле типа сонофф, на которые можно 220В подать. Питание реле только надо сделать после ИБП, а контакт S1 или S2, не помню уже — туда подать фазу до ИБП. Т.о. реле останется работать, а 220В на неё перестанет приходить и она сработает.
+
avatar
0
  • l1bbcsg
  • 07 октября 2026, 15:33
Это как? Если 220 пропало, то какая энергия нормально замкнутые контакты разомкнёт?

C нормально разомкнутыми постоянно включенными в цепь 220 от розетки так получится, но глупо как-то держать соленоид 24/7 месяцами греющим комнату, они на такое не рассчитаны даже обычно.
+
avatar
0
  • aliex
  • 07 октября 2026, 15:56
В любой умной розетке или віключателе стоит релюшка, которая как раз длительно находится во включённом состоянии, никаких проблем. Ну да, будет жрать свои полватта-ватт. И что?
+
avatar
+8
  • dima77
  • 07 октября 2026, 08:26
За DIY плюс. Но не понятна сама постановка задачи.
Весь дом от инвертора, «включая духовку, микроволновку, электроводонагреватель, полотенцесушитель и пр.?» Под пр. еще легко наберется 2-3 кВт и больше: свет, ТВ, холодос, роутер, ноут, кондей, чайник. Итого легко под 10кВт выйдет. Запрещать включать духовку, если работает микроволновка и/или чайник?

А не проще ли все мощное пустить на отдельные группы минуя инвертор, и не делать мозг с одновременной их работой и вот этими костылями?
+
avatar
0
  • starson
  • 07 октября 2026, 08:52
Не проще. Духовку и чайник, как я писал никто не включает.
Но кроме нее существует бойлер, полотенцесушитель. А включены они через инвертор для того, чтобы использовать солнечную энергию, а не тянуть из сети.
И естественно, никто не включает одновременно духовку, чайник, микроволновку и пр. Так что инвертора на 6кВт хватает за глаза.
+
avatar
+8
  • AlekseyM
  • 07 октября 2026, 09:02
Мы сами создаём себе проблемы и стойко их преодолеваем.
+
avatar
+3
Под пр. еще легко наберется 2-3 кВт и больше: свет, ТВ, холодос, роутер, ноут, кондей, чайник. Итого легко под 10кВт выйдет. Запрещать включать духовку, если работает микроволновка и/или чайник?
Вполне нормальный подход и даже инвертор не нужен. Сейчас Россети ставят умные счетчики с ограничителями мощности, причем трехфазный ввод — это не 15 кВт, а три раза по 5 кВт. Перегружаешь любую фазу — умный счетчик отрубит все три. Вот и пробуй раскидать по ним мощные потребители, предусмотрев все возможные сценарии и комбинации. Я в такой ситуации посчитал более простым получить подключение однофазное на 8 кВт и в УД настроить автоматизации по выключению неприоритетных потребителей (водонагреватель, электроотопление) в случае высоких нагрузок
+
avatar
+2
  • ABATAPA
  • 07 октября 2026, 10:09
настроить автоматизации по выключению неприоритетных потребителей (водонагреватель, электроотопление) в случае высоких нагрузок
Так автор именно это и делает.
+
avatar
+2
Я же на комментарий выше отвечал, а там указывали что вообще датчики не нужны, а можно просто разводкой цепи вопрос решить. Я показал, что подобная проблема нехватки мощности может и вообще без инвертора быть — хоть разводи, хоть не разводи потребители отдельно, а ввод один хрен один.
+
avatar
+2
  • iDDD
  • 07 октября 2026, 10:42
Если не отапливаться электричеством, то куда вы 15 КВт единомоментно утилизируете?

Дом сто квадратов, одна фаза 5 КВт на все, ни разу в жизни с недостатком подводимой мощности не сталкивался.
+
avatar
+3
  • starson
  • 07 октября 2026, 12:19
Смотря какие приборы у вас дома кто им пользуется. Бойлер примерно 2кВт, включили стиралку еще +2, какое-то количество набегает от холодильника, освещения и пр. И вдруг жена включает утюг, духовку или фен. Вот и больше 5.
+
avatar
+4
  • aliex
  • 07 октября 2026, 13:04
5КВт? Стиралка, духовка и чайник — и готово
+
avatar
0
Чайник — 1,5+ кВт
ПММ — 1,5 кВт
Стиральная машина — 1,5 кВт
Сушильная машина — 0,5 кВт
Водонагреватель — 1,0 кВт (в норм режиме, в турбо — 1,5 кВт)
Духовой шкаф — до 3,5 кВт
Варочная панель индукционная — до 5 кВт

Кондиционеры в режиме отопления (по жду магистрального газа — так) и охлаждения (а тут газ не поможет) 3 шт. 9000 BTU, 2 шт. 12000 BTU. Благо инверторные. Мощность потребления в разном режиме можно погуглить, они примерно типовые у всех производителей.

И вот наступает день стирки и готовки, жена загрузила стиралку, запустила ПММ, начала готовить и стряпать. Кондиционеры и водонагреватель в этот момент включаются вообще произвольно по велению своих контроллеров.
+
avatar
+1
  • agrloki
  • 07 октября 2026, 08:59
Для таких задач удобней использовать Opencode. Его встроенная сетка Big Pikle бесплатная и с достаточно богатыми лимитами. Плюс заточена под программирование.Ну и как бонус в нем часто доступно достаточно серьезные сторонние модели бесплатно на некий обзорный период.
+
avatar
+1
  • starson
  • 07 октября 2026, 09:16
Ну и как бонус в нем часто доступно достаточно серьезные сторонние модели бесплатно на некий обзорный период
И что делать когда этот период закончится?
+
avatar
0
  • agrloki
  • 07 октября 2026, 23:48
Наверно для начала прочитать RTFM по теме, а потом уже задавать глупые вопросы. Основная модель идет бесплатно и в принципе справляется со всем спектром задач, пробники приятный бонус. Тем более что как минимум одна серьезная сторонняя модель в режиме free в opencode есть всегда.

З.Ы.
Очень часто вижу, что люди не понимают разницу между агентом и моделью.
И то на что автор потратил две недели, нормальный агент (opencode, mimocode, kilocode, etc..) сделал бы за день — два, а то и быстрее. Просто за счет того что весь процесс был не прерывным и косяки решал бы сам агент.
+
avatar
+2
  • Leoniv
  • 07 октября 2026, 11:12
А в чем прикол не пользоваться городской электросетью? Заработать на электричество совсем несложно, при этом не будет никаких заморочек с пасмурными днями. Или речь про военное время?
+
avatar
0
  • starson
  • 07 октября 2026, 12:21
Речь идет обо всем. В частных домах частенько не бывает городской сети.
И экономия тоже неплохая, в летнее время от сети можно отключиться вовсе
+
avatar
+2
  • bzzz77
  • 07 октября 2026, 14:29
покупка панелей, инвертора, батарей — это прямо экономная экономия.
+
avatar
+3
  • ABATAPA
  • 07 октября 2026, 14:35
Да что Вы понимаете! Наш человек ради халявы готов на любые траты и жертвы! :)
+
avatar
0
  • starson
  • 07 октября 2026, 16:16
Почитайте обзоры, посчитайте растущую стоимость энергоносителей и все поймете.
Но главное, это энергонезависимость от городской сети
+
avatar
+2
  • bzzz77
  • 07 октября 2026, 16:45
видел такие расчеты много раз, никакого смысла нет при наличии нормального сетевого электричества и газа.
p.s. можно подумать инверторы и панели не дорожают.
+
avatar
0
  • redcap
  • 07 октября 2026, 20:25
p.s. можно подумать инверторы и панели не дорожают.
Они ещё и дохнут и деградируют :)
+
avatar
0
  • Leoniv
  • 07 октября 2026, 18:07
В частных домах частенько не бывает городской сети
А какая там сеть, сельская?

И экономия тоже неплохая
Ну не знаю. Я далеко не самый богатый, но оплата электричества — это копейки.
+
avatar
+2
  • radonit
  • 07 октября 2026, 15:18
Если квартира, то оно конечно так, а если дом, то уже не очень.
По деревням/поселкам вся разводка на воздушке, плюс куча деревьев, как ураган/мокрый снег/ледяной дождь, так массовые обрывы и отключения. В мае на соседней улице 3 дня не было ээ, слишком много обрывов, до них долго очередь доходила. При этом даже с газовым котлом насосы стоят и ээ нужна.Так что вопрос не пр заработать.
+
avatar
+2
  • Leoniv
  • 07 октября 2026, 18:08
Знаком с ситуацией по дому в забитой деревне. Пару раз в год полсуток света нет. Ради этого нет смысла что-то городить.
+
avatar
+1
  • radonit
  • 07 октября 2026, 18:31
Это если вы в квартире живёте да, дом закрыли и в квартиру уехали.
А если это единственное жилье, отопление котлом и вода в системе, то ситуация совсем другая.
Заморочиться уже имеет смысл, собственно после такой ситуации я и заморочился, когда в апреле 3 дня света не было и температура — 5 на улице.
+
avatar
0
  • Leoniv
  • 07 октября 2026, 18:33
В доме есть электрическое отопление, плюс пару штук печек. И дрова в сарае.
+
avatar
0
  • radonit
  • 07 октября 2026, 19:22
Тогда вам действительно заморачиваться смысла нет, а у меня отопление батареи с водой и тёплый пол от газового котла. Согласитесь несколько другая ситуация.
Так что цена тут далеко не во главе угла оказывается.
+
avatar
0
  • starson
  • 07 октября 2026, 19:35
Не у всех есть пару печек.
Кроме того, если нет водопровода, а только скважина, то вы остаетесь не только в холодном доме, но еще и без воды, а значит элементарно сходить в туалет.
И частный сектор — это не только деревня…
+
avatar
0
  • Leoniv
  • 07 октября 2026, 20:16
Водопровода нет, скважины тоже нет, есть насос в колодце. Если что, можно достать и ведром. А туалет воды не требует, он находится за сараем в биополе и полностью автономен.
+
avatar
+1
  • redcap
  • 07 октября 2026, 20:28
Товарищ не понимает, какое решение принесло ему кучу ненужных проблем. Вы ему ничего не объясните
+
avatar
+2
  • sfs
  • 07 октября 2026, 11:46
Еще одной идее было купить датчик открытия окон/дверей, заменить геркон на реле, которое бы питалось от сети. Но мне не нравится идея батареек и вообще…
А идея аккумулятора без контроля перезаряда нравится? Все равно же придется что-то с этим решать. А заменив батарейку на аккумулятор с правильной платой заряда сэкономили бы кучу времени. Впрочем если целью было получение опыта эксплуатации ИИ, тогда вопросов нет, конечно.
+
avatar
0
  • starson
  • 07 октября 2026, 12:22
Как раз в этой плате есть контроль перезаряда
+
avatar
0
  • edkin
  • 07 октября 2026, 11:47
Опыта взаимодействия с Tuya нет, т.к. когдя я разрабатывал свою систему, активно двигалась Aqara.
Взаимодействие банальное: на входе или выходе моих ESP стоят устройства Aqara, которые общаются меж собой через собственный шлюз. Ну, а моя система — оповещения (лет 12 назад большая часть датчиков Aqara была только с привязкой к Китаю, и с уведомлениями плохо), управление по более сложным сценариям, получение и сопоставление данных от разных датчиков, не только Aqara.
К ESP всегда нужны датчики, а эти просто умнее обычных. Потому прграммы самые обычные.
Сейчас бы тоже делал на Tuya, но пока ничего не ломается. Кроме интернета, конечно.
+
avatar
+7
Простите, я один настолько тупой, что для отключения приборов от городской электросети использовал бы контактор, управляемый реле с задержкой включения (запитанного от той же городской сети)? Есть сеть — реле контактора запитано (от этой же городской сети), контактор коммутирует городскую сеть на мощные розетки. Пропала городская сеть — контактор сам отключился. Снова появилась городская сеть — реле с задержкой включения выждало 10..120 секунд (чтобы убедиться, что сеть точно появилась), и активировало реле контактора -> мощные потребители включились.

Либо, если хочется беспровода, и домовая сеть нельзя подвергнуть модернизации (разделить мощные линии от немощных) — обычное реле на каждый потребитель + несколько приёмников радиореле 433 МГц. Передатчик ставится в щитке или любом удобном месте, появилась городская сеть — послать команду «активировать канал». Все приёмники, соответственно, настроены на этот канал, и включают мощное оборудование. Пропала городская сеть — послать команду «отключить канал»…

Оба варианта не требуют никакого дополнительного питания в виде аккумуляторов или батареек — питаются от городской же сети.
+
avatar
+3
  • ABATAPA
  • 07 октября 2026, 13:10
Простите, я один настолько тупой
Нет, что Вы! Есть и другие.

что для отключения приборов от городской электросети использовал бы контактор
Комментарии не читали? Там 10 раз сказано, что ВСЕ устройства (кроме нескольких «аварийных» розеток) постоянно запитаны от инвертора, проводка имеющаяся, развести отдельно не представляется возможным.
Вы правда думали, что настолько умнее автора и он о таком не думал?

домовая сеть нельзя подвергнуть модернизации
Ну вот, дошло хоть что-то, наконец.

несколько приёмников радиореле 433 МГц
Зачем, если у человека есть умный дом и он хочет, чтобы всё это можно было контролировать и всем управлять? А не вот эти дешёвые передатчики, которые могут сработать от звонка соседей, пульта от гаража, радиовыключателя и т. д. Человек не хочет этих древностей, он хочет современного и понятного (ему, прежде всего) решения. Вы не способны понять и принять такой вариант?

Все приёмники, соответственно, настроены на этот канал, и включают мощное оборудование. Пропала городская сеть — послать команду «отключить канал»…
Так он это и делает, только современными средствами (лучший ли он сделал выбор — иной вопрос): это всё интегрируется в «умный дом», наглядно отображается состояние, всем этим можно управлять вручную, пишутся логи (что помогает разбирать нештатные ситуации или просто посмотреть статистику), состав «мощного оборудования» можно поменять просто в коде автоматизации без аппаратных переключений…
+
avatar
+3
  • aliex
  • 07 октября 2026, 13:13
Умные розетки там, по описанию, уже стояли. Можно, конечно, их выкинуть и заменить на радиореле, но, в общем-то, там любое локальное решение делается тривиально, вся пробема — в туе. К примеру, перешить эти розетки на esphome/openbeken и дёргать по api локально с этого же wemos тоже было бы проще, чем вся эта история.
+
avatar
0
  • starson
  • 07 октября 2026, 13:52
К Туе можно еще кучу устройств подключить. Не только розетки. Так что дергать вемосом не получится
+
avatar
0
  • aliex
  • 07 октября 2026, 13:55
Я тут в рамках описанной задачи рассуждаю, а у поминался исключительно контроль розеток. Ну а ниже — мой вариант того, как максимально просто закинуть сигнал в тую «и делай с ним что хошь».
+
avatar
+3
  • aliex
  • 07 октября 2026, 13:28
Может я, конечно, чего-то не понимаю, но вроде как решается реле и обычной туевской релюшкой для выключателя. Реле подключается к городской сети, туевский девайс — к выходу инвертора, его контакты выключателя замыкаются через реле.
+
avatar
+3
  • CuMr
  • 07 октября 2026, 13:39
а помучаться? ))
+
avatar
+2
  • ABATAPA
  • 07 октября 2026, 13:51
И что Вы получите?
+
avatar
0
  • aliex
  • 07 октября 2026, 13:53
Сигнал «есть/нет городское напряжение» как состояние выключателя в Туе.
+
avatar
0
  • ABATAPA
  • 07 октября 2026, 13:59
Так это то, что уже раз 10 тут предложили в комментариях. В том числе и я.
+
avatar
0
  • SBVF
  • 07 октября 2026, 20:44
обычной туевской релюшкой для выключателя.
Можно привести пример устройства?
В умной розетке нет статуса при отключении электричества. Устройство оказывается offline и послать ничего не может, а другое устройство, например, другая умная розетка ничего опрашивать не умеет. Сценарии в интерфейсе Smartlife со статусом «offline» не делаются.
У меня была похожая задача и решилась отдельной розеткой, которая отключается одновременно с городской сети.
+
avatar
0
  • aliex
  • 07 октября 2026, 20:55
Не розетка, выключатель. Типа https://www.aliexpress.com/item/1005003417122659.html — и нормально разомкнутые контакты релюхи цеплять туда, где штатно ожидается комнатный (фиксированный) выключатель (то есть между фазой и входом S1 девайса). Реле любое обычное на 220в
Но я понятия не имею, какие там в туе ограничения и где выполняются правила — у меня HomeAssistant, и все правила на нём.
+
avatar
0
  • Lvenok
  • 08 октября 2026, 00:34
Реле типа РНПП настраиваемое по отклонению от заданного напряжения в процентах. Есть однофазные, есть трехфазные. Для трехфазной сети следит, чтобы фазы не перекашивалось.
Ну вот типа этого реле
+
avatar
-1
  • Diver69
  • 07 октября 2026, 13:55
Самое простое, что стоит у меня на даче, это реле, которое замкнуто когда есть 220, когда пропадает 220, оно размыкается и включается генератор, + в доме то, что должно работать всегда висит на ИБП с 2 тяговыми АКБ по 120 а/ч.
Работает безотказно)
+
avatar
0
  • aliex
  • 07 октября 2026, 13:58
А реле напряжения есть? Если есть — то бывают прекрасные ситуации, когда напряжение где-то возле порога и, соответственно, оно срабатывает постоянно. Генератор не обрадуется, пожалуй…
+
avatar
0
  • Diver69
  • 07 октября 2026, 14:38
оно двойное, когда одна пара замкнута, другая разомкнута, так что они не пересекаются ;)
Когда включают напряжение в сети, генератор отключается от нее, и ему еще нужно какое-то время, что бы сработал блок управления и заглушил его ;)
+
avatar
0
  • aliex
  • 07 октября 2026, 15:00
Я имею в виду постоянные запуски/остановки. То, что есть какая-то защита чтобы генератор с городской сетью не встретился — это понятно, а вот что будет если он раз тридцать-сорок подряд запустится и остановится — интересно.
+
avatar
0
  • Diver69
  • 07 октября 2026, 15:13
Да чего дизелю-то будет, ну и я не помню, что бы так бывало, обычно если отключат, так отключат))) Редко когда бывает что отключают на 5 минут, там какая-то задержка еще у блока есть, я сейчас уже не помню какая, он не будет каждую минуту пытаться запуститься;)
Пока эта система работает много лет безотказно, ттт)
Путь к ней(к этой системе), был долог и тернист)))
+
avatar
0
  • aliex
  • 07 октября 2026, 15:18
Если отключат извне — да. А вот если отрубает реле напряжения, а напряжение в сети пляшет где-то вокруг порога — то становится интересно. Но работает — и хорошо.
+
avatar
-2
  • Diver69
  • 07 октября 2026, 15:32
Не очень понимаю, там не может быть такой ситуации, что и сеть и генератор включены вместе в одну сеть, там физически если сеть пропала размыкаются контакты на сеть, и замыкаются на генератор, как только появляется электричество в сети, срабатывает электромагнит и происходит обратное переключение, там не может быть, что и то и то включено одновременно)
+
avatar
0
  • aliex
  • 07 октября 2026, 15:53
Да при чём здесь одна сеть. Ладно, не важно. Не происходит — и ладушки.
+
avatar
0
  • ABATAPA
  • 07 октября 2026, 14:03
Самое простое
Ничего себе «простое»: генератор с автозапуском, ИБП, который тянет все потребности, 2 аккумулятора по 120 А⋅ч (а не «а/ч», как пишете Вы), которые «сдохнут» через несколько лет… Наверное, если бы автор мог (или считал целесообразным) сделать такое, то он сделал бы. Но у него чуть иные задача и выбор.

Работает безотказно)
Ровно до момента выхода из строя ИБП, аккумуляторов, генератора…
+
avatar
-3
  • Diver69
  • 07 октября 2026, 14:34
простое тут было про реле, которое отключает сеть при пропадании электричества;)
И АКБ не сдохнут ни разу, так как они тяговые, а не стартерные, которые предназначены для ИБП!
Такая связка работает уже очень давно и безотказно, больше 7 лет точно.
Так что ваш сарказм тут не уместен, и мнение диванных экспертов меня не волнует!
+
avatar
0
  • ABATAPA
  • 07 октября 2026, 14:38
И АКБ не сдохнут ни разу
Да-да, они вечные…

больше 7 лет точно
Ну, самое время.

и мнение диванных экспертов меня не волнует!
Так тогда держите своё мнение при себе. А остальные тут вправе обсуждать написанное в том числе и Вами.
+
avatar
+5
esp8266 морально устарел. то же esp32-c3 в разы лучше. более современный IDF и Arduino core. Нормальное радио — ловит там где esp8266 уже отваливается. Ну и ресурсов под HTTPS у esp8266 критический мало.

пы.сы. Ну а если деньги есть берем esp32-s3
+
avatar
0
  • ABATAPA
  • 07 октября 2026, 14:34
если деньги есть берем esp32-s3
Зачем? Что в ней есть такого, что тут было бы уместно? Ну ладно бы ESP32-C5 с двухдиапазонным Wi-Fi (что в большинстве случаев не очень важно, так как почти все устройства IoT работают в 2.4 ГГц, так что полностью «уйти» туда не получится). Ну, или RTL8720 — дороже, но мощнее, GPIO много, два диапазона… Что от S3-то в такой вещи надо? Вычислительная мощность? Её хватает. Интерфейсы к камере и дисплею? Не нужны. ESP32-C5 значительно лучше подходит для питания от батареек и автономных датчиков благодаря современному энергоэффективному ядру RISC-V, что тут (раз уж тут зачем-то добавили питание) уместно.
+
avatar
0
В esp8266 очень плохое радио.
+
avatar
0
  • ABATAPA
  • 07 октября 2026, 15:21
Я и не спорю. Речь шла именно про выбор S3.
+
avatar
0
Я не только про s3 писал. Но если разница между s3, c3 бакс, два то я бы взял s3, там мощи и psram до дури.
+
avatar
0
  • aliex
  • 07 октября 2026, 15:59
В нём плохое всё. По нынешним меркам, по крайней мере.
+
avatar
0
  • starson
  • 07 октября 2026, 16:18
А смысл для этой задачи?
+
avatar
+2
  • bzzz77
  • 07 октября 2026, 14:28
> Конечно, можно было попробовать использовать WiFi розетку или какой-нибудь power meter. Но при отключении энергии эти устройства не могут дать сигнал в сценарий, чтобы отключить лишние приборы, а просто сами отключаются.

отсутствие пакетов от этих розеток означает, что они отключились по причине отсутствия питания.
особенно если таких устройств несколько.
+
avatar
+1
  • starson
  • 07 октября 2026, 16:20
А в Туе есть возможность ловить эти самые пакеты?
И кстати, то ли глюк какой-то, то ли еще что, но эти розетки периодически отваливаются хоть и на непродолжительное время. Я делал оповещение в ТГ при пропадании/появлении электричества с помощью mikrotika, который постоянно пинговал одну из розеток. Так вот, было довольно много ложных срабатываний.
+
avatar
0
  • aliex
  • 07 октября 2026, 16:39
Тут где-то картинку прилагали — там в условиях в том числе «Офлайн». Но вот насчёт глюков — резонно. Хотя у меня зигбишные и перешитые вайфайные не отваливаются.
+
avatar
0
Я что-то не совсем понял сложность решения. Если на приборах уже стоят туя розетки, то сделать очень просто.
Нужно подключить одну розетку к городской сети (до рубильника). При пропадании электричества она как тригер будет отключать другие устройства. Там много условий можно поставить.
А если на улице пасмурно, отслеживать так же, нужно только ещё одну розетку подключить к солнечным панелям и мерять там напряжение. Отключать при пороге. Правда там 12 вольт и розетку нужно переделать на это напряжение.
Изображение под спойлером не открывается, поэтому прикрепил так.
+
avatar
+1
  • starson
  • 07 октября 2026, 16:21
Она ничего не будет отключать. Она просто пропадет из сети.
+
avatar
+2
+
avatar
0
  • SBVF
  • 07 октября 2026, 22:01
В вашем сценарии если выключить один Т34, то выключается второй Т34, а тут же речь о том, что устройство было «ВКЛ», а потом просто отключилось от сети и никакой команды не передало другим устройствам.
Сценарий должен быть на опросе статуса устройства — есть оно в сети или нет. Если одно устройство Т34 «offline», тогда выключить второе устройство Т34.
Сейчас снова посмотрел сценарии в приложении, то ничего нового там не добавилось. Можно отслеживать состояния «ON» и «OFF» и «Countdown».
+
avatar
-2
Странное решение, а почему не сделать пускатель и отдельную линию на мощное оборудование, а сам пускатель через реле времени при пуске (для защиты от мигания городской сети 220)сразу подключить к 220 города. И ни одного вайбкодера не пострадает. Сам иногда вайбкодю, qwen, DeepSeek, gemini, но самая частая ситуация — пока не дашь ей работающий код как пример то так и будет шизить и неправильно делать. Пишу на esp idf фреймворке через platformio, free rtos спасает от медленного исполнения кода
+
avatar
+1
  • ABATAPA
  • 07 октября 2026, 15:58
Странное решение, а почему не сделать пускатель и отдельную линию на мощное оборудование
Вы не пробовали читать комментарии до написания своего?
+
avatar
+1
Если настолько все плохо с проводкой и логикой подключения линий то умный дом это последнее о чем нужно думать, а я просто выразил свое мнение, как обычно русскоязычный сегмент только минусы ставить горазд
+
avatar
0
  • aliex
  • 07 октября 2026, 18:48
Как раз китайский «умный дом» на зигби или вайфае позволяет всё это дело хорошо компенсировать.

Ну а пускатель в современном жилом доме может быть исключительно из-за фобии на электронику.
+
avatar
0
Да, да! Нет ничего лучше простой релейной логики когда мощные потребители будут отключаться при отсутствии сетевого напряжения, дублирующего собственную генерацию, данную систему желательно дополнить контролем направления потока мощности в/из накопительной АБ и некоторым гистерезисом для исключения звонковой работы.
+
avatar
-1
  • Vinski
  • 07 октября 2026, 17:42
А ведь можно просто купить подписку и не мучатся
+
avatar
0
  • SAIRUS
  • 07 октября 2026, 18:59

Установлен в щитке на «ввод» в квартиру работает как счётчик при пропадании электричества успевает отдавать в zigbee сеть показания напряжения 30~60В. Не говоря о том что он постоянно шлёт показания
+
avatar
+3
  • VadimVB
  • 07 октября 2026, 19:37
У моего товарища дома установлен инвертор Anenji на 6,2 кВт,
Я, каюсь, прочитал по диагонали. Прокрутил… Но в Anenji есть же RS485 и ModBus. Почему оттуда нельзя просто прочитать состояние из соответствующего регистра?
+
avatar
-1
  • siargy
  • 07 октября 2026, 21:02
вот они эти ваши облака и иот богомерзкий
+
avatar
0
  • rustamt
  • 07 октября 2026, 23:30
Нужно сказать, что все время ИИ выдавал исправленные скетчи без всякого пафоса в отличие от чата Gpt набивающего себе цену.
ничего не понял, жпт это не ии? и кто такой этот ваш ии?
+
avatar
+1
  • Dudarew
  • 08 октября 2026, 00:51
Аналогичную проблему решил покупным датчиком
и wi-fi реле
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.