Hulp bij Maak shortcuts/widgets voor iOS

Dag Homey’s , hier een beginner.

Ik probeer op advies van https://homeycornelisse.nl/diy-maak-shortcuts-widgets-voor-ios/ een shortcut te maken op mijn iphone.
Is het iemand wel gelukt? en kan deze mij een tip geven

Zeker is het gelukt. In de opdrachtenapp maak je een opdracht aan met ‘Haal inhoud van URL op’. Hier geef je dan de url https://xyz.connect.athom.com/api/manager/logic/webhook/commando

Xyz is de code van jouw homey, op te zoeken via de developers site.

Commando is het commando dat je aan homey wil doorgeven (zie hieronder)

Let op: als je in het commando spaties hebt staan moeten die hierboven vervangen worden door %20.

In Homey maak je een flow met als trigger ‘webhook ontvangen’ en geef je daar het commando op dat hierboven is gebruikt.

1 Like

Check ook [TUTORIAL] Using Siri/Shortcuts for activating flows (with pics!)

Zo simpel is het. De tutorial die hierboven staat vond ik nodeloos ingewikkeld.

Het zou nog wel gaaf zijn als Homey iets terug kan sturen naar de shortcut op iPhone. Is dat mogelijk? :confused:

Ikbweet biet of dat mogelijk is. Zie ook niet direct een toepassing daarvoor. Wat wil je doen?

Weet ik ook niet. Denk bijvoorbeeld aan het terugkoppelen van variabelen of andere gecombineerde zaken (tekst, waarden, etc). Of de status nadat je een commando hebt gegeven.
Ik heb de nieuwe Homey zonder mic. En gebruik ook geen Google.

Het verzoek is eigenlijk 2 delen:

  1. Kan Homey een tag of een stuk tekst terug sturen naar buiten het systeem.
  2. Kun je met Siri Shortcuts die tag of tekst ontvangen.

Volgens mij kan dat niet.

En wat niet, 1 of 2?

Ik zou me voor kunnen stellen dat punt 1 ook afhankelijk is van de functionaliteit in bijvoorbeeld Shortcuts. Of een ander systeem.

Volgens mij kan Homey niks terugsturen naar de opdrachtenapp onder ios. Is one-way.

Wat je wel kunt doen is dat je vanuit Telegram commando’s kunt geven aan de Homey en Homey kan dan een reactie terugsturen naar datzelfde kanaal. Is wel even wat programmeren in HomeyScript voor nodig maar dat kan werken.

Even wat… of flink wat? :wink:

Niet erg veel. Zijn wat basic-javascript commando’s. Wat je kunt doen is:

  1. je maakt een flow die getriggered wordt op moment dat je een tekstbericht vanuit Telegram ontvangt
  2. in die flow roep je een javascript routine aan die het tekstbericht uiteenrafelt
  3. resultaat van de routine geef je terug aan Homey en in de flows kun je dan op basis van het ontvangen resultaat bepaalde andere flows laten starten
  4. het resultaat daarvan kan weer worden teruggestuurd middels een Telegram bericht.
1 Like

Thanks. Ik ga op zoek naar wat tutorials. Ik ben geen JS held :wink:

Ben ik ook niet. W3schools.com heeft me enorm verder geholpen. Ik heb mijn archief nog eens nagekeken en daarin onderstaand script gevonden dat ik destijds gebouwd heb. Gebruik het niet meer maar misschien geeft t je wat inspiratie. De homeyflows die ik hierbij gebruikte heb ik helaas niet meer.

// INPUT
// <commando_volledig>: string waarin commando en waarde is opgesloten
// OUTPUT
// : feitelijke commando
// : parameter
// <commando_resultaat>: resultaat uitgevoerde commando

try {
//args[0] = “Dim keuken: 65” // tbv testen

if (args.length == 0 || args[0] == "") {
    console.log("Geen argument(en)")
    return true
}
else {
    var newline = "\r\n"

    var commando_volledig = args[0].trim()
    var commando = ""
    var waarde = 0
    var commando_resultaat = ""

    // splitsen commando_volledig in commando en waarde
    if (commando_volledig.indexOf(":") == -1) {
        commando = commando_volledig
    }
    else {
        commando = commando_volledig.substr(0, commando_volledig.indexOf(":") + 1);
        waarde = Number(commando_volledig.substr(commando_volledig.indexOf(":") + 2, commando_volledig.length - commando_volledig.indexOf(":") - 2));
        //console.log(waarde)
    }

    switch (commando) {
        case "Help":
            commando_resultaat = "Beschikbare commando\'s:"
            commando_resultaat = commando_resultaat
            commando_resultaat = commando_resultaat + newline + newline + "Help"
            commando_resultaat = commando_resultaat + newline + "Dim keuken: <waarde in %>"
            commando_resultaat = commando_resultaat + newline + "Max vol play1: <waarde in %>"
            commando_resultaat = commando_resultaat + newline + "Max vol play3: <waarde in %>"
            commando_resultaat = commando_resultaat + newline + "Max vol soundbar: <waarde in %>"
            commando_resultaat = commando_resultaat + newline + "Voordeur reactietijd: <waarde in sec>"
            break;
        case "Dim keuken:":
            if (waarde < 0 || waarde > 100 || isNaN(waarde)) {
                waarde = -1
                commando_resultaat = "Je hebt geen percentage opgegeven"
                break;
            }
            else {
                commando_resultaat = "<Dimwaarde spotjes> aangepast naar: " + waarde + "%"
                waarde = waarde / 100
                break;
            }
        case "Max vol play1:":
            if (waarde < 0 || waarde > 100 || isNaN(waarde)) {
                waarde = -1
                commando_resultaat = "Je hebt geen percentage opgegeven"
                break;
            }
            else {
                commando_resultaat = "<Max vol Play:1> aangepast naar: " + waarde + "%"
                waarde = waarde / 100
                break;
            }
        case "Max vol play3:":
            if (waarde < 0 || waarde > 100 || isNaN(waarde)) {
                waarde = -1
                commando_resultaat = "Je hebt geen percentage opgegeven"
                break;
            }
            else {
                commando_resultaat = "<Max vol Play:3> aangepast naar: " + waarde + "%"
                waarde = waarde / 100
                break;
            }
        case "Max vol soundbar:":
            if (waarde < 0 || waarde > 100 || isNaN(waarde)) {
                waarde = -1
                commando_resultaat = "Je hebt geen percentage opgegeven"
                break;
            }
            else {
                commando_resultaat = "<Max vol Soundbar> aangepast naar: " + waarde + "%"
                waarde = waarde / 100
                break;
            }
        case "Voordeur reactietijd:":
            if (waarde < 0 || isNaN(waarde)) {
                waarde = -1
                commando_resultaat = "Je hebt geen aantal seconden opgegeven"
                break;
            }
            else {
                commando_resultaat = "<Voordeur reactietijd (sec)> aangepast naar: " + waarde + " sec."
                break
            }
        default:
            waarde = -1
            //console.log(commando)
            commando_resultaat = "Onbekend commando. Gebruik Help voor lijst met commando\'s"
    }
    console.log(commando_resultaat)
    console.log(commando)
    console.log(waarde)
    setTagValue("commando_resultaat", { type: "string", title: "Commando resultaat" }, commando_resultaat)
    setTagValue("commando", { type: "string", title: "Commando" }, commando)
    setTagValue("waarde", { type: "number", title: "Waarde" }, waarde)
    return true
}

}

catch (error) {
console.log(error)
return false
}

1 Like