Strings synchronised between Arduino Cloud and Uno

In designing an Attendance Package I need to have the Arduino Uno WiFi ver4 in the room but be able to change the authorised person list and also see who is present remotely.
Because Arduino Cloud cannot deal in arrays I have programmed the Uno to store the authorised list as Strings. I now need to set up a Thing, fill it with the 300 Strings of the attendees and mirror to the Uno.
I have failed miserably at that, there are a lot of examples of Things to light a LED remotely but none that I can find to synchronise Strings.
Can anyone point me in the direction of a suitable example or is there a section in the documentation which I can follow?

Have you looked at the sticky note in combination with the code that populates the note from an array of strings in the onUpdate section? Just a creative thought.

Can you direct me to that sticky note please

I must be dumb because I have searched Arduino Docs and Arduino Cloud and the internet and I cannot find a section called "onUpdate". Can you be a little bit clearer please.

Sadly it appears the Sticky Note is a widget on the dashboard and does not appear to have any program access, it's a place to put notes on the dashboard only.

That is because I misled you, I was thinking of the update hook for a normal variable but as I mentioned in my other reply, the sticky note does NOT have that ability.
Why not do what you want outside the cloud, a web browser client accessing an AP on a esp32 or any wifi capable arduino board will suffice. I am not web trained so would struggle implementing but AI gave me this

#include <WiFi.h>
#include <WebServer.h>

const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";

WebServer server(80);

// Array of strings to be hosted
String myStrings[3] = {"String 1", "String 2", "String 3"};

void setup() {
  Serial.begin(115200);

  // Connect to Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("WiFi connected");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  // Define a route for the /data endpoint
  server.on("/data", HTTP_GET, [](){
    String jsonString = "{ \"data\": [";
    for (int i = 0; i < 3; i++) {
      jsonString += "\"" + myStrings[i] + "\"";
      if (i < 2) {
        jsonString += ",";
      }
    }
    jsonString += "] }";
    server.send(200, "application/json", jsonString);
  });

  // Start the web server
  server.begin();
  Serial.println("HTTP server started");
}

void loop() {
  server.handleClient();
}

OR look at forum thread https://forum.arduino.cc/t/send-array-data-from-esp32-to-web-page/673196

Here is what AI told me, take it with a grain of Na but it sounds and looks doable.
Here are the steps
The setup is

1.

Arduino IoT Cloud Setup

In the IoT Cloud dashboard:

  • Create a String variable named: stringArray.

2.

Install ArduinoJson Library

In the Arduino IDE:

  • Go to Library Manager .
  • Search for ArduinoJson by Benoit Blanchon.
  • Install the latest version.

The sketch in the cloud is

#include <ArduinoJson.h>
#include "thingProperties.h"

void setup() {
  Serial.begin(9600);
  delay(1500);
  initProperties();
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);

  while (ArduinoCloud.connected() == 0) {
    delay(100);
  }

  // Send a sample JSON array to the cloud
  stringArray = "[\"apple\", \"banana\", \"cherry\"]";
}

void loop() {
  ArduinoCloud.update();

  // Example: parse stringArray every 10 seconds
  static unsigned long lastParse = 0;
  if (millis() - lastParse > 10000) {
    parseStringArray();
    lastParse = millis();
  }
}

void parseStringArray() {
  const size_t capacity = JSON_ARRAY_SIZE(10) + 200;
  StaticJsonDocument<capacity> doc;

  DeserializationError error = deserializeJson(doc, stringArray);
  if (error) {
    Serial.print("JSON parse failed: ");
    Serial.println(error.c_str());
    return;
  }

  JsonArray arr = doc.as<JsonArray>();
  Serial.println("Parsed array:");

  for (int i = 0; i < arr.size(); i++) {
    String item = arr[i].as<String>();
    Serial.print("  Item ");
    Serial.print(i);
    Serial.print(": ");
    Serial.println(item);
  }
}

The output will be in the Serial Monitor and look like this

Parsed array:
Item 0: apple
Item 1: banana
Item 2: cherry

I think this is the background you need.
Simply change the Serial output to put the output into a variable on the dashboard (I think)
As for getting data to add to the string array, another screen that has you make an entry on a phone screen, and that populates the variable stringArray.
Good luck

To be clear, if the user enters Fred Jines, your code has to turn that into
"Fred Jones"
of course your code will have to deal with constructing ALL of the json including the "[ at the front and ]" at the end. The library may have functions to do al the work.
I installed the library in my IDE


And here is a list of the sample code with the library, I think that should give you a good leg up

Good luck

Thank you. I had put this project on the shelf because I was banging my head on a brick wall. I will go back to it revitalised.