Страница 115 из 121

Re: ESP8266

Добавлено: Вт фев 13, 2018 9:17 pm
prmres
yurik писал(а):апач выдает Fatal Error : Uncaught error : Call to undefined function curl_init()
вот и вся беда...
ну тут вы могли чего то по инструкции не доделать

вообще я бы посоветовал вам сделать бекап мажордомо, снести виртуалку, поставить МИНИМАЛЬНУЮ убунту
а потом на убунте с помощью скриптов поставить MD и потом накатить бекап
скрипты тут: https://majordomo.smartliving.ru/forum/ ... 341#p42341

НО сначала попробуйте код из этого сообщения: https://majordomo.smartliving.ru/forum/ ... 775#p71775

Re: ESP8266

Добавлено: Вт фев 13, 2018 9:18 pm
yurik
всем спасибо, вопрос решен, посмотрев логи. я обнаружил что не стоит php-curl, гы...
зато теперь я знаю все три способа соединения виртуалки ubuntu с железом!

Re: ESP8266

Добавлено: Вт фев 13, 2018 9:20 pm
prmres
yurik писал(а):всем спасибо, вопрос решен, посмотрев логи. я обнаружил что не стоит php-curl, гы...
зато теперь я знаю все три способа соединения виртуалки ubuntu с железом!
это потому что ставили руками и что то пропустили
в моём предыдущем сообщении я давал ссылку на скрипты установки - работают на-ура! надо всего лишь на несколько вопросов ответить остальное делают сами автоматом ставят всё необходимое

Re: ESP8266

Добавлено: Вт фев 13, 2018 9:21 pm
Vovix
нафик, больше с советами к Линуксоидам вообще соваться не буду!!!

чё нить напишут на клаве в своей любимой консоле, или наоборот забудут написать
а потом голову ломают!
то права на папки раздают (забывают раздать)
то с элементарным звуком воюют неделями если не больше...
ну да зато потом надежность...
правда чёто у меня Rasberry Pi2 светом управляет через 1-wire, и не сказал бы я что сильно надежно это выходит!
:D :D :D

Re: ESP8266

Добавлено: Ср фев 14, 2018 10:39 am
yurik
По поводу правильного кода для esp8266, все эти условия if-ы от лукавого,
вот вариант (по крайней мере я к нему прибился)

$st=$this->getProperty('gpiout2');
getURL('http://192.168.1.111/gpiout?st='.$st.'&pin=2', 0,'esp01','esp01');

сейчас для меня узкое место заключается в следующем, допустим два выключателя (а может даже больше плюс датчики всякие) работают на одном и том же esp8266 (благо куча пинов позволяют, в том числе VGPIO). В каждом выключателе указан метод вызова из объекта ESP8266.. например refresh, для двух выключателей получается код будет следующий

$st2=$this->getProperty('gpiout2');
getURL('http://192.168.1.111/gpiout?st='.$st2.'&pin=2', 0,'esp01','esp01');
$st5=$this->getProperty('gpiout5');
getURL('http://192.168.1.111/gpiout?st='.$st5.'&pin=5', 0,'esp01','esp01');

получается логичней сделать цикл конечно же (это не проблема, по маске свойства у объекта просканить), НО этот вариант мне не нравится (ведь есть ООП)!!! при "щелкании" одним выключателем идут лишние запросы на другие выключатели...а это нагрузка на http... Единственное решение которое приходит в голову, это насоздавать объекты внутри ESP8266, которые по факту будут дублировать свойства (например gpio2, gpio5 ну и т.д.), а выключатели уже можно будет связывать со свойствами состояния этих пинов. Тогда http запрос будет отправляться в одном экземпляре соответсвующим объектом (пусть будет например esp8266pin2/классаesp8266 названия вымышленные, над реализацией только думаю). Тогда можно сделать и глобальный refresh (для esp8266 в своем классе), и refresh отдельного пина (класс esp8266pin, название не принципиально). Теперь о минусах, на настоящий момент жутко не хватает параметрического вызова методов объекта (экземпляра класса). С выключателями это не так критично (SetPinOn и SetPinOff будет достаточно), но вот уже дальше сложней, как например для RGB ленты сделать я уже затрудняюсь.Очень сильно не хватает полноченных инкапсуляции и полиморфизма...

Вчера вот увидел модуль PropTransfer (полезный и классный, за что автору огромное спасибо), вроде бы он может помочь в нашей ситуации - сделаем трансфер gpio-пинов из esp8266 в объекты (экземпляры класса esp8266pin) esp8266pin2, esp8266pin5, ну и т.д. Работать конечно же будет, но это не то, что бы хотелось, пользоваться кодом сможет только тот человек, который его написал, так как надо в голове держать всю структуру классов и объектов, и тем более установленных связей в PropTransfer, т.е. человек/пользователь теперь выступает в роли диспетчера ООП, а в голове держать столько информации не каждый может... Что получается в реальности - на одном eps я буду использовать пару выключателей (для света например в комнате), напишу "корявый" код, главное чтобы работало и не зависало! И лучше этот код потом никому не давать :lol:

Re: ESP8266

Добавлено: Ср фев 14, 2018 1:19 pm
prmres
yurik писал(а):По поводу правильного кода для esp8266, все эти условия if-ы от лукавого,
понятно, значит и так работает
признаться в программировании не силён

Re: ESP8266

Добавлено: Ср фев 14, 2018 1:35 pm
skysilver
yurik писал(а):Очень сильно не хватает полноченных инкапсуляции и полиморфизма...
А модуль из маркета для wifi-iot не подошел?

Re: ESP8266

Добавлено: Чт фев 15, 2018 9:46 am
yurik
skysilver писал(а):
yurik писал(а):Очень сильно не хватает полноченных инкапсуляции и полиморфизма...
А модуль из маркета для wifi-iot не подошел?
дело не в том подошел, или не подошел... Подойти то может все, но не бывает универсальных решений, каждый сам для себя решает - использовать готовое, допиливать его либо создавать что-то свое! Я только лишь поделился своими соображениями, что для одной-двух кнопок для лампочек скорее всего ничего и не нужно, ну будет два http запроса параллельно (хотя это тоже учесть легко) - это не критично! Ну и данные тоже не должны дублироваться, иначе нарушаются базовые принципы объектного программирования.

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

Вчера порылся на форуме, оказывается появился новый модуль "Простые устройства" в альфаветке https://majordomo.smartliving.ru/forum/ ... 0%B2%D0%B0 , обсуждение полным ходом, добавятся группы простых устройств, вот как раз для esp8266 и нужна такая "группа устройств", что-то вроде контейнера разнородных датчиков и исполнительных элементов!

Re: ESP8266

Добавлено: Пт мар 02, 2018 12:00 pm
woow
Как толкова прошивать ESP.
1. метод. С Arduino IDE, одни проблемы, то ошибки в библиотеках, то в самом скетче показывает хотя там действительности их нет,
2. метод. Atom+ тоже не совсем получается, входит в цикл и не останавливается,
3. метод. проще всего прошивать конечно *.bin файлы, но там не чего изначально не изменишь, что касается, настроек сети и тут танцы с бубном, поймаешь или не поймаешь: прошиваешь, жмёшь резет и смотришь WiFi на телефоне появится или нет, если появилась новая AP ура начинаешь вводить свои настройки и тут бац и её нету пропала и с концами, пере запускай, переключай питание один гвоздь результат не какой.
Помогает пере прошивка и опять всё с начала...
Что делаю не так по 3. методу, как поймать ток IP 192.168.4.1 который почему-то в каждую прошивку засовывает или мой телефон кривой или руки.

Re: ESP8266

Добавлено: Пт мар 02, 2018 12:12 pm
Jilber
woow писал(а):Что делаю не так по 3. методу, как поймать ток IP 192.168.4.1 который почему-то в каждую прошивку засовывает или мой телефон кривой или руки.
Если один раз уже изменили 192.168.4.1 на IP своей сети, то пробуйте подключаться к ESP уже по новому IP. После повторной перепрошивки ваш новый изменённый IP обычно сохраняется (т.е. часть прошивки с данными Wi-Fi не затирается).