Device with multiple properties?

Question is simple, is it possible to create a device with multiple properties?

Yes, of course! Are you building your own web thing with one of our libraries?

Hi, yes I am using Arduino IDE to build a webthing with multiple temperature sensors, but I am having trouble getting them recognized by the gateway. I can run one sensor but I am unable to run two.

#include <Thing.h>
#include <WebThingAdapter.h>

Do I need to add another sensor here?
const char* sensorTypes[] = {"TemperatureSensor", nullptr};

and another line of this?
ThingProperty sensorTemp("temperature", "", NUMBER, "TemperatureProperty");

Btw.: I think the mozilla WebThing is a marvelous project with great potential!

This example will give you a good idea of how to add multiple sensors/properties to your device: https://github.com/mozilla-iot/webthing-arduino/blob/master/examples/BME280/BME280.ino

Thank you mrstegeman, this answers my question. I will do some testing. Btw, what is the preferred way to program WebThings?

However you want! We provide a wide variety of libraries in different languages to fit all kinds of use cases.

I’m trying and trying and I don’t get why my device shows only 2 properties in the gateway. I have commented “addProperty” lines and only shows the 2 lasts.

I beg you some help because I don’t know how to program and this is driving me crazy.

At the beginning of the code I wrote:

const char *AulaTypes[] = {“Sensor de aula”, nullptr};
ThingDevice SensorAula(“SensorAula_01”, “Aula 1.99”, AulaTypes);
WebThingAdapter *adapter;

// consultar https://webthings.io/schemas/
ThingProperty iluminacion(“Iluminacion”, “”, NUMBER, “LevelProperty”);
ThingProperty Temp(“Temperatura”, “”, NUMBER, “TemperatureProperty”);
ThingProperty HR(“Humedad Relativa”, “”, NUMBER, “HumidityProperty”);
ThingProperty Presion(“Presión barométrica”, “”, INTEGER, “BarometricPressureProperty”);
ThingProperty CO2(“CO2”, “”, INTEGER, “ConcentrationProperty”);
ThingProperty TVOC(“TVOC”, “”, INTEGER, “ConcentrationProperty”);

In the setup i wrote:

  adapter = new WebThingAdapter("SensorAula_99", WiFi.localIP());
  iluminacion.unit = "lux";        
  SensorAula.addProperty(&iluminacion);
  SensorAula.addProperty(&Temp);
  SensorAula.addProperty(&HR);
  SensorAula.addProperty(&Presion);
  SensorAula.addProperty(&CO2);
  SensorAula.addProperty(&TVOC);
  adapter->addDevice(&SensorAula);
  adapter->begin();

Thank you very much!!

Solved!!!

I forgot to define the Json_buffer

#define LARGE_JSON_BUFFERS 1

1 Like

Thank you for sharing! I made the same mistake :slight_smile: