Методичка Majordomo
Сценарии Включить/Выключить/Переключить весь свет/розетки $objects=getObjectsByClass("MegaD"); $objects=array('pOUTs7','pOUTs8','pOUTs9','pOUTs10','pOUTs11','pOUTs12','pOUTs13'); foreach($objects as $obj) { callMethod($obj.'.switch');} Ребут малинки $filename = ROOT . '/database_backup/db.sql'; $mysqlDumpPath = "/usr/bin/mysqldump"; $mysqlDumpParam = " --user=" . DB_USER . " --password=" . DB_PASSWORD; $mysqlDumpParam .= " --no-create-db --add-drop-table --databases " . DB_NAME; if (file_exists($filename)) rename($filename, $filename . '.prev'); exec($mysqlDumpPath . $mysqlDumpParam . " > " . $filename); exec('cp -rf /tmp/mysql/* /var/lib/mysql'); say(LANG_GENERAL_STARTING_REBOOT,2); setTimeout("shutdownTimer","safe_exec('shutdown -r now');",15); ShutDown малинки $filename = ROOT . '/database_backup/db.sql'; $mysqlDumpPath = "/usr/bin/mysqldump"; $mysqlDumpParam = " --user=" . DB_USER . " --password=" . DB_PASSWORD; $mysqlDumpParam .= " --no-create-db --add-drop-table --databases " . DB_NAME; if (file_exists($filename)) rename($filename, $filename . '.prev'); exec($mysqlDumpPath . $mysqlDumpParam . " > " . $filename); exec('cp -rf /tmp/mysql/* /var/lib/mysql'); say(LANG_GENERAL_STARTING_SHUTDOWN,2); setTimeout("shutdownTimer","safe_exec('shutdown -h now');",15); Cчитываем данные электроСчетчика VCC - к клемме питания +3.3В GND - земля (Ground) RO (Output) - P32 (RX) DI (Input) - P33 (TX) DE/RE (управление передачей, если есть) - к любому цифровому порту, например P35 A (прямая линия) - A (счетчика или другого устройства с интерфейсом RS485) B (инверсная линия) - B (счетчика или другого устройства с интерфейсом RS485)
http://192.168.0.14/sec/?uart_tx=0103000C0001&mode=rs485
Команду можно "расшифровать" следующим образом:
[01][03][000C][0001], где
[01] - адрес устройства SlaveID. По умолчанию 01.
[03] - функциональный код чтения AO (Analog Output)
[000C] - адрес регистра, который следует считать со счетчика. Указывается в документации к счетчику или другому устройству
[0001] - количество запрашиваемых регистров, в данном случае только один 0x0C
Ответ стоит интерпретировать так:
[01] - адрес устройства SlaveID
[03] - функциональный код
[02] - количество возвращаемых байт
[08a1] - в данном случае значение напряжения 0x08a1 или в десятичном представлении 2209 (220,9В)
Общее потребление электроэнергии (Регистры 0x00-0x01) Текущее напряжение, В (0x0C) Текущее значение тока, А (0x0D) Текущая активная мощность, Вт (0x0E) Текущая реактивная мощность, ВА (0x0F) CosF (0x10) Частота, Гц (0x11)
//php code $res = file_get_contents("http://192.168.0.14/sec/?uart_tx=0103000D0001&mode=rs485"); usleep(100000); $res = file_get_contents("http://192.168.0.14/sec/?uart_rx=1&mode=rs485"); $data = explode("|", $res); $amp = number_format(hexdec($data[3].$data[4]) / 100, 1); $this->setProperty("amp", $amp);