okrugl
|
$usd=gg('ThisComputer.dollarrur1');
$dusd =round($usd, 2);
setGlobal('ThisComputer.dollarrur', $dusd);
$eur=gg('ThisComputer.eurorur1');
$deur =round($eur, 2);
setGlobal('ThisComputer.eurorur', $deur);
|
rassvet
|
clearTimeout(aquatimez);
clearTimeout(aquatimez2);
clearTimeout(aquatimez3);
clearTimeout(aquatimez4);
$br1=gg("Dimmer01.level");
if ($br1>=0 && $br1<=80){
$br1=$br1+1;
sg('Dimmer01.level', $br1);
SetTimeOut("aquatime",'runScript("rassvet");', 10);
}
if ($br1>=80 && $br1<100){
$br1=$br1+1;
sg('Dimmer01.level', $br1);
SetTimeOut("aquatime2",'runScript("rassvet");', 30);
}
if ($br1>90){
callMethod('Relay08.turnOn');
//runScript('rassvet2');
}
|
rassvet2
|
$br2=gg("Dimmer02.levelWork");
if ($br2>=0 && $br2<=245){
$br2=$br2+2;
setGlobal('Dimmer02.levelWork', $br2);
SetTimeOut("aquatime3",'runScript("rassvet2");', 20);
if ($br2>=230){
callMethod('Relay08.turnOn');
}
}
|
Reboot
|
say("Подготовка к перезагрузке",2);
say("Сервер будет перезагружен через 15 секунд",1);
say("Сохранение БД",1);
$filename = '/var/www/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);
setTimeout("shutdownTimer","safe_exec('sudo shutdown -r now');",15);
|
systemTimer
|
//CronLXnsk
/*
if (getGlobal('Sensor_light02.value10') > 1000) {
setGlobal("Lxnsk.Enable",1);
} else {
setGlobal("Lxnsk.Enable",0);
}
//CronLXspb
if (getGlobal('Sensor_light01.value10') > 300) {
setGlobal("Lxspb.Enable",1);
} else {
setGlobal("Lxspb.Enable",0);
}
if (timeIs("14:05")) {
setGlobal("Lxnsk.Enable",0);
}
if (timeIs("15:30")) {
setGlobal("Lxnsk.Enable",1);
}
//CronLXspb
if (timeIs("01:00")) {
setGlobal("Lxspb.Enable",0);
}
if (timeIs("11:00")) {
setGlobal("Lxspb.Enable",1);
}
*/
|
wled
|
if (getGlobal("Wled01.auto") == 1) {
//эфект 1
sg('Wled01.effect',1 ,sg('Wled01.brightness',100));
//эфект 2
sg('Wled01.effect',2 ,sg('Wled01.brightness',50));
//эфект 3
sg('Wled01.effect',3 ,sg('Wled01.brightness',100));
//эфект 4
sg('Wled01.effect',4 ,sg('Wled01.brightness',70));
}
|
ya
|
//Получаем данные от Яндекса, region= указывает на код региона
$getYandexPogoda = simplexml_load_string(file_get_contents('https://export.yandex.ru/bar/reginfo.xml?region=65'));
$getYandexPogoda = json_decode(json_encode($getYandexPogoda), TRUE);
//Меняем некрасивые картинки на красивые, анимированные
$arrayIcon = [
'bkn_d.png' => 'cloudy-day-3.svg',
'bkn_n.png' => 'cloudy-night-3.svg',
'ovc.png' => 'cloudy.svg',
'ovc_-sn.png' => 'snowy-6.svg',
'ovc_sn.png' => 'snowy-7.svg',
'ovc_-ra.png' => 'rainy-4.svg',
'ovc_ra.png' => 'rainy-5.svg',
'ovc_ts_ra.png' => 'thunder.svg',
'skc_d.png' => 'day.svg',
'skc_n.png' => 'night.svg',
'fg_d.png' => 'cloudy.svg',
'bl.png' => 'snowy-6.svg',
'bkn_-ra_d.png' => 'rainy-2.svg',
'bkn_-ra_n.png' => 'cloudy-night-3.svg',
'bkn_-sn_d.png' => 'snowy-2.svg',
'bkn_-sn_n.png' => 'cloudy-night-3.svg',
'bkn_-sn_d.png' => 'snowy-2.svg',
'bkn_-sn_n.png' => 'cloudy-night-3.svg',
'bkn_ra_d.png' => 'rainy-1.svg',
'bkn_ra_n.png' => 'rainy-1.svg',
'bkn_sn_d.png' => 'snowy-1.svg',
'bkn_sn_n.png' => 'snowy-1.svg',
'ovc_ra_sn.png' => 'rainy-5.svg',
];
//Цикл для перебора данных
foreach($getYandexPogoda[weather][day][day_part] as $key => $array) {
//Самый первый массив - в нем данные о текущей погоде
if($key == 0) {
//Текущая температура
sg('System_YandexWeather.nowTemp', $array["temperature"]);
//Иконка
$searchIcon = explode('/', $getYandexPogoda["weather"]["day"]["day_part"][$key]["image-v3"]);
sg('System_YandexWeather.nowWeatherIcon', $arrayIcon[$searchIcon[8]]);
//Скорость ветра
sg('System_YandexWeather.nowWindSpeed', $array["wind_speed"]);
//Направление ветра
sg('System_YandexWeather.nowWindDirection', $array["wind_direction"]);
continue;
}
if(isset($getYandexPogoda["weather"]["day"]["day_part"][$key]["temperature"])) {
$searchTemp = $getYandexPogoda["weather"]["day"]["day_part"][$key]["temperature"];
} else {
$searchTemp = $getYandexPogoda["weather"]["day"]["day_part"][$key]["temperature_from"];
}
//Раскидываем данные по принципу temp_1, temp_2, temp_3, temp_4 это утро, день, вечер, ночь
sg('System_YandexWeather.name_'.$key, $getYandexPogoda["weather"]["day"]["day_part"][$key]["@attributes"]["type"]);
sg('System_YandexWeather.temp_'.$key, $searchTemp);
$searchIcon = explode('/', $getYandexPogoda["weather"]["day"]["day_part"][$key]["image-v3"]);
sg('System_YandexWeather.WeatherIcon_'.$key, $arrayIcon[$searchIcon[8]]);
}
//Время обновления
sg('System_YandexWeather.update', date('d.m.Y H:i', time()));
echo 'ok';
|
zakat
|
clearTimeout(aquatime);
clearTimeout(aquatime2);
clearTimeout(aquatime3);
callMethod('Relay08.turnOff');
//setGlobal('Dimmer02.levelWork', 0);
$brz1=gg("Dimmer01.levelWork");
if ($brz1>50 && $brz1<=270){
$brz1=$brz1-10;
setGlobal('Dimmer01.levelWork', $brz1);
SetTimeOut("aquatimez",'runScript("zakat");', 10);
if ($brz1<250){
callMethod('Relay08.turnOff');
}
}
if ($brz1>20 && $brz1<=50){
$brz1=$brz1-3;
setGlobal('Dimmer01.levelWork', $brz1);
SetTimeOut("aquatimez2",'runScript("zakat");', 10);
}
if ($brz1>0 && $brz1<=20){
$brz1=$brz1-1;
setGlobal('Dimmer01.levelWork', $brz1);
SetTimeOut("aquatimez3",'runScript("zakat");', 10);
}
|
zakat2
|
$brz2=gg("Dimmer02.levelWork");
if ($brz2>0 && $brz2<=270){
$brz2=$brz2-1;
setGlobal('Dimmer02.levelWork', $brz2);
SetTimeOut("aquatimez4",'runScript("zakat2");', 5);
}
|
Аквастатус
|
if (getGlobal('Wled01.brightness')<120){
$indata=getGlobal('Wled01.brightness');
$indataak2=getGlobal('Relay04.status');
//$indata3=getGlobal('Wled01.color');
$arr = array('value' => $indata, 'status' => $indataak2);
$outak=json_encode($arr);
setGlobal(' Relay04.value', $outak);
}
|
Ночник цвет
|
if (getGlobal('Wled01.color10') == 16714250) { //красный
sg('Wled01.color22',"Красный");
sg('Wled01.color',"#FF000D"); }
else {
if (getGlobal('Wled01.color10') == 720711) { //зеленый
sg('Wled01.color22',"Зеленый");
sg('Wled01.color',"#22FF00"); }
else {
if (getGlobal('Wled01.color10') == 16740362) { //желтый
sg('Wled01.color22',"Желтый");
sg('Wled01.color',"#FFBF00"); }
else {
if (getGlobal('Wled01.color10') == 673791) { //синий
sg('Wled01.color22',"Синий");
sg('Wled01.color',"#000DFF"); }
else {
if (getGlobal('Wled01.color10') == 710399) { //голубой
sg('Wled01.color22',"Голубой");
sg('Wled01.color',"#00F2FF"); }
else {
if (getGlobal('Wled01.color10') == 11340543) { //фиолетовый
sg('Wled01.color22',"Фиолетовый");
sg('Wled01.color',"#FF00FB"); }
else {
if (getGlobal('Wled01.color10') == 16711765) { //малиновый
sg('Wled01.color22',"Малиновый");
sg('Wled01.color',"#FF0099"); }
else {
if (getGlobal('Wled01.color10') == 6500) { //белый холодный
sg('Wled01.color22',"Белый холодный");
sg('Wled01.color',"#FFFFFF"); }
else {
if (getGlobal('Wled01.color10') == 2700) { //белый мягкий
sg('Wled01.color22',"Белый мягкий");
sg('Wled01.color',"#FFD2A8"); }
else {
if (getGlobal('Wled01.color10') == 3400) { //белый теплый
sg('Wled01.color22',"Белый теплый");
sg('Wled01.color',"#FAEBD7 "); }
else {
if (getGlobal('Wled01.color10') == 4500) { //белый
sg('Wled01.color22',"Белый");
sg('Wled01.color',"#F8F8FF"); }
else {
if (getGlobal('Wled01.color10') == 5600) { //белый дневной
sg('Wled01.color22',"Белый дневной");
sg('Wled01.color',"#FFFAF0"); }
}
}
}
}
}
}
}
}
}
}
}
|
Ночник яркость
|
if (getGlobal('Wled01.brightness')<120){
$indatabr=getGlobal('Wled01.brightness');
$arrbr = array('value' => $indatabr);
$outbr=json_encode($arrbr);
setGlobal('Wled01.value', $outbr);
}
|
Ночник_onoff
|
if (getGlobal('Wled01.status')<5){
$indataonoff=getGlobal('Wled01.status');
$arronoff = array('value' => $indataonoff);
$outonoff=json_encode($arronoff);
setGlobal('Wled01.statusonof', $outonoff);
}
|
статус фитонск
|
if (getGlobal('Sensor_light02.value10') > 1000) {
sg('Sensor_light02.value',1100);
//callMethod('Relay04.turnOn');
} else {
sg('Sensor_light02.value',0);
//callMethod('Relay04.turnOff');
}
//if (getGlobal('Sensor_light02.value10') > 1000) {
//sg('Sensor_light02.value',1100);
//callMethod('Relay04.turnOn');
//}
//if (getGlobal('Sensor_light02.value10') < 1000) {
//sg('Sensor_light02.value',0);
//callMethod('Relay04.turnOff');
//}
|
Статус фотомама
|
if (getGlobal('Sensor_light01.value10') > 1000) {
sg('Sensor_light01.value',1100);
}
if (getGlobal('Sensor_light01.value10') < 1000) {
sg('Sensor_light01.value',0);
}
|
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
}
|
статус espmama
|
if (getGlobal('Sensor_state01.alive') == 0) {
say('Е. С. П. мамы недоступно',5);
}
|
Статус аква мама он
|
if (getGlobal('Relay09.status') == 1) {
say('Свет мама включен',2);
}
|
Статус аква мама офф
|
if (getGlobal('Relay09.status') == 0) {
say('Свет мама выключен',2);
}
|
статус кулеров аквы 45
|
if (getGlobal('Relay03.status2') == 1) {
$sc='<div class="light-on-blue">
<img src="/cms/scenes/styles/switch/i_air_cleaner.png" />
</div>';
sg('Relay03.status',$sc);
} else {
sg('Relay03.status',0);
}
|
статус кулеров аквы120
|
if (getGlobal('Relay02.status2') == 1) {
$sc='<div class="light-on-blue">
<img src="/cms/scenes/styles/switch/i_air_cleaner.png" />
</div>';
sg('Relay02.status',$sc);
} else {
sg('Relay02.status',0);
}
|
статус нагрева аквы
|
if (getGlobal('Relay07.status2') == 1) {
$sc='<div class="light-on">
<img src="/cms/scenes/styles/switch/i_kotel_on.png" />
</div>';
sg('Relay07.status',$sc);
} else {
sg('Relay07.status',0);
}
|
статус света аквы 120
|
if (getGlobal('Relay04.status2') == 1) {
$sc='<div class="light-on-red">
<img src="/cms/scenes/styles/switch/i_light_on.png" />
</div>';
//sg('Relay04.value','{"brightness":"59","value":"55"}');
sg('Relay04.status',$sc);
} else {
//sg('Relay04.value','{"value":"0"}');
sg('Relay04.status',0);
}
|
статус света аквы 45
|
if (getGlobal('Relay05.status2') == 1) {
$sc='<div class="light-on-red">
<img src="/cms/scenes/styles/switch/i_light_on.png" />
</div>';
sg('Relay05.status',$sc);
} else {
sg('Relay05.status',0);
}
|
УДО вмт
|
if (getGlobal('Relay06.vmt') == 0) {
setGlobal('Relay06.vmt', '1');
sleep(2);
callMethod('Relay06.turnOff');
getURL('http://192.168.0.48/gpio?st=0&pin=3&flash=1', 0);
say("Удобрения поданы",2);
setGlobal('Relay06.vmt', '1');
}
|
ktogdeesty
|
$users = getObjectsByClass("Users");
$response = [];
foreach($users as $user) {
$coord = gg($user['TITLE'].".Coordinates");
$name = gg($user['TITLE'].".fullName");
$explode = explode(',', $coord);
$lat = $explode[0];
$lot = $explode[1];
if(!$lat || !$lot){
continue;
}
$api = 'http://geocode-maps.yandex.ru/1.x/?lang=ru_RU&apikey=74ccc9a5-5085-459f-af2d-fa368943d5c1&format=json&geocode=N'.$lat.',E'.$lot;
$jsonString = file_get_contents($api);
setGlobal('Maksim.jsonString', $jsonString);
if(!$jsonString){
return 'В данный момент, что-то не работает, попробуйте позже!';
}
$data = json_decode($jsonString, true);
$address = $data['response']['GeoObjectCollection']['featureMember'][0]['GeoObject']['metaDataProperty']['GeocoderMetaData']['text'];
$response[$name] = ['address' => $address];
}
$data = '';
if($response){
foreach($response as $name => $value){
$data .= $name.": ".$value['address']."\n";
}
}
//callAPI('/api/module/yadevices','GET',array('station'=>3,'command'=>'setVolume','volume'=>6));
//say($data,2);
include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendMessageToAdmin($data);
|
Maks dvor in
|
callAPI('/api/module/yadevices','GET',array('station'=>3,'command'=>'setVolume','volume'=>5));
say('Хозяин уже во дворе',2);
|
Maks dvor out
|
callAPI('/api/module/yadevices','GET',array('station'=>3,'command'=>'setVolume','volume'=>5));
say('Хозяин покинул двор',2);
|
Put domoy in
|
callAPI('/api/module/yadevices','GET',array('station'=>3,'command'=>'setVolume','volume'=>5));
say('Ощущаю приближение хозяина. Скоро будет дома',2);
|
Rabota in
|
callAPI('/api/module/yadevices','GET',array('station'=>3,'command'=>'setVolume','volume'=>5));
say('Хозяин приехал на работу',2);
|
Rabota out
|
callAPI('/api/module/yadevices','GET',array('station'=>3,'command'=>'setVolume','volume'=>5));
say('Хозяин уехал с работы',2);
|
Сергей вернулся в периметр
|
callAPI('/api/module/yadevices','GET',array('station'=>3,'command'=>'setVolume','volume'=>5));
say('Сергей вернулся в',2);
|
Сергей вышел
|
callAPI('/api/module/yadevices','GET',array('station'=>3,'command'=>'setVolume','volume'=>5));
say('Сергей покинул',2);
|
Серый вернулся в двор
|
callAPI('/api/module/yadevices','GET',array('station'=>3,'command'=>'setVolume','volume'=>5));
say('Сергей вернулся в периметр двора',2);
|
Серый покинул двор
|
callAPI('/api/module/yadevices','GET',array('station'=>3,'command'=>'setVolume','volume'=>5));
say('Внимание! Сергей покинул двор!',2);
|