so hat jetzt endlich geklappt
das licht wird zwar geschalten aber alexa sagt
„bei der kommunikation mit dem aneforderten skill ist ein fehler aufgetreten“
script
<?
function ExecuteAction($name, $id, array $slots, $locale, $sessionControllerId){
$roomname = strtolower(@$slots['rooms']);
$action = strtolower(@$slots['action']);
$device = strtolower(@$slots['device']);
$location = strtolower(@$slots['location']);
switch ($roomname) {
// KG
case 'abstellkeller':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
case 'wellness':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
case 'werkzeugkeller':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
// EG
case 'wohnzimmer':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
case 'esszimmer':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
case 'küche':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
case 'flurunten':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
case 'flur':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
case 'gästewc':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
case 'waschküche':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde in der '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
case 'eingang':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
// OG
case 'bad':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
case 'fluroben':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
case 'gästezimmer':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
case 'ankleidezimmer':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
case 'empore':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde auf der '.$roomname.' '.toggleLight($roomname, $action).'geschaltet')->ContinueSession($sessionControllerId);
break;
// DG
case 'büro':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet');
break;
case 'schlafzimmer':
return AlexaCustomSkillPlainTextResponse::create('Das Licht wurde im '.$roomname.' '.toggleLight($roomname, $action).'geschaltet');
break;
/*
case '':
$slots['_question'] = 'subject';
return AlexaCustomSkillPlainTextResponse::create(
'Ich kann Dir die Anzahl von Objekten nennen. Welche Art von Objekt interessiert Dich?'
)->ContinueSession($id, $slots);
break;
*/
default:
return AlexaCustomSkillPlainTextResponse::create(
'Ich kenne diesen Raum nicht. Du kannst zum Beispiel nach Küche, Wohnzimmer, Esszimmer, Schlafzimmer oder Bad fragen.'
)->ContinueSession($id, $slots);
break;
}
}
//FS20_SwitchMode(23793, /*büro licht*/ false);
//FS20_SwitchMode(33972, /*esszimmer licht*/ false);
//FS20_SwitchMode(42367, /*esszimmer spotts*/ false);
//FS20_SwitchMode(23074, /*schlafzimmer licht*/ false);
//FS20_SwitchMode(13855, /*wohnzimmer licht*/ false);
function toggleLight($roomname, $action)
{
if($roomname == "esszimmer"){
if(isset($slots['device'])){
if ($device == 'licht') {
if($action == "aus"){
FS20_SwitchMode(33972, /*esszimmer licht*/ false);
$status = "aus";
}
elseif($action == "ein"){
FS20_SwitchMode(33972, /*esszimmer licht*/ true);
$status = "ein";
}
elseif($action == "an"){
FS20_SwitchMode(33972, /*esszimmer licht*/ true);
$status = "ein";
}
}
elseif($device == 'spotts'){
if($action == "aus"){
FS20_SwitchMode(42367, /*esszimmer spotts*/ false);
$status = "aus";
}
elseif($action == "ein"){
FS20_SwitchMode(42367, /*esszimmer spotts*/ true);
$status = "ein";
}
elseif($action == "an"){
FS20_SwitchMode(42367, /*esszimmer spotts*/ true);
$status = "ein";
}
}
}
else{
if($action == "aus"){
FS20_SwitchMode(33972, /*esszimmer licht*/ false);
$status = "aus";
}
elseif($action == "ein"){
FS20_SwitchMode(33972, /*esszimmer licht*/ true);
$status = "ein";
}
elseif($action == "an"){
FS20_SwitchMode(33972, /*esszimmer licht*/ true);
$status = "ein";
}
}
}
elseif($roomname == "wohnzimmer"){
if($action == "aus"){
FS20_SwitchMode(13855, /*wohnzimmer*/ false);
$status = "aus";
}
elseif($action == "ein"){
FS20_SwitchMode(13855, /*wohnzimmer*/ true);
$status = "ein";
}
elseif($action == "an"){
FS20_SwitchMode(13855, /*wohnzimmer*/ true);
$status = "ein";
}
}
elseif($roomname == "schlafzimmer"){
if($action == "aus"){
FS20_SwitchMode(23074, /*schlafzimmer*/ false);
$status = "aus";
}
elseif($action == "ein"){
FS20_SwitchMode(23074, /*schlafzimmer*/ true);
$status = "ein";
}
elseif($action == "an"){
FS20_SwitchMode(23074, /*schlafzimmer*/ true);
$status = "ein";
}
}
elseif($roomname == "büro" || $roomname == "arbeitszimmer"){
if($action == "aus"){
FS20_SwitchMode(23793, /*büro*/ false);
$status = "aus";
}
elseif($action == "ein"){
FS20_SwitchMode(23793, /*büro*/ true);
$status = "ein";
}
elseif($action == "an"){
FS20_SwitchMode(23793, /*büro*/ true);
$status = "ein";
}
}
return $status;
}
debug
TXT: 19.03.2017 20:21:27.00 | Intent Name | ToggleLight
HEX: 19.03.2017 20:21:27.00 | Intent Name | 54 6F 67 67 6C 65 4C 69 67 68 74
TXT: 19.03.2017 20:21:27.00 | Locale | de-DE
HEX: 19.03.2017 20:21:27.00 | Locale | 64 65 2D 44 45
TXT: 19.03.2017 20:21:27.00 | Slots | {"action":"ein","rooms":"wohnzimmer","device":"licht"}
HEX: 19.03.2017 20:21:27.00 | Slots | 7B 22 61 63 74 69 6F 6E 22 3A 22 65 69 6E 22 2C 22 72 6F 6F 6D 73 22 3A 22 77 6F 68 6E 7A 69 6D 6D 65 72 22 2C 22 64 65 76 69 63 65 22 3A 22 6C 69 63 68 74 22 7D
TXT: 19.03.2017 20:21:27.00 | Session Controller | Not set
HEX: 19.03.2017 20:21:27.00 | Session Controller | 4E 6F 74 20 73 65 74
TXT: 19.03.2017 20:21:27.00 | Action | Execute default script
HEX: 19.03.2017 20:21:27.00 | Action | 45 78 65 63 75 74 65 20 64 65 66 61 75 6C 74 20 73 63 72 69 70 74
TXT: 19.03.2017 20:21:27.00 | Action Script | Executing action script 19716 (Alexa\ToggleLight\Action)
HEX: 19.03.2017 20:21:27.00 | Action Script | 45 78 65 63 75 74 69 6E 67 20 61 63 74 69 6F 6E 20 73 63 72 69 70 74 20 31 39 37 31 36 20 28 41 6C 65 78 61 5C 54 6F 67 67 6C 65 4C 69 67 68 74 5C 41 63 74 69 6F 6E 29
TXT: 19.03.2017 20:21:27.00 | Action Script | - Intent Name: ToggleLight
HEX: 19.03.2017 20:21:27.00 | Action Script | 2D 20 49 6E 74 65 6E 74 20 4E 61 6D 65 3A 20 54 6F 67 67 6C 65 4C 69 67 68 74
TXT: 19.03.2017 20:21:27.00 | Action Script | - Intent ID: 52337 (Alexa\ToggleLight)
HEX: 19.03.2017 20:21:27.00 | Action Script | 2D 20 49 6E 74 65 6E 74 20 49 44 3A 20 35 32 33 33 37 20 28 41 6C 65 78 61 5C 54 6F 67 67 6C 65 4C 69 67 68 74 29
TXT: 19.03.2017 20:21:27.00 | Action Script | - Slots: {"action":"ein","rooms":"wohnzimmer","device":"licht"}
HEX: 19.03.2017 20:21:27.00 | Action Script | 2D 20 53 6C 6F 74 73 3A 20 7B 22 61 63 74 69 6F 6E 22 3A 22 65 69 6E 22 2C 22 72 6F 6F 6D 73 22 3A 22 77 6F 68 6E 7A 69 6D 6D 65 72 22 2C 22 64 65 76 69 63 65 22 3A 22 6C 69 63 68 74 22 7D
TXT: 19.03.2017 20:21:27.00 | Action Script | - Locale: de-DE
HEX: 19.03.2017 20:21:27.00 | Action Script | 2D 20 4C 6F 63 61 6C 65 3A 20 64 65 2D 44 45
TXT: 19.03.2017 20:21:27.00 | Action Script | - Session Controller ID: 0 (Smart Home)
HEX: 19.03.2017 20:21:27.00 | Action Script | 2D 20 53 65 73 73 69 6F 6E 20 43 6F 6E 74 72 6F 6C 6C 65 72 20 49 44 3A 20 30 20 28 53 6D 61 72 74 20 48 6F 6D 65 29