@@ -44,7 +44,7 @@ Adafruit_MQTT_Publish photocell_feed(&mqtt, AIO_USER "/feeds/hue-controller.hue-
44
44
Adafruit_MQTT_Publish motion_feed (&mqtt, AIO_USER " /feeds/hue-controller.hue-motion" );
45
45
Adafruit_MQTT_Publish control_feed (&mqtt, AIO_USER " /feeds/hue-controller.hue-control" );
46
46
47
- DynamicJsonBuffer jsonBuffer (8500 );
47
+ DynamicJsonDocument jsonBuffer (8500 );
48
48
49
49
const char *hue_ip = NULL ;
50
50
uint8_t *light_numbers = NULL ;
@@ -129,16 +129,16 @@ const char *fetch_hue_ip() {
129
129
return NULL ;
130
130
}
131
131
132
- JsonArray& root = jsonBuffer. parseArray ( client);
132
+ auto error = deserializeJson (jsonBuffer, client);
133
133
client.stop ();
134
134
135
- if (!root. success () ) {
135
+ if (error ) {
136
136
logln (" JSON PARSE ERROR" );
137
137
display.println (" JSON PARSE ERROR" );
138
138
return NULL ;
139
139
}
140
140
141
- return strdup (root[ 0 ][ F ( " internalipaddress" ) ]);
141
+ return strdup (jsonBuffer[ " internalipaddress" ]);
142
142
}
143
143
144
144
@@ -183,19 +183,18 @@ boolean fetch_sunrise_sunset(long *sunrise, long *sunset)
183
183
return false ;
184
184
}
185
185
186
- JsonObject& root = jsonBuffer. parseObject ( client);
186
+ auto error = deserializeJson (jsonBuffer, client);
187
187
client.stop ();
188
188
189
- if (!root. success () ) {
189
+ if (error ) {
190
190
logln (" JSON PARSE ERROR" );
191
191
display.println (" JSON PARSE ERROR" );
192
- return false ;
192
+ return NULL ;
193
193
}
194
194
195
- JsonObject& data = root[" daily" ][" data" ][0 ];
196
- long start_of_day = data[" time" ];
197
- long raw_sunrise_time = data[" sunriseTime" ];
198
- long raw_sunset_time = data[" sunsetTime" ];
195
+ long start_of_day = jsonBuffer[" daily" ][" data" ][0 ][" time" ];
196
+ long raw_sunrise_time = jsonBuffer[" daily" ][" data" ][0 ][" sunriseTime" ];
197
+ long raw_sunset_time = jsonBuffer[" daily" ][" data" ][0 ][" sunsetTime" ];
199
198
200
199
*sunrise = raw_sunrise_time - start_of_day;
201
200
*sunset = raw_sunset_time - start_of_day;
@@ -263,18 +262,20 @@ uint8_t *lights_for_group(const char *group_number)
263
262
return NULL ;
264
263
}
265
264
266
- JsonObject& group = jsonBuffer. parseObject ( client);
265
+ auto error = deserializeJson (jsonBuffer, client);
267
266
client.stop ();
268
267
269
- if (!group.success ()) {
268
+ if (error) {
269
+ logln (" JSON PARSE ERROR" );
270
270
display.println (" JSON PARSE ERROR" );
271
271
return NULL ;
272
272
}
273
273
274
- JsonArray& lights = group[" lights" ];
274
+ JsonArray lights = jsonBuffer[" lights" ];
275
+
275
276
uint8_t *light_numbers = (uint8_t *)malloc (lights.size () + 1 );
276
277
light_numbers[0 ] = (uint8_t )lights.size ();
277
- for (uint i = 0 ; i < lights.size (); i++) {
278
+ for (uint16_t i = 0 ; i < lights.size (); i++) {
278
279
light_numbers[i+1 ] = (uint8_t )atoi ((const char *)lights[i]);
279
280
}
280
281
return light_numbers;
0 commit comments