Страница 1 из 1

USB-TTL-Majodomo

Добавлено: Чт ноя 12, 2015 11:16 pm
Securbond
подскажите как использовать приходящие на COM порт данные в Mojardomo ???

Re: USB-TTL-Majodomo

Добавлено: Пн ноя 16, 2015 9:10 am
Victor_S
Увы похоже напрямую из МД никак...:( Не "дружит" система ни с 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));

Re: USB-TTL-Majodomo

Добавлено: Пт ноя 20, 2015 9:40 pm
Securbond
Спасибо что ответили, объяснили непонятно но смысл уловил. Почему то считал что в Majodomo реализована функция мониторинга порта.
Лично мне это кажется логичным. тогда буду ждать Ethernet шилд и делать как все )).
PS "Сегодня продавец с Али прислал какую то фигню. Перепутал пакеты и вместо моей кучи датчиков и разнообразных шилдов, моторчиков и т.п я получил два копеечных реле :evil:
Вот кому то подарок придет..... вместо фигни, куча ништяков :shock: "

Re: USB-TTL-Majodomo

Добавлено: Вт дек 15, 2015 1:14 pm
skysilver
Все замечательно работает, по крайней мере на Линукс. Вот пример управления телевизором через COM-порт http://majordomo.smartliving.ru/forum/v ... f=8&t=2319. В основе лежит библиотека php_serial.class.php

Re: USB-TTL-Majodomo

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

Re: USB-TTL-Majodomo

Добавлено: Вт дек 15, 2015 4:25 pm
skysilver
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
Как оно там в Винде, я без понятия. :)

Re: USB-TTL-Majodomo

Добавлено: Вт дек 15, 2015 4:30 pm
Geban
Под линуксом отлично работает. Единственно что надо сделать это настроить порт как сказано выше и есть необходимо(нужно в 90% случаев) дать права на порт юзеру под которым запускается МДМ

Re: USB-TTL-Majodomo

Добавлено: Ср дек 16, 2015 8:21 am
Victor_S
1. Ошибки в мажордомо, приведены в топике по ссылке.
2. Параметры порта разумеется выставляю те же что и в родной проге. Что там она еще по умолчанию настраивает - ХЗ...