Datenpunkt Wert direkt setzen

Link

Vorheriges Thema Nächstes Thema Kein Verzeichnis für dieses Thema  

Mit diesem PHP Skript können Sie direkt einen Wert dem Datenpunkt zuweisen:

 

Nach dem ersten auslösen dieses Skriptes muss der Benutzer "PHP_Control" im Server freigegeben werden.

 

 

 

 

<?php

 

 

                         $dp_Name = "2:RGB Wifi";     // Name aus "Konfiguration" - "Datenpunkte" - erste Spalte

                         $dp_Type = "RGB_LIGTH";                // Type  aus "Konfiguration" - "Datenpunkte" -  Spalte "Type"

                         $Attribute = "STATE";                // Attribute - unter "System" -  "Manuellen Steuerung"  unter dem DP sichtbar

                         $Attribute_Value = "1.0";        // Wert

                         $command = "Set_Attribute"; // nicht ändern

                         

                         

                         

                         $service_port = 2425;

                         $address = gethostbyname('localhost');

                         $socket = fsockopen("tcp://".$address, $service_port, $errno, $errstr, 2);

                         stream_set_timeout($socket, 5);

                         

                         if ($socket) {

                                 

                                 

                          $message = fread($socket, 1024);

                         

                          $reader = new XMLReader();

                          $reader->xml($message);

         

                                   while ( $reader->read() ) {

                                         if (  $reader->nodeType ==XMLReader::ELEMENT ) {

                                                    if($reader->name == 'res:security'){

                                                     $Random = $reader->readString() ;

                                                    }

                                         }

                                 }

                   

                         $Random_Key_Server = rand(0,100);

                         (int) $ValueKey = substr($Random, 3, 1).substr($Random, 1, 1).substr($Random, 6, 1).substr($Random, 7, 1).substr($Random, 0, 1);

                     $Response_Generated_Key = ((int)$ValueKey) * $Random_Key_Server;

                      $Key = '<request xsi:schemaLocation="/de/xsolution/xmladapter/extern/request file:/request.xsd" xmlns:mcom="/de/xsolution/xmladapter/extern/common" xmlns="/de/xsolution/xmladapter/extern/request" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><prefix>'.$Random_Key_Server.'</prefix><suffix>'.$Response_Generated_Key.'</suffix><user>PHP_Control</user><uuid>PHP_Control</uuid><noinit>true</noinit><getRequest_after_command>true</getRequest_after_command></request>';

                  $length=pack("n",strlen($Key));

 

                  fwrite($socket,$length.$Key,strlen($Key)+2);

               

             

                             $message = fread($socket, 1024);

 

                                 $Kommando = '<request xsi:schemaLocation="/de/xsolution/xmladapter/extern/request file:/request.xsd" xmlns:mcom="/de/xsolution/xmladapter/extern/common" xmlns="/de/xsolution/xmladapter/extern/request" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><timestamp>2011-09-29T21:59:11</timestamp><command><id>'.$Attribute.'</id><dataPoint><mcom:name>'.$dp_Name.'</mcom:name><mcom:type>'.$dp_Type.'</mcom:type></dataPoint><command>'.$command.'</command><parameter>'.$Attribute_Value.'</parameter></command><close_after_command>true</close_after_command><noinit>true</noinit></request>';

                                         

                                 $length=pack("n",strlen($Kommando));

                     fwrite($socket,$length.$Kommando,strlen($Kommando)+2);

 

                         }        

 

?>