Koukaam NETIO-230B unter RasPi

Hallo,
Ich habe dieses Skript hier im Forum (http://www.ip-symcon.de/forum/threads/16565-Koukaam-NETIO-230B?highlight=NETIO-230B) versucht auf dem RasPi zum laufen zu bringen.

Es funktioniert im ersten Ansatz schon ganz gut (Schalten funktioniert).
Jedoch bekomme ich bei jeder Ausführung bzw. Schaltung folgende Fehlermeldungen für jeden Port:

Result für ScriptID #20005: Parameter type of Value does not match in /usr/share/symcon/scripts/20005.ips.php on line 52

Es scheint an den Variablen für den Status zu liegen ich sehe nur den Fehler nicht …


<?
$netIO = "xxx.xxx.xxx.xxx"; // IP Adresse NetIO
$name = "xxx"; // Username
$pw = "xxx"; // Passwort
$varID = array(23690 /*[Devices\NetIO_1\Port 1]*/,
					59143,
					58280 /*[Devices\NetIO_1\Port 3]*/,
					44439); // VarID Port 1-4

if($_IPS['SENDER'] == "WebFront")
{
    SetValueBoolean($_IPS['VARIABLE'], $_IPS['VALUE']);
    $state = (int)GetValue(23690 /*[Devices\NetIO_1\Port 1]*/).(int)GetValue(59143 /*[Devices\NetIO_1\Port 2]*/).(int)GetValue(58280 /*[Devices\NetIO_1\Port 3]*/).(int)GetValue(44439 /*[Devices\NetIO_1\Port 4]*/); // Status Port 1-4
    SetPort($state);
}

if($_IPS['SENDER'] == "TimerEvent")
{
	GetPort();
}

function SetPort($state)
{
    global $netIO, $name, $pw, $varID;
    $setPort = "http://".$netIO."/tgi/control.tgi?login=p:".$name.":".$pw."&port=".$state;
	 $ch = curl_init($setPort);
	 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	 $request = curl_exec($ch);

    if(strip_tags($request) == "250 OK")
    {
        GetPort();
    }
    else
    {
        echo "NetIO-230 Fehler: ".strip_tags($request);  //Fehlermeldung
        return;
    }
}

function GetPort()
{
    global $netIO, $name, $pw, $varID;
    $portState = 'http://'.$netIO.'/tgi/control.tgi?login=p:'.$name.':'.$pw.'&port=list';
    $ch = curl_init($portState);
	 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	 $request = curl_exec($ch);

    $data = explode(" ", strip_tags($request));
    for($i=0; $i<count($varID); $i++)
     {
           SetValue($varID[$i], (boolean)$data[$i]); // Rückmeldung Port 1-4 und Status setzen
     }
}
?>

Das Skript funktioniert unter IPS/Windows ohne Probleme. Vielleicht hat ja jemand eine Idee oder kann mir die Tomaten von den Augen nehmen :slight_smile:

Gruß
Tobias

PS: Fehler gefunden, das Skript funktioniert so wie es soll :slight_smile: