Tutorial: Volg met Twitch en Homey je favoriete streamers.

Tutorial: Volg met Twitch en Homey je favoriete streamers.

Met deze Homey flow kun je controleren of bepaalde Twitch-streamers online of offline zijn. Deze flow maakt gebruik van de Twitch API en Homeyscript om de status van streamers bij te houden. We gebruiken variabelen om de Twitch API-referenties (client ID en client secret) op te slaan en een JSON-structuur om de streamer-informatie bij te houden.

Stap 1: Twitch API-referenties ophalen

Voordat je aan de Flow begint, moet je Twitch API-referenties opvragen:

  1. Ga naar Twitch Developer Portal en log in.
  2. Maak een nieuwe applicatie aan en noteer je Client ID en Client Secret.
  3. Sla deze gegevens op als variabelen in Homey:
    • client_id (je Client ID)
    • client_secret (je Client Secret)

Stap 2: Streamerinformatie instellen

Maak een variabele in Homey genaamd Streamers met de volgende inhoud (JSON-structuur):

[{
  "streamers": {
    "streamer1": {
      "spoken": "striemer één",
      "status": "offline"
    },
    "streamer2": {
      "spoken": "striemer twee",
      "status": "offline"
    },
    "streamer3": {
      "spoken": "striemer drie",
      "status": "offline"
    },
    "streamer4": {
      "spoken": "striemer vier",
      "status": "offline"
    }
  }
}]




Toelichting: De spoken-waarden zijn bedoeld om Google Assistent de namen goed te laten uitspreken.

Stap 3: Flow opzetten in Homey

We maken nu een Flow die de Twitch API controleert en de status van de streamers bijwerkt. Hier is een overzicht van de Flow-stappen:

Trigger

  1. Start: Stel een trigger in die een API-token opvraagt (vereist door de Twitch API). Mocht je token verlopen zijn kun je op de Start button drukken. Je zou hem ook op bijv. 1x per maand kunnen zetten.
  2. Datum & Tijd: Stel een tweede trigger in die elke 5 minuten de streamingstatus controleert.

Acties

1. Vraag een API-token aan
  • Logica: Maak een POST-verzoek naar de Twitch API om een token op te halen. Gebruik de volgende URL:
    • https://id.twitch.tv/oauth2/token?client_id={twitchclientid}&client_secret={twitchclientsecret}&grant_type=client_credentials
  • Headers: Voeg een header toe: Content-Type: application/x-www-form-urlencoded
  • Opslaan als: Lees het antwoord als JSON en sla het op als access_token in een Tekst-tag.
2. Sla het token op in een variabele
  • Logica: Sla de access_token op in een variabele genaamd twitchbearer.
3. Controleer de streamers
  • JSON Handler: Start een JSON-loop (twitchloop) met de JSON handler app voor Homey voor elke streamer uit de Streamers-variabele en stel de status in op gereed.
4. Doe een GET-verzoek om de streamingstatus te controleren
  • Logica: Maak een GET-verzoek naar de Twitch API met de volgende URL:
    • https://api.twitch.tv/helix/streams?user_login={Sleutel}
    • Gebruik de twitchbearer als Authorization header en twitchclientid als Client-ID header.
5. Verwerk het antwoord
  • Logica: Lees de JSON-respons en haal de type-status op van de eerste streamer in de lijst.
6. Roep het HomeyScript aan om de status te controleren
  • HomeyScript: Voeg een HomeyScript-actie toe (Voer code uit met argument en return Tekst-tag) en gebruik de volgende JSON-configuratie in het script (geef dit als argumenten mee):
{"result":"{Antwoord}","streamers":{Streamers},"streamer":"{Sleutel}"}
Het Antwoord en de Sleutel krijg je uit de vorige nodes, Streamers is de variabele die je al had gemaakt.

Stap 4: HomeyScript configureren

Gebruik het volgende script in HomeyScript om de status van de streamers bij te werken:

const rawArgs = JSON.parse(args[0]);
let status = rawArgs.result; 
const currentStreamer = rawArgs.streamer; 
const streamerList = rawArgs.streamers[0].streamers;

for (const streamerName in streamerList) {
    if (streamerName === currentStreamer) {
        if(status !== 'offline' && status !== 'live'){
            status = 'offline';
        }
        if (streamerList[streamerName].status !== status) {
            streamerList[streamerName].status = status;
            await Homey.logic.updateVariable({
                id: '9e5d7f90-a40f-410e-b5b1-62942a077db6',
                variable: { value: JSON.stringify(rawArgs.streamers) }
            });

            if (status === 'live') {
                return streamerList[streamerName].spoken + ' is begonnen met streamen';
            } else if (status === 'offline') {
                return streamerList[streamerName].spoken + ' is gestopt met streamen';
            } else {
                return null;
            }
        }
        break; 
    }
}
return null;

Toelichting script:

  • Dit script controleert of de huidige streamer aan het streamen of offline is.
  • Als de status van een streamer verandert, wordt de Streamers-variabele bijgewerkt en keert het script een melding terug om te zeggen dat de streamer begonnen of gestopt is met streamen.

Stap 5: Melding via Google Assistant

Als het resultaat van het script aangeeft dat een streamer begonnen of gestopt is, kan Homey deze tekst naar Google Assistant sturen:

  • Zeg (Resultaat) op Google: Zeg het resultaat op je Google Assistant-apparaat met volume op 50%, taal op Nederlands, en eventuele andere gewenste instellingen.

Eindresultaat

Deze Flow controleert automatisch elke 5 minuten de streamingstatus van jouw favoriete Twitch-streamers en stuurt een melding via Google Assistant wanneer een streamer begint of stopt met streamen. Op deze manier blijf je altijd op de hoogte zonder dat je zelf Twitch hoeft te openen.

Affiliate Disclaimer
Sommige links op deze pagina zijn affiliatelinks. Dit betekent dat ik een kleine commissie verdien wanneer je via deze links een aankoop doet, zonder dat het jou extra kost. Dit helpt mij om deze website draaiende te houden en nuttige content te blijven aanbieden.

Amazon Affiliate Disclaimer
Als Amazon Affiliate verdien ik aan kwalificerende aankopen. Voor meer informatie, bekijk de volledige Affiliate Disclaimer.
Laat een reactie achter

Reacties

Nog geen reacties. Waarom begin je de discussie niet?

Geef een reactie