Homey Web App (Soon)

Hi Uwe,
HomeyScript ist eigentlich nicht so schwer. Du brauchtst nur JavaScript-Kenntnisse und musst in der Homey-API-Beschreibung wühlen :grin:

Hier mal ein Beispiel. Ich prüfe damit mehrere Fenster und gebe einen Text zurück, der über Alexa ausgegeben wird. Der Flow ist als Favorit gespeichert und kann so direkt über Alexa aufgerufen werden.
Die Sktipte kann man als Flow-Bedingung verwenden (true/false-Rückgabe). Viel besser ist aber, dass man auch Flow-Tags erzeugen, im Skript füllen und im Flow weiter verwenden kann.

Das Skript:
grafik

// Fensterprüfung
let devices = await Homey.devices.getDevices();
let windowText = “”;
let currentText = “”;
let logText = “”;
let windowOpen = false;
_.some(devices, device => {
if(device.class == ‘sensor’)
{
if( device.capabilitiesObj &&
device.capabilitiesObj.alarm_contact &&
device.capabilitiesObj.alarm_contact.value )
{
currentText = “”;
if( device.name == “Fenster Gästezimmer”)
currentText = “Gästezimmer”;
if( device.name == “Fenster Büro”)
currentText = “Büro”;
if( device.name == “Terrassentür”)
currentText = “Wohnzimmer”;
if( device.name == “Fenster Küche”)
currentText = “Küche”;
if( device.name == “Fenster Schlafzimmer”)
currentText = “Schlafzimmer”;
if( device.name == “Fenster Jugendzimmer”)
currentText = “Jugendzimmer”;
if(currentText != “”){
windowOpen = true;
if(windowText==“”)
windowText = currentText;
else
windowText = windowText + ", " + currentText;
}
}
}
});
if(windowOpen == true)
windowText = "Fenster geöffnet: " + windowText;
else
windowText = “Fenster geschlossen”;
console.log(windowText);
//Homey.logic.updateVariable( id = “Fensterpruefung”, variable=windowText);
await tag(“windowText”, windowText );
return windowOpen;

Der Returnwert windowOpen ist die Rückgabe für die Flow-AND-Prüfung.
Mit “await tag( )” kann man ein Tag erzeugen. “windowText” ist der Name des Tags, den man im Flow verwenden kann.

Der Flow mit dem Skript-Aufruf. In den Benachrichtigungen kann der im Skript definierte Tag “windowText” verwendet werden.

4 Likes