calculate_realfeel
|
Скрипт вычисления на сколько чувствуется температура
$t = gg('ow_fact.temperature'); // температура на улице
$h = gg('ow_fact.humidity'); // влажность на улице %
$w = gg('ow_fact.wind_speed'); // данные о ветре из прогноза OpenWeather m/s
$tF = $t *1.8+32; // перевод температуры в Farenheit
if ($t > 26.6){
// Считаем HeatIndex
$_f=-42.379 + 2.04901523*$tF + 10.14333127*$h - 0.22475541*$tF*$h - 0.00683783*$tF*$tF - 0.05481717*$h*$h + 0.00122874*$tF*$tF*$h + 0.00085282*$tF*$h*$h -0.00000199*$tF*$tF*$h*$h;
}else if ($t <= 10){
// Считаем фактор WindChild
$_f = 35.74+(0.6215*$tF)-(35.75*($w*0.16))+((0.4275*$tF)*($w*0.16));
}else{
//считаем по Rothfusz
$_f = 0.5*($tF+61+(($tF-68)*1.2)+($h*0.094));
}
// переводим в цельсии
$rf = round(($_f-32)/1.8,0);
//и пропишем значение
sg("ThisComputer.reelFeel",$rf);
sg('ow_fact.reelFeel',$rf);
// внесем дни недели прогноза
$numD=gg("ow_setting.forecast_interval");
$day[0]="ВСК";
$day[1]="ПНД";
$day[2]="ВТР";
$day[3]="СРД";
$day[4]="ЧТВ";
$day[5]="ПТН";
$day[6]="СБТ";
for ($i = 1; $i < $numD; $i++) {
$dayNum = date("w", strtotime($date .' +'.$i.' day'));
$name = $day[date("w", strtotime($date .' +'.$i.' day'))];
sg("ow_day".$i.".name", $name);
}
|
easyRF
|
$device_id=$params['did'];
$destination_id=$params['dest'];
$packet_id=$params['pid'];
$command_id=$params['c'];
$data=$params['d'];
if ($device_id==0) {
if ($command_id==10) {
//temp
setGlobal('ws.tempInside',round($data/100));
} elseif ($command_id==12) {
//motion
callMethod('intSensor.statusChanged',array('status'=>1));
clearTimeOut($id.'_move');
setTimeOut($id.'_move',"callMethod('intSensor.statusChanged',array('status'=>0));",20);
}
}
|
RCSwitch
|
$id=$params['rcswitch'];
if ($id=='12345') {
//sensor 1
}
|
backup
|
Бэкап базы данных
$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);
say("Бэкаплю базу данных",2);
|
Econom
|
Скрипт управления отоплением
// $pom - количество помещений
$pom = 10;
// $pom1 - номер помещения которое открыто при
// закрытии всех клапанов
$pom1 = 8;
// если возможно перекрытие всех клапанов
// то $clall больше i на 1, иначе $clall = i;
$clall = 10;
for ($i = 1; $i <= $pom; $i++) {
$tempcab[1]=gg("tempD".$i.".temp");
if (gg("Econom")) {
$tempstab[1]=gg("EnergoMinTemp");
}else{
$tempstab[1]=gg("tempP".$i);
}
if($tempstab[1]<$tempcab[1]){
sg("clapan".$i.".status", "1");
$clall++;
}else{
sg("clapan".$i.".status", "0");
}
}
if($clall==$pom){
sg("clapan".$pom1.".status", "0");
}
// управление реле, команды для разных реле смотреть
// в скрипте scene_switch
$url1="http://192.168.1.25/pwr/relays/1?ac=123456&value=".gg("clapan1.status");
getURL($url1,0);
$url1="http://192.168.1.25/pwr/relays/2?ac=123456&value=".gg("clapan10.status");
getURL($url1,0);
exec ("/var/www/templates_alt/rele.sh 0x20 1 ".gg("clapan2.status"));
exec ("/var/www/templates_alt/rele.sh 0x20 2 ".gg("clapan3.status"));
exec ("/var/www/templates_alt/rele.sh 0x20 1 ".gg("clapan4.status"));
exec ("/var/www/templates_alt/rele.sh 0x20 1 ".gg("clapan5.status"));
exec ("/var/www/templates_alt/rele.sh 0x20 5 ".gg("clapan6.status"));
exec ("/var/www/templates_alt/rele.sh 0x20 6 ".gg("clapan7.status"));
exec ("/var/www/templates_alt/rele.sh 0x20 7 ".gg("clapan8.status"));
exec ("/var/www/templates_alt/rele.sh 0x20 8 ".gg("clapan9.status"));
|
halt
|
Скрипт выключения с сохранением базы данных
$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);
say("Подготовка к выключению",2);
setTimeout("shutdownTimer","safe_exec('shutdown -h now');",15);
|
OW_code
|
код города для Open Weather
$ow_gorod=getGlobal("ow_city.name");
$Record = SQLSelectOne("SELECT * FROM `OPENWEATHER_CITY` WHERE `CITY_NAME`='".$ow_gorod."'");
$ow_city_id = $Record['CITY_ID'];
$ow_city_lat = $Record['CITY_LAT'];
$ow_city_lng = $Record['CITY_LNG'];
setGlobal('ow_city.id',$ow_city_id);
setGlobal('myobject.coord1',$ow_city_lat);
setGlobal('myobject.coord2',$ow_city_lng);
|
reboot
|
Скрипт перезагрузки с сохранением базы данных
$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);
say("Подготовка к перезагрузке",2);
setTimeout("shutdownTimer","safe_exec('shutdown -r now');",15);
|
scene_switch
|
Скрипт для управления реле
//------ включение-выключение реле-----
//------ esp8266 WiFi IoT
//getURL ("http://ip_adres/gpio&st=1&pin=13",0);
//getURL ("http://ip_adres/gpio&st=0&pin=13",0);
//------ esp8266 скетч http://кушеев.рф/archives/836
//getURL ("http://ip_adres/gpio13on",0);
//getURL ("http://ip_adres/gpio13off",0);
//------ iMatic http://кушеев.рф/archives/494
//exec ("python /var/www/templates_alt/imatic.py 13 1");
//exec ("python /var/www/templates_alt/imatic.py 13 0);
//------ Arduino uart скетч http://кушеев.рф/archives/650
//exec ("echo 1013 > /dev/ttyS3");
//exec ("echo 1113 > /dev/ttyS3");
//------ GPIO http://кушеев.рф/archives/817
// exec ("gpio -1 write 29 0")
// exec ("gpio -1 write 29 1")
//------ i2c http://кушеев.рф/archives/923
// exec ("/var/www/templates_alt/rele.sh 0x20 1 0");
// exec ("/var/www/templates_alt/rele.sh 0x20 1 1");
//------ 433Utils
//exec ("/var/www/templates_alt/codesend433 7777777");
//exec ("/var/www/templates_alt/codesend315 7777777");
$n = $params['nameobj'];
if ($n == "Switch1") {
if (getGlobal("Switch1.status")==1) {
exec ("sudo /var/www/codesend 7777777");
} else {
exec ("sudo /var/www/codesend 7777778");
}
}
if ($n == "Switch2") {
if (getGlobal("Switch2.status")==1) {
exec ("echo 1003 > /dev/ttyS3");
} else {
exec ("echo 1103 > /dev/ttyS3");
}
}
if ($n == "Switch3") {
if (getGlobal("Switch3.status")==1) {
exec ("/var/www/templates_alt/rele.sh 0x20 1 0");
} else {
exec ("/var/www/templates_alt/rele.sh 0x20 1 1");
}
}
if ($n == "Switch4") {
if (getGlobal("Switch4.status")==1) {
exec ("/var/www/templates_alt/rele.sh 0x20 4 0");
} else {
exec ("/var/www/templates_alt/rele.sh 0x20 4 1");
}
}
if ($n == "Switch5") {
if (getGlobal("Switch5.status")==1) {
exec ("echo 1006 > /dev/ttyS3");
} else {
exec ("echo 1106 > /dev/ttyS3");
}
}
if ($n == "Switch6") {
if (getGlobal("Switch6.status")==1) {
exec ("echo 1007 > /dev/ttyS3");
} else {
exec ("echo 1107 > /dev/ttyS3");
}
}
if ($n == "Switch7") {
if (getGlobal("Switch7.status")==1) {
exec ("echo 1008 > /dev/ttyS3");
} else {
exec ("echo 1108 > /dev/ttyS3");
}
}
if ($n == "Switch8") {
if (getGlobal("Switch8.status")==1) {
exec ("echo 1009 > /dev/ttyS3");
} else {
exec ("echo 1109 > /dev/ttyS3");
}
}
|
voshod
|
$latitude=(double) getGlobal("myobject.coord1");
$longitude=(double) getGlobal("myobject.coord1");
$sun_info = date_sun_info(time(), $latitude, $longitude); //Ваши географические координаты.
foreach ($sun_info as $key => $val) {
if ($key == 'sunrise') {
$sunrise = $val;
//echo 'Восход: '.date("H:i:s", $sunrise).'<br>';
setGlobal('ThisComputer.SunRiseTime',date("H:i", $sunrise));
}
if ($key == 'sunset') {
$sunset = $val;
$day_length = $sunset - $sunrise;
//echo 'Заход: '.date("H:i", $sunset).'<br>';
//echo 'Долгота дня: '.gmdate("H:i", $day_length).'<br>';
setGlobal('ThisComputer.SunSetTime',date("H:i", $sunset));
setGlobal('ThisComputer.LongTagTime',gmdate("H:i", $day_length));
}
if ($key == 'transit') {
//echo 'В зените: '.date("H:i:s", $val).'<br>';
setGlobal('ThisComputer.TransitTime',date("H:i", $val));
}
if ($key == 'civil_twilight_begin') {
//echo 'Начало утренних сумерек: '.date("H:i", $val).'<br>';
setGlobal('ThisComputer.Chicivil_beginTime',date("H:i", $val));
}
if ($key == 'civil_twilight_end') {
//echo 'Конец вечерних сумерек: '.date("H:i:s", $val).'<br>';
setGlobal('ThisComputer.civil_endTime',date("H:i", $val));
}
}
|