Boet Wifi närhet C# Windows Phone App (7 / 10 steg)

Steg 7: Magin bakom...



När backend kallas från en ändring i nätverkstillståndet det första den gör är att få namnet på nuvarande Wifi-anslutning. Detta används sedan att jämföra med namnet på lagrade hem Wifi.

var uppskov = taskInstance.GetDeferral();
var inställningar = ApplicationData.Current.LocalSettings;
var nyckel = "theCurrentWifi";
var ssid = "";
var checkHomeWifi = "";
foreach (var connectionProfile i NetworkInformation.GetConnectionProfiles())
{
om (connectionProfile.IsWlanConnectionProfile & & connectionProfile.GetNetworkConnectivityLevel()! = NetworkConnectivityLevel.None)
{
SSID = connectionProfile.ProfileName;
bryta;
}
}
inställningar. Värden [nyckel] = ssid;

När den upptäcker nätverket jag satte i en 5: e sekund försening som jag tyckte ibland att min API-anrop till boet skulle inte alltid ansluta. (Jag är säker på att det finns bättre sätt att göra detta men det verkar fungera för mig.)

var = Task.Run (asynkrona delegat < br > {
väntar på Task.Delay(TimeSpan.FromSeconds(5));
Return 0;
});
t.Wait();

Nu vi kommunicera med boet och se vilken status av termostaten för närvarande är för att få veta om vi behöver ändra dess status.

Nu är jag säker på att allt du programmerare där ute kommer att inställsam just nu som jag inte använder JSON komponenter för att läsa resultaten av boet API-anrop... Tro mig jag försökte men hur avkastningen formateras jag var har en häcklaren av en tid och eftersom jag behövde bara 2 värden från svar: struktur Id & The nuvarande bort Status jag tog den enkla vägen och använde bara gamla skolan sträng tolkning... :-)

Åh, en annan genväg jag tog vilket är dåligt... men jag hade tänkt att ändra det och sedan jag glömde... "Auth koden" för boet är hårdkodad i app (första raden nedan). Detta innebär att app inte kan delas som det är. Vad jag ska göra nästa (när jag har lite tid) är att skapa en variabel för Auth kod och har den enterable på installationen av app precis som hem Wifi namnet. Förutom att det skulle behöva registreras i en textruta och sedan sparats i lokal lagring. Det är en mycket lång kod så det är därför jag tog genvägen, men du kan alltid e-posta den till telefonen och sedan bara klippa och klistra in den i fönstret inställning.

sträng authToken = "---din Auth kod---"; < br > string uriNest = "https://developer-api.nest.com/structures/?auth=" + authToken;
försök
{
var kund = nya HttpClient();
var uri = nya Uri(uriNest);
var Svaren = väntar klienten. GetAsync(uri);
var statusCode = Response.StatusCode;
Response.EnsureSuccessStatusCode();
var ResponseText = väntar Response.Content.ReadAsStringAsync();
sträng json = ResponseText;
int structureFirst = json. IndexOf("{\"") + 2.
int structureNext = json. IndexOf("\":{\"name\"");
sträng struktur = json. Delsträng (structureFirst, structureNext - structureFirst);
int awayFirst = json. IndexOf("\"away\":") + 8.
int awayNext = json. IndexOf ("\", \ "", awayFirst);
strängen bort = json. Delsträng (awayFirst, awayNext - awayFirst);
homeStatus = "redan:" + bort;

Nästa steg är att bestämma om du behöver uppdatera boet. Jag kontrollera hem Wifi namnet mot namnet på nuvarande Wifi och om de är lika och aktuell status är "Away" sedan jag samtalet boet API att ange status till "Hem" om status är redan hem I inte. Samma för om Wifi namnen matchar inte, om aktuell status är hem jag uppdatera den till borta annars händer ingenting...

uriNest = "https://developer-api.nest.com/structures/" + struktur + "/? auth =" + authToken; < br > om (checkHomeWifi == ssid)
{
om (bort == "away")
{
setAway = ny Away() {bort = "hem"};
HttpResponseMessage svar = väntar klienten. PutAsJsonAsync (uriNest, setAway);
om (svar. IsSuccessStatusCode)
{
homeStatus = "Hem - framgång!"
}
annat
{
homeStatus = "Hemma - misslyckas!"
}
}
}
annat
{
om (bort == "hem")
{
setAway = ny Away() {bort = "away"};
HttpResponseMessage svar = väntar klienten. PutAsJsonAsync (uriNest, setAway);
om (svar. IsSuccessStatusCode)
{
homeStatus = "Away - framgång!"
}
annat
{
homeStatus = "Away - Fail!";
}
}
}

Slutligen skickar bakgrunden App en Toast till telefonen. Detta visar en status alert på telefonen identifierar om det var en förändring och om det var lyckat baserat på logiken.

ToastTemplateType toastTemplate = ToastTemplateType.ToastText02; < br > XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate);
XmlNodeList textElements = toastXml.GetElementsByTagName("text");
textElements [0]. AppendChild (toastXml.CreateTextNode ("Nest Wifi förändring alert!"));
textElements [1]. AppendChild(toastXml.CreateTextNode(homeStatus));
ToastNotificationManager.CreateToastNotifier(). Visa (nya ToastNotification(toastXml));

Det är min logik.

Se Steg
Relaterade Ämnen

Bluetooth WS2811 Controller med Windows Phone och MSP430G2 Launchpad

Titta på videon, då ser du vad du får här.Mot hypen av Android och Arduino är mitt projekt baserad på Windows Phone 8 och en mikrokontroller från Texas Instruments.Jag har inget emot en randgrupp, och jag är så glad över detta :-)Om du hittar några f...

Använda din Windows Phone-enhet som en trådlös mikrofon

kan du förvandla din Windows Phone 8 powered smartphone till en trådlös mikrofon för din PC.Vad du kan göra:Spela in ljud på din dator med hjälp av telefonens mikrofon.Flytta runt inom spänna av bluetooth-anslutning.Har inga sladdar fäst mellan telef...

Hur överföra kontakter från Windows Phone till Android

När du flyttar från en Windows Mobile smartphone till en Android-enhet, är överföring av dina kontakter oftast första prioritet. Du är fri att använda en dator för att göra så som kan vara mer bekvämt för nybörjare. Tack vare-synkronisering, processe...

Transparent lockscreen för Windows Phone 7 Mango

några månader tillbaka jag listat ut hur man får öppna låsa skärmen arbeta för Windows Phone 7 med Mango.Jag postade den på XDA: http://forum.xda-developers.com/showthread.php?t=1306463 och fick sparkade runt interwebs: 1800pocketpc: http://www.1800p...

Arduino Bluetooth kontroll - Windows Phone, PC, Tablet

Detta är min första instructable om hur att styra arduino med bluetooth. Vi kommer att använda app är snabb Terminal i Windows App store.Windows 8.1 och 10:http://Apps.microsoft.com/Windows/app/78372322-7b9...Jag använder en Arduino Uno, kan du använ...

Att göra viper smartstart phone app ännu coolare!

Jag har en viper smartstart Bluetooth-modul i min bil. Från min telefon som jag kan låsa, låsa upp, starta och stoppa motorn. Detta är den Instructable jag publicerat för respektive projekt.Det är mycket användbart men den senaste versionen av gratis...

Laser Tag

Hur man kan förbättra detta projekt...Det finns ingen Python API för Azure och jag hade inte tillräckligt med tid att lista ut hur man kör C Azure API på Python att skicka meddelanden. Detta innebär att det är för närvarande begränsad till en FFA spe...

Använda Cortana att styra din LinkIt en!

IntroduktionDet finns ny teknik runt omkring oss och bara fler kommer varje dag. Vår micro styrenheter blir snabbare, är telefoner blir smartare och molnet blir starkare. Med all denna nya teknik alla frågar sig: Hur kan jag utnyttja det hela?Tja, ko...

Använda RPi, Azure och Cortana att automatisera ditt hem!

IntroduktionDet finns ny teknik runt omkring oss och bara fler kommer varje dag. Vår micro styrenheter blir snabbare, är telefoner blir smartare och molnet blir starkare. Med all denna nya teknik alla frågar sig: Hur kan jag utnyttja det hela?Tja, ko...

Y U INGET SAMTAL?!?!

This is Cooper. Han är en rolig kille. Han har en stor skratt, och har ofta beskrivits av andra som "dum". Han är för lite för att förstå det, ännu, men visar det sig... hans föräldrar är sinnessjuk. De är typ av folk som skulle ställa ut på ett...

Arduino Pedometer Watch, med temperatur, höjd och kompass!

UPPDATERING: Kolla in mina andra två projekt >>SweeperBot - Roomba-liknande Robot med BluetoothVäckarklocka med IR- och Bluetooth-högtalareHej gott folk! Senaste dagarna har jag varit besatt av tanken att göra min egen klocka från arduino delar, men...

Trådlös Arduino oscilloskop

I denna guide kommer jag förklara hur du använder en Windows 8.1 telefon, Arduino Uno styrelsen och HC-05 Bluetooth-modulen för att bygga ett trådlöst oscilloskop. Telefon ansökan har kritiska funktioner av ett oscilloskop, även om bandbredden är en...

Bygga ett Smart hem med en Wifi trådlös Switch av Apple App kontroll

Smarta hem har nu blivit ett mode, så jag följer denna trend och att göra mitt hus ett sant smarta hem. Jag har sökt om smarta hem prylar för en tid, att finna att det finns massor av trådlös switch, wifi switch, app switch eller wifi socket produkte...

DIY en trådlös WiFi Video överföring Tank kontrolleras av APP baserad på ESP8266 och OpenWRT

Nu, på marknaden, det finns många WiFi videoöverföring smarta bilar baserade på Arduino. Nu, här, vi skulle vilja presentera en belysande demo för den trådlösa WiFi video tank baserat på ESP8266 WiFi Utvecklingskit kontrolleras av Android mobil APP....

Microsoft Windows 8.1 Bluetooth Low Energy RFduino app

Skriver ett Windows® har program som samverkar med RFduino aldrig varit enklare. Ett API som introducerades med Windows 8.1 öppnar dörren för att skapa spännande Windows Store program detta gränssnitt med RFduino Bluetooth® låg energi teknik. Detta I...

Avlägsen kontrollerade LED med HC-05 Bluetooth, Arduino och mobiltelefon App

Tekniken utvecklas i halsbrytande fart, alla av oss har smarta telefoner nu för tiden, det finns coola apps som låt oss hålla kontakt med våra vänner och familj, få senaste väderinformation eller vistelse-uppdaterad med senaste nyheterna men vad är n...

10 mobila tillväxten hackar det kommer att öka din App tillväxt 2016

Tillväxt hacka för mobila apps? AJ! Mobile App tillväxt är Tactical!Det är enkelt att bygga en app. Men det är svårare att marknadsföra en.Fungerar som en mobil app marketing evangelist med WeDigTech, en mobil app företag i Indien. Jag är ständigt te...

Göra en WiFi webbkamera från en gammal Android telefon

En av mina gamla Android telefoner förvandlas till en webbkamera är något jag har funderat på att göra länge nu. Ett par år sedan, jag stött ett projekt som 3D-skrivare på kicken (RigidBot, om du är intresserad). Det tog lång tid att äntligen få sak,...

MacBook (USB-typ C) Windows 10 installera

Jag kämpade för att få Microsoft Windows 10 installerat på den 2015 MacBooks som bara har en USB-typ C-kontakt och tänkte jag skulle dela hur jag kunde göra det.Steg 1: Få en kopia av Microsoft Windows 10Microsoft gör det enkelt för befintliga Window...