oczywiście że możesz. masz dwie możliwości kilka LK - dowolne wersje do jednego lk z modemem gsm
przy pomocy linku http - ogranicza to jednak do 1 i ten sam sms z każdego LK
http://192.168.1.100/stm.cgi?gsmsendsms --> ten url wyśle pierwszy sms pod wskazany tam numer (działa tak jak sms testowy)
przy pomocy strony pośredniczącej --> na serwerze zewnętrznym stawiasz bramkę sms która pobiera ustawienia twojego LK i podmienia nr tel oraz pierwszą wiadomość a następnie wysyła sms
strona taka może być w sieci wewnętrznej - zalecane ale i zewnętrznej - tu polecam vpny by zwiększyć bezpieczeństwo.
na każdym z klientów gsm wpisujesz url do tej strony i w zależności co tam sobie nadłubiesz - strona może sprawdzać stany - odczytywać parametry dowolnego LK oraz w zależności od nich budować treść sms który zostanie przesłany.
w mojej prywatnej sieci na bramie mam nakładkę GSM która współpracuje poprzez lokalny serwer z innymi sterownikami nie tylko LK
w sieciach klienckich mam kilka LK GSM (brak stałego interneta) i poprzez nie wysyłam statusy farm fotowoltaicznych (overload sieci) z sieci wpiętych do Internetu - oczywiście przy pomocy bramki php
przy pomocy linku http - ogranicza to jednak do 1 i ten sam sms z każdego LK
http://192.168.1.100/stm.cgi?gsmsendsms --> ten url wyśle pierwszy sms pod wskazany tam numer (działa tak jak sms testowy)
przy pomocy strony pośredniczącej --> na serwerze zewnętrznym stawiasz bramkę sms która pobiera ustawienia twojego LK i podmienia nr tel oraz pierwszą wiadomość a następnie wysyła sms
strona taka może być w sieci wewnętrznej - zalecane ale i zewnętrznej - tu polecam vpny by zwiększyć bezpieczeństwo.
na każdym z klientów gsm wpisujesz url do tej strony i w zależności co tam sobie nadłubiesz - strona może sprawdzać stany - odczytywać parametry dowolnego LK oraz w zależności od nich budować treść sms który zostanie przesłany.
w mojej prywatnej sieci na bramie mam nakładkę GSM która współpracuje poprzez lokalny serwer z innymi sterownikami nie tylko LK
w sieciach klienckich mam kilka LK GSM (brak stałego interneta) i poprzez nie wysyłam statusy farm fotowoltaicznych (overload sieci) z sieci wpiętych do Internetu - oczywiście przy pomocy bramki php
Kod:
<?php
error_reporting(E_ALL);
parse_str($_SERVER['QUERY_STRING']);
/** API Client //post msg format
function sms($x){ //usage sms('wiadomosc');
$ch = curl_init( 'http://api.url/lk/sms.php' ); //powiadomienie sms
curl_setopt($ch, CURLOPT_USERPWD, "user:password"); //haslo do api
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'tel=600600600&msg='.$x);
curl_exec($ch);
}
url post --> user:pass@api.url/lk/sms.php?tel=600600600&msg=xxx
**/
function ret_val($param){ //odzyt z tablicy dns
$reading = fopen('../conf.txt', 'r');
while (!feof($reading)) {
$line = fgets($reading);
if (stristr($line,$param)) {
return explode("=", $line)[1];
}
}
fclose($reading);
}
function r($url){
$e = rawurlencode($url);
$e = str_replace("%3F", "?", $e);
$e = str_replace("%26", "&", $e);
$e = str_replace("%3D", "=", $e);
$e = str_replace("%2F", "/", $e);
$e = str_replace("%7C", "%0A", $e); //nowa linia |
$e = str_replace("%C2%BA", "º", $e);
return $e;
}
function r_pl($q) { //usuwanie znakow specjalnych
$p = array("ą","ć","ę","ł","ń","ó","ś","ż","ź","Ą","Ć","Ę","Ł","Ń","Ó","Ś","Ż","Ź");
$z = array("a","c","e","l","n","o","s","z","z","A","C","E","L","N","O","S","Z","Z");
$q = str_replace($p, $z, $q);
$q = preg_replace("/[^a-z,?A-Z.0-9 º'|!=:\-\+@%]/", '', $q);
return $q;
}
function get($x, $url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $x.$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "user:pass"); //user:pass LK
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$d = curl_exec($ch);
$i = curl_getinfo($ch);
curl_close($ch);
return $d;
}
$x = 'http://'.ret_val('api.dns').':99'; //odczyt dns
if(isset($_GET['msg']) AND isset($_GET['tel'])){
$o = json_decode(get($x,'/json/gsm.json'));
if (!is_object($o)) {exit('access fatal error!');}
$s2=$o->gsmTexts[0]->off;
$s3=$o->gsmTexts[1]->on;
$s4=$o->gsmTexts[1]->off;
$s5=$o->gsmTexts[2]->on;
$s6=$o->gsmTexts[2]->off;
$s7=$o->gsmTexts[3]->on;
$s8=$o->gsmTexts[3]->off;
if(isset($_GET['tel']) ){$d = 'gsmnumber1='.$_GET['tel'].'&';}else {$d = 'gsmnumber1=600600600&';}
$_GET['msg'] = substr(r_pl($_GET['msg']),0,155).' ';
$url = '/stm.cgi?'.$d.'gsmsms1='.$_GET['msg'].'*'.$s2.
'&gsmsms2='.$s3.'*'.$s4.'&gsmsms3='.$s5.'*'.$s6.'&gsmsms4='.$s7.'*'.$s8.'&gsmsendsms';
if(array($o->gsmTexts)){get($x,r($url));
exit($_GET['tel'].' --> '.$_GET['msg']);}
}
if(isset($_POST['sms'])){
get($x,'/stm.cgi?gsmcmd=AT+CMGL="ALL",1'); //ALL UNREAD
sleep(1.5);
$o = get($x,'/json/gsm_per.json');
preg_match('/(?<=READ",)(.*)(?=OK)/', $o, $s);
if(empty($s[1])){exit('Brak nowych SMS!');}
$s = str_replace(array('\n \n','\n',','), array('"',',"',''), $s[1]);
preg_match_all('"([^\\"]+)"', $s, $e);
$s = join("\n",$e[1]);
exit($s);
}
if(isset($_POST['msg'])){
$o = json_decode(get($x,'/json/gsm.json'));
if (!is_object($o)) {exit('access fatal error!');}
$s2=$o->gsmTexts[0]->off;
$s3=$o->gsmTexts[1]->on;
$s4=$o->gsmTexts[1]->off;
$s5=$o->gsmTexts[2]->on;
$s6=$o->gsmTexts[2]->off;
$s7=$o->gsmTexts[3]->on;
$s8=$o->gsmTexts[3]->off;
if(isset($_POST['tel']) ){$d = 'gsmnumber1='.$_POST['tel'].'&';}else {$d = 'gsmnumber1=600600600&';}
$_POST['msg'] = substr(r_pl($_POST['msg']),0,155).' ';
$url = '/stm.cgi?'.$d.'gsmsms1='.$_POST['msg'].'*'.$s2.
'&gsmsms2='.$s3.'*'.$s4.'&gsmsms3='.$s5.'*'.$s6.'&gsmsms4='.$s7.'*'.$s8.'&gsmsendsms';
if(array($o->gsmTexts)){
get($x,r($url));
$a = array($_POST['tel'],"gsmsms1=");
$b = array("600600600","gsmsms1=".$_POST['tel'].".");
if($_POST['tel'] != "600600600"){ sleep(2); get($x,r(str_replace($a,$b,$url))); }
exit();
}
//exit(get($x,r($url)));
}
?>
<html dir='ltr' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr' lang="pl-PL">
<head>
<title>Bramka LK3 SMS</title>
<meta content='text/html; charset=utf-8' http-equiv='Content-Type'/>
</head>
<body>
<form action="sms.php" method="post">
<textarea type="text" id="sms" name="msg" rows="3" cols="40" maxlength="155" placeholder="Tresc wiadomosci SMS...">Treść wiadomości SMS
</textarea><br/>
Odbiorca: <select id="tel" name="tel">
<option value="600600600">bramka 1</option>
<option value="600600601">bramka 2 K</option>
</select>
<input type="submit" value="wyslij sms">
</form>
</body>
</html>
e-chata.hyzne.com | LK1 - sterowniki akwarystyki | LK2 - sterowniki ihome | LK3 - niezliczone ilości wersji/nakładek na farmach PV i nie tylko | LK4 - testy bezprzewodowe