feat: GET system/settings zeigt Herkunft der WLAN-Zugangsdaten
Die Antwort gab bisher nur die gespeicherte SSID aus. Wurde eine Lampe nie per REST onboardet, ist die leer, und die Lampe laeuft in Wirklichkeit auf den einkompilierten NINLIGHT_WIFI_SSID/-PASSWORD (siehe app_main.c) - GET system/settings suggerierte damit "kein WLAN konfiguriert", obwohl die Lampe zuverlaessig verbunden ist, und widersprach scheinbar system/info. Additiv, ohne die Bedeutung von "ssid" zu aendern: wifi.source ist jetzt "stored" oder "compiled". Spec (§7.2) und bruno/ninlight.yml dokumentieren das Feld, ein neuer Hosttest deckt den compiled-Fall ab. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
d464bb167e
commit
2dfb1fd1c2
@@ -262,6 +262,13 @@ static void handle_get_settings(const nl_api_ctx_t *ctx, nl_api_response_t *resp
|
||||
cJSON_AddStringToObject(o, "name", s.name);
|
||||
w = cJSON_AddObjectToObject(o, "wifi");
|
||||
cJSON_AddStringToObject(w, "ssid", s.wifi_ssid);
|
||||
/* "ssid" alone can't be told apart from "kein WLAN konfiguriert": ein leerer
|
||||
* gespeicherter Datensatz laesst app_main.c beim Boot auf die einkompilierten
|
||||
* NINLIGHT_WIFI_SSID/-PASSWORD zurueckfallen (siehe dort), und die Lampe kommt
|
||||
* trotzdem zuverlaessig ins WLAN. Wer nur "ssid" sieht, kann das nicht
|
||||
* unterscheiden - "source" macht additiv sichtbar, woher die Zugangsdaten
|
||||
* kommen, ohne die Bedeutung von "ssid" zu aendern. */
|
||||
cJSON_AddStringToObject(w, "source", s.wifi_ssid[0] ? "stored" : "compiled");
|
||||
cJSON_AddBoolToObject(o, "auth_all", s.auth_all != 0);
|
||||
reply_json(resp, 200, o);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user