2using System.Collections;
18 AddNewDevice((state) => {
26 private void AddNewDevice(Action<string> state)
28 StartCoroutine(PollSonoff(state));
33 StartCoroutine(SonoffOn());
38 StartCoroutine(SonoffOff());
43 private IEnumerator SonoffOff()
45 using (UnityWebRequest www = UnityWebRequest.Post(
ipAddress +
"/zeroconf/switch",
""))
47 www.uploadHandler =
new UploadHandlerRaw(Encoding.UTF8.GetBytes(
"{\"data\":{\"switch\": \"off\"}}"));
48 www.SetRequestHeader(
"Content-Type",
"text/plain");
49 yield
return www.SendWebRequest();
51 if (www.isNetworkError || www.isHttpError)
53 Debug.LogError(www.error);
62 private IEnumerator SonoffOn()
64 using (UnityWebRequest www = UnityWebRequest.Post(
ipAddress +
"/zeroconf/switch",
""))
66 www.uploadHandler =
new UploadHandlerRaw(Encoding.UTF8.GetBytes(
"{\"data\":{\"switch\": \"on\"}}"));
67 www.SetRequestHeader(
"Content-Type",
"text/plain");
68 yield
return www.SendWebRequest();
70 if (www.isNetworkError || www.isHttpError)
72 Debug.LogError(www.error);
81 private IEnumerator PollSonoff(Action<string> state)
85 using (UnityWebRequest www = UnityWebRequest.Post(
ipAddress +
"/zeroconf/info",
""))
87 www.uploadHandler =
new UploadHandlerRaw(Encoding.UTF8.GetBytes(
"{\"data\":{}}"));
88 www.SetRequestHeader(
"Content-Type",
"text/plain");
89 yield
return www.SendWebRequest();
91 if (www.isNetworkError || www.isHttpError)
93 Debug.LogError(www.error);
97 var info = JsonUtility.FromJson<SonoffInfo>(www.downloadHandler.text);
98 state(info.data.@
switch);
106 private struct SonoffInfo
110 public SonoffData data;
113 private struct SonoffData
115 [JsonProperty(
"switch")]
116 public string @
switch;
117 public string startup;
119 public int pulseWidth;
121 public string otaUnlock;
122 public string fwVersion;
123 public string deviceid;
125 public int signalStrength;