Подскажите как написать скрипт

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

davinci
Сообщения: 5
Зарегистрирован: Пн дек 10, 2012 10:54 pm
Благодарил (а): 0
Поблагодарили: 0

Подскажите как написать скрипт

Сообщение davinci » Пн дек 10, 2012 11:56 pm

Чтобы каждый час проговаривал температуру от 1-wire устройства. Спасибо!
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Подскажите как написать скрипт

Сообщение sergejey » Вт дек 11, 2012 10:40 am

davinci писал(а):Чтобы каждый час проговаривал температуру от 1-wire устройства. Спасибо!
Во-первых, надо что б в модуле 1-wire было видно это устройство и работало обновление температуры. Затем нужно связать параметр температуры с каким-нибудь свойством объекта. Например, ThisComputer.tempWire1

Потом в разделе Объекты найти метод OnNewHour и там в код добавить
say("Температура ".gg('ThisComputer.tempWire1')." градусов");

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
davinci
Сообщения: 5
Зарегистрирован: Пн дек 10, 2012 10:54 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Подскажите как написать скрипт

Сообщение davinci » Вт дек 11, 2012 7:10 pm

Спасибо за ответ, вот что получается:

Так сделал в настройках датчика:

Изображение

и вот что получилось (при нажатии тест выдает ошибку и говорит - "температура в комнате градусов", не беря значение из датчика):

Изображение

Извиняюсь за глупые вопросы, учусь только php, не работал раньше...
davinci
Сообщения: 5
Зарегистрирован: Пн дек 10, 2012 10:54 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Подскажите как написать скрипт

Сообщение davinci » Вт дек 11, 2012 9:29 pm

В общем фразу проговаривает, вот только значения температуры как будто закэшились, а во вкладке 1-Wire все нормально обновляется..
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Подскажите как написать скрипт

Сообщение sergejey » Ср дек 12, 2012 10:23 am

davinci писал(а):В общем фразу проговаривает, вот только значения температуры как будто закэшились, а во вкладке 1-Wire все нормально обновляется..
По идее, если в 1wire температура обновляется, то и в связанной переменной так же должна обновляться. На всякий случай, можно посмотреть через модуль XRay значения свойств -- будет очень странно, если оно отличается от того, что в 1wire, но лучше перепроверить, что б найти где возникает ошибка.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
davinci
Сообщения: 5
Зарегистрирован: Пн дек 10, 2012 10:54 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Подскажите как написать скрипт

Сообщение davinci » Ср дек 12, 2012 11:56 am

В модуле X-Ray не обновляется, в устройствах One-Wire обновляется. Где рыть? Или попробовать переустановить все?

И вот еще - когда нажимаю тест в методе она проговаривает, но выскакивает такое окно:

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

Request: &object=ClockChime&op=m&m=onNewHour
Warning: Cannot modify header information - headers already sent by (output started at C:\_majordomo\htdocs\objects\index.php:86) in C:\_majordomo\htdocs\objects\index.php on line 96
Это нормально?
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Подскажите как написать скрипт

Сообщение sergejey » Ср дек 12, 2012 1:53 pm

да, этот warning нормально. т.е. не очень красиво, но не критично ))
переустанавливать не спеши ) проверь на всякий случай ещё раз привязку 1wire к переменной -- может где пробел затесался или название не совпадает. там сделано так, что если 1wire обновляется, то связанная переменная должна так же сегда обновляться.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
davinci
Сообщения: 5
Зарегистрирован: Пн дек 10, 2012 10:54 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Подскажите как написать скрипт

Сообщение davinci » Ср дек 12, 2012 4:04 pm

В общем все снес, почистил реестр, поставил заново, обновил через меню "Резервная копия" и все заработало ))) И, кстати, ошибки этой больше нет - при нажатии тест отрабатывает скрипт без ошибок!
NioFBI
Сообщения: 13
Зарегистрирован: Вт фев 12, 2013 12:53 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Подскажите как написать скрипт

Сообщение NioFBI » Пт фев 15, 2013 12:15 am

Подскажите пожалуйста:
Как забрать последнюю новость из RSS для будильника?
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Подскажите как написать скрипт

Сообщение sergejey » Пт фев 15, 2013 10:38 am

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

$data=SQLSelectOne("SELECT * FROM rss_items ORDER BY ADDED DESC LIMIT 1");
//вариант с фильтром по каналу: $data=SQLSelectOne("SELECT * FROM rss_items WHERE CHANNEL_ID=5 ORDER BY ADDED DESC LIMIT 1"); //вместо 5 нужный ID канала
$news_text=$data['BODY']; // текст новости
$news_header=$data['TITLE']; // заголовок
say($news_text); //проговариваем последнюю новость
ну или чуть по-сложнее пример с новостями, добавленными сегодня

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

$data=SQLSelect("SELECT * FROM rss_items WHERE TO_DAYS(ADDED)=TO_DAYS(NOW()) ORDER BY ADDED"); //выбираем все новости с сегодняшней датой и сортируем по времени добавления
$result='';
if ($data[0]['ID']) {
 $total=count($data);
 for ($i=0;$i<$total;$i++) {
  $result.=$data[$i]['TITLE']; // добавляем все заголовки новостей в одну фразу
 }
 say($result);
}

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Ответить