У.дача каждому 1С-нику, или умный дом для ленивых (описание)

30.09.22

Интеграция - Робототехника и умный дом (Arduino, NFC, RFID)

Подробное описания развертывания решения для управления умным домом на 1С.

Введение

У.Дача – полное название «Умная дача». Изначально предназначено для управления различными системами для загородного дома:
включения обогрева и подержания температуры, поддержания уровня воды, управление уличным освещением и освещением внутри дома, автополива, автопроветривания. Но данное решение в том числе можно использовать и в квартирах и в других местах, где возникают задачи управления различными устройствами.

Сама конфигурация расположена в отдельной публикации //infostart.ru/public/1732878/

Мы рассмотрим развёртывание системы на живом примере и сможем на основе готового решения реализовать простую задачу управления.

Задача

Необходимо собрать «умное» устройство для поддержания контроля температуры и включения/выключения освещения, которым можно будет управлять с помощью мобильного приложения. Классическая система для поддержания контроля температуры состоит из электронного реле (включает/отключает подачу электрического тока на обогреватель), датчика температуры (дает понимание достигли ли нужной температуры) и микрокомпьютера (управляет реле на основании данных от датчиков). Для включения выключения освещения нам понадобится еще дополнительное реле.

Как будем решать.

Свяжем микрокомпьютер с сервером 1С и будем использовать мобильное приложение для управления сервером 1С. Микрокомпьютер будет отправлять HTTP-запрос, в параметрах которого будут данные датчиков, параметры авторизации. Ответ будет приходить в JSON-формате, в котором определяется на какой выход подать управляющий сигнал.

Схема взаимодействия будет примерно такая

 

 

 

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

Развертывание 1С

В качестве backend системы будет использоваться 1С. При этом 1С может быть развернута как в серверном, так и в файловом виде (для простоты далее будем называть Сервер 1С и для файлового варианта и для серверного). Кроме того, эта же база будет использоваться как источник для публикации мобильного приложения 1С, в качестве сервера для запросов от мобильного приложения и микрокомпьютера, а также для конфигурирования управления умным домом.

При установке платформы 1С необходимо выбрать «Модули расширения web-сервера»

 

 

Также необходимо развернуть на сервере Apache версии 2.2, 2.4 (или любой другой web-сервер, поддерживаемый 1С).

Создайте чистую файловую или серверную чистую базу, загрузите в неё прилагаемую конфигурацию (см.публикацию //infostart.ru/public/1732878/). Далее необходимо опубликовать http-сервисы и web-сервисы (http- для обмена с микроконтроллером и мобильный приложением, web – для загрузки объектов 1с, прежде всего справочников-описаний устройств)

 


После выбора соответствующих настроек необходимо нажать «Опубликовать».

Для публикации мобильной части системы необходимо выбрать


 

 

Сервер 1С в должен быть подключен к Интернет со статическим (белым адресом). Это позволит управлять системой удаленно, т.е. включать/выключать устройства, которые расположены удаленно географически, например, включить тепло на даче пока вы туда едете. Вариант работы внутри одной локальной сети в едином WiFi тоже возможен.
 

Настройка данных 1С.

При первоначальном открытии базы заходим в справочник домов и создаем дом:

 

 

Назовем дом «Мой дом», зададим ему токен доступа, например, 4adf7886f7 и укажем описание

 

 

Дом – в данном случае это объединение нескольких устройств управления в единое окно управления на мобильном приложении, как правило, внутри одного географического положения. Домов может быть несколько, например, «квартира», «дача». Токен дома – служит для авторизации мобильного приложения, которая используется в обработке Htpp-запросов.

Нажмем «Записать» и по ссылке «Устройства» создаем новое устройство, которое, предположим, будет находится в частном доме и назовем его как «Основной дом». Зададим ему токен доступа, например, 3adf3456f7, и укажем описание «Основной дом» (допустим, еще есть гостевой дом или баня, где будет свои микрокомпьютеры для управления).

 

 

Нажмем «Записать» и введем Входные сигналы. В данном примере входной сигнал у нас будет только один – датчик температуры. Этот датчик на микрокомпьютере будет подсоединен к ножке 2:

 

 

Далее на карточке устройства введём выходные сигналы. У нас их будет 2 – управление включением и отключением реле обогрева и управление включением/выключением света:

 

 

Тут мы указали, что реле управления розеткой для обогрева будет подключаться к PIN 4 устройства, а реле для управления светом к PIN 5. Пометка "Инверсный" нужна для тех моделей реле, которые при подаче на них "+" (т.е. логической "единицы" для цифрового выхода), реле размыкают, а при подаче 0 - соединяют. Если вы не знаете какого типа у вас реле и на смартфоне при нажатии на "вкл" у вас будет выключаться, а при нажатии "выкл" включаться, то нужно будет в справочнике пометить выходной сигнал как инверсный и перезалить скетч в Arduino. 

А также создадим 3 кнопки управления: 1 общая кнопка – полностью включает/выключает управление всего дома,  вторую кнопку – управление обогревом холла, третья кнопка - включение освещения

 

 

Далее возвращаемся в карточку устройства закладки "Основное" и в табличной части заведем строку для управления, которая свяжет входной сигнал и выходной сигнал через кнопки управления

 

 

В колонке «алгоритм» вводится простая формула, по которому будет включаться алгоритм управления, в данном случае управление температурой будет работать, когда включены кнопки «Вкл всё» и «Холл», а освещение - когда включены «Вкл всё» и «Свет». Строка "вкл всё" не имеет входных и выходных сигналов, служит для того, чтобы на экране отобразилась кнопка управления. Она будет использоваться в алгоритмах выходных сигналов, которые мы введем в следующих строках. В колонках «Цель мин» и «Цель» вводятся значения по умолчанию для целевых значений температуры, затем в мобильном приложении пользователь уже самостоятельно введёт нужный ему параметр. Также в мобильном приложении вводится только одно целевое значение (то, до которого будет нагрев), после достижение температуры нагрева датчик будет отключен, пока не будет снижена температура в данном случае на 0.5 градусов (так называемый температурный гистерезис). Таким образом, будет поддерживается климат-контроль помещения.

После завершения ввода данных об устройстве можно автоматически сгенерировать для него код (скетч), который будет загружаться в это устройство. Это делается нажатием «Сформировать скетч»:

 

 

В открывшейся форме необходимо ввести параметры подключения к WiFi, параметры сервера для отправки http-запросов из микрокомпьютера. Эта информация затем будет сохранена в коде сформированного скетча для Arduino-устройства

 

 

В Url сервера может быть введен и локальный адрес сервера и соответствующий порт, если сервер 1С находится в той же сети, что и микрокомпьютер.

В результате получится вот такой код (скетч), который затем необходимо загрузить в устройство Arduino

#include <ESP8266WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>

OneWire oneWire(2);
DallasTemperature t_sensors(&oneWire);
uint8_t t_count;

#define STASSID "AtlWifiMob"
#define STAPSK  "01235467890"
const char* ssid     = STASSID;
const char* password = STAPSK;
	
const char* host = "man.yourdomain.ru";
const uint16_t port = 8080;

#define D_MNG_COUNT 2
//PIN'ы управления
uint8_t d_mng_Pins[D_MNG_COUNT] = {4, 5};                             
//некоторые реле управляются наоборот: 0 вкл, + выкл				
uint8_t d_mng_On[D_MNG_COUNT] = {HIGH, HIGH};                            
uint8_t d_mng_Off[D_MNG_COUNT] = {LOW, LOW};                           
uint8_t d_mng_Val[D_MNG_COUNT] = {0, 0};                           

//для парсинга
char curch;
uint8_t isKey=0;
int mng_nbr=0;
uint8_t mng_value=0;  

//инициализация
void setup() {
  Serial.begin(115200);

  //соединение с WiFi
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  //t
  //инициализация температурных датчиков
  t_sensors.begin();
  t_count = t_sensors.getDeviceCount();
  //.t
  
  //m
  //инициализация PIN'ов управления
  for (uint8_t i=0;i<D_MNG_COUNT;i++)
  {
    pinMode(d_mng_Pins[i], OUTPUT);
    digitalWrite(d_mng_Pins[i], d_mng_Off[i]);  //выключаем всё управление
  }
  //.m
}
//собственно управление выходными PIN'ами
void manageIt()
{
  /*
  Serial.print("<mng_nbr=");
  Serial.print(mng_nbr);
  Serial.print(",mng_val=");
  Serial.print(mng_value);
  Serial.print(", PIN");
  Serial.print(d_mng_Pins[mng_nbr]);
  Serial.print("=");
  */
  
  //m
  if (mng_value==1)
  {
    digitalWrite(d_mng_Pins[mng_nbr], d_mng_On[mng_nbr]);  //вкл
    //Serial.print(d_mng_On[mng_nbr]);
  }
  else
  {
    digitalWrite(d_mng_Pins[mng_nbr], d_mng_Off[mng_nbr]);  //выкл
    //Serial.print(d_mng_Off[mng_nbr]);
  }
  d_mng_Val[mng_nbr] = mng_value;
  //Serial.println(">");
  //.m
  
}

//анализ очередного символа в ответе JSON
void addChar(){
    if (curch==':')
    {
      if(isKey==1)
        isKey = 0;
    }
    else if(curch=='}')
    {
      manageIt();
      return;
    }
    else if(curch=='{')
    {
      //isKey=1;
    }
    else if(curch=='"')
    {
      //кавычки пропускаем
    }
    else if(curch=='m')
    {
      isKey=1;
      mng_nbr = 0; //встретили символ 'm'
      mng_value = 0;
    }
    else if(curch==',')
    {
      manageIt();
      isKey = 1;
    }
    else
    {
        if(isKey==1)
        {
          mng_nbr = mng_nbr*10 + (curch-48);
        }
        else if(isKey==0)
          mng_value = mng_value*10 + (curch-48);
    }

}

void loop() {
  String url="GET /udachaSrv1/hs/setSignal?id=00001&token=3adf3456f7";

  //соединямся с сервером
  WiFiClient client;
  if (!client.connect(host, port)) {
    Serial.println("connection failed");
    delay(3000);
    //нет ответа, задержка, новая попытка
    return;
  }

  if (client.connected()) {
    //собираем параметры GET
    
   	//t
    t_sensors.requestTemperatures();

    for (uint8_t ti=0;ti<t_count;ti++)
    {
      float t = t_sensors.getTempCByIndex(ti);
      url=url+"&ti"+ti+"="+t;
    }
   	//.t
   	
   	//do
   	for (uint8_t d_o=0;d_o<D_MNG_COUNT;d_o++)
    {
      url=url+"&do"+d_o+"="+d_mng_Val[d_o];
    }
   	//.do

    client.println(url);
    Serial.println(url);
  }

  //получаем ответ сервера
  unsigned long timeout = millis();
  while (client.available() == 0) {
    if (millis() - timeout > 5000) {
      //больше 5сек ожидания, задержка, новая попытка
      Serial.println(">>> Client Timeout !");
      client.stop();
      delay(3000);
      return;
    }
  }

  //разбор (парсинг) ответа, ожидаем {"m1":0,"m2":1}
  while (client.available()) {
    curch = static_cast<char>(client.read());
    addChar();
    //Serial.print(curch);
  }
  //Serial.println();
  client.stop();
}

Далее этот скетч необходимо загрузить в устройство Arduino. Как это сделать изложено подробнее ниже.

 

Сборка устройства управления.

Здесь приведены описания устройств, которые работают в том числе с высоким напряжением, поэтому перед началом работы всегда помните о технике безопасности при работе с электрическим током, а лучше не лишне будет прочитать, например, вот тут https://zen.yandex.ru/media/id/5b3cbf1fede9b500a95ba643/tehnika-bezopasnosti-v-obrascenii-s-elektricheskim-tokom-6047473858285736dd069e4f или еще где-либо.

Для реализации проекта нам понадобится микроконтроллер серии Arduino со встроенным WiFi модулем. Один из хороших вариантов - это NodeMCU, второй тоже неплохой вариант - WeMOS D1 mini. В конце статьи смотрите варианты ссылок на устройства

Ниже приведена схема сборки устройства для управления освещением.

 

Если сборка идёт на устройстве типа WeMOS - то там можно купить плату с реле, которое непосредственно можно воткнуть в плату с микроконтроллером: в случае, когда микрокомпьютер управляет только одним реле (например, на каждую розетку свой такой контроллер) это очень удобно. 

 

 

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

Для учебного примера будем подключать два отдельных реле (или плату, на которой расположены сразу 2 реле), одно для управления освещением, другое - для управления розеткой, в которую будет подключаться нагреватель.

В ножку микрокомпьютра G (земля) втыкаем провод (ссылки на удобные варианты проводов для сборки этого конструктора приведены в конце статьи), который идет на питание реле, в ножку питания (3.3В или 5В) - соответственно, провод питания для реле. В ножку D5 (GPIO5) подключим провод управления реле светом. Обратите внимание на тот факт, что для устройств NodeMCU номера ножек, обозначенные на плате, несколько другие по сравнение с тем, что мы используем в коде (см.распиновку ниже в схеме), поэтому провод управления для NodeMCU мы втыкаем в ножку D1, для WeMOS - в D5.

Аналогичным образом подключаем реле для розетки управления, для нее будем использовать ножку D4 (для NodeMCU это D2). Нулевой  и земляной провод электрики подключаем непосредственно к розетке, а фазовый провод заводим через это реле в разрыв, т.е. реле будет сложить выключателем розетки.

Более подробно о подключении реле можно почитать здесь https://arduinomaster.ru/datchiki-arduino/podklyuchenie-rele-k-arduino/

Осталось подключить датчик температуры. Я рекомендую использовать датчик DS18B20. Он отлично зарекомендовал себя в работе, в т.ч. и сложных погодных и температурных условиях. Для его подключения будем использовать ножку D2 (для NodeMCU это D4). Если подключается несколько датчиков температуры, то все они подключаются на одну ножку микрокомпьютера. Это возможно благодаря шине 1-wire: у каждого датчика есть свой адрес и по нему микрокомьютер будет считывать значения каждого. Вот пример схемы подключения датчиков

 

 

Есть небольшая сложность в подключении датчика: необходимо между проводом питания + и проводом данных подключить резистор на 4.7К.

Более подробно о подключении датчика температуры можно почитать здесь https://arduinomaster.ru/datchiki-arduino/arduino-ds18b20/

В целом схема подключения для NodeMCU v3 выглядит примерно так

 

 

Сам микрокомпьютер будем запитывать обычным блоком питания от телефона с проводом MicroUSB. После того как макет будет полностью собран, оттестирован и т.п., можно использовать стационарный блок питания, или, например, подключиться к питанию уже готовых собранных розеток 220В, в которых есть USB

Подготовка среды Arduino для прошивки уcтройств.

Скачиваем и устанавливаем среду Arduino IDE https://www.arduino.cc/en/software (автор использует версию Arduino IDE 1.8.19)

После установки необходимо провести подготовительные действия.

В работе планируется использовать устройства на базе WiFi модуля ESP8266. Для того, чтобы появилась возможность работы с этими устройствами установим соответствующие библиотеки. Для этого необходимо в настройках указать дополнительные настройки для менеджера плат

 

 

Укажем в поле "Дополнительные ссылки.." следующую строку http://arduino.esp8266.com/stable/package_esp8266com_index.json

 

 

Далее идем в менеджер плат

 

 

И в поиске вводим ESP8266, выбираем необходимый пакет и устанавливаем его

 

 

При этом в меню выбора плат появляются необходимые нам платы 

Если мы работаем с устройством NodeMCU, то выбираем его

 

 

И настраиваем устройство. Порт выбираете тот, который у вас отображается в диспетчере устройств для USB-Serial CH340

 

 

Аналогично настраиваем устройство WeMOS, если используем его.

 

 

Также установим необходимые библиотеки для работы с датчиками температуры 

 

 

Установим библиотеку OneWire, для этого начнём набирать название библиотеки, выберем найденную и установим

 

 

Аналогичным образом установим библиотеку DallasTemperature

 

 

Итак, мы установили среду Arduino, добавили пакет для работы с необходимыми нам платами на базе ESP8266, а также установили библиотеки для работы с температурными датчиками.

Для того чтобы загрузить скетч в устройство, необходимо выбрать необходимую плату в меню инструменты, выбрать порт как описано выше, а затем нажать "Загрузить"

 

 

PS. Формируемый скетч из 1с в виде текстового файла "не нравится" среде Arduino, при открытии подсвечивается первая строка темным цветом, необходимо встать в самое начало скетча, нажать Del, удалится невидимый файл, при этом #include станет зеленым и можно прошивать скетч в устройство

 

Работа с мобильным приложением

Мобильную платформу можно установить, скачав платформу с сайта ИТС. Необходима версия 8.3.13 и выше. Следуйте рекомендациям по установке мобильной платформы. Для Android достаточно из скачанного дистрибутива перенести Apk-файл на своё мобильное устройство apk-файл «1cem-arm.apk» и установить его, затем добавить опубликованное мобильное приложение, например вот так.

 

При открытии приложения в окне

 

 

необходимо открыть настройки и ввести необходимые параметры: url сервера, путь к серверу публикации http-сервисов, а также код и токен дома 

 

 

Само окно управления открывается по кнопке "Управление":

 

 

При этом все необходимые элементы управления на экране создаются автоматически на основании данных в веденных в справочники Домов и Устройств в пользовательском режиме приложения 1С, расположенного на сервере

На этом резвёртывание системы завершено и можно попробовать поуправлять умным домом с помощью установленного и настроенного приложения

 

Дополнительные материалы. Ссылки на используемые устройства

  • NodeMCU v3

 

https://aliexpress.ru/item/4000550036826.html?spm=a2g2w.productlist.list.35.5d282feey7t50V&sku_id=10000004320996881

Примерная стоимость 130руб (цены приведены примерные, на момент написания статьи, все ссылки ориентировочные, никакой финансовой заинтересованности в них у автора нет, поэтому можно легко использовать другие).

  • WeMOS D1 mini

 

https://aliexpress.ru/item/32787418018.html?spm=a2g2w.productlist.list.8.bc24d130nwF8v7&sku_id=10000007814730538

Если у вас нет навыка пайки ножек на платы, то рекомендую связываться с поставщиком и попросить прислать с напаянными ножками. Выглядеть это будет примерно вот так

WeMOS удобен тем, что в него можно вставить другой модуль – реле.

 

 

  • Реле бывают нескольких видов. Более простой вариант - контактное реле с оптроном.

Пример ссылки

 https://aliexpress.ru/item/32649659086.html?spm=a2g2w.productlist.list.0.39041991Imj0FS&sku_id=10000001526389770 

 

Также часто используются твердотельные реле

https://aliexpress.ru/item/4000899938277.html?spm=a2g2w.productlist.list.2.f51d2a60RTSgBn&sku_id=12000025206149674

 

 

или в таком варианте

 

 

https://aliexpress.ru/item/32788946442.html?spm=a2g2w.productlist.list.5.7a6abc6a9Q62ZH&sku_id=10000000256934194

При выборе реле необходимо ОБЯЗАТЕЛЬНО учитывать нагрузку, которая будет использоваться и выбирать ток, соответствующий ей 2А, 6A, 10А и т.п. А также необходимо учитывать, что твердотельные реле имеют свойство нагреваться и возможно потребуется дополнительные радиатор и т.п.

Подробнее о реле можно почитать, например тут https://zen.yandex.ru/media/semfik/glavnye-pliusy-i-minusy-tverdotelnyh-rele-5f55d19372b2bd4697aba7e2 или тут https://elektrikexpert.ru/tverdotelnoe-rele.html

И пожалуйста, не забывайте о технике безопасности по работе с электрическим током при работе с реле!

  • Также рекомендую приобрести набор проводов

 

https://aliexpress.ru/item/1005002000655439.html?spm=a2g2w.productlist.list.4.75122ccfm0Frvq&sku_id=12000018371624180 c комбинациями «папа-папа», «мама-мама», «папа-мама». Эти провода послужат для соединения микроконтроллера с устройствами управления в случаях, если они не модульные, например, Вы заходите подключить отдельное твердотельное реле.    

  • Блок питания нам понадобится самый обычный от телефона, MicroUSB, с током от 0.5А. Для более серьёзных систем (если вы хотите подключить несколько реле к одному устройству, много разных датчиков) я рекомендую стационарный блок питания.

 

  • Датчик температуры DS18B20 

https://aliexpress.ru/item/32467815969.html?spm=a2g2w.productlist.list.1.290d398ao1uMgc&sku_id=66654224723

 

Умный дом arduino обогрев

См. также

У.дача каждому 1С-нику или Умный дом для ленивых (зачеркнуто) пытливых

Робототехника и умный дом (Arduino, NFC, RFID) Бесплатно (free)

Обладая минимальными навыками инженера, вполне можно сделать «умными» относительно недорогие устройства, и управлять всей логикой на 1С. Возможности огромны: управление светом, включением-выключением розеток, автополив, сигнализация и т.д. О самостоятельной реализации в 1С нестандартной логики управления устройствами пойдет речь в статье.

29.02.2024    1938    atland    6    

25

Умный дом на 1С: это намного проще, чем кажется, и значительно лучше, чем можно предположить

Робототехника и умный дом (Arduino, NFC, RFID)

Кто сказал, что умный дом на 1С сделать невозможно? На конференции Infostart Event 2021 Moscow Premiere Юрий Лазаренко из компании «Цифровой Кот» показал, какие уникальные прикольные вещи можно делать на базе IoT (интернета вещей), где в этом всем 1С, и как это все между собой интегрируется.

19.06.2023    4094    TitanLuchs    28    

16

Мобильное приложение 1С и Умный дом. В каждый дом. Пролог

Мобильная разработка Робототехника и умный дом (Arduino, NFC, RFID) Мобильная платформа Конфигурации 1cv8 Абонемент ($m)

Хотите попробовать свои силы в разработке собственного мобильного приложения на 1С для управления светом и электроприборами в своём доме? Добро пожаловать! Хочу поделиться собственными наработками в этой области. Это будет приложение, разработанное для мобильных устройств на базе Android. Основное предназначение: управление включением/выключением устройств, работающих от сети 220 V (свет, телевизор, чайник, вентилятор, микроволновка и т.д.). Управлять будем: из приложения, голосом, на заданный промежуток времени, интенсивностью света, расписанием работы.

1 стартмани

19.12.2022    2988    osivv    8    

22

У.дача каждому 1С-нику, или умный дом для ленивых (конфигурация)

Робототехника и умный дом (Arduino, NFC, RFID) Платформа 1С v8.3 Россия Абонемент ($m)

Конфигурация для создании умных домов на базе 1С. Приложение сконструировано как сервер для устройств Arduino, к которому подключены датчики и реле (и другие исполнительные механизмы), так и для публикации мобильного приложения для управления умным домом.

1 стартмани

26.09.2022    5051    10    atland    0    

24

RFID считыватели Impinj и RRU9516

Робототехника и умный дом (Arduino, NFC, RFID) Платформа 1С v8.3 8.3.14 Конфигурации 1cv8 Россия Абонемент ($m)

Компонента для работы с RFID метками. Поддерживает считыватели Impinj 120, 220, 420. А также настольный RRU9816.

1 стартмани

24.11.2021    3637    3    pavelmael    6    

6

1С и Умный дом. Управление голосом

Робототехника и умный дом (Arduino, NFC, RFID) 8.3.6 Бесплатно (free)

Возможно ли управление устройствами умного дома из 1С, да ещё и голосом? Можно ли без умных колонок Google Home, Alexa, Алиса и иных платформ, а также без приложений от Google, Amazon и других управлять этими устройствами? Мой ответ – ДА, можно, нужно просто иметь умное устройство, имеющее возможность работы в DIY, 1С и программу распознавания голоса и взаимодействия с 1С.

04.01.2021    48568    osivv    15    

12

IoT (Internet of Things) в 1С или как подружить 1С с ESP32 при помощи MQTT-брокера

Робототехника и умный дом (Arduino, NFC, RFID) Платформа 1С v8.3 Абонемент ($m)

Что делать, если надо подключить удалённое устройство к серверу 1С, но ни устройство, ни сервер 1С нельзя "светить" наружу? А если таких устройств десятки или сотни по всей стране? Ответ: Использовать промежуточный сервис, который будет пересылать данные между сервером 1С и устройствами. Такие функции замечательно выполняет MQTT-брокер, но вот не задача, 1С не умеет с ним работать.

2 стартмани

25.06.2020    14194    21    frutty    34    

23
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 748 30.09.22 13:25 Сейчас в теме
А зачем держать свой сервер, если можно реализовать, например, через MQTT ?
2. atland 104 30.09.22 16:05 Сейчас в теме
(1) Да, хорошая идея для развития разработки. Спасибо
3. Lancelot-2M 115 02.10.22 13:48 Сейчас в теме
В скетчах я не разбираюсь, но судя по тексту и схеме у вас выходит система "исполнительный" клиент <- > Сервер 1С <->Мобильный клиент 1С.
При этом какие-то производительные операции на сервере 1С не предполагаются - ну тема в общем-то не та.
И такая архитектура мне представляется странной. Тут просится вэб-сервер с интерфесами датчиков и исполнительных устройств и шедулера на микрокомпьютере и клиент в виде мобильно приложения 1С. Ну и совсем кучеряво если ЦМС у вэб-сервера некоторая будет реализована в мобильном приложении.
4. atland 104 02.10.22 22:02 Сейчас в теме
(3) Система да, примерно как вы написали - посередине сервер 1С.
Производительных операций действительно нет. 1С служит обработчиком http-запросов,
вэб-сервер тоже есть - он транслирует запросы в 1С и отсылает обратно ответы (и микрокомпьютеру
и мобильному приложению).
И такая система даёт возможность реализовать бизнес логику на самой 1С(или поменять, например ее,
вообще не меняя код на arduino). Например, вся эта разработка родилась на основе задачи сделать зимний
режим в загородном доме, не давать опустить температуру ниже +5С, даже если климат-контроль комнат
отключен - и тут не нужно быбо ездить, переписывать код в микрокомьютере, достаточно добавить одну кнопку
и слегка подредактировать бизнес-логику.
Но главная, на мой взгляд, изюминка в этой системе - автоматически генерируемая форма
мобильного приложения на основании строк в табличной части устройства, которая вводится
в пользовательском режиме на сервере, это позволяет сделать как раз тоже 1С, которая находится посередине
схемы
5. neomarat 6 21.11.22 14:16 Сейчас в теме
Вот еще бы пример по поливу - была бы вообще красота...
Оставьте свое сообщение