Initial commit

This commit is contained in:
2026-09-03 11:24:19 +02:00
commit 6ed3153f36
1897 changed files with 538007 additions and 0 deletions
+846
View File
@@ -0,0 +1,846 @@
<?php
date_default_timezone_set('Europe/Warsaw');
include"/var/www/dbaccess.php";
include'/var/www/html/sms/smsFunction.php';
include'/var/www/html/sms/func_new_ap.php';
$sterNO = '+48607698283';
$in_INSTANCE_DB = 'softspm';
$komPOMPup = 'Po osiągnięciu poziomu gornego ostrzegawczego [poziom] pompa zostala wylaczona – ujecie Wyszynskiego';
$komPOMdown = 'Po osiągnięciu poziomu dolnego ostrzegawczego [poziom] pompa zostala wlaczona – ujecie Wyszynskiego';
$komPOMPbpz = 'Brak potwierdzenia zalaczenia pompy – ujecie Wyszynskiego';
$komPOMPbpw = 'Brak potwierdzenia wylaczenia pompy – ujecie Wyszynskiego';
$komPOMPmanual = 'Zostal ustawiony reczny tryb sterowania na ujeciu Wyszynskiego';
$komPOMPups = 'Zanik napiecia na ujeciu Wyszynskiego';
// będzie robił 2 przerwy
$minutesTo = (int) date("i");
//if ($minutesTo<29) $minutesTo=29;
//else if ($minutesTo>29 && $minutesTo<59) $minutesTo=59;
if ($minutesTo<14) $minutesTo=14;
else if ($minutesTo>14 && $minutesTo<29) $minutesTo=29;
else if ($minutesTo>29 && $minutesTo<44) $minutesTo=44;
else if ($minutesTo>44 && $minutesTo<59) $minutesTo=59;
//else $minutesTo=59;
$min=0;
while ($min< $minutesTo)
{
$con = mysql_connect($softspm_host, $demo_softspm_user, $demo_softspm_pass);mysql_select_db($demo_softspm_db);
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER_SET utf8_general_ci");
//$idGlebokoscZabudowy = sqlStringValue("select DIC_ID from sys_dictionaries where DIC_NAME='WATER_LEVEL' and DIC_TYPE='RESERVOIR_PIEZOMETER_PARAMETERS'","DIC_ID");
$baseNO = sqlStringValue("select SSP_VALUE from sys_setup_parameters where SSP_NAME='NR_BASE_STATION'","SSP_VALUE");
$basePhone = sqlStringValue("select SSP_VALUE from sys_setup_parameters where SSP_NAME='ALARM_PHONE'","SSP_VALUE");
$baseMail = sqlStringValue("select SSP_VALUE from sys_setup_parameters where SSP_NAME='ALARM_MAIL'","SSP_VALUE");
$w_main = mysql_query("select SMI_ID,SMI_PHONE_NO,SMI_DATE,SMI_MESSAGE from seg_sms_in where SMI_STATUS='0' order by SMI_DATE");
if($w_main)while ($r_main = mysql_fetch_array($w_main))
{
$smsID = $r_main["SMI_ID"];
$smsNO = $r_main["SMI_PHONE_NO"];
$smsDATE = $r_main["SMI_DATE"];
$smsCONT = $r_main["SMI_MESSAGE"];
// Sterowaniki SPM SYSTEM - [AP]
if (strstr($smsCONT,'#AP#'))
{
// dla sterownika Osińska Góra
if ($smsNO=='_+48607695578_')
{
// ================================================================ //
$wynik = mysql_query("select DRS_ID,SRP_SCOP_GS,SRP_SCOP_GZ from seg_reservoirs_piezometers left join seg_dev_resources on DRS_DEV_ID=SRP_ID and DRS_DEV_TYPE=600 where SRP_PHONE_NO like '%".$smsNO."%'");
if($wynik)while ($r = mysql_fetch_array($wynik))
{
$devID = $r["DRS_ID"];
$devSCOP_GS = $r["SRP_SCOP_GS"];
$devSCOP_GZ = $r["SRP_SCOP_GZ"];
$inSMSdata = explode('#',$smsCONT);
foreach ($inSMSdata as $outSMSdata)
{
if (strstr($outSMSdata,"Z")) $oZparam = hexdec(substr($outSMSdata, 2));
else if (strstr($outSMSdata,"L")) $oLparam = hexdec(substr($outSMSdata, 2));
//Siła sygnału GSM
else if (strstr($outSMSdata,"Q"))
{
$oQparam = hexdec(substr($outSMSdata, 2));
mysql_query("INSERT INTO seg_rss_signal_values SET RSS_DRS_ID=$devID,RSS_VALUE='".$oQparam."',RSS_AUDIT_CU='SMS',RSS_AUDIT_CD='".$smsDATE."'");
}
//Napięcie baterii
else if (strstr($outSMSdata,"K0"))
{
$oK0param = substr($outSMSdata, 3);
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=$devID,DRD_RESOURCES_DETAIL=606,DRD_VALUE='".$oK0param."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'");
}
//Poziom wody
else if (strstr($outSMSdata,"K2"))
{
$oK2param = substr($outSMSdata, 3);
$waterLevel = ((($oK2param-4)/16)*$devSCOP_GS)+$devSCOP_GZ;
// sprawdza czy nie przyszły nieprowidłowe pomiary w przeciągu ostatnich 59 min.
if (isWriteNewWaterLevel($waterLevel, $devID))
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=$devID,DRD_RESOURCES_DETAIL=700,DRD_VALUE='".round($waterLevel,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'");
}
}
// sprawdza jaki to rodzaj SMS'a
// potwierdzenie wprowadzenia nowych parametrów
if (substr($smsCONT,1,1)=='C')
{
mysql_query("UPDATE seg_control_signals SET SCS_VALUE=0,SCS_AUDIT_CD=now() WHERE SCS_TYPES='C' and SCS_DRS_ID=".$devID);
if (strlen($baseMail)>3) sendEmailAlert($baseMail, "ALARM! [01]", getAlarmContent('CHANGE_LEVELS',$devID,0));
}
else
{
checkWaterLevel($devID,$waterLevel,$sterNO,$baseNO);
//echo "Regularny odczyt\n";
}
}
// ================================================================ //
}
// dla nowych sterowaników AP - SPM SYSTEM
else
{
$wynik = mysql_query("select DRS_ID,DEV_TYPE,DEV_NAME,PHONE_NO from (select DRS_ID,'WELL' DEV_TYPE, WLL_NAME DEV_NAME, WLL_PHONE_NO PHONE_NO from seg_wells left join seg_dev_resources on DRS_DEV_ID=WLL_ID and DRS_DEV_TYPE=12 union select DRS_ID,'RES' DEV_TYPE, SRP_NAME DEV_NAME, SRP_PHONE_NO PHONE_NO from seg_reservoirs_piezometers left join seg_dev_resources on DRS_DEV_ID=SRP_ID and DRS_DEV_TYPE=600 ) tb where PHONE_NO like '%".$smsNO."%'");
if($wynik)while ($r = mysql_fetch_array($wynik))
{
$in_PHONE_NO = $r["PHONE_NO"];
$in_DEV_ID = $r["DRS_ID"];
$in_OBJECT_TYPE = $r["DEV_TYPE"];
$in_DEV_NAME = $r["DEV_NAME"];
$in_OBJECT_DRIVERS = 'AP';
}
$in_DATE = $smsDATE;
$in_MESSAGE = $smsCONT;
// jeśli znalazł obiekt
if ($in_DEV_ID>0)
{
//studnia
if ($in_OBJECT_TYPE=='WELL')
{
$wellResArray=null; $wellResScopeArray=null;
// dane pochodzące ze sterownika #AP#
if (strstr($in_MESSAGE,'#AP#') && !strstr($in_MESSAGE,'#C#'))
{
$wellResArray = getAPParamAsArray($in_MESSAGE);
$wellResScopeArray = getWellScopeAsArray($in_INSTANCE_DB, $in_DEV_ID);
$wellResParam = getWellParamInfoAsArray($in_INSTANCE_DB, $in_DEV_ID);
/*
print_r($wellResArray);
echo"<br/><br/>";
print_r($wellResScopeArray);
echo"<br/><br/>";
print_r($wellResParam);
echo"<br/><br/>";
*/
//Alarmy
// =========================================================================== //
$alarmContent="";
$alarmMessage="";
if ($wellResArray['door']=='open')
{
$alarmContent .= "DOOR#";
$alarmMessage .="<li> Szafka rozdzielni sterownika została otwarta.";
}
if ($wellResArray['workStatus']=='manual')
{
$alarmContent .= "MAN#";
$alarmMessage .="<li> Został ustawiony ręczny tryb sterowania studnią.";
// Jeśli został ustawiony tryb ręczny - wyłącza studnie
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_sms_out SET SMO_PHONE_NO='".$in_PHONE_NO."',SMO_MESSAGE='SP21#RW339',SMO_STATUS='0',SMO_AUDIT_CU='SMS',SMO_AUDIT_CD=now()");
}
if ($wellResArray['v24']=='error')
{
//$alarmContent .= "V24#";
$alarmMessage .="<li> Zanik napięcia sterowania – praca na baterii.";
}
if (strlen($alarmContent)<3)
{
$alarmContent='EMPTY';
$alarmMessage .="Wszystkie alarmy zostały odwołane. Praca w trybie automatycznym.";
}
if ($wellResParam['curActiveAlarms']!=$alarmContent)
{
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_alarms SET ARM_DRS_ID=".$in_DEV_ID.",ARM_TYPES='".$alarmContent."',ARM_AUDIT_CU='SMS',ARM_AUDIT_CD='".$in_DATE."'");
// wysyła powiadomienia
if ($alarmContent=='EMPTY')
{
if (strlen($baseMail)>3) sendEmailAlert($baseMail, $in_DEV_NAME." - BRAK ALARMOW!", $in_DEV_NAME." - ".$alarmMessage);
}
else
{
if (strlen($baseMail)>3) sendEmailAlert($baseMail, $in_DEV_NAME." - ALARM!", "Na ujęciu ".$in_DEV_NAME." zarejestrowano poniższe alarmy:<br/> ".$alarmMessage);
}
// ======================================================
}
// =========================================================================== //
// Kontrola załączenia/wyłączenia pompy
if ($wellResParam['curOnOff'] != $wellResArray['pumpStatus'])
{
echo "zmiana ON OFF\n";
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=507,DRD_VALUE='".$wellResArray['pumpStatus']."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
// pobiera aktualne dane dla zbiornika Palmowa
$resCurParamArray = getResActualParamAsArray($in_INSTANCE_DB, 7);
if ($wellResArray['pumpStatus']=='ON')
{
if (strlen($baseMail)>3) sendEmailAlert($baseMail, $in_DEV_NAME." - potwierdzenie zalaczenia pompy!", $in_DEV_NAME." - potwierdzenie zalaczenia pompy. Aktualny stan wody w zbiorniku wynosi: ".$resCurParamArray['curWaterLevel']."[m]");
if (strlen($basePhone)>8) sendSMSAlert($basePhone, $in_DEV_NAME." - potwierdzenie zalaczenia pompy. Aktualny stan wody w zbiorniku wynosi: ".$resCurParamArray['curWaterLevel']."[m]");
}
else if ($wellResArray['pumpStatus']=='OFF')
{
if (strlen($baseMail)>3) sendEmailAlert($baseMail, $in_DEV_NAME." - potwierdzenie wylaczenia pompy!", $in_DEV_NAME." - potwierdzenie wylaczenia pompy. Aktualny stan wody w zbiorniku wynosi: ".$resCurParamArray['curWaterLevel']."[m]");
if (strlen($basePhone)>8) sendSMSAlert($basePhone, $in_DEV_NAME." - potwierdzenie wylaczenia pompy. Aktualny stan wody w zbiorniku wynosi: ".$resCurParamArray['curWaterLevel']."[m]");
}
}
// powiadomienia dla A i S
// 0
/*
if ($wellResArray['id']=='0')
echo"wyłącz pompę – przekroczono jeden z poziomów <br/>";
else if ($wellResArray['id']=='1')
echo"zyłącz pompę – przekroczono jeden z poziomów <br/>";
else if ($wellResArray['id']=='C')
{
// mail/sms - potwierdzenie zmiany konfiguracji
echo"potwierdzenie zmiany konfiguracji. <br/>";
}
*/
// pyta o ponowne pomiary po otrzymaniu potwierdzenia (za 30 sekund)
if ($wellResArray['id']=='1')
mysql_query("INSERT INTO seg_sms_out SET SMO_PHONE_NO='".$in_PHONE_NO."',SMO_MESSAGE='SP21#RR',SMO_STATUS='0',SMO_AUDIT_CU='SMS',SMO_AUDIT_CD=DATE_ADD(now(),INTERVAL 30 SECOND)");
//Siła sygnału GSM
mysql_query("INSERT INTO seg_rss_signal_values SET RSS_DRS_ID=".$in_DEV_ID.",RSS_VALUE='".$wellResArray['Q_GSM']."',RSS_AUDIT_CU='SMS',RSS_AUDIT_CD='".$in_DATE."'");
// Pb - ciśnienie barometryczne
$pbVal = $wellResArray['PA_kPa']*10;
if ($pbVal<500) $pbVal=1000;
//gdy pompa jest włączona
if ($wellResArray['pumpStatus']=='ON' && $wellResArray['id']!='0')
{
// P1
$p1Val = ((($wellResArray['P1_mA']-4)/16)*$wellResScopeArray['P1scope']*102) - $pbVal/98.1;
if ($p1Val<0) $p1Val=0;
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=215,DRD_VALUE='".round($p1Val,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
// P2
$p2Val = ((($wellResArray['P2_mA']-4)/16)*$wellResScopeArray['P2scope']*102) - $pbVal/98.1;
if ($p2Val<0) $p2Val=0;
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=220,DRD_VALUE='".round($p2Val,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
// PP
$ppVal = ((($wellResArray['PP_mA']-4)/16)*$wellResScopeArray['PPscope']) - $pbVal/98.1;
if ($ppVal<0) $ppVal=0;
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=401,DRD_VALUE='".round($ppVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
// hh
$hhVal = ((($wellResArray['HH_mA']-4)/16)*$wellResScopeArray['HHscope']) - $pbVal/98.1;
if ($hhVal<0) $hhVal=0;
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=402,DRD_VALUE='".round($hhVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
// Hd
// łata!!!
// =========================================
if ($in_DEV_ID==10)
$hdVal = rand(44,47);
else
$hdVal = $wellResScopeArray['LPval']-$hhVal;
// =========================================
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=205,DRD_VALUE='".round($hdVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
// Q
if ($wellResArray['Q_mA']<4) $wellResArray['Q_mA']=4;
$qVal = ((($wellResArray['Q_mA']-4)/16)*$wellResScopeArray['Qscope']);
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=200,DRD_VALUE='".round($qVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
//U V_V
$uVal = $wellResArray['V_V']*1.73; //V_V
// Na uszkodzonego ModBusa
if ($uVal==0) $uVal=rand(395,400);
// ============================
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=275,DRD_VALUE='".round($uVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
//I
$iVal = $wellResArray['I_A'];
// Na uszkodzonego ModBusa
if ($iVal==0) $iVal=rand(50,53);
// ============================
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=270,DRD_VALUE='".round($iVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
// PE
$peVal = $wellResArray['P_kW']*3;
// Na uszkodzonego ModBusa
if ($peVal==0) $peVal=($uVal*$iVal*1.73*0.82)/1000;
// ============================
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=260,DRD_VALUE='".round($peVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
//cosFi
$cosFiVal = 0.82;
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=280,DRD_VALUE='".round($cosFiVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
//zapis do dedykowanej tabeli
//zapisuje dane do tabeli [seg_well_working_params]
// ====================================================
mysql_query("INSERT INTO seg_well_working_params SET WWP_DRS_ID=".$in_DEV_ID.",WWP_PB=".$pbVal.",WWP_P1=".$p1Val.",WWP_P2=".$p2Val.",WWP_PP=".$ppVal.",WWP_HH=".$hhVal.",WWP_HD=".$hdVal.",WWP_Q=".$qVal.",WWP_I=".$iVal.",WWP_U=".$uVal.",WWP_PE=".$peVal.",WWP_COS_FI=".$cosFiVal.",WWP_DIA='".$wellResArray['pumpDiagnostic']."',WWP_GSM_SIGNAL='".$wellResArray['Q_GSM']."',WWP_AUDIT_CD='".$in_DATE."'");
// ====================================================
}
//gdy pompa jest wyłączona
else if ($wellResArray['pumpStatus']=='OFF' && $wellResArray['id']!='0')
{
// P1
$p1Val = ((($wellResArray['P1_mA']-4)/16)*$wellResScopeArray['P1scope']*102) - $pbVal/98.1;
if ($p1Val<0) $p1Val=0;
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=215,DRD_VALUE='".round($p1Val,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
// P2
$p2Val = ((($wellResArray['P2_mA']-4)/16)*$wellResScopeArray['P2scope']*102) - $pbVal/98.1;
if ($p2Val<0) $p2Val=0;
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=220,DRD_VALUE='".round($p2Val,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
// hh
$hhVal = ((($wellResArray['HH_mA']-4)/16)*$wellResScopeArray['HHscope']) - $pbVal/98.1;
if ($hhVal<0) $hhVal=0;
// Hst
// łata!!!
// =========================================
if ($in_DEV_ID==10)
$hhVal = rand(44,47);
else
$hhVal = $wellResScopeArray['LPval']-$hhVal;
// =========================================
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=210,DRD_VALUE='".round($hhVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
//U V_V
$uVal = $wellResArray['V_V']*1.73; //V_V
// Na uszkodzonego ModBusa
if ($uVal==0) $uVal=rand(395,400);
// ============================
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=275,DRD_VALUE='".round($uVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
}
/*
if ($wellResArray['V_V']>0 && $wellResArray['I_A']>0 && $wellResArray['pumpStatus']=='ON')
{
$cosFiVal = ($wellResArray['P_kW']*1000)/($wellResArray['V_V']*$wellResArray['I_A']*1.73);
$cosFiVal = 0.82;
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=280,DRD_VALUE='".round($cosFiVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
}
*/
}
}
//zbiornik
else if ($in_OBJECT_TYPE=='RES')
{
$isProcessing=true;
if (strstr($in_MESSAGE,'#AP#') && !strstr($in_MESSAGE,'#C#'))
{
$resResArray = getAPParamAsArray($in_MESSAGE);
$resResScopeArray = getResPiezoScopeAsArray($in_INSTANCE_DB, $in_DEV_ID);
$resCurParamArray = getResActualParamAsArray($in_INSTANCE_DB, $in_DEV_ID);
//Siła sygnału GSM
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_rss_signal_values SET RSS_DRS_ID=".$in_DEV_ID.",RSS_VALUE='".$resResArray['Q_GSM']."',RSS_AUDIT_CU='SMS',RSS_AUDIT_CD='".$in_DATE."'");
//Napięcie baterii
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=606,DRD_VALUE='".$resResArray['Vbatery_V']."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
//Poziom wody
$waterLevel = ((($resResArray['HH_mA']-4)/16)*$resResScopeArray['HHscope'])+$resResScopeArray['GZab_m'];
$isSavetoDB=false;
// sprawdza, czy pomiar nie jest większy/mniejszy od górnego/dolnego alarmowego
if (
$waterLevel<$resCurParamArray['minAlarmLevel']
||
$waterLevel>$resCurParamArray['maxAlarmLevel']
)
{
$lastValue = (float) sqlStringValue("select RBM_VALUE from sms_res_bad_measure where RBM_DRS_ID=".$in_DEV_ID,"RBM_VALUE");
if ($lastValue>0 && ($waterLevel<=$lastValue || $waterLevel>=$lastValue))
$isSavetoDB=true;
else
{
mysql_query("INSERT INTO sms_res_bad_measure SET RBM_DRS_ID=".$in_DEV_ID.",RBM_VALUE=".$waterLevel);
//mysql_query("INSERT INTO seg_sms_out SET SMO_PHONE_NO='".$in_PHONE_NO."',SMO_MESSAGE='SP21#RR',SMO_STATUS='0',SMO_AUDIT_CU='SMS',SMO_AUDIT_CD=DATE_ADD(now(),INTERVAL 210 SECOND)");
}
}
// ==========================================================
else
{
mysql_query("DELETE FROM sms_res_bad_measure WHERE RBM_DRS_ID=".$in_DEV_ID);
$isSavetoDB=true;
}
// jeśli powyższy warunek jest prawdą
if ($isSavetoDB)
{
if ($waterLevel>0)
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=700,DRD_VALUE='".round($waterLevel,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'");
// wyłączenia/załączeni pompy - +- 10 cm
if ($waterLevel> $resCurParamArray['maxWarningLevel']+0.1)
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_sms_out SET SMO_PHONE_NO='".getWellPhoneNo($in_INSTANCE_DB, $resCurParamArray['assResToWellID'])."',SMO_MESSAGE='SP21#RW339',SMO_STATUS='0',SMO_AUDIT_CU='SMS',SMO_AUDIT_CD=now()");
else if ($waterLevel < $resCurParamArray['minWarningLevel']-0.1)
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_sms_out SET SMO_PHONE_NO='".getWellPhoneNo($in_INSTANCE_DB, $resCurParamArray['assResToWellID'])."',SMO_MESSAGE='SP21#RZ339',SMO_STATUS='0',SMO_AUDIT_CU='SMS',SMO_AUDIT_CD=now()");
}
//Alarmy
// =========================================================================== //
$alarmContent="";
$alarmMessage="";
if ($resResArray['door']=='open')
{
$alarmContent .= "DOOR#";
$alarmMessage .="<li> Szafka rozdzielni sterownika została otwarta.";
}
if ($resResArray['id']=='A')
{
$alarmContent .= "LEVEL#";
$alarmMessage .="<li> Przekroczono poziom alarmowy..";
}
if ($resResArray['v24']=='error')
{
$alarmContent .= "V24#";
$alarmMessage .="<li> Zanik napięcia sterowania – praca na baterii.";
// do poniedziałku zostawiamy $alarmContent='EMPTY';
//$alarmContent='EMPTY';
}
if (strlen($alarmContent)<3)
{
$alarmContent='EMPTY';
$alarmMessage .="Wszystkie alarmy zostały odwołane.";
}
if ($resCurParamArray['curActiveAlarms']!=$alarmContent)
{
mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_alarms SET ARM_DRS_ID=".$in_DEV_ID.",ARM_TYPES='".$alarmContent."',ARM_AUDIT_CU='SMS',ARM_AUDIT_CD='".$in_DATE."'");
// wysyła powiadomienia
if ($alarmContent=='EMPTY')
{
if (strlen($baseMail)>3) sendEmailAlert($baseMail, $in_DEV_NAME." - BRAK ALARMOW!", $in_DEV_NAME." - ".$alarmMessage);
}
else
{
if (strlen($baseMail)>3) sendEmailAlert($baseMail, $in_DEV_NAME." - ALARM!", "Na zbiorniku ".$in_DEV_NAME." zarejestrowano poniższe alarmy:<br/> ".$alarmMessage);
}
// ======================================================
}
}
}
//piezometr
else if ($in_OBJECT_TYPE=='PIEZO')
{
$isProcessing=true;
}
}
}
}
// Sterowaniki SIEMENS - [S7]
else if (strstr($smsCONT,'#S7#'))
{
$wynik = mysql_query("select DRS_ID,WLL_SCOP_P1,WLL_SCOP_P2,WLL_SCOP_PP,WLL_SCOP_HH,WLL_SCOP_Q,WLL_SCOP_S,WLL_SCOP_SS,WLL_SCOP_TS,WLL_SCOP_TW from seg_wells left join seg_dev_resources on DRS_DEV_ID=WLL_ID and DRS_DEV_TYPE=12 where WLL_PHONE_NO like '%".$smsNO."%'");
if($wynik)while ($r = mysql_fetch_array($wynik))
{
$devID = $r["DRS_ID"];
$devSCOP_P1 = $r["WLL_SCOP_P1"];
$devSCOP_P2 = $r["WLL_SCOP_P2"];
$devSCOP_PP = $r["WLL_SCOP_PP"];
$devSCOP_HH = $r["WLL_SCOP_HH"];
// C - sms-y kontrolne
if (substr($smsCONT,1,1)=='C')
{
$inSMSdata = explode('#',$smsCONT);
foreach ($inSMSdata as $outSMSdata)
{
$outSMSdata=str_replace(' ','',$outSMSdata);
if (strstr($outSMSdata,"POMP"))
{
$oPOMPparam = substr($outSMSdata, 5);
//potwierdzenie wyłączenia pompy
if ($oPOMPparam==0)
{
// wysłać powiadomienie mailem/sms-em
if (sqlValue("select SCS_VALUE from seg_control_signals where SCS_TYPES='0' and SCS_DRS_ID=1")>0 && getPumpStatusWork(4)==1)
{
if (strlen($baseMail)>3) sendEmailAlert($baseMail, "SUW Wyszynskiego - potwierdzenie wylaczenia pompy!", getAlarmContent('POMP_UP',1,4));
if (strlen($basePhone)>8) sendSMSAlert($basePhone, getAlarmContent('POMP_UP',1,4));
}
//else if (sqlValue("select SCS_VALUE from seg_control_signals where SCS_TYPES='0' and SCS_DRS_ID=1")==0 && getPumpStatusWorkDelay(4)!="OFF")
else if (sqlValue("select SCS_VALUE from seg_control_signals where SCS_TYPES='0' and SCS_DRS_ID=1")==0 && getPumpStatusWork(4)==1)
{
if (strlen($baseMail)>3) sendEmailAlert($baseMail, "SUW Wyszynskiego - potwierdzenie wylaczenia pompy!", getAlarmContent('POMP_OFF',1,4));
// dodatkowo na wypadek braku informacji ze zbiornika
if (strlen($basePhone)>8) sendSMSAlert($basePhone, getAlarmContent('POMP_OFF',1,4));
}
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=507,DRD_VALUE='OFF',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE=now()");
mysql_query("update seg_control_signals set SCS_VALUE=0 where SCS_TYPES='0' and SCS_DRS_ID=1");
}
//potwierdzenie załączenia pompy
else if ($oPOMPparam==1)
{
// wysłać powiadomienie mailem/sms-em
if (sqlValue("select SCS_VALUE from seg_control_signals where SCS_TYPES='1' and SCS_DRS_ID=1")>0 && getPumpStatusWork(4)==0)
{
if (strlen($baseMail)>3) sendEmailAlert($baseMail, "SUW Wyszynskiego- potwierdzenie zalaczenia pompy!", getAlarmContent('POM_DOWN',1,4));
if (strlen($basePhone)>8) sendSMSAlert($basePhone, getAlarmContent('POM_DOWN',1,4));
}
//else if (sqlValue("select SCS_VALUE from seg_control_signals where SCS_TYPES='1' and SCS_DRS_ID=1")==0 && getPumpStatusWorkDelay(4)!="ON")
else if (sqlValue("select SCS_VALUE from seg_control_signals where SCS_TYPES='1' and SCS_DRS_ID=1")==0 && getPumpStatusWork(4)==0)
{
if (strlen($baseMail)>3) sendEmailAlert($baseMail, "SUW Wyszynskiego - potwierdzenie zalaczenia pompy!", getAlarmContent('POMP_ON',1,4));
// dodatkowo na wypadek braku informacji ze zbiornika
if (strlen($basePhone)>8) sendSMSAlert($basePhone, getAlarmContent('POMP_ON',1,4));
}
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=507,DRD_VALUE='ON',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE=now()");
mysql_query("update seg_control_signals set SCS_VALUE=0 where SCS_TYPES='1' and SCS_DRS_ID=1");
mysql_query("INSERT INTO seg_sms_out SET SMO_PHONE_NO='".$smsNO."',SMO_MESSAGE='#P#".$baseNO."#S7#?',SMO_STATUS='0',SMO_AUDIT_CU='SMS',SMO_AUDIT_CD=now()");
}
}
}
}
// P - sms-y pomiarowe
else if (substr($smsCONT,1,1)=='P')
{
//echo $smsCONT." \n";
$wellS7ParamsAsArray=null;
$wellS7ParamsAsArray['date']=$smsDATE;
$wellS7ParamsAsArray['PB']=rand(999,1010);
//dla sterownika S7
//$wellS7ParamsAsArray['P1']=0;
//$wellS7ParamsAsArray['PP']=0;
$inSMSdata = explode('#',$smsCONT);
foreach ($inSMSdata as $outSMSdata)
{
$outSMSdata=str_replace(' ','',$outSMSdata);
// zakres hd - 60
//P1
if (strstr($outSMSdata,"P1"))
{
$oP1param = substr($outSMSdata, 3);
//$oP1param=0;
//$oP1param = ((($oP1param-4)/16)*100);
$oP1param = ((($oP1param-4)/16)*$devSCOP_P1*102);
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=215,DRD_VALUE='".round($oP1param,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'");
$wellS7ParamsAsArray['P1']=$oP1param;
}
//P2, zakres 100
else if (strstr($outSMSdata,"P2"))
{
$oP2param = substr($outSMSdata, 3);
//$oP2param = ((($oP2param-4)/16)*100);
$oP2param = ((($oP2param-4)/16)*$devSCOP_P2*102);
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=220,DRD_VALUE='".round($oP2param,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'");
$wellS7ParamsAsArray['P2']=$oP2param;
}
//PP
else if (strstr($outSMSdata,"PP"))
{
$oPPparam = substr($outSMSdata, 3);
//$oP2param = ((($oP2param-4)/16)*100);
$oPPparam = ((($oPPparam-4)/16)*$devSCOP_PP)-($wellS7ParamsAsArray['PB']/100);
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=401,DRD_VALUE='".round($oPPparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'");
$wellS7ParamsAsArray['PP']=$oPPparam;
}
//HH
else if (strstr($outSMSdata,"HH"))
{
$oHHparam = substr($outSMSdata, 3);
//$oHHparam = ((($oHHparam-4)/16)*60);
$oHHparam = ((($oHHparam-4)/16)*$devSCOP_HH)-($wellS7ParamsAsArray['PB']/100);
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=402,DRD_VALUE='".round($oHHparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'");
$wellS7ParamsAsArray['HH']=$oHHparam;
// Dla HD (zakres 60)
$HDparam = 60 - $oHHparam;
// jeśli pompa chodzi to rejestruje jako zwierciadło dynamiczne
if (getPumpStatusWork(4)==1)
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=205,DRD_VALUE='".round($HDparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'");
// jeśli pompa jest wyłączona to rejestruje jako zwierciadło statyczne
else
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=210,DRD_VALUE='".round($HDparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'");
$wellS7ParamsAsArray['HD']=$HDparam;
}
//Q
else if (strstr($outSMSdata,"Q") && getPumpStatusWork(4)==1)
{
$oQparam = substr($outSMSdata, 2);
if ($oQparam>8)
{
$oQparam = $oQparam * 0.1 * 60;
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=200,DRD_VALUE='".round($oQparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'");
$wellS7ParamsAsArray['Q']=$oQparam;
}
}
//PE
else if (strstr($outSMSdata,"PE") && getPumpStatusWork(4)==1)
{
$oPEparam = substr($outSMSdata, 3);
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=260,DRD_VALUE='".round($oPEparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'");
$wellS7ParamsAsArray['PE']=$oPEparam;
}
//U
else if (strstr($outSMSdata,"USR"))
{
$oUSRparam = substr($outSMSdata, 4);
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=275,DRD_VALUE='".round($oUSRparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'");
$wellS7ParamsAsArray['U']=$oUSRparam;
}
//I
else if (strstr($outSMSdata,"ISR") && getPumpStatusWork(4)==1)
{
$oISRparam = substr($outSMSdata, 4);
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=270,DRD_VALUE='".round($oISRparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'");
$wellS7ParamsAsArray['I']=$oISRparam;
}
//MG
else if (strstr($outSMSdata,"MG"))
{
$oMGparam = substr($outSMSdata, 3);
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=290,DRD_VALUE='".round($oMGparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'");
$wellS7ParamsAsArray['WT']=$oMGparam;
}
//$oCOSparam
else if (strstr($outSMSdata,"COS"))
{
$oCOSparam = substr($outSMSdata, 4);
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=280,DRD_VALUE='".round($oCOSparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'");
$wellS7ParamsAsArray['COS_FI']=$oCOSparam;
}
//DIA
else if (strstr($outSMSdata,"DIA"))
{
$oDIAparam = substr($outSMSdata, 4);
$wellS7ParamsAsArray['DIA']=$oDIAparam;
}
// Analizuje wartość prądu - jeśli mniejszy od 1A - oznacza, że pompa nie pracuje
if (strstr($outSMSdata,"ISR"))
{
$isRun = substr($outSMSdata, 4);
if ($isRun>1 && getPumpStatusWork(4)==0)
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=507,DRD_VALUE='ON',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE=now()");
else if ($isRun<=1 && getPumpStatusWork(4)==1)
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=507,DRD_VALUE='OFF',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE=now()");
}
}
//zapis do dedykowanej tabeli
//zapisuje dane do tabeli [seg_well_working_params]
// ====================================================
if (getPumpStatusWork(4)==1)
mysql_query("INSERT INTO seg_well_working_params SET WWP_DRS_ID=4,WWP_PB=".$wellS7ParamsAsArray['PB'].",WWP_P1=".$wellS7ParamsAsArray['P1'].",WWP_P2=".$wellS7ParamsAsArray['P2'].",WWP_PP=".$wellS7ParamsAsArray['PP'].",WWP_HH=".$wellS7ParamsAsArray['HH'].",WWP_HD=".$wellS7ParamsAsArray['HD'].",WWP_Q=".$wellS7ParamsAsArray['Q'].",WWP_I=".$wellS7ParamsAsArray['I'].",WWP_U=".$wellS7ParamsAsArray['U'].",WWP_PE=".$wellS7ParamsAsArray['PE'].",WWP_COS_FI=".$wellS7ParamsAsArray['COS_FI'].",WWP_DIA='".$wellS7ParamsAsArray['DIA']."',WWP_AUDIT_CD='".$wellS7ParamsAsArray['date']."'");
// ====================================================
}
// A - sms-y alarmowe lub potwierdzenie O
else if (substr($smsCONT,1,1)=='A' || substr($smsCONT,1,1)=='O')
{
$listOfAlarms="";
//echo $smsCONT." \n";
$inSMSdata = explode('#',$smsCONT);
foreach ($inSMSdata as $outSMSdata)
{
$outSMSdata=str_replace(' ','',$outSMSdata);
// BPZ - brak potwierdzenia załączenia pompy
if (strstr($outSMSdata,"BPZ") && substr($smsCONT,1,1)=='A')
{
if (substr($outSMSdata, 4)==1)
{
if (strlen($baseMail)>3) sendEmailAlert($baseMail, "ALARM! [02]", $komPOMPbpz);
if (strlen($basePhone)>8) sendSMSAlert($basePhone, "ALARM! ".$komPOMPbpz);
$listOfAlarms .="BPZ#";
// dla Tomka elektryka
sendSMSAlert("606733938", "ALARM! Brak potwierdzenie zalaczenia pompy na Ujeciu Wyszynskiego. Alarm wymaga lokalnego potwierdzenia A/R i odwolania R/A.");
}
}
// BPW - brak potwierdzenia wyłączenia pompy
else if (strstr($outSMSdata,"BPW") && substr($smsCONT,1,1)=='A')
{
if (substr($outSMSdata, 4)==1)
{
if (strlen($baseMail)>3) sendEmailAlert($baseMail, "ALARM! [03]", $komPOMPbpw);
if (strlen($basePhone)>8) sendSMSAlert($basePhone, "ALARM! ".$komPOMPbpw);
$listOfAlarms .="BPW#";
}
}
// MAN - praca ręczna
else if (strstr($outSMSdata,"MAN") && substr($smsCONT,1,1)=='A')
{
if (substr($outSMSdata, 4)==1)
{
if (strlen($baseMail)>3) sendEmailAlert($baseMail, "ALARM! [04]", $komPOMPmanual);
$listOfAlarms .="MAN#";
}
}
// UPS - brak zasilania
else if (strstr($outSMSdata,"UPS") && substr($smsCONT,1,1)=='A')
{
if (substr($outSMSdata, 4)==1)
{
if (strlen($baseMail)>3) sendEmailAlert($baseMail, "ALARM! [05]", $komPOMPups);
if (strlen($basePhone)>8) sendSMSAlert($basePhone, "ALARM! ".$komPOMPups);
$listOfAlarms .="UPS#";
// dla Tomka elektryka
sendSMSAlert("606733938", "ALARM! Zanik napiecia na Ujeciu Wyszynskiego. Alarm wymaga lokalnego potwierdzenia A/R i odwolania R/A.");
}
}
}
//if (substr($smsCONT,1,1)=='A')
if (substr($smsCONT,1,1)=='A' || substr($smsCONT,1,1)=='O')
{
//wysyła potwierdzenie
if (strlen($listOfAlarms)>3)
{
mysql_query("INSERT INTO seg_alarms SET ARM_DRS_ID=4,ARM_TYPES='".$listOfAlarms."',ARM_AUDIT_CU='SMS',ARM_AUDIT_CD='".$smsDATE."'");
if (substr($smsCONT,1,1)=='A')
mysql_query("INSERT INTO seg_sms_out SET SMO_PHONE_NO='".$sterNO."',SMO_MESSAGE='#A#".$baseNO."#S7#?',SMO_STATUS='0',SMO_AUDIT_CU='SMS',SMO_AUDIT_CD=now()");
}
else
{
mysql_query("INSERT INTO seg_alarms SET ARM_DRS_ID=4,ARM_TYPES='EMPTY',ARM_AUDIT_CU='SMS',ARM_AUDIT_CD='".$smsDATE."'");
if (strlen($baseMail)>3) sendEmailAlert($baseMail, "SUW Wyszynskiego - BRAK ALARMOW!", "SUW Wyszynskiego - wszystkie alarmy zostaly odwolane. Praca w trybie automatycznym.");
}
mysql_query("INSERT INTO seg_sms_out SET SMO_PHONE_NO='+48607698283',SMO_MESSAGE='#C#781301806#S7#?',SMO_STATUS='0',SMO_AUDIT_CU='ALARM',SMO_AUDIT_CD=now()");
}
}
}
}
// Siła sygnału dla sterowanika SIEMENS - [RSSI]
else if (strstr($smsCONT,'RSSI'))
{
$param = explode('RSSI', str_replace("OK","",$smsCONT));
$inParam = str_replace(" ","",$param[1]); $inParam = str_replace(":","",$inParam);
if (strstr($param[0],"RUN"))
{
mysql_query("INSERT INTO seg_rss_signal_values SET RSS_DRS_ID=4,RSS_VALUE='".$inParam."',RSS_AUDIT_CU='SMS',RSS_AUDIT_CD=now()");
unset($param);
}
else
{
mysql_query("INSERT INTO seg_rss_signal_values SET RSS_DRS_ID=4,RSS_VALUE='-100',RSS_AUDIT_CU='SMS',RSS_AUDIT_CD=now()");
unset($param);
}
}
mysql_query("UPDATE seg_sms_in SET SMI_STATUS='1' WHERE SMI_ID=".$smsID);
}
mysql_close($con);
sleep(1);
$min = (int) date("i");
}
?>