1 2 3 4 5 6 7 8 9 10 10/10 10,00оценок: 5

OpenHAB - обмен опытом, совместное изучение и т. п

Тема в разделе "Умный дом", создана пользователем Anton66, 15.03.14.

  1. sly2k
    Регистрация:
    22.02.08
    Сообщения:
    529
    Благодарности:
    122

    sly2k

    Живу здесь

    sly2k

    Живу здесь

    Регистрация:
    22.02.08
    Сообщения:
    529
    Благодарности:
    122
    Адрес:
    деревня Мякинино
    Я на мегафоне/мтс сижу, так что нет даже динамического реального IP, динаимческий за денежку, и с ним не работают безлимитные пакеты.
    Про тоннель интересно, какое можете предложить решение при условии что я живу в загородном доме выходя в интернет через мегафон/мтс? не совсем понял куда его поднимать.
     
    Последнее редактирование: 22.01.15
  2. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    С серыми адресами все сложно.
    Смотрите в сторону vpn, ipv6.
    Или ip4 over ipv6
     
  3. sly2k
    Регистрация:
    22.02.08
    Сообщения:
    529
    Благодарности:
    122

    sly2k

    Живу здесь

    sly2k

    Живу здесь

    Регистрация:
    22.02.08
    Сообщения:
    529
    Благодарности:
    122
    Адрес:
    деревня Мякинино
    да я уж смотрел, хотел разместить в дружественной конторе сервер впн под это дело. Но тут вышел плагин, вопрос вроде как отпал сам собой. Ivideon видеонаблюдение также поддерживает удаленный просмотр через свои сервера.
     
  4. sly2k
    Регистрация:
    22.02.08
    Сообщения:
    529
    Благодарности:
    122

    sly2k

    Живу здесь

    sly2k

    Живу здесь

    Регистрация:
    22.02.08
    Сообщения:
    529
    Благодарности:
    122
    Адрес:
    деревня Мякинино
    Кто-нибудь знает как выводить несколько показателей в одном графике?
     
  5. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    На сколько помню - в файле rrd4j.presist нужно прописать в одной строке столько параметров, сколько параметров, сколько хотите графиков на одной картинке.
    Только за масштабами следите. А то может оказаться, что одна переменная принимает значения от 0 до 100, а вторая от 0 до 1. Последнюю практически не увидеть так как график будет со шкалой от 0 до 100.
     
  6. sly2k
    Регистрация:
    22.02.08
    Сообщения:
    529
    Благодарности:
    122

    sly2k

    Живу здесь

    sly2k

    Живу здесь

    Регистрация:
    22.02.08
    Сообщения:
    529
    Благодарности:
    122
    Адрес:
    деревня Мякинино
    Не совсем понял как в rrd4j.presist указать что они должны быть именно на одном графике?
    Сейчас у меня в rrd4j.presist
    Код:
    Items {
        * : strategy = everyMinute, restoreOnStartup
    }
    означает писать все переменные, можно указать через запятую какие писать, можно использовать маску для указания нескольких переменных.
    в Sitemap чтобы вывести график температуры за окном (например дневной) пишу следующее:
    Код:
                   Frame     {
                  Chart item=tOutside period=D refresh=10000 }
    
    что я должен здесь написать, чтобы воводилось несколько на одном графике?
     
  7. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    (в сообщении выше - ошибся я. Не верно подсказал)

    item (ы)? которые нужно отобразить на одном графике объединяем в группу, а группу выводим в chart.
    В вашем случае примерно так:
    *.items
    Group Temperature
    Number tOutside ... (Temperature) {...}
    Number tInside ...(Temperature) {...}
    Number var_x ...(Temperature) {...}

    *.sitemap
    ...
    chart item=Temperature period=D refresh=10000

    ps. Temperature нужно в rrd4j.presist записать. Синтаксис такой же как и с item
    ззы. указывать * в rrg4j.presist не желательно. Будет формировать базы для всех итемов в не зависимости от надобности. Прописывайте только те переменные по которым действительно будете строить графики.
     
    Последнее редактирование: 26.01.15
  8. Zloy Glide
    Регистрация:
    23.01.14
    Сообщения:
    8
    Благодарности:
    4

    Zloy Glide

    Участник

    Zloy Glide

    Участник

    Регистрация:
    23.01.14
    Сообщения:
    8
    Благодарности:
    4
    Адрес:
    Химки
    Действительно, * лучше не указывать если конечно такой надобности нет укажите или итемы или группу. Зачем нагрузку создавать лишнюю)
     
  9. sly2k
    Регистрация:
    22.02.08
    Сообщения:
    529
    Благодарности:
    122

    sly2k

    Живу здесь

    sly2k

    Живу здесь

    Регистрация:
    22.02.08
    Сообщения:
    529
    Благодарности:
    122
    Адрес:
    деревня Мякинино
    В моем случае это не критично. проект на отладке, переменных мало.
     
  10. dimas_ua
    Регистрация:
    29.01.15
    Сообщения:
    5
    Благодарности:
    0

    dimas_ua

    Участник

    dimas_ua

    Участник

    Регистрация:
    29.01.15
    Сообщения:
    5
    Благодарности:
    0
    Здравствуйте. заинтересовалса этой платформой, хочу потключить ее к ардуино через
    Http Binding, но както неполучаетса если вбиваю силку в бравзере то ардуино отлично отзываетса но на кнопки в openhab нереагирует, ниже код, может кто подскажет что не так)

    код ардуино

    Код:
    #include <SPI.h>
    #include <Ethernet.h>
    
    boolean incoming = 0;
    
    // Введите MAC-адрес и IP-адрес вашего контроллера
    // IP-адрес должен соответствовать вашей локальной сети
    byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02 };
    IPAddress ip(192,168,10,123); //<<< IP-АДРЕС ВВОДИТЬ СЮДА!!!
    
    // Инициализация библиотеки Ethernet server
    // с тем IP-адресом и портом который мы хотим использовать
    // (порт 80 по умолчанию используется для HTTP):
    EthernetServer server(80);
    
    void setup()
    {
      pinMode(8, OUTPUT);
    
      // запускаем Ethernet соединение и сервер:
      Ethernet.begin(mac, ip);
      server.begin();
      Serial.begin(9600);
    }
    
    void loop()
    {
      // ожидание подключения клиентов
      EthernetClient client = server.available();
    
      if (client) {
        Serial.println(client.read());
            // Запрос HTTP заканчивается пустой строкой
        boolean currentLineIsBlank = true;
        while (client.connected()) {
          if (client.available()) {
            char c = client.read();
            // Если будет получен символ переноса строки и
        // сама строка при этом пустая, значит
        // HTTP-запрос закончился, можно отвечать
      
    
    
        // считываем URL с символа "$" до первого пробела
            if(incoming && c == ' '){
              incoming = 0;
            }
            if(c == '$'){
              incoming = 1;
            }
    
            // Определяем что было в URL: $1 или $2
            if(incoming == 1){
              Serial.println(c);
            
            
    //_____________________________________________________________ rele
              if(c == '1'){
                Serial.println("rele_1 ON");
                digitalWrite(9, HIGH);
                client.stop();
              }
              if(c == '2'){
                Serial.println("rele_1 OFF");
                digitalWrite(9, LOW);
                client.stop();
              }
            
              if(c == '3'){
                Serial.println("rele_2 ON");
                digitalWrite(7, HIGH);
                client.println("test");
                client.stop();
              }
            
    
            
              if(c == '4'){
                Serial.println("rele_3 ON");
                digitalWrite(6, HIGH);
                client.stop();
              }
            
              if(c == '5'){
                Serial.println("rele_3 OFF");
                digitalWrite(6, LOW);
                client.stop();
              }
            
         } 
    //________________________________________________________
          
    
            if (c == '\n') {
              // началась новая строка
              currentLineIsBlank = true;
            }
            else if (c != '\r') {
              // в текущей строке ещё есть символы
              currentLineIsBlank = false;
            }
          }
        }
        // даём время браузеру для получения данных
        delay(1);
        // закрываем соединение
        client.stop();
      }
    }

    код items

    Код:
    Group All
    Group rele         (All)
    
    Switch one  "one"       (rele) { http=">[ON:HTTP://192.168.10.123/$1] >[OFF: GET: http://192.168.10.123/$2]" }
    Switch tu     "два"         (rele) { http=">[*: http://192.168.10.123/$3]" }
    Switch tre     "три"         (rele) { http=">[ON:HTTP://192.168.10.123/$4] >[OFF: GET: http://192.168.10.123/$5]" }
    
    код sitemap
    Код:
    sitemap demo label="Main Menu"
    {
        Frame {
            Switch item=one label="один" icon="firstfloor"
            Switch item=tu label="два" icon="groundfloor"
            Switch item=tre label="три" icon="cellar"   
        }
    }
     
  11. Guest22344
    Регистрация:
    29.08.12
    Сообщения:
    12
    Благодарности:
    2

    Guest22344

    Участник

    Guest22344

    Участник

    Регистрация:
    29.08.12
    Сообщения:
    12
    Благодарности:
    2
    Адрес:
    1234 лывпаы 32,2
    Может PUT?
    используйте mqtt binding путаницы меньше будет.
     
  12. dimas_ua
    Регистрация:
    29.01.15
    Сообщения:
    5
    Благодарности:
    0

    dimas_ua

    Участник

    dimas_ua

    Участник

    Регистрация:
    29.01.15
    Сообщения:
    5
    Благодарности:
    0
    спасибо за подсказку, только и здесь проблема) библиотека для Ардуино отсюда, но Ардуино IDE выдает ошибку даже при тестовых примерах заложенные в самой библиотеке, не могу в интернете найти решение проблемы, возможно кто-то сталкивался с нею?
     
  13. dimas_ua
    Регистрация:
    29.01.15
    Сообщения:
    5
    Благодарности:
    0

    dimas_ua

    Участник

    dimas_ua

    Участник

    Регистрация:
    29.01.15
    Сообщения:
    5
    Благодарности:
    0
    Это выдает SDE при компиляции:
    mqttlightcontrol_lightside:30: error: 'PubSubClient' does not name a type
    mqttlightcontrol_lightside.ino: In function 'void setup()':
    mqttlightcontrol_lightside:74: error: 'client' was not declared in this scope
    mqttlightcontrol_lightside.ino: In function 'void loop()':
    mqttlightcontrol_lightside:86: error: 'client' was not declared in this scope
    mqttlightcontrol_lightside.ino: In function 'void callback (char*, byte*, unsigned int)':
    mqttlightcontrol_lightside:130: error: 'client' was not declared in this scope
    mqttlightcontrol_lightside:134: error: 'client' was not declared in this scope
     
  14. dimas_ua
    Регистрация:
    29.01.15
    Сообщения:
    5
    Благодарности:
    0

    dimas_ua

    Участник

    dimas_ua

    Участник

    Регистрация:
    29.01.15
    Сообщения:
    5
    Благодарности:
    0
    Я забросил папку с библиотекую в папку либрарис, а в IDE когда хочу добавить ее через sketch>import library> PubSubClient, то появляется просто пустую строку, а когда прописываю ее руками, то она не выделяется цветом (как другие использованы библиотеки)
     
  15. Guest22344
    Регистрация:
    29.08.12
    Сообщения:
    12
    Благодарности:
    2

    Guest22344

    Участник

    Guest22344

    Участник

    Регистрация:
    29.08.12
    Сообщения:
    12
    Благодарности:
    2
    Адрес:
    1234 лывпаы 32,2
    На Arduino IDE ver 1.05 устанавливает и компилирует без ошибок, хотя автор этого и не заявлял.(Arduino обсуждается в других местах.)
    -*blue-pc.net: на немецком, но все на пальцах (OpenHAB+mqtt+arduino) рекомендую. Если поискать, то найдете и на русском.
    -к вопросу о HTTP: поищите на хабре за последний месяц статью по тегу OpenHAB, у автора на гите выложены корректные примеры item с запросом в Arduino. Ваша задача там описана.