Stap 7: De magie achter...
Wanneer de backend-proces wordt aangeroepen vanuit een netwerk staat verandering het eerste ding dat het doet is om de naam van de huidige Wifi-verbinding. Dit wordt vervolgens gebruikt om te vergelijken met de opgeslagen Home Wifi-naam.
Zodra het netwerk ik in een 5-seconden vertraging zoals vond ik soms dat mijn API-aanroep naar Nest zou geen altijd verbinding wordt gedetecteerd. (Ik ben zeker dat er betere manieren om dit te doen maar het lijkt te werken voor mij.)
Nu wij communiceren met Nest en zien wat de status van de thermostaat op dit moment is om te weten als we nodig hebben om de status te wijzigen.
Nu ben ik zeker dat alles wat je programmeurs die er nu zijn serviliteit als ik ben niet met behulp van JSON componenten om de resultaten van het Nest API-aanroep te lezen... Geloof me ik heb geprobeerd maar de manier waarop de terugkeer is opgemaakt mij watertje having een deurklink van een tijd, en aangezien ik alleen nodig 2 waarden uit de reactie: de structuur Id & de huidige weg Status ik nam de gemakkelijke route en enkel gebruikt oude school tekenreeks parseren... :-)
Oh, een andere snelkoppeling nam ik die slecht is... maar ik had bedoeld om het te veranderen en dan ben ik vergeten... De "Auth Code" voor Nest is hardcoded in app (eerste lijn hieronder). Dit betekent dat de app kan niet worden gedeeld, zoals het is. Wat ik zal doen volgende (wanneer ik wat tijd) is een variabele voor Auth Code maken en heb het enterable op eerste installatie van de app net als de naam Home Wifi. Behalve dat het zou moeten worden ingevoerd in een tekstvak en vervolgens opgeslagen in lokale opslag. Het is een zeer lange code, dus dat is waarom ik nam aanvankelijk de snelkoppeling, maar u kan altijd e-mailen naar je telefoon en vervolgens knip en plak deze in de instelling scherm.
De volgende stap is om te bepalen als u wilt bijwerken van het Nest. Ik controleer de Home Wifi naam tegen de huidige Wifi-naam en als ze gelijk zijn en de huidige status is "Away" dan ik oproep de Nest-API om de status instelt op "Home" als de status nog Home ik niets doen. Hetzelfde als de namen van de Wifi niet overeenkomen, als de huidige status is Home dat ik updaten naar Away anders niets doen...
Tot slot verzendt de achtergrond App een Toast naar de telefoon. Dit toont een status melding op de telefoon identificeren als er een verandering was en als het succesvol was op basis van de logica hierboven.
Dat is mijn logica.