domofon
|
say("Ктото звонит в домофон",2);
|
domofon1
|
say("Дижение около колитки",2);
|
eveningGreeting
|
Вечернее приветствие -- отрабатывает когда датчик засёк вечером первое движение после долгого отсутствия
// возвращаемся вечером домой
sleep (10);
say("Добро пожаловать домой!",2);
$t=round(gg('ЗАЛ_Зал.Temperature'),0);
sleep(4);
say ('Cейчас в гостиной ' .$t. ' градусов цельсия',2);
$t=round(gg('NarodMod_ru.temperature'),0);
sleep(4);
say ('Также я знаю, что температура снаружи равна '.$t.' градусов',2);
//setTimeOut('canhelp','runScript("TabletAsk");',10);
/*
// включаем блок зарядок на 1 час
callMethod("netping_pwr2.turnon");
clearTimeOut("charging_outlet2");
setTimeOut("charging_outlet2",'callMethod("netping_pwr2.turnoff");',1*60*60);
// если уже темно
if (getGlobal('DarknessMode.active')) {
callMethod("lcw0.turnOn"); // включаем свет в прихожей
callMethod("lcw1.turnOn"); // включаем свет над барной стойкой
//callMethod("lcw3.turnOn"); // включаем подсветку потолка в зале
//callMethod("lcw4.turnOn"); // включаем свет в коридоре
callMethod("lcw8.turnOn"); // включаем свет над столом
callMethod("RCOutlet1.turnOn"); // включаем гирлянду в коридоре
callMethod("noo8.turnOn"); // включаем подсветку мебели
callMethod('Orvibo1.turnOn'); //включаем гирлянду
//callMethod("MiLamp2.setColor",array('color'=>'#00ff00')); // свет в цветном светильнике
}
*/
|
morningGreeting
|
утреннее приветствие
sleep(10);
say("Ну наконец-то кто-то проснулся! Доброе утро!",2);
//sleep(5);
runScript("sayTime"); // говорим время
//runScript("reportStatus", array()); // статус системы
$t=round(gg('ЗАЛ_Зал.Temperature'),0);
say ('Cейчас в гостиной ' .$t. ' градусов цельсия',2);
sleep(2);
runScript("say_forecast");
//=============================================
// ============================================
// ============================================
clearTimeOut('AlarmTimer');
if (gg('ThisComputer.AlarmWaiting')) {
setGlobal('ThisComputer.AlarmWaiting',0);
}
if (gg('GuestsMode.active')) return;
//runScript('morningRoutine');
//runScript("sayTodayAgenda");
//runScript("playFavoriteMusic");
|
Off_zal
|
say("Выключаю всё освещение.",2);
$check=array('ЗАЛ_люстра1',
'ЗАЛ_прож_диван',
'ЗАЛ_прож_телевизор',
'ЗАЛ_прож_камин',
'КУХ_свет_фартук',
'КУХ__LED_упр',
'КУХ_свет_разделочный стол',
);
foreach($check as $obj) {
if (gg($obj.'.status')) {
callMethod($obj.'.turnOff');
usleep(1000);
}
}
setGlobal('Все_зал.status', '0');
|
reportStatus
|
Статус системы
$res='';
if (gg('Security.stateColor')=='green' && gg('System.stateColor')=='green' && gg('Communication.stateColor')=='green') {
$res='Все системы работают в штатном режиме';
} else {
if (gg('Security.stateColor')!='green') {
$res.=" Проблема безопасности: ".getGlobal('Security.stateDetails');
}
if (gg('System.stateColor')!='green') {
$res.=" Системная проблема: ".getGlobal('System.stateDetails');
}
if (gg('Communication.stateColor')!='green') {
$res.=" Проблема связи: ".getGlobal('Communication.stateDetails');
}
}
say($res,2);
|
rssyandex
|
Say('Новости яндекс:'.$params['TITLE']);
|
sayTime
|
просто говорит время:)
say('Сейчас '.timeNow(),2);
|
say_forecast
|
Говорим погоду
//на всякий случай обновим погоду
//include_once(DIR_MODULES . 'app_openweather/app_openweather.class.php');
//$openweather = new app_openweather();
//$openweather->get_weather(gg('ow_city.id'));
//////////
$status .= "Сейчас на улице по данным метеослужбы " . gg("ow_fact.weather_type") . ", ";
$w = round(gg("ow_fact.temperature"));
$status .= 'температура '.chti($w, 'градус', 'градуса', 'градусов') . " цельсия, ";
/*
//Температура "По ощущениям"
//$realFellTemp = round(gg("ow_fact.realFell"));
//$realFellTemp = round(gg("ow_fact.temperature"));
if (gg('all_in_one.zaoknom_actual')=='1' && (gg('all_in_one.zaoknom2_actual')=="1"))
{$realFellTemp = round(min(gg("all_in_one.zaoknomtemp"),gg("all_in_one.zaoknom2temp")));}
else if
(gg('all_in_one.zaoknom_actual')=='1' && (gg('all_in_one.zaoknom2_actual')=="0"))
{$realFellTemp = round(gg("all_in_one.zaoknomtemp"));}
else if
(gg('all_in_one.zaoknom_actual')=='0' && (gg('all_in_one.zaoknom2_actual')=="1"))
{$realFellTemp = round(gg("all_in_one.zaoknom2temp"));}
else if
(gg('all_in_one.zaoknom_actual')=='0' && (gg('all_in_one.zaoknom2_actual')=="0"))
{$realFellTemp = round(gg("ow_fact.realFell"));}
else {$realFellTemp = round(gg("ow_fact.realFell")); }
*/
$realFellTemp = round(gg("NarodMod_ru.temperature"));
if ($w != $realFellTemp) {
$status .= "а по другим сведениям " . chti($realFellTemp, 'градус', 'градуса', 'градусов') . " цельсия, ";
}
//$w = gg("ow_fact.realFell");
$w = gg("ow_fact.temperature");
if ($w < -40) {
$status .= 'мы морозов не боимся! ';
} elseif ($w < -30) {
$status .= 'одевайтесь теплее, очень холодно, ';
} elseif ($w < -20) {
$status .= 'самое время есть мороженое, ';
} elseif ($w < -10) {
$status .= 'холодновато, ';
} elseif ($w <- 3) {
$status .= 'не особо холодно, ';
} elseif ($w < 3) {
$status .= 'значит, возможно, гололёд, ';
} elseif ($w < 10) {
$status .= 'прохладно, ';
} elseif ($w < 22) {
$status .= 'тепло, ';
} elseif ($w < 30) {
$status .= 'жарко, ';
} elseif ($w > 30) {
$status .= 'ташкент, ';
}
// Сравнение со вчерашним днем
$tNew = round((float) getGlobal('ow_fact.temperature'));
$tOld = round((float) getGlobal('ow_fact.tempYesterday'));
$tDelta = abs($tNew - $tOld);
if ($tNew > $tOld) {
$status .= "теплее, чем вчера на " . chti($tDelta, 'градус', 'градуса', 'градусов') . ". ";
} elseif ($tNew < $tOld) {
$status .= "холоднее, чем вчера на " . chti($tDelta, 'градус', 'градуса', 'градусов') . ". ";
} elseif ($tNew == $tOld) {
$status .= "так же как и вчера. ";
}
$h = round(gg("ow_fact.humidity"));
$status .= "Относительная влажность " . chti($h, 'процент', 'процента', 'процентов') . ". ";
$pressure = (float) gg("ow_fact.pressure_mmhg");
if ($pressure < 738) {
$status .= 'Атмосферное давление пониженное. ';
} elseif ($pressure > 768) {
$status .='Атмосферное давление повышенное. ';
} else {
$status .= 'Атмосферное давление в пределах нормы. ';
}
// $status .= " (" . chti(round($pressure), 'миллиметр', 'миллиметра', 'миллиметров') . " ртутного столба). ";
// ветер
$WindSpeed = (float) gg("ow_fact.wind_speed");
if ($WindSpeed < 1) {
$status .= "Ветра нет";
} elseif ($WindSpeed < 2) {
$status .= "Легкий ветер, ";
} elseif ($WindSpeed < 5) {
$status .= "Слабый ветер";
} elseif ($WindSpeed < 8) {
$status .= "Умеренный ветер";
} elseif ($WindSpeed < 10) {
$status .= "Свежий ветер";
} elseif ($WindSpeed < 14) {
$status .= "Сильный ветер";
} elseif ($WindSpeed < 17) {
$status .= "Очень сильный ветер";
} elseif ($WindSpeed < 21) {
$status .= "Ветер очень-очень сильный";
} elseif ($WindSpeed < 28) {
$status .= "Шторм";
} else {
$status .= "Ураган";
}
if ($WindSpeed >= 1) {
$status .= " (" . chti(round($WindSpeed), 'метр', 'метра', 'метров') . " в секунду), ";
$windDirections = array('севера', 'северо-востока', 'востока', 'юго-востока', 'юга', 'юго-запада', 'запада', 'северо-запада', 'севера');
$degree = gg('ow_fact.wind_direction');
$WindDir = $windDirections[round($degree / 45)];
$status .= " дующий с " . $WindDir;
}
$status .= ". ";
// Прогноз погоды на сегодня
/*
if (timeBetween("01:00", "10:00")) {
$status .= "Сегодня утром ожидается ";
$w = round(gg("ow_day0.temp_morn"));
} elseif (timeBetween("10:00", "14:00")) {
$status .= "Сегодня днем ожидается ";
$w = round(gg("ow_day0.temp_day"));
} elseif (timeBetween("14:00", "20:00")) {
$status .= "Сегодня вечером ожидается ";
$w = round(gg("ow_day0.eve"));
} else {
$status .= "Сегодня ночью ожидается ";
$w = round(gg("ow_day0.temp_night"));
}
$status .= chti($w, 'градус', 'градуса', 'градусов') . " цельсия, " . gg("ow_day0.weather_type") . ". ";
// Погода на завтра
$w = round(gg("ow_day1.temperature"));
$status .= 'Завтра ожидается ' . chti($w, 'градус', 'градуса', 'градусов') . " цельсия, ";
$status .= gg("ow_day1.weather_type") . ".";
sg('forecast', $status);
*/
say($status, 2);
|
say_forecast_copy
|
ДЛИННО ГОВОРИМ ПОГОДУ
//на всякий случай обновим погоду
//include_once(DIR_MODULES . 'app_openweather/app_openweather.class.php');
//$openweather = new app_openweather();
//$openweather->get_weather(gg('ow_city.id'));
//////////
$status .= "Сейчас на улице по данным метеослужбы " . gg("ow_fact.weather_type") . ", ";
$w = round(gg("ow_fact.temperature"));
$status .= 'температура '.chti($w, 'градус', 'градуса', 'градусов') . " цельсия, ";
/*
//Температура "По ощущениям"
//$realFellTemp = round(gg("ow_fact.realFell"));
//$realFellTemp = round(gg("ow_fact.temperature"));
if (gg('all_in_one.zaoknom_actual')=='1' && (gg('all_in_one.zaoknom2_actual')=="1"))
{$realFellTemp = round(min(gg("all_in_one.zaoknomtemp"),gg("all_in_one.zaoknom2temp")));}
else if
(gg('all_in_one.zaoknom_actual')=='1' && (gg('all_in_one.zaoknom2_actual')=="0"))
{$realFellTemp = round(gg("all_in_one.zaoknomtemp"));}
else if
(gg('all_in_one.zaoknom_actual')=='0' && (gg('all_in_one.zaoknom2_actual')=="1"))
{$realFellTemp = round(gg("all_in_one.zaoknom2temp"));}
else if
(gg('all_in_one.zaoknom_actual')=='0' && (gg('all_in_one.zaoknom2_actual')=="0"))
{$realFellTemp = round(gg("ow_fact.realFell"));}
else {$realFellTemp = round(gg("ow_fact.realFell")); }
*/
$realFellTemp = round(gg("NarodMod_ru.temperature"));
if ($w != $realFellTemp) {
$status .= "а по другим сведениям " . chti($realFellTemp, 'градус', 'градуса', 'градусов') . " цельсия, ";
}
//$w = gg("ow_fact.realFell");
$w = gg("ow_fact.temperature");
if ($w < -40) {
$status .= 'мы морозов не боимся! ';
} elseif ($w < -30) {
$status .= 'одевайтесь теплее, очень холодно, ';
} elseif ($w < -20) {
$status .= 'самое время есть мороженое, ';
} elseif ($w < -10) {
$status .= 'холодновато, ';
} elseif ($w <- 3) {
$status .= 'не особо холодно, ';
} elseif ($w < 3) {
$status .= 'значит, возможно, гололёд, ';
} elseif ($w < 10) {
$status .= 'прохладно, ';
} elseif ($w < 22) {
$status .= 'тепло, ';
} elseif ($w < 30) {
$status .= 'жарко, ';
} elseif ($w > 30) {
$status .= 'ташкент, ';
}
// Сравнение со вчерашним днем
$tNew = round((float) getGlobal('ow_fact.temperature'));
$tOld = round((float) getGlobal('ow_fact.tempYesterday'));
$tDelta = abs($tNew - $tOld);
if ($tNew > $tOld) {
$status .= "теплее, чем вчера на " . chti($tDelta, 'градус', 'градуса', 'градусов') . ". ";
} elseif ($tNew < $tOld) {
$status .= "холоднее, чем вчера на " . chti($tDelta, 'градус', 'градуса', 'градусов') . ". ";
} elseif ($tNew == $tOld) {
$status .= "так же как и вчера. ";
}
$h = round(gg("ow_fact.humidity"));
$status .= "Относительная влажность " . chti($h, 'процент', 'процента', 'процентов') . ". ";
$pressure = (float) gg("ow_fact.pressure_mmhg");
if ($pressure < 738) {
$status .= 'Атмосферное давление пониженное';
} elseif ($pressure > 768) {
$status .='Атмосферное давление повышенное';
} else {
$status .= 'Атмосферное давление в пределах нормы';
}
$status .= " (" . chti(round($pressure), 'миллиметр', 'миллиметра', 'миллиметров') . " ртутного столба). ";
// ветер
$WindSpeed = (float) gg("ow_fact.wind_speed");
if ($WindSpeed < 1) {
$status .= "Ветра нет";
} elseif ($WindSpeed < 2) {
$status .= "Легкий ветер, ";
} elseif ($WindSpeed < 5) {
$status .= "Слабый ветер";
} elseif ($WindSpeed < 8) {
$status .= "Умеренный ветер";
} elseif ($WindSpeed < 10) {
$status .= "Свежий ветер";
} elseif ($WindSpeed < 14) {
$status .= "Сильный ветер";
} elseif ($WindSpeed < 17) {
$status .= "Очень сильный ветер";
} elseif ($WindSpeed < 21) {
$status .= "Ветер очень-очень сильный";
} elseif ($WindSpeed < 28) {
$status .= "Шторм";
} else {
$status .= "Ураган";
}
if ($WindSpeed >= 1) {
$status .= " (" . chti(round($WindSpeed), 'метр', 'метра', 'метров') . " в секунду), ";
$windDirections = array('севера', 'северо-востока', 'востока', 'юго-востока', 'юга', 'юго-запада', 'запада', 'северо-запада', 'севера');
$degree = gg('ow_fact.wind_direction');
$WindDir = $windDirections[round($degree / 45)];
$status .= " дующий с " . $WindDir;
}
$status .= ". ";
// Прогноз погоды на сегодня
if (timeBetween("01:00", "10:00")) {
$status .= "Сегодня утром ожидается ";
$w = round(gg("ow_day0.temp_morn"));
} elseif (timeBetween("10:00", "14:00")) {
$status .= "Сегодня днем ожидается ";
$w = round(gg("ow_day0.temp_day"));
} elseif (timeBetween("14:00", "20:00")) {
$status .= "Сегодня вечером ожидается ";
$w = round(gg("ow_day0.eve"));
} else {
$status .= "Сегодня ночью ожидается ";
$w = round(gg("ow_day0.temp_night"));
}
$status .= chti($w, 'градус', 'градуса', 'градусов') . " цельсия, " . gg("ow_day0.weather_type") . ". ";
// Погода на завтра
$w = round(gg("ow_day1.temperature"));
$status .= 'Завтра ожидается ' . chti($w, 'градус', 'градуса', 'градусов') . " цельсия, ";
$status .= gg("ow_day1.weather_type") . ".";
sg('forecast', $status);
say($status, 2);
|
say_forecast_short
|
Говорим погоду
$return_full="";
$status="";
$status.="Сейчас ".gg("ow_fact.weather_type").".";
$return_full.=$status." ";
$status="";
$w=round(gg("ow_fact.temperature"));
$tempw=$w;
if($tempw >= 11 and $tempw <= 14) {
$tempcels="градусов";
} else {
while ($tempw > 9) {
$tempw=$tempw-10;
}
if($tempw == 0 or $tempw >= 5 and $tempw <= 9) { $tempcels= градусов ; }
if($tempw == 1) { $tempcels= градус ; }
if($tempw >= 2 and $tempw <= 4) { $tempcels= градуса ; }
}
$tNew = abs((float)gg('ow_fact.temperature'));
$status.='По данным метеослужб температура воздуха '.gg('ow_fact.temperature')." ".$tempcels." цельсия." ;
$return_full.=$status." ";
$tempw="";
$tempcels="";
$status="";
$h=round(gg("ow_fact.humidity"));
$tempw=$h;
if($tempw >= 11 and $tempw <= 14){
$tempcels="процентов";
} else {
while ($tempw > 9){
$tempw=$tempw-10;
}
if($tempw == 0 or $tempw >= 5 and $tempw <= 9) { $tempcels= процентов ; }
if($tempw == 1) { $tempcels= процент ; }
if($tempw >= 2 and $tempw <= 4) { $tempcels= процента ; }
}
$status.="Относительная влажность ".gg("ow_fact.humidity")." ".$tempcels. ".";
$return_full.=$status." ";
$tempw="";
$tempcels="";
$status="";
$pressure=round(gg("ow_fact.pressure_mmhg"));
if ($pressure<728) {
$status.='Атмосферное давление пониженное';
} elseif ($pressure>768) {
$status.='Атмосферное давление повышенное.';
} else {
$status.='Атмосферное давление нормальное.';
}
$return_full.=$status." ";
$status="";
//ветер
$WindSpeed=(float)gg("ow_fact.wind_speed");
if ($WindSpeed<1) {
$status.='Ветра нет.';
} elseif ($WindSpeed<4) {
$status.='Ветер слабый.';
} elseif ($WindSpeed<6) {
$status.='Ветер сильный.';
} elseif ($WindSpeed<9) {
$status.='Ветер очень сильный.';
} else {
$status.='Ветер очень! Очень сильный.';
}
$return_full.=$status." ".round(gg("ow_fact.wind_speed"))." метра в секунду. ";
//$status='Сейчас на улице '.gg('TempOutside').' градусов.';
//$return_full.=$status;
sg("ThisComputer.weatherFact", $return_full);
$status=gg("ThisComputer.weatherFact") ;
say($status, 2);
|
send_mes
|
/*
* Сценарий 'send_mes' для MajorDoMo
* автор: Владимир Попов, на форуме - Vovix
* дата последнего изменения: 30.09.2015
* runScript('send_mes', array('to'=>$хххх,'subj'=>$yyyy,'msg'=>$zzzz,'what'=>$qqqq))
*/
// кому отправить, просто имя или адрес e-mail включающий знак "@" (при пустом = "admin")
$user_to=($params['to']=='') ? "admin" : $params['to'];
// тема сообщения (при пустом = "Alice! Smart Home system")
$subject=($params['subj']=='') ? "Alice! Smart Home system" : $params['subj'];
// текст сообщения (при пустом = "проверка связи")
$msg=($params['msg']=='') ? "проверка связи" : $params['msg'];
// что будем отправлять (через что): SMS, Email, iPhone
$what=($params['what']=='') ? "iPhone" : $params['what'];
// константы для e-mail отправок
$from = "admin@mdm.vovix";
$sms2email='';
// присваеваем первоначальные НЕИЗВЕСТНЫЕ значения, на всякий случай
$fullName='unknown';
$user='unknown';
$gender='unknown';
// вариант №1
// проверим встречается ли символ '@' в кому отправить, т.е. указан ли конкретный e-mail??
// если не встретилось или это первый символ, то будем определять среди своих пользователей
// $podstr1=strpos($user_to, '@');
// if (($podstr1===false)||($podstr1=='0')) {
// вариант №2
// проверим НЕ указан ли именно e-mail
if (!preg_match("/^[a-zA-Z0-9\-\._]+@[-a-zA-Z0-9\-]+\.[-a-zA-Z0-9\-\.]+$/i", $user_to)) {
// определяем массив значений альтернативных имен
$altNameArray=array();
// переберем всех пользователей
$objects=getObjectsByClass("Users");
foreach($objects as $obj) {
// проверим, может это главное имя и перебирать альтернативы тогда не надо?
if (gg($obj['TITLE'].".fullName")==$user_to) {
$fullName=gg($obj['TITLE'].'.fullName');
$sms2email=gg($obj['TITLE'].'.sms2email');
$user=$obj['TITLE'];
} else {
// присвоим
$altName=gg($obj['TITLE'].".altName");
// имена разделены запятой
$altNameArray = explode(",",$altName);
$len=count($altNameArray);
// в цикле проверяем вхождение альтернативных имён
for($j=0;$j<$len;$j++) {
$podstr2=strpos($user_to, $altNameArray[$j]);
if ($podstr2===false) {
// тут нет таких
} else {
// вот нашли
$fullName=gg($obj['TITLE'].'.fullName');
$sms2email=gg($obj['TITLE'].'.sms2email');
$user=$obj['TITLE'];
}
}
}
}
}
// проверим ЧТО будем отправлять
switch ($what):
// SMS
case 'SMS':
case 'sms':
case 'СМС':
case 'смс':
if ($user<>'unknown') {
say ("Отправляю SMS сообщение. Кому: ".$user_to.". Текст сообщения: ".$msg.". Получатель мне известен как: ".$fullName,1);
$message = iconv("UTF-8", "WINDOWS-1251", $msg);
$subject = iconv("UTF-8", "WINDOWS-1251", $subject);
SendMail($from, $sms2email, $subject, $message);
} else if (!($podstr1===false)||!($podstr1=='0')) {
say ("Я попытаюсь отправить SMS сообщение посредством e-mail. Кому: ".$user_to.". Текст сообщения: ".$msg.". Но с получателем я видимо не знакома и не уверена в представленном вами e-mail адресе.",1);
$message = iconv("UTF-8", "WINDOWS-1251", $msg);
$subject = iconv("UTF-8", "WINDOWS-1251", $subject);
SendMail($from, $user_to, $subject, $message);
} else {
say ("Увы, отправить СМС не получиться, такого адреса: ".$user_to." я ,видимо, не знаю.",1);
}
break;
// Email
case 'Email':
case 'E-mail':
case 'еmail':
case 'e-mail':
case 'письмо':
if (($user<>'unknown')&&(gg($user.'.Email')<>'')) {
say ("Отправляю e-mail. Кому: ".$user_to.". Текст письма: ".$msg.". Получатель мне известен как: ".$fullName,1);
$message = iconv("UTF-8", "WINDOWS-1251", $msg);
$subject = iconv("UTF-8", "WINDOWS-1251", $subject);
SendMail($from, gg($user.'.Email'), $subject, $message);
} else if (($user<>'unknown')&&(gg($user.'.Email')=='')) {
$fullName=gg($user.'.fullName');
$gender=gg($user.'.gender');
$ending1=($gender<>'ж') ? 'ен' : 'на';
$pronoun1=($gender<>'ж') ? 'его' : 'её';
say ("Пользователь ".$fullName." мне извест".$ending1.", но у меня нет данных о ".$pronoun1." электронном адресе.",1);
} else {
say ("Я попытаюсь отправляю e-mail на адрес: ".$user_to.". Текст письма: ".$msg.". Но с получателем я видимо не знакома и не уверена в представленом вами e-mail адресе.",1);
$message = iconv("UTF-8", "WINDOWS-1251", $msg);
$subject = iconv("UTF-8", "WINDOWS-1251", $subject);
SendMail($from, $user_to, $subject, $message);
}
break;
// iPhone
case 'iPhone':
case 'Iphone':
case 'IPhone':
case 'iphone':
case 'телефон':
if (($user<>'unknown')&&(gg($user.'.AppleID')<>'')) {
$fullName=gg($user.'.fullName');
$AppleID=gg($user.'.AppleID');
$ApplePass=dsCrypt(gg($user.'.ApplePass'),true);
$gender=gg($user.'.gender');
$AppleDevNum=(gg($user.'.AppleDevNum')=='') ? 0 : gg($user.'.AppleDevNum');
// особенность наше сообщение передадим как тему, так лучше на экране выглядит
$subject=$msg;
soundToMyiPhone($AppleID, $ApplePass, $subject, $AppleDevNum);
say ("На iPhone, пользователя: ".$fullName.", отправлен сигнал и текст на экран.",1);
} else if (($user<>'unknown')&&(gg($user.'.AppleID')=='')) {
$fullName=gg($user.'.fullName');
$gender=gg($user.'.gender');
$ending1=($gender<>'ж') ? 'ен' : 'на';
$pronoun1=($gender<>'ж') ? 'его' : 'её';
say ("Пользователь ".$fullName." мне извест".$ending1.", но у меня нет данных о ".$pronoun1." Ай Фон Ай Ди.",1);
} else {
say ("Не понятно на чей Ай Фон нужно отправить сигнал. Видимо я ".$user_to." пока не знаю!",1);
}
break;
// не понятно что
default:
say ("Тут какая-то ошибка с каналом отправки сообщения. ".$what." - такой вариант отправки мне не известен.",1);
endswitch;
|
Бойлер
|
Управление Бойлером
// КОТЕЛЬНАЯ НАЧАЛО
//if ((timeIs('07:40')) || (timeIs('13:00')) || (timeIs('18:00'))){
if ((timeIs('07:40')) || (timeIs('22:30'))){
// cm('КОТ_Бойлер.turnOn');
cm('КОТ_Бойлер_насос.turnOn');
say("Включила бойлер.");
//} elseif ((timeIs('09:00')) || (timeIs('14:00')) ||(timeIs('23:59'))){
} elseif ((timeIs('09:00')) || (timeIs('23:59'))) {
// cm('КОТ_Бойлер.turnOff');
cm('КОТ_Бойлер_насос.turnOff');
say("Выключила бойлер.");
}
|
где я
|
|
Ночной_режим
|
Включение подсветки в прихожей
/* Ночь отключаю автоматический режим
if (timeIs('00:00')){
setGlobal('ManualMode.status', '0');
say("Отключаю автоматичеий режим");
} elseif (timeIs('06:00')) {
setGlobal('ManualMode.status', '1');
say("Включаю автоматический режим");
}
*/
// включение света для цветка "Всетаки темно"
if ((gg('DarknessMode.active')==1) && (gg('ManualMode.status')==1) && (gg('ЗАЛ_розетка1.status')==0))
{
// свет для растения
setGlobal('ЗАЛ_розетка1.status', '1');
callMethod('ЗАЛ_розетка1.turnOn') ;
say("Включаю освет для цветка");
}
elseif ((gg('DarknessMode.active')==0) && (gg('ManualMode.status')==1) && (gg('ЗАЛ_розетка1.status')==1))
{
//выключаем включеннное освещение
setGlobal('ЗАЛ_розетка1.status', '0');
callMethod('ЗАЛ_розетка1.turnOff');
say("Выключаю освет для цветка");
}
|
Отпуск
|
включать/выключать свет в 21-00 до 23-00
// Отпуск НАЧАЛО
/*
if ((timeIs('21:00')) ){
cm('ЗАЛ_люстра1.turnOn');
} elseif ((timeIs('22:02')) ) {
cm('ЗАЛ_люстра1.turnOff');
}
*/
if ((timeIs('22:00'))){
cm('ЗАЛ_прож_телевизор.turnOn');
} elseif ((timeIs('23:08'))) {
cm('ЗАЛ_прож_телевизор.turnOff');
}
|