Hallo zusammen
wer könnte mir behilflich sein eine Anel Hut IP Schalter ins IPS zu integrieren ?
Ich habe zwar das Script von hier schon versucht zu aktivieren bei mir. Aber leider ohne Erfolg
es ist ein Anel Hut mit Firmware 6.2
so sieht es aus:
<?
// Def
//$hutschiene_ip = „192.168.0.82“; // Schranke ANEL HUT
$hutschiene_ip = "192.168.0.82; //Test NET-Control
$schalter_nr = 1;
$listen_port=50100;
$user=„admin“;
$password=„anel“;
$port = 75;
$DO1 = 47271 /[AnelHUT\Nr. 1]/ ;
$DO2 = 43264 /[AnelHUT\Nr. 2]/;
$DO3 = 56907 /[AnelHUT\Nr. 3]/ ;
$DO4 = 23954 /[AnelHUT\Nr. 4]/ ;
$DO5 = 52289 /[AnelHUT\Nr. 5]/ ;
$DO6 = 20310 /[AnelHUT\Nr. 6]/ ;
$DO7 = 32843 /[AnelHUT\Nr. 7]/ ;
$DO8 = 10102 /[AnelHUT\Nr. 8]/ ;
$TS = 0 /* Schalter ist Taster*/;
// Global
$object = IPS_GetObject($IPS_SELF);
// auslesen
if($IPS_SENDER == „Execute“)
{
//aktualisieren
$out = auslesen_in_array($hutschiene_ip,$listen_port,$port);
$parentID = $object[‚ParentID‘];
$ac = IPS_GetObject($parentID);
SetValue($DO1, $out["surge"][1]["state"]);
IPS_SetName($DO1, $out["surge"][1]["name"]);
SetValue($DO2, $out["surge"][2]["state"]);
IPS_SetName($DO2, $out["surge"][2]["name"]);
SetValue($DO3, $out["surge"][3]["state"]);
IPS_SetName($DO3, $out["surge"][3]["name"]);
SetValue($DO4, $out["surge"][4]["state"]);
IPS_SetName($DO4, $out["surge"][4]["name"]);
SetValue($DO5, $out["surge"][5]["state"]);
IPS_SetName($DO5, $out["surge"][5]["name"]);
SetValue($DO6, $out["surge"][6]["state"]);
IPS_SetName($DO6, $out["surge"][6]["name"]);
SetValue($DO7, $out["surge"][7]["state"]);
IPS_SetName($DO7, $out["surge"][7]["name"]);
SetValue($DO8, $out["surge"][8]["state"]);
IPS_SetName($DO8, $out["surge"][8]["name"]);
}
if($IPS_SENDER == „WebFront“ || $IPS_SENDER == „Switch“){
switch ($_IPS['VARIABLE'])
{
case $DO1:
$schalter_nr = 1;
break;
case $DO2:
$schalter_nr = 2;
break;
case $DO3:
$schalter_nr = 3;
break;
case $DO4:
$schalter_nr = 4;
break;
case $DO5:
$schalter_nr = 5;
break;
case $DO6:
$schalter_nr = 6;
break;
case $DO7:
$schalter_nr = 7;
break;
case $DO8:
$schalter_nr = 8;
break;
}
if($IPS_VALUE){
// schalter ein
schalter_schalten_ein($hutschiene_ip,$schalter_nr,$port,$user,$password);
}else{
// schalter aus
schalter_schalten_aus($hutschiene_ip,$schalter_nr,$port,$user,$password);
}
// aktualisieren
$out = auslesen_in_array($hutschiene_ip,$listen_port,$port);
$parentID = $object['ParentID'];
$ac = IPS_GetObject($parentID);
$temperatur = IPS_GetVariableIDByname("Temp", $ac["ObjectID"]);
SetValue($DO1, $out["surge"][1]["state"]);
IPS_SetName($DO1, $out["surge"][1]["name"]);
SetValue($DO2, $out["surge"][2]["state"]);
IPS_SetName($DO2, $out["surge"][2]["name"]);
SetValue($DO3, $out["surge"][3]["state"]);
IPS_SetName($DO3, $out["surge"][3]["name"]);
SetValue($DO4, $out["surge"][4]["state"]);
IPS_SetName($DO4, $out["surge"][4]["name"]);
SetValue($DO5, $out["surge"][5]["state"]);
IPS_SetName($DO5, $out["surge"][5]["name"]);
SetValue($DO6, $out["surge"][6]["state"]);
IPS_SetName($DO6, $out["surge"][6]["name"]);
SetValue($DO7, $out["surge"][7]["state"]);
IPS_SetName($DO7, $out["surge"][7]["name"]);
SetValue($DO8, $out["surge"][8]["state"]);
IPS_SetName($DO8, $out["surge"][8]["name"]);
if($TS){
// schalter wieder aus wenn TS gesetzt
schalter_schalten_aus($hutschiene_ip,$schalter_nr,$port,$user,$password);
}
}else{
// aktualisieren
$out = auslesen_in_array($hutschiene_ip,$listen_port,$port);
$parentID = $object[‚ParentID‘];
$ac = IPS_GetObject($parentID);
$temperatur = IPS_GetVariableIDByname(„Temp“, $ac[„ObjectID“]);
SetValue($DO1, $out["surge"][1]["state"]);
IPS_SetName($DO1, $out["surge"][1]["name"]);
SetValue($DO2, $out["surge"][2]["state"]);
IPS_SetName($DO2, $out["surge"][2]["name"]);
SetValue($DO3, $out["surge"][3]["state"]);
IPS_SetName($DO3, $out["surge"][3]["name"]);
SetValue($DO4, $out["surge"][4]["state"]);
IPS_SetName($DO4, $out["surge"][4]["name"]);
SetValue($DO5, $out["surge"][5]["state"]);
IPS_SetName($DO5, $out["surge"][5]["name"]);
SetValue($DO6, $out["surge"][6]["state"]);
IPS_SetName($DO6, $out["surge"][6]["name"]);
SetValue($DO7, $out["surge"][7]["state"]);
IPS_SetName($DO7, $out["surge"][7]["name"]);
SetValue($DO8, $out["surge"][8]["state"]);
IPS_SetName($DO8, $out["surge"][8]["name"]);
}
function schalter_schalten_ein($ip,$surge_no,$port,$user,$password,$state=1) {
$port = intval($port);
$surge_no = intval($surge_no);
if(!$ip || !$port || !strlen($password) || !$surge_no)
return false;
$cmd = (!$state ? „Sw_off“ : „Sw_on“).$surge_no.$user.$password."
";
// $fp = fsockopen(„udp://“.$ip, $port,$errno,$errstr);
$fp = fsockopen(„udp://“.$ip,$port);
if (!$fp) return false;
// echo ($cmd);
switch ($surge_no)
{
case 1:
fwrite($fp,„Sw_on1adminanel“);
break;
case 2:
fwrite($fp,„Sw_on2adminanel“);
break;
case 3:
fwrite($fp,„Sw_on3adminanel“);
break;
case 4:
fwrite($fp,„Sw_on4adminanel“);
break;
case 5:
fwrite($fp,„Sw_on5adminanel“);
break;
case 6:
fwrite($fp,„Sw_on6adminanel“);
break;
case 7:
fwrite($fp,„Sw_on7adminanel“);
break;
case 8:
fwrite($fp,„Sw_on8adminanel“);
break;
}
// fwrite($fp, $cmd);
fclose($fp);
return true;
}
function schalter_schalten_aus($ip,$surge_no,$port,$user,$password,$state=0) {
$port = intval($port);
$surge_no = intval($surge_no);
if(!$ip || !$port || !strlen($password) || !$surge_no)
return false;
$cmd = (!$state ? „Sw_off“ : „Sw_on“).$surge_no.$user.chr(0).$password.chr(0)."
";
// $fp = fsockopen(„udp://“.$ip, $port,$errno,$errstr);
$fp = fsockopen(„udp://“.$ip,$port );
if (!$fp) return false;
//echo $surge_no;
switch ($surge_no)
{
case 1:
fwrite($fp,"Sw_off1adminanel");
break;
case 2:
fwrite($fp,"Sw_off2adminanel");
break;
case 3:
fwrite($fp,"Sw_off3adminanel");
break;
case 4:
fwrite($fp,"Sw_off4adminanel");
break;
case 5:
fwrite($fp,"Sw_off5adminanel");
break;
case 6:
fwrite($fp,"Sw_off6adminanel");
break;
case 7:
fwrite($fp,"Sw_off7adminanel");
break;
case 8:
fwrite($fp,"Sw_off8adminanel");
break;
}
fclose($fp);
return true;
}
function auslesen_in_array($ip,$listen_port,$port) {
if(!$ip || !$port || !$listen_port)
return false;
$opts = array(‚socket‘ => array(‚bindto‘ => ‚0.0.0.0:‘.$listen_port));
$context = stream_context_create($opts);
$fp = stream_socket_client(„udp://“.$ip.":".$port, $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);
if (!$fp) {
echo $errstr;
return false;
}
//fwrite($fp, $cmd);
usleep(5000);
fwrite($fp, "wer da?
„);
$data = fread($fp,1024);
fclose($fp);
// echo $data;
// ANEL HUT STRING
// $surgeinfo = array_combine(array(„type“,„name“,„ip“,„mask“,„gateway“,„mac“,„surge1“,„surge2“,„surge3“,„surge4“,„surge5“,„surge6“,„surge7“,„surge8“,„disabled“,„http_port“, „io1“,„io2“,„io3“,„io4“,„io5“,„io6“,„io7“,„io8“,„temp“,„firm“,),explode(“:",trim($data)));
//ANEL NET_CONTROL STRING
$surgeinfo = array_combine(array(„type“,„name“,„ip“,„mask“,„gateway“,„mac“,„surge1“,„surge2“,„surge3“,„surge4“,„surge5“,„surge6“,„surge7“,„surge8“,„disabled“,„http_port“, „io1“,„io2“,„io3“,„io4“,„io5“,„io6“,„io7“,„io8“,„temp“,„firm“,„ver“,„power“,„exttemp“,„exthum“,„extbright“,„encrypt“,),explode(":",trim($data)));
foreach ($surgeinfo as $k=>$v) {
if (preg_match("/^surge(\d)$/i",$k,$regs)) {
$no = $regs[1];
$surgeinfo[„surge“][$no] = array_combine(array(„name“,„state“),explode(",",$v));
$surgeinfo[„surge“][$no][„disabled“] = ($surgeinfo[„disabled“] & pow(2,$no-1)) >> ($no-1);
unset($surgeinfo[$k]);
}
}
unset($surgeinfo[„disabled“]);
$surgeinfo[„mac“] = array_reduce(explode(".",$surgeinfo[„mac“]),create_function(’$a,$b’,‚return strtoupper((strlen($a) ? $a.":" : „“).($b>15 ? dechex($b) : „0“.dechex($b)));‘));
//echo json_encode($surgeinfo);
return $surgeinfo;
}
?>
was fehlt noch?