Arduino Mega Server

Модератор: Alex

Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm

Re: Arduino Mega Server

Сообщение Alex »

Так и есть...только при старте. Я приводил пример как сделать синхронизацию периодической.
Этого ничего делать не надо — библиотека сама периодически синхронизирует время.
Alex , а модуль " Ping" хоть как то у Вас работал ?
Друзья! После того, как на главной странице сайта исчез список последних сообщений на форуме, я стал пропускать ваши вопросы потому, что просто не вижу их. Поэтому ответы либо задерживаются, либо вы их не получаете вовсе. Я уже поднимал этот вопрос, ещё раз хочу обратить на это внимание: Сергей, верните список последних сообщений! (Тот список, который есть, слишком короткий и работает по неправильному алгоритму.)

По сути вопроса: Ping работал, хоть и плохо, но с переходом на какую-то версию совсем перестал, поэтому я его отключил.
Огромную благодарность выражаю пользователю serghei за помощь
Да, serghei молодец — сам учится и другим помогает.
Я сам был сильно удивлён - оказывается Alex заранее всё предусмотрел !
Вы не представляете сколько ещё и чего Alex предусмотрел. :) В отличие от прочей лабуды, АМС вещь СИСТЕМНАЯ (если вы понимаете о чём я).
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв

Re: Arduino Mega Server

Сообщение serghei »

Alex писал(а): Сб сен 22, 2018 7:02 amАМС вещь СИСТЕМНАЯ
Это я уже понял очень давно , поэтому и стараюсь сделать его главным сервером в доме. И самое главное - он НЕ ГЛЮЧИТ !! Ни одна платформа ! И если что то не работает , то это ТОЛЬКО из - за кривых рук.

А напичкивание функционалом - так это коллективный процесс . Я только выступаю в роли подопытного... И все , чего добился - это благодаря трем моим учителям - форумчанам.

To schel4ok

Работа AMS состоит из 4-х частей:

1 Код
2 Вкладка Ажакс
3 СКРИПТ !!!!
4 Вывод в HTML.

И если на одной странице все работает правильно , а на другой нет - значит код не причем и косячит Scripts.js Ну или в проводных AMS это Dash.js Надо там ковыряться.

"Ping" у меня сейчас для W5500 . Почему то рутер видит , а любой другой сервер нет. Хотя просто меняю IP адрес.
Всё это нужно - что бы один сервер видел состояние остальных. Ну это очередная хотелка )).

PS / Самая большая награда для меня - это благодарность от таких же начинающих как и я.... ;)

PSS/ Банальный пример - в одном проекте для 8266 увидел , как со страницы попасть на любую другую. Цена вопроса - ОДНА строчка в HTM блоке. Теперь можно применить везде где это нужно....
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв

Re: Arduino Mega Server

Сообщение serghei »

Возможно я изменил вкладку " Контакт". Привожу рабочий вариант. Сама вкладка

Код: Выделить всё

/*
  Module Contacts
  part of Arduino Mega Server project
*/

#ifdef CONTACTS_FEATURE

#define CONT1_PIN 27
#define CONT2_PIN 31

#define OPEN  1
#define CLOSE 0

char cont1object[] = "cont1";
char cont2object[] = "cont2";

char cont1openMess[] = "Open"; char cont1closeMess[] = "Closed";
char cont2openMess[] = "Down"; char cont2closeMess[] = "Norm";

// states
// 0 - open
// 1 - close
// 2 - not defined
byte cont1state = 2; byte old_cont1state = 2; byte cont1objectState = 2;
byte cont2state = 2; byte old_cont2state = 2; byte cont2objectState = 2;

void contactsInit() {
  pinMode(CONT1_PIN, INPUT);
  pinMode(CONT2_PIN, INPUT);
  moduleContacts = MODULE_ENABLE;
  started("Contacts");
}

void printContMess(char obj[], char mess[]) {
  timeStamp(); Serial.print(obj); Serial.print(F(": ")); Serial.println(mess);
}

void contactsWorks() {
  // cont1
  cont1state = digitalRead(CONT1_PIN);
  if (cont1state != old_cont1state) {
      old_cont1state = cont1state;
      if (cont1state == 0) {
        cont1objectState = OPEN;
        printContMess(cont1object, cont1openMess);
        #ifdef MAJORDOMO_FEATURE
          sendRequestM(cont1object, OPEN);
        #endif
        
      } else {
        cont1objectState = CLOSE;
        printContMess(cont1object, cont1closeMess);

             
                
        #ifdef MAJORDOMO_FEATURE
          sendRequestM(cont1object, CLOSE);
        #endif
      }
  }
  
  // cont2
  cont2state = digitalRead(CONT2_PIN);
  if (cont2state != old_cont2state) {
    old_cont2state = cont2state;
    if (cont2state == 1) {
      cont2objectState = OPEN;
      printContMess(cont2object, cont2openMess);
    } else {
        cont2objectState = CLOSE;
        printContMess(cont2object, cont2closeMess);
      }
  }
} // contactsWorks()

#endif // CONTACTS_FEATURE
В сервере ажакс

Код: Выделить всё

#ifdef CONTACTS_FEATURE
  String makeContacts() {
    String s = "";
    s += makeTag(BASE_CONTACT, "1", String(cont1objectState));
    s += makeTag(BASE_CONTACT, "2", String(cont2objectState));
    return s;
  }
#endif
----------------
    #ifdef CONTACTS_FEATURE
      s += makeContacts();// В void respDash(EthernetClient cl) {
    #endif  
В Dash.js

Код: Выделить всё

          // Contacts

          for (var i = 0; i < contName.length; i++) {
            try {
              var dcont = this.responseXML.getElementsByTagName(contXml[i])[0].childNodes[0].nodeValue;
            } catch (err) {
                dcont = '-1';
              }
            try {
              document.getElementById(contId[i]).innerHTML        = contName[i];
              document.getElementById(contId[i]).style.background = contactBackground(dcont);
              document.getElementById(contId[i]).style.color      = contactColor(dcont);
            } catch (err) { }
          }
Только работает в инверсном режиме - при D31 на +5 вольт и D27 на корпус оба контакта красных. При D31 на корпус и D27 на +5 вольт - оба зеленых.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
schel4ok
Сообщения: 136
Зарегистрирован: Вс сен 02, 2018 8:03 am

Re: Arduino Mega Server

Сообщение schel4ok »

Спасибо. Этот вариант работает.
Я уже сам последовательно нашел, что проблема была именно в коде файла contacts.ino
Он всё время передавал состояние контакта = 1. И поэтому в шапке у меня ничего не менялось.
Но знаний C++ пока не хватает, чтобы написать этот код верно.

А в прошлом сообщении была ещё такая конструкция. Она для чего?

Код: Выделить всё

  if (cycle1m) {
    old_cont1state = cont1state;
    if (cont1state == 0) {
      printContMess(cont1object, cont1openMess);
      #ifdef MAJORDOMO_FEATURE
        sendRequestM(cont1object, OPEN);
      #endif
    } else {
        printContMess(cont1object, cont1closeMess);
        #ifdef MAJORDOMO_FEATURE
          sendRequestM(cont1object, CLOSE);
        #endif
      }
  }
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв

Re: Arduino Mega Server

Сообщение serghei »

То сообщение относилось к Дуе еще 016 версии. Сейчас в 017 для Меги и Дуе код кардинально переделан в правильную сторону )). И кстати очень полезно посмотреть эволюцию развития кода от 010 до 017 версии. Это к вопросу о программировании. Хотя бы просто посмотреть что кардинально изменилось в 017 версии.

Я это прошел с 013 версии. И слежу за всеми сообщениями в теме. Так что мне проще в этом плане.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

Re: Arduino Mega Server

Сообщение nick7zmail »

Alex писал(а): Сб сен 22, 2018 7:02 am
Друзья! После того, как на главной странице сайта исчез список последних сообщений на форуме, я стал пропускать ваши вопросы потому, что просто не вижу их. Поэтому ответы либо задерживаются, либо вы их не получаете вовсе. Я уже поднимал этот вопрос, ещё раз хочу обратить на это внимание: Сергей, верните список последних сообщений! (Тот список, который есть, слишком короткий и работает по неправильному алгоритму.)
Вроде тут есть https://majordomo.smartliving.ru/forum/ ... ifications
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm

Re: Arduino Mega Server

Сообщение Alex »

Вроде тут есть https://majordomo.smartliving.ru/forum/ ... ifications
Что-то это совсем не то. Я пользуюсь вот этой страницей

https://connect.smartliving.ru/forum.html

Но у неё два недостатка по сравнению с прошлой версией:

1. список слишком короткий и за ним нужно постоянно следить. В реальной жизни 50% постов пролетают незамеченными.

2. прошлая версия списка группировала однотипные сообщения в одно, вследствие чего информационная ёмкость списка была в 2-3 раза больше при том же количестве строк.

В общем, тот список был единственной удобной функцией на форуме — конечно же нужно было её упразднить (чтобы народ не расслаблялся и всегда был в тонусе).
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

Re: Arduino Mega Server

Сообщение nick7zmail »

Да вроде как раз то...список всех последних сообщений по темам с момента последнего присутствия. Правда мусора много в виде благодарностей, цитат и т.п. Фильтр бы не помешал. А так вроде с тегом "Ответ" как раз то самое, сильно расширенный функционал списка сообщений))

Если честно того списка сообщений тоже по началу сильно не хватало. Ща вроде привык этой штукой уже пользоваться. Там надо просто 1 раз "отметить всё как прочитанное", а потом уже следить за динамикой (если что - доступ к этой странице по колокольчику в верхней панели. Там же кол-во новых уведомлений).
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm

Re: Arduino Mega Server

Сообщение Alex »

Ща вроде привык этой штукой уже пользоваться.
Вот зачем нам лишние трудности и зачем нам к чему-то привыкать? Было прекрасное решение — зачем нужно было его убирать? Кому оно мешало7

А в предлагаемом варианте кроме неудобства и непривычности есть ещё один недостаток — необходимость входить на форум. Мне удобнее видеть список сообщений без входа на форум.

Ещё раз: зачем нужно было ломать то, что прекрасно работало? И почему нужно сохранять гробовое молчание в ответ на вопли юзеров (я тут не единственный кто просил вернуть список)?
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв

Re: Arduino Mega Server

Сообщение serghei »

Не единственный. И почему надо где то голосовать за то , чтобы нам вылечили форум УМНОГО дома?
Мне как бы достаточно подписаться на тему и на почту приходят уведомления о новых сообщениях.
Но это уже злой OffTop.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ответить