package com.beowulfe.hap.impl.services; import com.beowulfe.hap.accessories.Outlet; import com.beowulfe.hap.impl.characteristics.common.PowerStateCharacteristic; import com.beowulfe.hap.impl.characteristics.outlet.OutletInUseCharacteristic; public class OutletService extends AbstractServiceImpl { public OutletService(Outlet outlet) { this(outlet, outlet.getLabel()); } public OutletService(Outlet outlet, String serviceName) { super("00000047-0000-1000-8000-0026BB765291", outlet, serviceName); addCharacteristic(new PowerStateCharacteristic( () -> outlet.getPowerState(), v -> outlet.setPowerState(v), c -> outlet.subscribePowerState(c), () -> outlet.unsubscribePowerState() )); addCharacteristic(new OutletInUseCharacteristic(outlet)); } }