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:
- Ga naar Twitch Developer Portal en log in.
- Maak een nieuwe applicatie aan en noteer je Client ID en Client Secret.
- 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
- 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.
- 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 entwitchclientid
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.
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.