Hallo Leute,
ich habe ein Skript angepasst:
Ein shelly i4 löst eine Alexa Routine aus mit Hilfe des Alexa Skills: URL Routine Trigger
Der shelly kann somit alles auslösen, was ihr als Routine in Alexa speichert und somit alle Alexa kompatiblen Geräte steuern.
Das ganze funktioniert natürlich nicht lokal: ( Bei mir liegt eine Verzögerung von ca. 10 Sekunden vor)
Falls ihr eine bessere Lösungsmöglichkeit habt um mit shellys alle Alexa-kompatiblen Geräte zu steuern, lasst es mich wissen.
Vorgehensweise:
1. Alexa Skill - URL Routine trigger aktivieren
/https://www.virtualsmarthome.xyz/url_routine_trigger/ oder in Alexa Skills suchen (Alexa APP)
2. Auf der Seite des Skills Trigger anlegen. Man muss nur einen Namen eingeben und speichern und erhält dann eine "url"
Die Url mit Trigger URL with JSON response kopieren
Es wird automatisch der Trigger mit eurem erstellten Namen in Alexa als Gerät erkannt. Ihr könnt diesen als Trigger für Alexa Routinen nutzen.
Erstellt gleich 3 Trigger für das Skript bei Wunsch
3. Im Quellcode des Skripts gebt ihr die kopierte "url" bei den config Daten ein :
ipsp für single push
ipdp für double push
iplp für longpush
Wenn es jemand ausprobieren möchte, wäre ich interessiert wie groß die Verzögerung bei Euch ist.
Eventuell hat ja jemand Ideen das zu optimieren.
/**
* @copyright shelly-tools contributors
* @license GNU Affero General Public License (https://www.gnu.org/licenses/agpl-3.0.de.html)
* @authors https://github.com/shelly-tools/shelly-script-examples/graphs/contributors
*
* activate with shellys all alexa compatible devices (routines)
*
*/
// CONFIG START
// ipsp , ipdp, iplp are virtuell adresses from Alexa Skill: URL Routine trigger
let REMOTE = {
ipsp: 'https://www.virtualsmarthome.xyz/url_routine_trigger/activate.php?trigger=&response=json',
ipdp: 'https://www.virtualsmarthome.xyz/url_routine_trigger/activate.php?trigger=&response=json',
iplp: 'https://www.virtualsmarthome.xyz/url_routine_trigger/activate.php?trigger=&response=json',
input: 0, // ID from the push button: 0 for Shelly Plus 1 / Plus 1 PM or 0,1,2 or 3 for the Shelly I4.
};
// CONFIG END
// add an evenHandler for button type input and various push events
Shelly.addEventHandler(
function (event, user_data) {
//print(JSON.stringify(event));
if (typeof event.info.event !== 'undefined') {
if (event.info.event === 'single_push' && event.info.id === REMOTE.input) {
Shelly.call(
"http.get", {
url: REMOTE.ipsp
},
function (response, error_code, error_message, ud) { },
null
);
} else if (event.info.event === 'double_push' && event.info.id === REMOTE.input) {
Shelly.call(
"http.get", {
url: REMOTE.ipdp
},
function (response, error_code, error_message, ud) { },
null
);
} else if (event.info.event === 'long_push'&& event.info.id === REMOTE.input) {
Shelly.call(
"http.get", {
url: REMOTE.iplp
},
function (response, error_code, error_message, ud) { },
null
);
} else {
return true;
}
} else {
return true;
}
},
);
Alles anzeigen