Fritz!DECT 200 - Einbindung in IPS

Danke! hat schon gut funktioniert.

An /Aus geht!
Problem ist die Rückmeldung!
Kann ich das irgendwie unterdrücken?

Und die Skriptlaufzeit liegt bei ca.1300ms. Das finde ich sehr lang und nervt etwas.

Hier mein skript und ein paar screenshots:

 <?
## Variablen vorbereiten
$device=16;  // Fritzbox ID der DECT-Steckdose (herausgefunden mit Firebug)
{
# WEenn Kommando aus Webfront kommt
if ($IPS_SENDER == "WebFront")
{
    if($_IPS['VALUE'])
    {$wert=1;}
        else
    {$wert=0;}
}
else #Wenn von Event oder Script
{
    $wert_vor=getValue(50504 /*[Fritz!Box\Fritz!DECT200 #1\Status]*/ );
    if ($wert_vor)
    {$wert=0;}
       else
    {$wert=1;}
}

#Funktion ausführen

$Result=Fritzbox_DECT200_Switch($device,$wert);
echo $Result;
SetValue(50504 /*[Fritz!Box\Fritz!DECT200 #1\Status]*/ , $wert);
}

$Daten=Fritzbox_DECT200_Status();
print_r ($Daten);
//*********************************
//*********************************

function Fritzbox_DECT200_Status()
    {

    $SID=FritzBox_login();
    If ($SID <> "Fehler: Login fehlgeschlagen")
        {
        $Result=file("http://192.168.178.3/net/home_auto_query.lua?sid=". $SID. "&command=AllOutletStates&xhr=0");
        $Result=explode('" ,"', $Result[1]);

        $count=substr($Result[0],-1);
      for ($i = 1; $i <= $count; $i++)
            {
            $Daten[$i][]=explode('" : "', $Result[(3*$i)-3+1]);
            $Daten[$i][]=explode('" : "', $Result[(3*$i)-3+2]);
            $Daten[$i][]=explode('" : "', $Result[(3*$i)-3+3]);
            }
        }
    return($Daten);

    }

//******************************************************************

function Fritzbox_DECT200_Switch($device, $wert)
    {

    $SID=FritzBox_login();

    If ($SID <> "Fehler: Login fehlgeschlagen")
        {
        $ch = curl_init('http://192.168.178.3/net/home_auto_query.lua');
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, "sid={$SID}&command=SwitchOnOff&value_to_set=". $wert. "&id=". $device. "&xhr=1");
        $Result=curl_exec($ch);
        curl_close($ch);

        $Result=explode('" ,"', $Result);
        $ValueToSet=substr($Result[1],-1);

        // Abfrage, ob Schaltbefehl tatsächlich ausgeführt wurde
      $Value="-1";
        $Results=Fritzbox_DECT200_Status();


        Foreach ($Results as $key=>$Result)
                {
                //print_r($Result);
                If ($Result[0][1]==$device)
                   {
                   $Value=$Result[2][1];
                   }
                }

        If ($Value==$ValueToSet)
            {
            return "Alles OK";
            }
            else
            {
            return "Schaltbefehl nicht ausgeführt";
            }

        }

    }
//*********************************************************************


function FritzBox_login()
    {

    //$fritzbox_Username = 'xxxx';
    $fritzbox_Password = 'xxxx';

    $ch = curl_init('http://192.168.178.3/login_sid.lua');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $login = curl_exec($ch);

    $session_status_simplexml = simplexml_load_string($login);
    if ($session_status_simplexml->SID != '0000000000000000')
        {
       $SID = $session_status_simplexml->SID;
        }
    else
        {
       $challenge = $session_status_simplexml->Challenge;
       $response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $fritzbox_Password, "UCS-2LE", "UTF-8"));

         //curl_setopt($ch, CURLOPT_POSTFIELDS, "response={$response}&page=/login_sid.lua&username={$fritzbox_Username}");
       //$login = curl_exec($ch);

         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
         $sendlogin = curl_exec($ch);
       $session_status_simplexml = simplexml_load_string($sendlogin);

       if ($session_status_simplexml->SID != '0000000000000000')
           {
           $SID = $session_status_simplexml->SID;
           }
       else
           {
          $SID= "Fehler: Login fehlgeschlagen";
           }
        }
    curl_close($ch);
    return $SID;

    }
    
?>

Willst du gar a) kein feedback oder nur b) ein OK/Error haben?

a)
Ansatz aus #3 Dieses Threads versuchen.

b)
Mein Code sieht änhlihc aus, und ich bekomm folgendes zurück:
„OK“ oder „Schaltbefehl nicht ausgeführt“;
Müsste aber bei dir auch so sein, ich finde jedenfalls grad den Fehler nicht!
Hatte das selbe mal, und es lag irgenwie am Curl.

Da bekommst du eine kurze Meldung zurück!

Hallo…

die nachfolgenden Scripte laufen bei mir seit ca. 2 Wochen ohne Probleme:

  1. Fritz_function.ips.php:
<?

// Beispiel Fritz!DECT200 mit ID'=17 schalten:
//echo Fritzbox_DECT200_Switch(17, 1). "
";  // 17= die FritzBox-interne ID meiner zweiten DECT200; 0=aus 1=ein

// Beispiel Fritz!DECT200 mit ID'=17 Messwerte auslesen:
//$Daten=Fritzbox_DECT200_Energie(16,1);  // 16= die FritzBox-interne ID meiner ersten DECT200; 1=Abfrage 10min / 2=Abfrage 24h
//print_r ($Daten);

// Beispiel Fritz!DECT200 Status abfragen
//print_r(Fritzbox_DECT200_Status());

//*********************************
//*********************************

function Fritzbox_DECT200_Status()
	{

	$SID=FritzBox_login();
	If ($SID <> "Fehler: Login fehlgeschlagen")
		{
		$Result=file("http://fritz.box/net/home_auto_query.lua?sid=". $SID. "&command=AllOutletStates&xhr=0");
		$Result=explode('" ,"', $Result[1]);

		$count=substr($Result[0],-1);
      for ($i = 1; $i <= $count; $i++)
			{
			$Daten[$i][]=explode('" : "', $Result[(3*$i)-3+1]);
			$Daten[$i][]=explode('" : "', $Result[(3*$i)-3+2]);
			$Daten[$i][]=explode('" : "', $Result[(3*$i)-3+3]);
			}
		}
	return($Daten);

	}

//******************************************************************

function Fritzbox_DECT200_Switch($device, $wert)
	{

	$SID=FritzBox_login();
	$Value="-1";
	$ValueToSet="0";

	If ($SID <> "Fehler: Login fehlgeschlagen")
		{

		$ch = curl_init('http://fritz.box/net/home_auto_query.lua');
   	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, "sid={$SID}&command=SwitchOnOff&value_to_set=". $wert. "&id=". $device. "&xhr=1");
		$Result=curl_exec($ch);
		curl_close($ch);
	
		$Result=explode('" ,"', $Result);
		$ValueToSet=substr($Result[1],-1);
			
		// Abfrage, ob Schaltbefehl tatsächlich ausgeführt wurde
    	$Results=Fritzbox_DECT200_Status();


		Foreach ($Results as $key=>$Result)
				{
				//print_r($Result);
				If ($Result[0][1]==$device)
				   {
				   $Value=$Result[2][1];
				   }
				}

		}

	If ($Value==$ValueToSet)
		{
	  	return "Alles OK";
		}
	 else
		{
		return "Schaltbefehl nicht ausgeführt";
		}

	}
//*********************************************************************

function Fritzbox_DECT200_Energie($device, $Zeit)
	{
	$Daten="";
 	$SID=FritzBox_login();

	If ($SID <> "Fehler: Login fehlgeschlagen")
		{
		Switch($Zeit)
		   {
		   case 1:      // Abfrage der Messwerte der letzten 10 min
		   $Daten= file("http://fritz.box/net/home_auto_query.lua?sid=". $SID. "&command=EnergyStats_10&id=". $device. "&xhr=1");
			break;
			
			case 2:      // Abfrage der Messwerte der letzten 24h
			$Daten= file("http://fritz.box/net/home_auto_query.lua?sid=". $SID. "&command=EnergyStats_24h&id=". $device. "&xhr=1");
			break;
			}
			
		If ($Daten <>"")
			{
			$Daten=explode('" , "', $Daten[1]);
			$x=count($Daten)-1;
			$temp=explode('" ,"', $Daten[$x]);
			Foreach ($temp as $tem)
					{
					$Daten[$x]=$tem;
					$x++;
					}
			}
		  else
			{
			$Daten[0]="Keine Werte vorhanden";
			}
		return ($Daten);
		}
	}
/*
		Ergebnis bei EnergyStats_10:

		Array[0] = Anzahl der Leistungsmessungen (hier 60)
		Array[1] = Timer der Leistungsmessung (hier 10= alle 10s)
		Array[2]-Array[61] = Messwerte
		Array[62] = minimaler Messwert in Zeitspanne (60x10s = 10 min)
		Array[63] = maximaler Messwert in Zeitspanne (60x10s = 10 min)
		Array[64] = Durchschnitts Messwert in Zeitspanne
		Array[65] = Anzahl der Spannungsmessungen
		Array[66] = Timer der Spannungsmessung (hier 10 = alle 10s)
		Array[67]-Array[126] = Messwerte
		Array[127] = Status (an / aus)
		Array[128] = ID
		Array[129] = Verbinddungsstatus (hier 2= OK)
		Array [130]  RequestResult ????


		Ergebninis bei EnergyStats_24h:

		Array[0] = Anzahl der Leistungsmessungen (hier 96 = alle 15 min = 4*15*24)
		Array[1] = Timer der Leistungsmessung (hier 900= alle 900s = 15min)
		Array[2]-Array[97] = Messwerte
		Array[98] = minimaler Messwert in Zeitspanne (60x10s = 10 min)
		Array[99] = maximaler Messwert in Zeitspanne (60x10s = 10 min)
		Array[100 = Durchschnitts Messwert in Zeitspanne
		Array[101] = Status (an / aus)
		Array[102] = ID
		Array[103] = Verbinddungsstatus (hier 2= OK)
		Arry [104]  RequestResult ????

		*/



//============================================================================

function FritzBox_login()
	{

	$fritzbox_Username = 'xxx';
	$fritzbox_Password = 'xxxxx';

	$ch = curl_init('http://fritz.box/login_sid.lua');
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$login = curl_exec($ch);

	$session_status_simplexml = simplexml_load_string($login);
	if ($session_status_simplexml->SID != '0000000000000000')
		{
	   $SID = $session_status_simplexml->SID;
		}
	else
		{
	   $challenge = $session_status_simplexml->Challenge;
   	$response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $fritzbox_Password, "UCS-2LE", "UTF-8"));
	   curl_setopt($ch, CURLOPT_POSTFIELDS, "response={$response}&page=/login_sid.lua&username={$fritzbox_Username}");
   	$sendlogin = curl_exec($ch);
	   $session_status_simplexml = simplexml_load_string($sendlogin);

	   if ($session_status_simplexml->SID != '0000000000000000')
 		  {
   		$SID = $session_status_simplexml->SID;
		   }
   	else
   		{
	      $SID= "Fehler: Login fehlgeschlagen";
   		}
		}
	curl_close($ch);
	return $SID;

	}
?>
  1. Die Statusabfrage (getiggert alle 30s):
<?
include ("Fritz_function.ips.php");

$FritzDECT_ID[1]=16;
$FritzDECT_ID[2]=17;

$FritzDECTSwitch_IPS_ID[1]=43250 /*[Gewerke\Energie\Fritz-Box-Zwischenstecker\Fritz!DECT200_01_ID16 - Waschnmaschine\Waschmaschine (an/aus)]*/ ;
$FritzDECTSwitch_IPS_ID[2]=50373 /*[Gewerke\Energie\Fritz-Box-Zwischenstecker\Fritz!DECT200_01_ID17 - Trockner\Trockner (an/aus)]*/  ;

$FritzDECTWatt_IPS_ID[1]=29949 /*[Gewerke\Energie\Fritz-Box-Zwischenstecker\Fritz!DECT200_01_ID16 - Waschmaschine\aktuelle Leistung Waschmaschine]*/ ;
$FritzDECTWatt_IPS_ID[2]=32098 /*[Gewerke\Energie\Fritz-Box-Zwischenstecker\Fritz!DECT200_01_ID17 - Trockner\aktuelle Leistung Trockner]*/ ;


$Daten=Fritzbox_DECT200_Status();

Foreach ($FritzDECT_ID as $key=>$ID)
		{
		If ($Daten[$key][0][1]==$ID)
		   {
		   If ($Daten[$key][2][1] != GetValue($FritzDECTSwitch_IPS_ID[$key]))
		      {
		      SetValue($FritzDECTSwitch_IPS_ID[$key],$Daten[$key][2][1]);
		      }
     	   }
 		}

Foreach ($FritzDECT_ID as $key=>$ID)
		{
		$Daten=Fritzbox_DECT200_Energie($ID,1);
		$aktuelle_Leistung=substr($Daten[2],strripos($Daten[2],'" : "')+5);
		SetValue($FritzDECTWatt_IPS_ID[$key],$aktuelle_Leistung/100);
		}



 
?>
  1. Das Logging Script (getigget alle 5 min)
<?
include ("Fritz_function.ips.php");

$FritzDECT_ID[1]=16;
$FritzDECT_ID[2]=17;

$FritzDECT_IPS_ID[1]=31384 /*[Gewerke\Energie\Fritz-Box-Zwischenstecker\Fritz!DECT200_01_ID16 - Waschmaschine\Verbrauch Waschmaschine (Fritz!DECT 200 - ID 16) gesamt]*/ ;
$FritzDECT_IPS_ID[2]=46262 /*[Gewerke\Energie\Fritz-Box-Zwischenstecker\Fritz!DECT200_01_ID17 - Trockner\Verbrauch Trockner (Fritz!DECT 200 - ID 17) gesamt]*/ ;


Foreach ($FritzDECT_ID as $key=>$ID)
		{
		$Daten=Fritzbox_DECT200_Energie($ID,1);

	   // Wann wurde Variable das letzte mal upgedatet ?
      // Zeitdifferenz zwischen jetzt und last update in 10s intervallen
		$last_update_count= round(((time()-IPS_GetVariable($FritzDECT_IPS_ID[$key])['VariableUpdated'])/10));
      If ($last_update_count >60) // Ist update länger als 10min her (60 Intervalle x10s = 10min), dann...
			{
			$last_update_count = 60;
			}
		$last_update_count=$last_update_count+1; // Messwerte im Array $Daten beginnen im Key2


	   If (((int)substr($Daten[0],strripos($Daten[0],'" : "')+5)) != 0)  // nur wenn Dose online
			{
   		$Ws=0;
			For ($i=2; $i<=$last_update_count; $i++)
				{
			   $Ws=$Ws+(((int)substr($Daten[$i],strripos($Daten[$i],'" : "')+5))/100*10);  // /100 da Werte in 0,01 Watt , x10 da Intervall 10s - Ermittlung der Ws (Wattsekunden)
//				echo $i." - ". $Daten[$i]. "
";
				}
         SetValue($FritzDECT_IPS_ID[$key],GetValue($FritzDECT_IPS_ID[$key])+($Ws/3600/1000));  // speichern in kWh
			}
		 }


?>
  1. Das Aktionsscript für die Schaltervariable (an/aus):
<?
include ("Fritz_function.ips.php");


If ($_IPS['SENDER']== "WebFront")
	{
	Switch ($_IPS['VARIABLE'])
	   {
	   case 43250:
	     $Result=Fritzbox_DECT200_Switch(16, (int)$_IPS['VALUE']);
	      If ($Result== "Alles OK")
	         {
	         SetValue(43250 /*[Gewerke\Energie\Fritz-Box-Zwischenstecker\Fritz!DECT200_01_ID16 - Waschnmaschine\Waschmaschine (an/aus)]*/,$_IPS['VALUE']);
	         }
	        else
	         {
	         echo "Kommunikationsfehler";
	         }
	      break;
	    
	   case 50373:
	     $Result=Fritzbox_DECT200_Switch(17, (int)$_IPS['VALUE']);
	      If ($Result== "Alles OK")
	         {
	         SetValue(50373 /*[Gewerke\Energie\Fritz-Box-Zwischenstecker\Fritz!DECT200_01_ID17 - Trockner\Trockner (an/aus)]*/,$_IPS['VALUE']);
	         }
    		  else
	         {
	         echo "Kommunikationsfehler";
	         }
		   break;
    	}
	
	}
	

?>

Gruß

Swifty

Bekomme im Webfront Visualisierung nicht möglicg angezeigt!
Wie bekomme ich das weg?

In der Verwaltungconsole bekomme ich es angezeigt!#

EDIT! : Habe den fehler gefunden!

Es lag daran das ich in den Variablen eine eigene Aktion ausgewählt hatte!

So jetzt habe ich mir auch mal 3 von den Fritz!DECT 200 Dosen zugelegt und gleich Swifty’s Scripte 1:1 übernommen.

@Swifty

wenn Du nur alle 5 Minuten das logging startest, wie bekommst Du mit, wenn der Kühlschrank mal eben nur 20 Sekunden lang den Kompressor aktiviert hatte?
So wie ich das in Deinem Script erkennen kann, ermittelst Du die Zeit des letzten Updates der Variable. Und dann holst Du aus der Fritzbox alle zwischengespeicherten Werte, die im Abstand von 10 Sekunden abgelegt wurden und nimmst als Startzeit das letzte Update der Variable, richtig?

Das Webinterface der Fritzbox scheint ja alle 10 Sekunden einen neuen Wert anzuzeigen, also vermitlich dann auch abzulegen. Richtig?

… Treffer und versenkt … :smiley:

Schau mal in mein Skript „Fritz_function.ips.php“. Da habe ich die Werte, welche die Funktion „Fritzbox_DECT200_Energie()“ ausliest etwas kommentiert.

Gruß

Swifty

Über diese Forum habe ich den Zugang zu FRITZ!DECT gefunden. Vielen Dank dafür.

Die "lua"s liefern offenbar json zurück. Damit lässt sich der code etwas vereinfachen.

Beispiel:


$SID=FritzBox_login();
if ($SID <> "Fehler: Login fehlgeschlagen") {
    $status = file_get_contents("http://fritz.box/net/home_auto_query.lua?sid=". $SID. "&command=AllOutletStates&xhr=0");
	$jsonstatus = json_decode($status);
	$json_last_error=json_last_error();
	
	if($json_last_error!=JSON_ERROR_NONE) {
		switch($json_last_error)
		{
			case JSON_ERROR_DEPTH:
				echo ' - Maximale Stacktiefe überschritten';
				break;
			case JSON_ERROR_CTRL_CHAR:
				echo ' - Unerwartetes Steuerzeichen gefunden';
				break;
			case JSON_ERROR_SYNTAX:
				echo ' - Syntaxfehler, ungültiges JSON';
				break;
			case JSON_ERROR_NONE:
				echo ' - Keine Fehler';
				break;
		}
	} else {
		print_r($jsonstatus);
		echo "<br/>";
		echo "RequestResult: ".$jsonstatus->RequestResult;
		echo "<br/>";
		echo "Outlet_count: ".$jsonstatus->Outlet_count;
		for ($i=1; $i<=$jsonstatus->Outlet_count;$i++) {
			echo "<br/>";
			$DeviceID="DeviceID_".$i;
			echo "$DeviceID: ".$jsonstatus->$DeviceID;
			echo "<br/>";
			$DeviceConnectState="DeviceConnectState_".$i;
			echo "$DeviceConnectState: ".$jsonstatus->$DeviceConnectState;
			echo "<br/>";
			$DeviceSwitchState="DeviceSwitchState_".$i;
			echo "$DeviceSwitchState: ".$jsonstatus->$DeviceSwitchState;
		}
	}
} else {
	echo "Fehler: Login fehlgeschlagen";
}


Ich habe meine Dect200 vor über einem Monat bei Vo… bestellt und immer noch nicht erhalten, inzwischen sind die dort gar nicht mehr gelistet, mal schauen ob ich auch irgendwann hier aktiv am Thread teilnehmen „darf“…:o

wie ergänze ich denn das script am besten wenn ich mehrere z.B. 4 Dects mit energie und schaltzustand auslesen möchte.
will das nicht mit einzelnen scripten für jeden aktor lösen.
Hat einer einen Ansatz oder Idee
mfg
me

Jetzt hab ich doch glatt meine erste bestellte Dect 200 erhalten :).

Woher bekommt man denn die interne ID???
Die Aktor ID ist bei mir 12 stellig, nicht 2 stellig…?

Danke, Andreas

Ok die ID (bei mir auch 16) habe ich wie in den ersten Beiträgen beschrieben ermittelt.

Wenn ich das Statusskript ausführe erhalte ich jedoch:
Notice: Undefined variable: Daten in [Haus global\DECT 200\Fritz_function] on line 33
Und bei dem Befehl:
echo Fritzbox_DECT200_Switch(16, 0). "
";
erhalte ich : Schaltbefehl nicht ausgeführt

3 Variablen sind angelegt und entsprechend die IDs in den Skripten eingetragen.
Von der Fritzbox sind Benutzername und Kennwort eingetragen.
Die Funktion ist erfolgreich included.

Hat jemand noch eine Idee?

Vielen Dank!

Und habe den Fehler gefunden, die Benutzeranmeldung in der Fritzbox war nur über das Internet freigegeben.

@ matterazi:

… siehe #23 Skript Nr. 2 (Status) und Skript Nr. 3 (Energie)… Hier werden die Werte der jeweils eingetragenen Fritz!DECT 200 in einem Rutsch abgefragt.

Gruß

Swifty

hallo zusammen,

ich habe auch eine dect 200 steckdose und bin auf der suche nach einer möglichkeit die messwerte über ein script abzufragen, damit ich diese an munin übergeben kann. so bin ich auf dieses forum gestossen.
kann ich diese scripte aus post #23 auch ohne IPS benutzen? ich habe mal etwas rumprobiert, bekomme aber keinerlei ausgabe.


<?php
include ("Fritz_function.ips.php");

echo "Dect200 Werte:
";
echo Fritzbox_DECT200_Energie(16,1);
echo Fritzbox_DECT200_Status();
?>

kann mir da jemand helfen? ich kenne mich mit php nicht wirklich aus, eigentlich brauche ich nur ein script, das ich regelmässig über einen cron job laufen lassen kann, um an die werte zu kommen.

duc

@Swifty:
Danke dafür, funktioniert einwandfrei.

Sabl

Hallo Swifty,

Danke auch von meiner Seite für das Skipt. Funktioniert einwandfrei.

Ich nutze die DECT200 jetzt um den versteckten Stromfressern bei mir im Haushald auf die Schliche zu kommen. Mal schauen wann die Investition der Steckdose wieder drin ist:p

Gibt es auch eine Möglichkeit die Spannung in IPS einzubinden?
Über Hilfe diesbezüglich würde ich mich freuen,bin im Programmieren nähmlich nicht so bewandert.

Stefan

Hallo Swifty,

Danke für die Scripts, laufen einwandfrei.
somit kann ich endlich abfragen, ob die Waschmaschine bzw der Trockner schon fertig sind.
Kleiner Nebeneffekt, ich weiß, das die Dinger an Kohle verbraten => Ich steck die wohl besser nicht am Netzwerkschrank an, könnte kontraproduktiv sein… :rolleyes:

Eines noch:
ich habe das Funktionsscript angepasst, da ich im lokalen Netz keine User verwende, sondern nur den Zahlen login:

function FritzBox_login()
    {

    $fritzbox_Username = 'ips';
    $fritzbox_Password = '0000';

    $ch = curl_init('http://fritz.box/login_sid.lua');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $login = curl_exec($ch);

    $session_status_simplexml = simplexml_load_string($login);
    if ($session_status_simplexml->SID != '0000000000000000')
        {
       $SID = $session_status_simplexml->SID;
        }
    else
        {
       $challenge = $session_status_simplexml->Challenge;
       $response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $fritzbox_Password, "UCS-2LE", "UTF-8"));
#       curl_setopt($ch, CURLOPT_POSTFIELDS, "response={$response}&page=/login_sid.lua&username={$fritzbox_Username}");
       curl_setopt($ch, CURLOPT_POSTFIELDS, "response={$response}&page=/login_sid.lua");

       $sendlogin = curl_exec($ch);
       $session_status_simplexml = simplexml_load_string($sendlogin);

       if ($session_status_simplexml->SID != '0000000000000000')
           {
           $SID = $session_status_simplexml->SID;
           }
       else
           {
          $SID= "Fehler: Login fehlgeschlagen";
           }
        }
    curl_close($ch);
    return $SID;

    }

Moin Moin,

Könntet ihr die Scripts und das vorgehen , mal zusammenfassend beschreiben ?

Ich habe deine Scripte , eins zu eins kopiert und erhalte bei dem Fritz Function einen fehler on Line 33 :
dort steht :
return($Daten);
Wo habe ich was falsch gemacht ?

Ich versuche euch zu folgen aber es fällt echt schwer .Ich bin noch ein Noob , aber lernfähig :slight_smile:

Grüße
Marcel

Den ersten Fehler habe ich schon gefunden. das Script geht nun bis auf das ich nicht schalten kann , wenn ich über das Fritz home schalte dann sehe ich das aber über das Web geht es nicht ?

Hallo…

<Glaskugel an>
Wenn du mein Script Nr. 4 aus #23 verwendest, solltest du in den Case-Anweisungen (z.B. „case 43250:“ ) unbedingt die IDs deiner SchalterVariablen eintragen. Sonst geht es nicht. Ach ja, bei den Variablen sollte dieses Script natürlich als Aktionsscript hinterlegt sein … :slight_smile:
</Glaskugel aus >

Gruß

Swifty