bachok
|
GetUrl('http://192.168.1.9/pwm?ch=0&set=0');
SetTimeOut("OnBachok","GetUrl('http://192.168.1.9/pwm?ch=0&set=40');", 2);
SetTimeOut("OffBachok","GetUrl('http://192.168.1.9/pwm?ch=0&set=0');", 6);
sg("tualet-bachok.count",gg("tualet-bachok.count")+1);
//SetTimeOut("OnBachok","sg('mqttButton18.ShutterOpen1',1);", 2);
//SetTimeOut("OffBachok","sg('mqttButton18.ShutterClose1',1);", 6);
runScript(proverka_bachok_teket);
|
computergetdata
|
//CPU temp
$cpu_temp=shell_exec('cat /sys/class/thermal/thermal_zone0/temp') / 1000;
$cpu_temp=round($cpu_temp,1);
setGlobal("ThisComputer.CPU_temp",$cpu_temp); // запишем значение
//CPU usage
$cpu_usage=exec("top -bn 1 | awk '{print $9}' | tail -n +8 | awk '{s+=$1} END {print s}'");
setGlobal("ThisComputer.CPU_usage",$cpu_usage); // запишем значение
//System uptime
$sys_uptime=shell_exec("uptime");
$sys_uptime = explode(" up ", $sys_uptime);
$sys_uptime = explode(",", $sys_uptime[1]);
$sys_uptime = $sys_uptime[0].", ".$sys_uptime[1];
setGlobal("ThisComputer.System_uptime",$sys_uptime); // запишем значение
//Memory usage/total
$mem_total=exec("cat /proc/meminfo | grep MemTotal | awk '{print $2}'");
$mem_usage=$mem_total - exec("cat /proc/meminfo | grep MemFree | awk '{print $2}'");
$sys_memory=round($mem_usage * 100 / $mem_total, 1);
setGlobal("ThisComputer.System_memory",$sys_memory); // запишем значение
//Memory Card
$bytes = disk_free_space(".");
$si_prefix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' );
$base = 1024;
$class = min((int)log($bytes , $base) , count($si_prefix) - 1);
$temp = round($bytes / pow($base,$class)) . ' ' . $si_prefix[$class];
setGlobal('System_freespace',$temp); // запишем значение
|
Electro
|
$date = new DateTime('last day of last month');
echo $date->format('d-m-Y');
//Последний день этого месяца
$date = new DateTime('first day of last month');
echo $date->format('d-m-Y');
|
Electro_weekly
|
|
espdata
|
ESP data processing
// esp8266_wifiot begin
include_once(DIR_MODULES."esp8266_wifiot/esp8266_wifiot.class.php");
$wifiot=new esp8266_wifiot();
$wifiot->usual($out);
// esp8266_wifiot end
|
fest
|
$page_url = "https://kalendar-365.ru/today";
$arrContextOptions=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);
$response = file_get_contents("https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json", false, stream_context_create($arrContextOptions));
echo $response;
//делаем до 10 запросов, т.к. сайт иногда не отвечает с первого раза
for ($i = 0; $i <= 10; $i++) {
if (!$page_cont) $page_cont = file_get_contents($page_url, false, stream_context_create($arrContextOptions));
// if (!$page_cont) $page_cont = curl_exec($page_url);
}
if ($page_cont) {
$page_cont = str_replace("\r", "", $page_cont);
$page_cont = str_replace("\n", "", $page_cont);
preg_match_all("/<span class=\"cl\">(.*?)<\/span>/ui", $page_cont, $match);
$ret = "Сегодня: ";
foreach($match[1] as $key => $value) {
$ret .= $value . ".; ";
}
}
echo "<br>" . $ret;
echo $page_url;
$ret = trim($ret);
if ($ret) {
sg("ThisComputer.feastToday", $ret);
say($ret, 2);
echo "<br>" . $ret;
}
|
gidroponica
|
//say('запущено',2);
// to-do
sg('XiRelay27.status',1);
SetTimeOut("TurnOffgidroponic",'sg("XiRelay27.status",0);',60);
|
MoneyCBR
|
$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".date("d/m/Y"));
// USD
$xml = $file->xpath("//Valute[@ID='R01235']");
$valute = strval($xml[0]->Value);
$USD = round(str_replace(",",".",$valute)*100)/100;
echo $USD;
sg("CBRnew.USD",$USD);
// EURO
$xml = $file->xpath("//Valute[@ID='R01239']");
$valute = strval($xml[0]->Value);
$EURO = round(str_replace(",",".",$valute)*100)/100;
echo $EURO;
sg("CBRnew.EURO",$EURO);
$uptime = date("d m Y H:i:s",time());
echo $uptime;
sg("CBRnew.uptime",$uptime);
say("Обновлены курсы валют",0);
|
NewYear
|
$currentYear = date('Y'); // получаем текущий год
$newYear = mktime(0, 0, 0, 1, 1, $currentYear + 1); // высчитываем дату Нового Года
$seconds = $newYear - time();
$days = 0; $hours = 0; $minutes = 0;
$oneMinute = 60;
$oneHour = 60 * $oneMinute;
$oneDay = $oneHour * 24;
if ($seconds / $oneDay > 0) {
$days = (int)($seconds / $oneDay);
$seconds -= $days * $oneDay;
}
if ($seconds / $oneHour > 0) {
$hours = (int)($seconds / $oneHour);
$seconds -= $hours * $oneHour;
}
if ($seconds / $oneMinute > 0) {
$minutes = (int)($seconds / $oneMinute);
$seconds -= $minutes * $oneMinute;
}
sg("ThisComputer.DayFromNY","$days");
say('До Нового Года осталось:'.$days.' '.getNumberWord($days,array('день','дня','дней')),2);
$zz='До Нового Года осталось:'.$days.' '.getNumberWord($days,array('день','дня','дней'));
//getURL('http://192.168.1.50/matrixmsg?txt='.urlencode($zz).'&shift=80');
|
proverka_bachok_teket
|
$currentState = getGlobal("espSensor_state01.value");
//echo($currentState);
if ($currentState == 'OFF') {
sleep(120);
$newState = getGlobal("espSensor_state01.value");
if ($newState == 'OFF') {
say('бачок протекает', 0);
}
}
|
provetri
|
sg('rekuper.vent_3', 1);
SetTimeOut("Ventilycia_off","sg('rekuper.vent_2', 1);", 120);
|
ReadWeatherToday
|
$weather.="Температура за окном ".getGlobal('ow_fact.temperature').'градусов.';
$WindSpeed=(float)gg("ow_fact.wind_speed");
if ($WindSpeed<1) {
$weather.=' Ветра нет.';
} elseif ($WindSpeed<3) {
$weather.=' Ветер слабый.';
} elseif ($WindSpeed<6) {
$weather.=' Ветер сильный.';
} elseif ($WindSpeed<9) {
$weather.=' Ветер очень сильный.';
} else {
$weather.=' Ветер очень! Очень сильный.';
}
$pressure=(float)gg("ow_fact.pressure_mmhg");
if ($pressure<728) {
$weather.=' Атмосферное давление пониженное';
} elseif ($pressure>768) {
$weather.=' Атмосферное давление повышенное.';
} else {
$weather.=' Атмосферное давление нормальное.';
}
$weather.=". Сегодня ожидается ".str_replace('°',' ',getGlobal('ow_forecast_2.temp_day'))." градусов.".getGlobal('ow_fact.weather_type');
$weather.=". Завтра ".str_replace('°',' ',getGlobal('ow_forecast_2_1.temp_day'));
$weather=str_replace('°','',$weather);
say($weather,2);
|
SayJokes
|
/*
1 - Анекдот;
2 - Рассказы;
3 - Стишки;
4 - Афоризмы;
5 - Цитаты;
6 - Тосты;
8 - Статусы;
11 - Анекдот (+18);
12 - Рассказы (+18);
13 - Стишки (+18);
14 - Афоризмы (+18);
15 - Цитаты (+18);
16 - Тосты (+18);
18 - Статусы (+18);
*/
function GetJoke($ctype = 5) {
$pretext = array("Слушай", "Слушайте шутку", "Слушай анекдот", "Вот шутка смешная", "Еще шутка");
$number = mt_rand(0, count($pretext) - 1);
$res = geturl('http://rzhunemogu.ru/Rand.aspx?CType=' . $ctype, 0);
$res = win2utf($res);
$xml = new SimpleXMLElement($res);
$joke = trim(preg_replace('/\s{2,}/', ' ', $xml->content));
$joke = $pretext[$number] . ': ' . $joke;
if (strlen($joke) > 500) {
sleep(10);
GetJoke();
} else {
//return $joke;
//say($pretext[$number].':', 1);
say($joke, 2);
}
}
//if (gg('ThisComputer.SayJokes') != 0) {
GetJoke();
//}
|
steps_count
|
sg("Kostya.steps_day",gg("Kostya.steps"));
sg("Ann.steps_day",gg("Ann.steps"));
|
ToiletClean
|
runscript('bachok');
settimeout("smuyv_sredstvo",'setGlobal("Relay37.status",1);', 4);
SetTimeOut("SwitchOffTualetmoika",'sg("Relay37.status","0");', 20);
|
WeatherSet
|
setGlobal('ThisComputer.weatherToday', getGlobal('ow_fact.temp_max'));
setGlobal('ThisComputer.weatherTomorrow', getGlobal('ow_forecast_2.temp_day'));
setGlobal('ThisComputer.TempOutside', getGlobal('ow_fact.temperature'));
setGlobal('ThisComputer.SunRiseTime', getGlobal('ow_fact.sunrise'));
setGlobal('ThisComputer.SunSetTime', getGlobal('ow_fact.sunset'));
setGlobal('ThisComputer.weatherFull', "Температура сегодня ".getGlobal('ow_fact.temp_max')." градусов. ".getGlobal('ow_fact.weather_type'));
setGlobal('ThisComputer.tempHistory', getGlobal('ow_fact.temperature'));
|
ЗапускВентилятораНа5минут
|
setGlobal("Relay15.status",1);
SetTimeOut("SwitchOffVentylator",'sg("Relay15.status","0");', 300);
|
brightness
|
$m=gg('XiMotion04.Lux');
//echo $m;
//$b= $m % 14 +2;
$b=(($m-2)/(255-2))*(25-0.5)+0.5;
//echo "<br>";
//echo $b;
sg('Wled01.brightness',$b);
|
hello
|
|
rgb
|
$r=getGlobal('Rgb01.red');
$g=getGlobal('Rgb01.green');
$b=getGlobal('Rgb01.blue');
if ($r==251) {
clearTimeout("rgb_timer");
sg('Rgb01.red',0);
sg('Rgb01.green',0);
sg('Rgb01.blue',0);
$color = sprintf("#%02x%02x%02x", $r, $g, $b);
sg('Rgb01.color',$color); //запись цвета в HEX
say ("иллиминация отключена",2);
sg('Relay06.status',1);
sg('Rgb01.status',0);
}
else if (($r<'255') && ($g<'255') && ($b<'255')) {
clearTimeout("rgb_timer");
if ($r=='0') {
sg('Rgb01.status',1);
say ("иллиминация Вкючена",2);
}
if ($r<'255') {
sg('Rgb01.red',$r+1);
}
if ($g<'180') {
sg('Rgb01.green',$g+1);
}
if ($b<'50') {
sg('Rgb01.blue',$b+1);
}
setTimeOut("rgb_timer","runScript('rgb');",1);
}
$color = sprintf("#%02x%02x%02x", $r, $g, $b); //преобразование RGB в HEX
say ($r,1);
sg('Rgb01.color',$color); //запись цвета в HEX
|
rgb1
|
$r=getGlobal('Rgb01.red');
$g=getGlobal('Rgb01.green');
$b=getGlobal('Rgb01.blue');
$c=getGlobal('Rgb01.c');
$name = array(1,2,3,4,6,8,17,24,34,46,62,81,103,126,148,168,186,200,211,220,226,230,233,235,237,238,239,240,241);
if ($r==241) {
clearTimeout("rgb_timer");
sg('Rgb01.red',0);
sg('Rgb01.green',0);
sg('Rgb01.blue',0);
sg('Rgb01.c',0);
$color = sprintf("#%02x%02x%02x", $r, $g, $b);
sg('Rgb01.color',$color); //запись цвета в HEX
sg('Relay06.status',1);
sg('Rgb01.status',0);
}
else if (($r<'255') && ($g<'255') && ($b<'255')) {
clearTimeout("rgb_timer");
$nam = $name[$c];
if ($r=='0') {
sg('Rgb01.status',1);
// say ("иллиминация Вкючена",2);
}
if ($r<'255') {
sg('Rgb01.red',$nam);
}
if ($g<'180') {
sg('Rgb01.green',$nam);
}
if ($b<'50') {
sg('Rgb01.blue',$nam);
}
setTimeOut("rgb_timer","runScript('rgb1');",10);
}
$color = sprintf("#%02x%02x%02x", $r, $g, $b); //преобразование RGB в HEX
//say ($c,1);
sg('Rgb01.color',$color); //запись цвета в HEX
sg('Rgb01.c',$c+1);
|
test
|
setTimeOut('testTimer','say("Hello world!");',30);
|
test
|
sg("tualet-bachok.count",gg("tualet-bachok.count")+1);
|
timeNow
|
|