Ja es wird das alte Problem sein. Es ist auf Deutsch gestellt. Ich komme da einfach nicht weiter. Hier noch das Script.
<?
use Patami\IPS\System\IPS;
function Execute(Request $request)
{
// Get the subject slot
$subject = strtolower($request->slots->subject);
// Get the requested information
switch ($subject) {
case 'objekte':
case 'objekten':
$text = sprintf('Es sind %d Objekte vorhanden.', IPS::GetObjectCount());
break;
case 'bibliothek':
case 'bibliotheken':
$text = sprintf('Es sind %d Bibliotheken vorhanden.', IPS::GetLibraryCount());
break;
case 'module':
case 'modulen':
$text = sprintf('Es sind %d Module vorhanden.', IPS::GetModuleCount());
break;
case 'instanzen':
$text = sprintf('Es sind %d Instanzen vorhanden.', IPS::GetInstanceCount());
break;
case 'variablen':
$text = sprintf('Es sind %d Variablen vorhanden.', IPS::GetVariableCount());
break;
case 'skripte':
case 'skripten':
$text = sprintf('Es sind %d Skripte vorhanden.', IPS::GetScriptCount());
break;
case 'funktionen':
$text = sprintf('Es sind %d Funktionen vorhanden.', IPS::GetFunctionCount(0));
break;
case 'ereignisse':
case 'ereignissen':
$text = sprintf('Es sind %d Ereignisse vorhanden.', IPS::GetEventCount());
break;
case 'medien':
$text = sprintf('Es sind %d Medien vorhanden.', IPS::GetMediaCount());
break;
case 'links':
$text = sprintf('Es sind %d Links vorhanden.', IPS::GetLinkCount());
break;
case 'kategorien':
$text = sprintf('Es sind %d Kategorien vorhanden.', IPS::GetCategoryCount());
break;
case '':
// The subject slot was not set
// Ask the user for the object type
return AskResponse::CreatePlainText(
'Ich kann Dir sagen wie viele Objekte unterschiedlicher Typen im System vorhanden sind. ' .
'Zu welcher Art von Objekt willst Du Informationen haben?'
)->SetRepromptPlainText(
'Wie bitte?'
);
default:
// The subject slot was invalid
// Ask the user for the correct object type
return AskResponse::CreatePlainText(
'Diese Objektart kenne ich nicht. Was meintest Du?'
)->SetRepromptPlainText(
'Wie bitte?'
);
}
// Tell the user the requested number of objects
return TellResponse::CreatePlainText(
$text
)->SetSimpleCard(
'IP-Symcon Informationen',
$text
);
}]
Hi Fonzo ja du hast recht. Der Fehler wird von einem fehlendem „else“ fabriziert. Ich habe die Abfragen jetzt mit einem else beendet und siehe da, die Anfragen werden zu 100% mit meiner definierten Antwort beendet wenn es zu keinem Match kommt. Jetzt muss ich mir heute Abend mal das Interaction Modell vorknöpfen um zu sehen wo der Fehler liegt und warum die passenden Worte nicht raus gehen. Vielen Dank für die Hilfe !!
Hallo,
so habe mein Problem mit dem Fehler beim kopieren gefunden. Es lag am Browser. Edge hat die Probleme gemacht.
Jetzt gehen auch die Scripte die ich kopiert hatte auf anhieb.
Der Custom Skill funktioniert auch. Danke noch mal für die gute Anleitung. Jetzt kann es losgehen und einiges umzusetzen. Werden bestimmt noch einige Fragen kommen.
Habe mir letze Woche den Intents Temperatur zur abfragen der Garten und Wohnzimmer Temperatur angelegt. Hat auch gleich geklappt. Heute wollte ich das erweitern mit der Temperatur in der Küche, jetzt wird das Script bei der Küchentemperatur als ungültig bezeichnet. Die andern beiden Temperaturen laufen noch.
Das Script habe ich erweitert.
<?
function Execute(Request $request)
{
$tempwohn = GetValueFloat(19539 /*[Wohnzimmer\Temperatur\Wohnzimmertemperatur\WZ Temperatur]*/);
$tempküche = GetValueFloat(42269 /*[Küche\Heizung\Regler Küche\Küchen Temperatur]*/);
$tempaussen = GetValueFloat(24281 /*[Aussen\Temperatur\Aussentemperatur\Aussen Temperatur]*/);
$sensor = strtolower($request->slots->sensoren);
if($sensor != "")
{
if ($sensor == "wohnzimmer")
{
$text = "Im Wohnzimmer beträgt die Temperatur".$tempwohn."grad";
}
elseif ($sensor == "kueche")
{
$text = "In der Küche beträgt die Temperatur".$tempküche."grad";
}
elseif ($sensor == "garten")
{
$text = "Im Garten beträgt die Temperatur".$tempaussen."grad";
}
}
// Tell the user
return TellResponse::CreatePlainText(
$text
)->SetSimpleCard(
'Modus IP-Symcon',
$text
);
}
Was kommt denn von Amazon an? Wahrscheinlich greift einfach die Bedingung nicht, das kann man aber erst sagen ,wenn man weis was Amazon sendet. Auffällig ist das Du im Interaktion Modell alles kleinschreibst, Alexa sollte die Dinge aber eigentlich schon so verstehen wie sie geschrieben werden. Daher würde ich das höchstens als Alias setzten aber Küche, Wohnzimmer usw. gehört im Interaktion Modell groß geschrieben.
Du hast auch keine else Bedingung, für den Fall das keines der Bedingungen greift, definiert. Dann ist $text nicht definiert das erzeugt dann definitiv einen Fehler.
Du hast auch keine else Bedingung, für den Fall das keines der Bedingungen greift, definiert. Dann ist $text nicht definiert das erzeugt dann definitiv einen Fehler.
Kannst du mir mal hierfür ein Beispiel zeigen!
Das bei Küche nichts kam, habe ich gefunden, hatte einen Schreibfehler im Script. Mit der Großschreibung werde ich noch anpassen.
Hi,
ich weiß nicht ob ich ein grundlegendes Verständnisproblem habe oder mir nur der entscheidende Schritt fehlt.
Ich bin das Beispiel für den System Information Skill komplett durchgegangen bis auf den HelpIntent (brauche ich ja nicht zwangsläufig oder?). Im Test bereich auf der Developmentseite funktioniert es auch schon, ich bekomme die richtige Antwort angezeigt. Nun steht in der Anleitung ja nichts zum Bereich Publishing Information. Was muss ich nun weiter tun, um meinen Custom Skill auf meine Alexa zu bekommen, also wie bringe ich einen Custom Skill auf mein Echo Dot?
Hi,
habe nochmal weiter überlegt, finde aber nirgendwo einen Hinweis. Muss ich mich in der Alexa App mit dem Developer Account statt dem normalen Account einloggen? Wenn ja habe ich das Problem, dass meine Mobilfunknummer bereits mit meinem Standard Amazon Account verknüpft ist, ich kann mich also garnichtmehr mit einem anderen Account einloggen? Oder bin ich immernoch komplett auf dem Holzweg?
Gruß
EDIT:
Erledigt! Für alle die vor der gleichen Frage stehen: Die Alexa App muss mit dem Developer Account verknüpft werden. Falls die Alexa App schon mit eurem Amazon Account verknüpft ist könnt ihr einen Developer Account mit dem gleichen Nutzernamen (E-Mail) und Passwort anlegen, so hat es bei mir dann problemlos geklappt!
Großen Dank für das Modul, das macht richtig Spaß!
Nachdem ich die Temperatur Abfragen erfolgreich eingebunden habe, noch eine Frage. Wie habt ihr es gelöst das Alexa die Temperatur mit 19,4 ansagt und nicht mit 19_4. Wie kann ich ihr das Komma beibringen?
Hört sich sonst komisch an.
Eigentlich musst Du Alexa nichts beibringen wenn Du ihr 19,4 übergibst, dann sagt sie das auch so an. Beim ,0 schluckt sie die Dezimalstelle, das ist aber auch gut so, dann sagt sieht also es hat 19 Grad und nicht 19,0 Grad.
Der Fehler liegt bei Dir wohl darin, dass Du gar kein Komma übergibst, dann kann Alexa auch kein Komma ansagen.
Hallo,
zunächst vielen Dank für das Entwickeln und Bereitstellen des Moduls!
Leider erhalte ich beim Hinzufügen des Moduls als Instanz bei den Kern Instanzen eine Fehlermeldung. Des Weiteren wird die Instanz nicht korrekt erstellt.
Geht leider nicht anders, da ab 4.0 noch wichtige Funktionen hinzugekommen sind, unter anderem auch List und es schier unmöglich ist eine Abwärtskompatibilität auf Dauer aufrecht zu erhalten. Mit einem Update läuft es aber bestimmt, ich persönlich finde das sehr praktisch das Modul. Muss aber jeder für sich entscheiden ob sich deshalb ein Update lohnt, aber auch andere Module setzten inzwischen min 4.1 oder 4.2 voraus wenn diese z.B. Listen nutzen.
Na prima, im Skill musst Du als Default HTTPS auswählen und dort die IP-Symcon Connect Adresse bzw. eine URL eingeben unter der Dein IP-Symcon erreichbar ist.
gibt die IP-Symcon Connect Adresse aus, diese muss dann oben unter Default an Stelle von <IP Symcon Connect Adresse> eingetragen werden.
Der <Pfad> wird in der IO Instanz angegeben und dann unter Default entsprechend übernommen.
Vielen Dank auch für deine wirklich sehr detaillierte Anleitung auf braintower.de!!!
Wenn ich auf Amazon „Starte System Informationen“ eingebe, dann erhalte ich folgende Fehlermeldung:
„There was an error calling the remote endpoint, which returned HTTP 405 : Method not allowed“
Wenn ich zu Alexa „Starte System Informationen“ sage, erhalte ich folgende Antwort:
„Bei der Antwort des angefragten Skills ist ein Problem aufgetreten.“
Woran könnte es scheitern oder wie könnte ich das Problem eingrenzen?