Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //http://192.168.178.59/ds2.php?/json/zone/callScene&name=Schlafzimmer&groupID=1&sceneNumber=18
- //http://192.168.178.59/ds2.php?/json/event/raise&name=highlevelevent¶meter=id%3D1535231363
- $Server = "192.168.178.28";
- $tcpPort = "8080";
- $AppToken = "41d4e0a9...cd09688c";
- $Call = "";
- $i = 0;
- $arrContextOptions=array(
- "ssl"=>array(
- "verify_peer"=>false,
- "verify_peer_name"=>false,
- ),
- );
- $filename = 'sessionToken.txt';
- $debug = true;
- foreach($_GET as $key => $value){
- if ($i == 0)
- $Call = $Call.$key;
- elseif ($i == 1)
- $Call = $Call."?".$key."=".$value;
- else
- $Call = $Call."&".$key."=".$value;
- $i++;
- }
- if ($debug) echo "\$Call: ". $Call."<br>";
- if (file_exists($filename)) {
- if ((mktime() - filemtime($filename)) > 175) //sessionToken ist 180 Sekunden gültig
- {
- $sessionToken = fdSLogin(); // get a new digitalSTROM Sessiontoken
- if ($debug) {echo "New Sessiontoken: ".$sessionToken."<br>";}
- } else {
- $fp = fopen($filename , 'r');
- $sessionToken = fread($fp, filesize($filename));
- if ($debug) {echo "Reused Sessiontoken: ".$sessionToken."<br>";}
- fclose($fp);
- }
- } else {
- $sessionToken = fdSLogin(); // get the first digitalSTROM Sessiontoken
- if ($debug) {echo "First Sessiontoken: ".$sessionToken."<br>";}
- }
- $fp = fopen($filename , 'w');
- fwrite($fp, $sessionToken);
- fclose($fp);
- echo fdSGetJson($Call, $sessionToken);
- /************************************************* Funktionen definieren **********************************/
- /* digitalSTROM Login Prozedure Function */
- function fdSLogin(){
- global $Server;
- global $tcpPort;
- global $AppToken;
- global $arrContextOptions;
- if($sessionToken = file_get_contents("https://" . $Server . ":" . $tcpPort . "/json/system/loginApplication?loginToken=" . $AppToken, false, stream_context_create($arrContextOptions))){
- $sessionToken = json_decode($sessionToken);
- return $sessionToken->result->token;
- }
- else{
- return "<font color='red'><b>ERROR:</b> unable to get loginToken from digitalSTROM Server</font><br>";
- }
- }
- /* digitalSTROM get JSON content Function */
- function fdSGetJson($call, $sessionToken){
- global $Server;
- global $tcpPort;
- global $arrContextOptions;
- $sHelp;
- global $debug;
- $sHelp = "https://" . $Server . ":" . $tcpPort . $call . "&token=" . $sessionToken;
- if ($debug) echo "Call: ".$sHelp."<br>";
- if($jsonOutput = file_get_contents($sHelp , false, stream_context_create($arrContextOptions))){
- return $jsonOutput; // plain output
- }
- else{
- return "<font color='red'><b>ERROR:</b> unable to get JSON Content from digitalSTROM Server</font><br>";
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement