USB-TTL-Majodomo

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Ответить
Securbond
Сообщения: 19
Зарегистрирован: Вт ноя 03, 2015 10:06 pm
Благодарил (а): 6 раз
Поблагодарили: 0

USB-TTL-Majodomo

Сообщение Securbond » Чт ноя 12, 2015 11:16 pm

подскажите как использовать приходящие на COM порт данные в Mojardomo ???
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: USB-TTL-Majodomo

Сообщение Victor_S » Пн ноя 16, 2015 9:10 am

Увы похоже напрямую из МД никак...:( Не "дружит" система ни с fopen() ни с dio_open(). Приходится обрабатывать данные внешними скриптами по планировщику и записывать прямо в базу.
Если скрипт " обрамить такой конструкцией
include_once("./config.php");
include_once("./lib/loader.php");

$db=new mysql(DB_HOST, '', DB_USER, DB_PASSWORD, DB_NAME); // connecting to database
.....
$db->Disconnect(); // closing database connection

то внутри можно использовать функции setGlobal() и getGlobal();
Например:
# Мощность по фазам активная, Вт
# =====================================================
$command = explode(',', gg('M236v1.cPv'));
$c="";
for($i=0; $i < count($command); $i++){$c .= chr($command[$i]);}
$Pv = merc_gd($c, 0.01);
//echo "Pv: $Pv[0] - $Pv[1] - $Pv[2] - $Pv[3]\r\n"."<br>";
sg('M236v1.P',round($Pv[0],1));
sg('M236v1.P1',round($Pv[1],1));
sg('M236v1.P2',round($Pv[2],1));
sg('M236v1.P3',round($Pv[3],1));
Securbond
Сообщения: 19
Зарегистрирован: Вт ноя 03, 2015 10:06 pm
Благодарил (а): 6 раз
Поблагодарили: 0

Re: USB-TTL-Majodomo

Сообщение Securbond » Пт ноя 20, 2015 9:40 pm

Спасибо что ответили, объяснили непонятно но смысл уловил. Почему то считал что в Majodomo реализована функция мониторинга порта.
Лично мне это кажется логичным. тогда буду ждать Ethernet шилд и делать как все )).
PS "Сегодня продавец с Али прислал какую то фигню. Перепутал пакеты и вместо моей кучи датчиков и разнообразных шилдов, моторчиков и т.п я получил два копеечных реле :evil:
Вот кому то подарок придет..... вместо фигни, куча ништяков :shock: "
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1754 раза
Контактная информация:

Re: USB-TTL-Majodomo

Сообщение skysilver » Вт дек 15, 2015 1:14 pm

Все замечательно работает, по крайней мере на Линукс. Вот пример управления телевизором через COM-порт http://majordomo.smartliving.ru/forum/v ... f=8&t=2319. В основе лежит библиотека php_serial.class.php
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: USB-TTL-Majodomo

Сообщение Victor_S » Вт дек 15, 2015 4:08 pm

2skysilver:
Может поможете в этом вопросе: http://majordomo.smartliving.ru/forum/v ... 7&start=30
Суть в том, что добил php скрипт по взаимодействию с электросчетчиками Меркурий 326. Нормально получаю все данные, но есть 2 проблемы.
1. Скрипт нормально выполняется из командной строки или браузера и заносит все данные в базу мажордомо, но этот же скрипт отказывается запускаться из-под мажордомо. Хотел завести класс, объекты, методы прямо в МД, но, увы, приходится "через заднюю дверь"...
2. Никак не могу побороть проблему начальной инициализации порта. Т.е. чтобы мой скрипт мог подключаться к счетчикам, нужно один раз после перезагрузки компа запустить родную прогу от счетчиков и установить соединение с любым счетчиком. Затем прогу можно закрыть и запускать скрипт, все соединения -ОК.
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1754 раза
Контактная информация:

Re: USB-TTL-Majodomo

Сообщение skysilver » Вт дек 15, 2015 4:25 pm

Victor_S писал(а):2skysilver:
Может поможете в этом вопросе: http://majordomo.smartliving.ru/forum/v ... 7&start=30
Суть в том, что добил php скрипт по взаимодействию с электросчетчиками Меркурий 326. Нормально получаю все данные, но есть 2 проблемы.
1. Скрипт нормально выполняется из командной строки или браузера и заносит все данные в базу мажордомо, но этот же скрипт отказывается запускаться из-под мажордомо. Хотел завести класс, объекты, методы прямо в МД, но, увы, приходится "через заднюю дверь"...
2. Никак не могу побороть проблему начальной инициализации порта. Т.е. чтобы мой скрипт мог подключаться к счетчикам, нужно один раз после перезагрузки компа запустить родную прогу от счетчиков и установить соединение с любым счетчиком. Затем прогу можно закрыть и запускать скрипт, все соединения -ОК.
1. Ошибки-то есть какие-нибудь при этом? (в логах апача и мажордомо) Как вариант, заменить exec() на system() или safe_exec().
2. Тут надо узнавать эти самые параметры порта, которые ставит родная программа. Если они известны, то в линуксе инициализация порта делается примерно такой командой при загрузке ОС:

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

stty -F /dev/ttyUSB0 -icrnl -ixon ignbrk isig -echoctl -echoke -isig -icanon -iexten -echo -echoe -echok -opost -onlcr -hupcl
Как оно там в Винде, я без понятия. :)
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Geban
Сообщения: 136
Зарегистрирован: Вс июл 14, 2013 2:42 pm
Благодарил (а): 6 раз
Поблагодарили: 27 раз

Re: USB-TTL-Majodomo

Сообщение Geban » Вт дек 15, 2015 4:30 pm

Под линуксом отлично работает. Единственно что надо сделать это настроить порт как сказано выше и есть необходимо(нужно в 90% случаев) дать права на порт юзеру под которым запускается МДМ
Victor_S
Сообщения: 265
Зарегистрирован: Пт дек 26, 2014 1:58 pm
Благодарил (а): 33 раза
Поблагодарили: 24 раза

Re: USB-TTL-Majodomo

Сообщение Victor_S » Ср дек 16, 2015 8:21 am

1. Ошибки в мажордомо, приведены в топике по ссылке.
2. Параметры порта разумеется выставляю те же что и в родной проге. Что там она еще по умолчанию настраивает - ХЗ...
Ответить