diff --git a/src/Span.h b/src/Span.h
index 0c8c79b..0697827 100644
--- a/src/Span.h
+++ b/src/Span.h
@@ -239,9 +239,10 @@ namespace Service {
CREATE_SERV(LightBulb,43) // Defines any type of Light.
REQ(On);
+ OPT_DEP(Name);
+ OPT(ConfiguredName);
OPT(Brightness);
OPT(Hue);
- OPT(Name);
OPT(Saturation);
OPT(ColorTemperature);
END_SERV
@@ -336,7 +337,8 @@ namespace Service {
CREATE_SERV(Switch,49) // Defines a generic Switch.
REQ(On);
- OPT(Name);
+ OPT_DEP(Name);
+ OPT(ConfiguredName);
END_SERV
CREATE_SERV(Television,D8) // Defines a TV. Optional Linked Services: InputSource and TelevisionSpeaker.
diff --git a/src/src.ino b/src/src.ino
index 1356851..8f56d25 100644
--- a/src/src.ino
+++ b/src/src.ino
@@ -33,7 +33,7 @@ void setup() {
homeSpan.setLogLevel(2);
- homeSpan.begin(Category::Lighting,"HomeSpan Test");
+ homeSpan.begin(Category::Sensors,"HomeSpan Test");
new SpanAccessory(); // start with Bridge Accessory
new Service::AccessoryInformation();
@@ -44,51 +44,28 @@ void setup() {
new SpanAccessory();
new Service::AccessoryInformation();
new Characteristic::Identify();
- new Characteristic::Name("Access-1"); // the AccessoryInformation Service seems to require Name(), and will ignore ConfiguredName()
+ new Characteristic::Name("air-1");
- new Service::LightBulb();
- new Characteristic::On(0);
- new Characteristic::ConfiguredName("Main Light"); // here we use ConfiguredName() instead of Name(). This is properly reflected in Home App during pairing
-
- new Service::LightBulb();
- new Characteristic::On(0);
- new Characteristic::ConfiguredName("Night Light");
-
- new Service::Switch();
- new Characteristic::On(0);
- new Characteristic::ConfiguredName("Switch-A");
-
- new Service::Switch();
- new Characteristic::On(0);
- new Characteristic::ConfiguredName("Switch-B");
-
-// Second dual-light/dual-switch Accessory
+ new Service::AirQualitySensor();
+ new Characteristic::AirQuality(Characteristic::AirQuality::GOOD);
+ new Characteristic::ConfiguredName("AQ-1");
+ new Characteristic::StatusActive(1);
+ new Characteristic::StatusFault(0);
+ new Characteristic::StatusTampered(0);
+ new Characteristic::StatusLowBattery(0);
new SpanAccessory();
new Service::AccessoryInformation();
new Characteristic::Identify();
- new Characteristic::Name("Access-2"); // note as above we use Name() instead of ConfiguredName() for the AccessoryInformation Service
+ new Characteristic::Name("air-2");
- new Service::LightBulb();
- new Characteristic::On(0);
- new Characteristic::ConfiguredName("Aux Light");
-
- new Service::LightBulb();
- new Characteristic::On(0);
- new Characteristic::ConfiguredName("Night Light");
-
- new Service::Switch();
- new Characteristic::On(0);
- new Characteristic::ConfiguredName("Switch-A");
-
- new Service::Switch();
- new Characteristic::On(0);
- new Characteristic::ConfiguredName("Switch-B");
-
- Characteristic::AirQuality *air = new Characteristic::AirQuality;
- air->setVal(Characteristic::AirQuality::GOOD);
- air->setVal(air->GOOD);
-
+ new Service::AirQualitySensor();
+ new Characteristic::AirQuality(Characteristic::AirQuality::EXCELLENT);
+ new Characteristic::ConfiguredName("AQ-2");
+ new Characteristic::StatusActive(0);
+ new Characteristic::StatusFault(1);
+ new Characteristic::StatusTampered(1);
+ new Characteristic::StatusLowBattery(1);
}