Arduino, ESP8266 Lua, Raspberry Pi 2 && OpenHab. Умный дом: азы управления.

Тема в разделе "Глядите, что я сделал", создана пользователем ИгорьК, 12 май 2015.

  1. mummykbf

    mummykbf Нуб

    Доброй ночи.
    Господа, по-тихонечку осваиваю Openhab. На данный момент пытаюсь "въехать" в его графическую часть - что, где, как и зачем. Есть пара нерешенных и неясных мне вопросов.

    Воюю с погодой от Яндекса.
    код items:
    Код (C++):
    Group MyWeather            (Weather)
        Number    YandexTemp    "Температура [%.1f °C]" <gnome_weather_few_clouds> (MyWeather)        { http="<[http://export.yandex.ru/bar/reginfo.xml?region=10758.xml:30000:REGEX(.*?</pressure>.*<temperature.*>(.*?)</temperature>.*<time_zone>.*?)]" }
        Number    YandexHumi    "Влажность [%s %%]"        <humidity>                        { http="<[http://export.yandex.ru/bar/reginfo.xml?region=10758.xml:120000:REGEX(.*?<dampness>(.*?)</dampness>.*)]" }
        Number    YandexWind    "Ветер [%.1f м/с]"       <wind_flag_storm>               { http="<[http://export.yandex.ru/bar/reginfo.xml?region=10758.xml:120000:REGEX(.*?<wind_speed>(.*?)</wind_speed>.*)]" }
        Number    YandexPress   "Давление [%d мм рт. ст.]"  <barometer_3>                { http="<[http://export.yandex.ru/bar/reginfo.xml?region=10758.xml:120000:REGEX(.*?<pressure>(.*?)</pressure>.*)]" }
        String    YandexType    "За окном [%s]"                                            { http="<[http://export.yandex.ru/bar/reginfo.xml?region=10758.xml:30000:REGEX(.*?<weather_type>(.*?)</weather_type>.*)]" }
        String    YandexCity    "Город: [%s]"                                            { http="<[http://export.yandex.ru/bar/reginfo.xml?region=10758.xml:30000:REGEX(.*?<title>(.*?)</title>.*)]" }
    код sitemaps:
    Код (C++):
    Frame label="Погода" {
            Text item=Weather_Temperature valuecolor=[Weather_LastUpdate=="Uninitialized"="lightgray",Weather_LastUpdate>90="lightgray",>25="orange",>15="green",>5="orange",<=5="blue"] {
                Frame {
                    Text item=YandexTemp valuecolor=[>25="orange",>15="green",>5="orange",<=5="blue"]
                    Text item=YandexHumi valuecolor=[>25="orange",>15="green",>5="orange",<=5="blue"]
                    Text item=YandexWind
                    Text item=YandexPress
                    Text item=YandexType
                    Text item=YandexCity
                        }
            }
        }
    В результате последние два итема выдают "кракозябры", что на ПК, что на мобильном.
    Как это поправить?
    Без имени-2.jpg
    Изображение2.png
     
  2. ИгорьК

    ИгорьК Гуру

    1. Открыть в Notepad++ все эти конфигурационных файлы OpenHab и транслировать в кодировку UTF-8 без BOM.
    2. Сгенерировать локаль ru - ссылка в заголовке темы.
     
  3. ИгорьК

    ИгорьК Гуру

    Там в коде есть строки, что если пришло сообщение "ON" то сбросить ногу в LOW, иначе в HIGH. Присмотрись, поменяйте как Вам надо.
    Код (Lua):
    if (data=="ON") then
      print("Enabling LED")
      gpio.write(4,gpio.LOW) -- вот здесь менять
    ...
    А по поводу точки доступа - так и нет здесь такого, не найдёте. Это программировать надо дополнительно.
    Хотя есть такая специальная возможность, что если устройство попало в место, где нет у него привычной сети - оно само поднимает сервер и ждёт, когда его настроят, а после - выгружает сервер до следующего раза. В прошивку надо включить это: https://nodemcu.readthedocs.io/en/master/en/modules/enduser-setup/
     
  4. dimm71

    dimm71 Нерд

    Код поменял. Спасибо. Примерно так и думал, но сам не решился.

    А вот по поводу точки доступа не понял. Что значит в ПРОШИВКУ включать? Я думаю, это нужно в код скрипта вставить. Теперь бы вот разобраться куда...
     
  5. alp69

    alp69 Форумчанин

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

    Почитайте материал по ссылке ИгоряК из поста 1085.

    И еще это.
     
    Последнее редактирование: 19 ноя 2016
  6. dimm71

    dimm71 Нерд

    Где собирается прошивка я знаю. Все эти посты я читал и пробовал. Но ни разу, почему то, такая прошивка не завелась. После заливки на ESPшку всегда сыпался мусор в ESPlorer и мигали все лампочки на ней. В чем причина не знаю.
     
  7. alp69

    alp69 Форумчанин

    Мусор от несоответствия скорости.
    Прошивка - это как операционная система. Конкретные задачи есп выполняет исполняя код, залитый акромя прошивки. Но если в прошивке не будет модулей, на которые опирается код - результат не получите.

    Покажите скриншот мусора, Ваш код и скриншот реакции есплорера на код.
     
  8. dimm71

    dimm71 Нерд

    Показать уже не смогу. Залил другую. Прошивку собирал с модулями как показано на скриншоте в этой теме. После того как её залил, "железяка" начинает быстро мигать красным и синим диодом. После подключения к ней ESPloreroм в него сыпится постоянно "мусор" в виде крякозябров. Вот собственно и всё.
    После того как залил прошивку другую горит только красный диод и мусора нет. Поддается заливки в неё скриптов
     
  9. ИгорьК

    ИгорьК Гуру

    Была у меня ситуевина, когда прошивка с сайта в необходимой комбинации вела себя также. Собрал ту же прошивку из ветки dev - все завелось.
    Это заставило взгрустнуть... И читать это: http://nodemcu.readthedocs.io/en/latest/en/flash/#upgrading-firmware

    Кстати, именно после этого случая я и предложил выкладывать сюда прошивки (чтобы не доставали вопросами по сборке и наверняка нужная прошивка была на модуле повторяющего)
     
    Последнее редактирование: 19 ноя 2016
  10. dimm71

    dimm71 Нерд

    Правильно ли я понял, что для форматирования флешь памяти из ESPlorer нужно выполнить команду file.format() или из ESPTOOL esptool.py --port <serial-port-of-ESP8266> erase_flash?
     
  11. ИгорьК

    ИгорьК Гуру

    Второе. Первое - удаляет программу из памяти. Не возбраняется, но второе - главное.
     
  12. ИгорьК

    ИгорьК Гуру

  13. dimm71

    dimm71 Нерд

    Понял. Попробую вечером.
    Ещё вопрос, при сборке модулей включу дополнительно "end user setup", а нужно ещё добавить "HTTP"?
     
  14. dimm71

    dimm71 Нерд

    В общем попробовал.... и стирал флеш, перешивал, что только не делал - ни в какую не хочет заводится. Мигают диоды и мусор сыпется. Вернулся обратно на 0.9.6
    Есть ещё какие мысли у кого-нибудь?

    Получилось. Вот здесь http://www.esp8266.com/viewtopic.php?p=57848 решение было. Последний пост.
    Код (C++):
    sudo python esptool.py --port /dev/ttyUSB0 write_flash  -fm qio  -fs 8m 0x00000 ./nodemcu-master-9-modules-2016-11-08-09-33-18-integer.bin 0xfc000 esp_init_data_default.bin
    В сети появилась точка доступа ESP_9469D2. К ней конектится без пароля, но зайти по адресу 192.168.4.1 не получается - там видимо пусто. Но уже прогресс...
     
    Последнее редактирование: 19 ноя 2016
  15. ИгорьК

    ИгорьК Гуру

    Выберите ветку dev для компиляции.
     
  16. alp69

    alp69 Форумчанин

    И еще один момент. В есплорере отключите autodetect firmware.
     
  17. ИгорьК

    ИгорьК Гуру

  18. dimm71

    dimm71 Нерд

    Я следовал этой инструкции. В ней сказано, что esp_init_data_default.bin нужно заливать по адресу 0x7C000 для ESP-01 - не вышло. Попробовал залить по адресу 0xfc000 как сказано здесь http://www.esp8266.com/viewtopic.php?p=57848 и всё получилось. Теперь новая прошивка работает.

    Теперь ещё вопрос. Залил скипт коннекта к роутеру ЕСПшка подключилась, но пропала точка доступа. Как теперь удалить скрипт, чтобы к роутеру не подключалась ЕСПшка. Хочу разобраться с точкой доступа.
     
  19. ИгорьК

    ИгорьК Гуру

    А как Вы назвали этот скрипт?
     
  20. dimm71

    dimm71 Нерд

    Никак не называл... залил через Snippets
    do
    wifi.setmode(wifi.STATION)
    wifi.sta.config("****","******")
    wifi.sta.autoconnect(1)
    end