Amazon Echo Skill & Modul

Hi Joachim,

hast du die aktuelle version des moduls installiert ?
wenn es die aktuelle version ist scheinst du eine variable mit einem defekten Custom Action Script zu haben!

Grüße
Dave

Hallo Dave,

hinter quasi jeder der Boolean-Variablen hängt ein solches Skript:

include ('f_Siemens-Logo.ips.php');

$LOGO_StatusID = 57343 /*[Erdgeschoss\LOGO Steuerung\LOGO Ausgang 06 Licht Dennis\Value]*/;
$LOGO_ID = 34989 /*[Siemens LOGO Erdgeschoss]*/;
$LOGO_SwitchID = 57758 /*[Erdgeschoss\LOGO Steuerung\LOGO NE 1/3 Licht Dennis]*/;

If (($_IPS['SENDER'] == "Variable") AND ($_IPS['EVENT'] == IPS_GetObjectIDByName("Variablen Status", $_IPS['SELF'])))
	{
	If ($_IPS['VALUE'] <> GetValueBoolean($LOGO_StatusID))
		{
		LogoTaster($LOGO_ID , $LOGO_SwitchID , 20);
		}
	}
elseif (($_IPS['SENDER'] == "RunScript"))
	{
	If ($_IPS['VALUE'] <> GetValueBoolean($LOGO_StatusID))
		{
		LogoTaster($LOGO_ID , $LOGO_SwitchID , 20);
		}
	}
elseif (($_IPS['SENDER'] == "Variable") AND ($_IPS['EVENT'] == IPS_GetObjectIDByName("LOGO Status", $_IPS['SELF'])))
	{
	If (GetValueBoolean($LOGO_StatusID) <> GetValueBoolean(IPS_GetParent ($_IPS['SELF'])))
		{
		SetValueBoolean(IPS_GetParent ($_IPS['SELF']), GetValueBoolean($LOGO_StatusID));
		}
	}
elseif ($_IPS['SENDER'] == "WebFront")
	{
	LogoTaster($LOGO_ID , $LOGO_SwitchID , 20);
	}

Warum das so „kompliziert“ sein muss: Hatte sich im Laufe der Zeit so ergeben. Läuft aber - mal abgesehen von der Warnmeldung - problemlos.
Modul ist selbstverständlich aktuell.

Worauf „achtet“ Dein Modul denn um einen möglichen Fehler zu identifizieren?

Joachim

Hi Joachim,

im prinzip hole ich mir an der stelle nur den ObjectType… leider scheint das hinterlegte Object „17101“ nicht zu existieren, somit kriege ich keinen ObjectType :frowning:

Grüße
Dave

…wofür steht denn die „17101“?[emoji848]

eine ObjectID in Symcon

" Objekt #17101 existiert nicht "

Hallo Dave,

das hatte ich mir bereits gedacht… :wink:

Da diese ja aber nicht existiert, ist es schwer für mich den Fehler nachzuvollziehen. Sollte ich etwas löschen? IPS neu starten? Woher könnte diese Objekt-ID kommen?

Joachim

Lass mal folgendes Script laufen und schau ob diese ID drin ist.
$parentID ist die ID der Instanz

$parentID = 28478;

	$ids = GetChildrenIDsRecursive($parentID);
	
	print_r($ids);
	
	
function GetChildrenIDsRecursive($parentID, $appendIDs = Array()) {
        foreach(IPS_GetChildrenIDs($parentID) as $childID) {
            if(IPS_GetObject($childID)['ObjectType'] == 0 /* Category */) {
                $appendIDs = GetChildrenIDsRecursive($childID, $appendIDs);
            } else {
                $appendIDs[] = $childID;
            }
        }
        return $appendIDs;
    }

Hallo 1007,

vielen Dank für das Skript, jedoch bin ich etwas verunsichert: Welche Instanz ID soll da rein? Die vom IQL4Symcon?
Diese bringt folgendes Ergebnis:

Array
(
    [0] => 27591
    [1] => 52524
    [2] => 57004
    [3] => 49948
    [4] => 57923
    [5] => 26626
    [6] => 52246
    [7] => 20976
)

Irgendwoher muss ja der Verweis auf die ominöse Obejekt-ID 17101 stecken…

Ein Neustart von IPS indes brachte keine Änderung.

Joachim

Ja die von IQL4Symcon. Das sollten alle deine erstellten Links sein ?

…bisher ja…

…ich habe mal folgendesSkript „missbraucht“ um 17101 zu finden:

$search = Array('$IPS_SENDER', '$IPS_SELF', '$IPS_VALUE', '$IPS_VARIABLE', '$IPS_INSTANCE',
                      '$IPS_EVENT', '$IPS_TRIGGER', '$IPS_OLDVALUE', '$IPS_TARGET', '$IPS_LINK',
                     '$IPS_REMOTE_ADDR', '$IPS_DIRECTION', '$IPS_DURATION', '$IPS_COMPONENT',
                     '$IPS_REMOTE_HOST', '$IPS_STATUS', '$IPS_STATUSTEXT', '17101');


$eventIDs = IPS_GetEventList();
$found = false;
$anzahl = 0;

foreach($eventIDs as $id)
{
    if ($id != $_IPS['SELF'])
   {
      $event = IPS_GetEvent($id);
      $data = $event['EventScript'];
      foreach($search as $befehl)
      {
         if(!(strpos($data, $befehl) === false))
            {
            $found = true;
            $anzahl++;
            echo "Event: ".IPS_GetName($id)." #".$id.", Systemvariable: ".$befehl.", gefunden.
";
         }
      }
    }
}

echo "\rEs sind noch ".$anzahl." Änderungen bei den Events zu machen!

";

$scriptIDs = IPS_GetScriptList();
$found = false;
$anzahl = 0;

foreach($scriptIDs as $id)
{
    if (($id != $_IPS['SELF']) AND ($id != "12345"))  //Hier kann man Ausnahmen definieren
   {
       $script = IPS_GetScript($id);
      $data = file_get_contents(IPS_GetKernelDir()."/scripts/".$script['ScriptFile']);
      foreach($search as $befehl)
      {
         if(!(strpos($data, $befehl) === false))
            {
            $found = true;
            $anzahl++;
            echo "Script: ".IPS_GetName($id)." #".$id.", Systemvariable: ".$befehl.", gefunden.
";
         }
      }
    }
}
echo "\rEs sind noch ".$anzahl." Änderungen bei den Scripts zu machen!

";

Keine Treffer…

Joachim

Da du ja erst do wenig hast wuerde ich erst mal alle irgendwo hinschieben so das es keinen
Link gibt und dann Geraete suchen.
Und dann einzeln reinziehen wieder um rauszukriegen bei welchem Link das passiert.
Fehler kommt wohl immer beim Geraete suchen.

Danke hat geklappt.

[=Mastershort;318812]Du machst dir einfach ein Skript auf das du den Link setzt! Mit folgendem Code.

<?

IPSUtils_Include(„Plugwise_Include.ips.php“,„IPSLibrary::app::hardware::Plugwise“);

if ($_IPS[‚VALUE‘] == true)
{

circle_on_off("000D6F0000xxxxxxx",true);  


}

Hallo,

ich erhalte seit ich den Skill benutze folgenden Fehler:

[26-Feb-2017 17:13:39 Europe/Berlin] PHP Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set ‚always_populate_raw_post_data‘ to ‚-1‘ in php.ini and use the php://input stream instead. in Unknown on line 0

Hat jemand einen Tipp woran das liegt, oder was ich genau in die INI schreiben muss damit der Fehler verschwindet?

Kann es ein , dass du auf PHP7 bist ?

Nö, eigentlich nicht. Habe nie ein Update auf 7 gemacht.

Gesendet von meinem SM-T805 mit Tapatalk

Hi,

ich habe den ersten HM-Rolladenaktor eingebunden: Variable „Direction“ mit dem Shutter-Profil versehen -> Aktor taucht auch in der Liste von Alexa auf. In Klammern steht aber „Offline“.

Ist das normal oder fehlt mir hier etwas?

Gruß

Jimmy

Hallo Dave,
wäre es möglich in der Alexa App anstatt der Anzeige

No further description

Die Anzeige
Symcon Script bzw. Symcon Variable zu erhalten,
also je nachdem mit was man verlinkt hat.

Noch besser wäre
Symcon ScriptID 25256 bzw. Symcon VariableID 33333

Ich finde das macht es geringfügig übersichtlicher vor allem wenn man noch andere Geräte wie z.B. HUE in der Alexa App hat.

Gruß
Giuseppe

Gib dem Link in IPS eine Beschreibung dann taucht deine Eingabe da auf.

Super Danke,
das wusste ich nicht.

Gruß
Giuseppe