code.pfad.fr/gohmekit@v0.2.1/hapip/characteristic/service/apple_service_gen.go (about)

     1  // Code generated by cmd/generate/main.go; DO NOT EDIT.
     2  
     3  package service
     4  
     5  import (
     6  	"code.pfad.fr/gohmekit/hapip"
     7  	"code.pfad.fr/gohmekit/hapip/characteristic"
     8  )
     9  
    10  const AccessoryInformation_Type = "3E"
    11  
    12  // AccessoryInformation represents a Accessory Information service (3E)
    13  // Required characteristics:
    14  //   - identify: Identify (14)
    15  //   - manufacturer: Manufacturer (20)
    16  //   - model: Model (21)
    17  //   - name: Name (23)
    18  //   - serialNumber: Serial Number (30)
    19  //   - firmwareRevision: Firmware Revision (52)
    20  //
    21  // Optional characteristics:
    22  //   - Hardware Revision (53)
    23  //   - Accessory Flags (A6)
    24  //
    25  // UUID: 0000003E-0000-1000-8000-0026BB765291
    26  func AccessoryInformation(identify hapip.Characteristic, manufacturer hapip.Characteristic, model hapip.Characteristic, name hapip.Characteristic, serialNumber hapip.Characteristic, firmwareRevision hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
    27  	chars := []hapip.Characteristic{identify, manufacturer, model, name, serialNumber, firmwareRevision}
    28  	return characteristic.Service{
    29  		Typ:            AccessoryInformation_Type,
    30  		Characteristic: append(chars, optional...),
    31  	}
    32  }
    33  
    34  const AirPurifier_Type = "BB"
    35  
    36  // AirPurifier represents a Air Purifier service (BB)
    37  // Required characteristics:
    38  //   - active: Active (B0)
    39  //   - currentAirPurifierState: Current Air Purifier State (A9)
    40  //   - targetAirPurifierState: Target Air Purifier State (A8)
    41  //
    42  // Optional characteristics:
    43  //   - Lock Physical Controls (A7)
    44  //   - Name (23)
    45  //   - Swing Mode (B6)
    46  //   - Rotation Speed (29)
    47  //
    48  // UUID: 000000BB-0000-1000-8000-0026BB765291
    49  func AirPurifier(active hapip.Characteristic, currentAirPurifierState hapip.Characteristic, targetAirPurifierState hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
    50  	chars := []hapip.Characteristic{active, currentAirPurifierState, targetAirPurifierState}
    51  	return characteristic.Service{
    52  		Typ:            AirPurifier_Type,
    53  		Characteristic: append(chars, optional...),
    54  	}
    55  }
    56  
    57  const AirQualitySensor_Type = "8D"
    58  
    59  // AirQualitySensor represents a Air Quality Sensor service (8D)
    60  // Required characteristics:
    61  //   - airQuality: Air Quality (95)
    62  //
    63  // Optional characteristics:
    64  //   - Status Active (75)
    65  //   - Status Fault (77)
    66  //   - Status Tampered (7A)
    67  //   - Status Low Battery (79)
    68  //   - Name (23)
    69  //   - Ozone Density (C3)
    70  //   - Nitrogen Dioxide Density (C4)
    71  //   - Sulphur Dioxide Density (C5)
    72  //   - PM2.5 Density (C6)
    73  //   - PM10 Density (C7)
    74  //   - VOC Density (C8)
    75  //   - Carbon Monoxide Level (90)
    76  //   - Carbon Dioxide Level (93)
    77  //
    78  // UUID: 0000008D-0000-1000-8000-0026BB765291
    79  func AirQualitySensor(airQuality hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
    80  	chars := []hapip.Characteristic{airQuality}
    81  	return characteristic.Service{
    82  		Typ:            AirQualitySensor_Type,
    83  		Characteristic: append(chars, optional...),
    84  	}
    85  }
    86  
    87  const BatteryService_Type = "96"
    88  
    89  // BatteryService represents a Battery Service service (96)
    90  // Required characteristics:
    91  //   - batteryLevel: Battery Level (68)
    92  //   - chargingState: Charging State (8F)
    93  //   - statusLowBattery: Status Low Battery (79)
    94  //
    95  // Optional characteristics:
    96  //   - Name (23)
    97  //
    98  // UUID: 00000096-0000-1000-8000-0026BB765291
    99  func BatteryService(batteryLevel hapip.Characteristic, chargingState hapip.Characteristic, statusLowBattery hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   100  	chars := []hapip.Characteristic{batteryLevel, chargingState, statusLowBattery}
   101  	return characteristic.Service{
   102  		Typ:            BatteryService_Type,
   103  		Characteristic: append(chars, optional...),
   104  	}
   105  }
   106  
   107  const CameraRTPStreamManagement_Type = "110"
   108  
   109  // CameraRTPStreamManagement represents a Camera RTP Stream Management service (110)
   110  // Required characteristics:
   111  //   - supportedVideoStreamConfiguration: Supported Video Stream Configuration (114)
   112  //   - supportedAudioStreamConfiguration: Supported Audio Stream Configuration (115)
   113  //   - supportedRTPConfiguration: Supported RTP Configuration (116)
   114  //   - selectedRTPStreamConfiguration: Selected RTP Stream Configuration (117)
   115  //   - streamingStatus: Streaming Status (120)
   116  //   - setupEndpoints: Setup Endpoints (118)
   117  //
   118  // Optional characteristics:
   119  //   - Name (23)
   120  //
   121  // UUID: 00000110-0000-1000-8000-0026BB765291
   122  func CameraRTPStreamManagement(supportedVideoStreamConfiguration hapip.Characteristic, supportedAudioStreamConfiguration hapip.Characteristic, supportedRTPConfiguration hapip.Characteristic, selectedRTPStreamConfiguration hapip.Characteristic, streamingStatus hapip.Characteristic, setupEndpoints hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   123  	chars := []hapip.Characteristic{supportedVideoStreamConfiguration, supportedAudioStreamConfiguration, supportedRTPConfiguration, selectedRTPStreamConfiguration, streamingStatus, setupEndpoints}
   124  	return characteristic.Service{
   125  		Typ:            CameraRTPStreamManagement_Type,
   126  		Characteristic: append(chars, optional...),
   127  	}
   128  }
   129  
   130  const CarbonDioxideSensor_Type = "97"
   131  
   132  // CarbonDioxideSensor represents a Carbon Dioxide Sensor service (97)
   133  // Required characteristics:
   134  //   - carbonDioxideDetected: Carbon Dioxide Detected (92)
   135  //
   136  // Optional characteristics:
   137  //   - Status Active (75)
   138  //   - Status Fault (77)
   139  //   - Status Low Battery (79)
   140  //   - Status Tampered (7A)
   141  //   - Carbon Dioxide Level (93)
   142  //   - Carbon Dioxide Peak Level (94)
   143  //   - Name (23)
   144  //
   145  // UUID: 00000097-0000-1000-8000-0026BB765291
   146  func CarbonDioxideSensor(carbonDioxideDetected hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   147  	chars := []hapip.Characteristic{carbonDioxideDetected}
   148  	return characteristic.Service{
   149  		Typ:            CarbonDioxideSensor_Type,
   150  		Characteristic: append(chars, optional...),
   151  	}
   152  }
   153  
   154  const CarbonMonoxideSensor_Type = "7F"
   155  
   156  // CarbonMonoxideSensor represents a Carbon Monoxide Sensor service (7F)
   157  // Required characteristics:
   158  //   - carbonMonoxideDetected: Carbon Monoxide Detected (69)
   159  //
   160  // Optional characteristics:
   161  //   - Status Active (75)
   162  //   - Status Fault (77)
   163  //   - Status Low Battery (79)
   164  //   - Status Tampered (7A)
   165  //   - Carbon Monoxide Level (90)
   166  //   - Carbon Monoxide Peak Level (91)
   167  //   - Name (23)
   168  //
   169  // UUID: 0000007F-0000-1000-8000-0026BB765291
   170  func CarbonMonoxideSensor(carbonMonoxideDetected hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   171  	chars := []hapip.Characteristic{carbonMonoxideDetected}
   172  	return characteristic.Service{
   173  		Typ:            CarbonMonoxideSensor_Type,
   174  		Characteristic: append(chars, optional...),
   175  	}
   176  }
   177  
   178  const ContactSensor_Type = "80"
   179  
   180  // ContactSensor represents a Contact Sensor service (80)
   181  // Required characteristics:
   182  //   - contactSensorState: Contact Sensor State (6A)
   183  //
   184  // Optional characteristics:
   185  //   - Status Active (75)
   186  //   - Status Fault (77)
   187  //   - Status Tampered (7A)
   188  //   - Status Low Battery (79)
   189  //   - Name (23)
   190  //
   191  // UUID: 00000080-0000-1000-8000-0026BB765291
   192  func ContactSensor(contactSensorState hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   193  	chars := []hapip.Characteristic{contactSensorState}
   194  	return characteristic.Service{
   195  		Typ:            ContactSensor_Type,
   196  		Characteristic: append(chars, optional...),
   197  	}
   198  }
   199  
   200  const Door_Type = "81"
   201  
   202  // Door represents a Door service (81)
   203  // Required characteristics:
   204  //   - currentPosition: Current Position (6D)
   205  //   - positionState: Position State (72)
   206  //   - targetPosition: Target Position (7C)
   207  //
   208  // Optional characteristics:
   209  //   - Hold Position (6F)
   210  //   - Obstruction Detected (24)
   211  //   - Name (23)
   212  //
   213  // UUID: 00000081-0000-1000-8000-0026BB765291
   214  func Door(currentPosition hapip.Characteristic, positionState hapip.Characteristic, targetPosition hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   215  	chars := []hapip.Characteristic{currentPosition, positionState, targetPosition}
   216  	return characteristic.Service{
   217  		Typ:            Door_Type,
   218  		Characteristic: append(chars, optional...),
   219  	}
   220  }
   221  
   222  const Doorbell_Type = "121"
   223  
   224  // Doorbell represents a Doorbell service (121)
   225  // Required characteristics:
   226  //   - programmableSwitchEvent: Programmable Switch Event (73)
   227  //
   228  // Optional characteristics:
   229  //   - Brightness (8)
   230  //   - Volume (119)
   231  //   - Name (23)
   232  //
   233  // UUID: 00000121-0000-1000-8000-0026BB765291
   234  func Doorbell(programmableSwitchEvent hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   235  	chars := []hapip.Characteristic{programmableSwitchEvent}
   236  	return characteristic.Service{
   237  		Typ:            Doorbell_Type,
   238  		Characteristic: append(chars, optional...),
   239  	}
   240  }
   241  
   242  const Fan_Type = "40"
   243  
   244  // Fan represents a Fan service (40)
   245  // Required characteristics:
   246  //   - on: On (25)
   247  //
   248  // Optional characteristics:
   249  //   - Rotation Direction (28)
   250  //   - Rotation Speed (29)
   251  //   - Name (23)
   252  //
   253  // UUID: 00000040-0000-1000-8000-0026BB765291
   254  func Fan(on hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   255  	chars := []hapip.Characteristic{on}
   256  	return characteristic.Service{
   257  		Typ:            Fan_Type,
   258  		Characteristic: append(chars, optional...),
   259  	}
   260  }
   261  
   262  const FanV2_Type = "B7"
   263  
   264  // FanV2 represents a Fan v2 service (B7)
   265  // Required characteristics:
   266  //   - active: Active (B0)
   267  //
   268  // Optional characteristics:
   269  //   - Current Fan State (AF)
   270  //   - Target Fan State (BF)
   271  //   - Lock Physical Controls (A7)
   272  //   - Name (23)
   273  //   - Rotation Direction (28)
   274  //   - Rotation Speed (29)
   275  //   - Swing Mode (B6)
   276  //
   277  // UUID: 000000B7-0000-1000-8000-0026BB765291
   278  func FanV2(active hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   279  	chars := []hapip.Characteristic{active}
   280  	return characteristic.Service{
   281  		Typ:            FanV2_Type,
   282  		Characteristic: append(chars, optional...),
   283  	}
   284  }
   285  
   286  const FilterMaintenance_Type = "BA"
   287  
   288  // FilterMaintenance represents a Filter Maintenance service (BA)
   289  // Required characteristics:
   290  //   - filterChangeIndication: Filter Change Indication (AC)
   291  //
   292  // Optional characteristics:
   293  //   - Filter Life Level (AB)
   294  //   - Reset Filter Indication (AD)
   295  //   - Name (23)
   296  //
   297  // UUID: 000000BA-0000-1000-8000-0026BB765291
   298  func FilterMaintenance(filterChangeIndication hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   299  	chars := []hapip.Characteristic{filterChangeIndication}
   300  	return characteristic.Service{
   301  		Typ:            FilterMaintenance_Type,
   302  		Characteristic: append(chars, optional...),
   303  	}
   304  }
   305  
   306  const Faucet_Type = "D7"
   307  
   308  // Faucet represents a Faucet service (D7)
   309  // Required characteristics:
   310  //   - active: Active (B0)
   311  //
   312  // Optional characteristics:
   313  //   - Name (23)
   314  //   - Status Fault (77)
   315  //
   316  // UUID: 000000D7-0000-1000-8000-0026BB765291
   317  func Faucet(active hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   318  	chars := []hapip.Characteristic{active}
   319  	return characteristic.Service{
   320  		Typ:            Faucet_Type,
   321  		Characteristic: append(chars, optional...),
   322  	}
   323  }
   324  
   325  const GarageDoorOpener_Type = "41"
   326  
   327  // GarageDoorOpener represents a Garage Door Opener service (41)
   328  // Required characteristics:
   329  //   - currentDoorState: Current Door State (E)
   330  //   - targetDoorState: Target Door State (32)
   331  //   - obstructionDetected: Obstruction Detected (24)
   332  //
   333  // Optional characteristics:
   334  //   - Lock Current State (1D)
   335  //   - Lock Target State (1E)
   336  //   - Name (23)
   337  //
   338  // UUID: 00000041-0000-1000-8000-0026BB765291
   339  func GarageDoorOpener(currentDoorState hapip.Characteristic, targetDoorState hapip.Characteristic, obstructionDetected hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   340  	chars := []hapip.Characteristic{currentDoorState, targetDoorState, obstructionDetected}
   341  	return characteristic.Service{
   342  		Typ:            GarageDoorOpener_Type,
   343  		Characteristic: append(chars, optional...),
   344  	}
   345  }
   346  
   347  const HeaterCooler_Type = "BC"
   348  
   349  // HeaterCooler represents a Heater Cooler service (BC)
   350  // Required characteristics:
   351  //   - active: Active (B0)
   352  //   - currentHeaterCoolerState: Current Heater Cooler State (B1)
   353  //   - targetHeaterCoolerState: Target Heater Cooler State (B2)
   354  //   - currentTemperature: Current Temperature (11)
   355  //
   356  // Optional characteristics:
   357  //   - Lock Physical Controls (A7)
   358  //   - Name (23)
   359  //   - Swing Mode (B6)
   360  //   - Cooling Threshold Temperature (D)
   361  //   - Heating Threshold Temperature (12)
   362  //   - Temperature Display Units (36)
   363  //   - Rotation Speed (29)
   364  //
   365  // UUID: 000000BC-0000-1000-8000-0026BB765291
   366  func HeaterCooler(active hapip.Characteristic, currentHeaterCoolerState hapip.Characteristic, targetHeaterCoolerState hapip.Characteristic, currentTemperature hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   367  	chars := []hapip.Characteristic{active, currentHeaterCoolerState, targetHeaterCoolerState, currentTemperature}
   368  	return characteristic.Service{
   369  		Typ:            HeaterCooler_Type,
   370  		Characteristic: append(chars, optional...),
   371  	}
   372  }
   373  
   374  const HumidifierDehumidifier_Type = "BD"
   375  
   376  // HumidifierDehumidifier represents a Humidifier Dehumidifier service (BD)
   377  // Required characteristics:
   378  //   - currentRelativeHumidity: Current Relative Humidity (10)
   379  //   - currentHumidifierDehumidifierState: Current Humidifier Dehumidifier State (B3)
   380  //   - targetHumidifierDehumidifierState: Target Humidifier Dehumidifier State (B4)
   381  //   - active: Active (B0)
   382  //
   383  // Optional characteristics:
   384  //   - Lock Physical Controls (A7)
   385  //   - Name (23)
   386  //   - Swing Mode (B6)
   387  //   - Water Level (B5)
   388  //   - Relative Humidity Dehumidifier Threshold (C9)
   389  //   - Relative Humidity Humidifier Threshold (CA)
   390  //   - Rotation Speed (29)
   391  //
   392  // UUID: 000000BD-0000-1000-8000-0026BB765291
   393  func HumidifierDehumidifier(currentRelativeHumidity hapip.Characteristic, currentHumidifierDehumidifierState hapip.Characteristic, targetHumidifierDehumidifierState hapip.Characteristic, active hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   394  	chars := []hapip.Characteristic{currentRelativeHumidity, currentHumidifierDehumidifierState, targetHumidifierDehumidifierState, active}
   395  	return characteristic.Service{
   396  		Typ:            HumidifierDehumidifier_Type,
   397  		Characteristic: append(chars, optional...),
   398  	}
   399  }
   400  
   401  const HumiditySensor_Type = "82"
   402  
   403  // HumiditySensor represents a Humidity Sensor service (82)
   404  // Required characteristics:
   405  //   - currentRelativeHumidity: Current Relative Humidity (10)
   406  //
   407  // Optional characteristics:
   408  //   - Status Active (75)
   409  //   - Status Fault (77)
   410  //   - Status Tampered (7A)
   411  //   - Status Low Battery (79)
   412  //   - Name (23)
   413  //
   414  // UUID: 00000082-0000-1000-8000-0026BB765291
   415  func HumiditySensor(currentRelativeHumidity hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   416  	chars := []hapip.Characteristic{currentRelativeHumidity}
   417  	return characteristic.Service{
   418  		Typ:            HumiditySensor_Type,
   419  		Characteristic: append(chars, optional...),
   420  	}
   421  }
   422  
   423  const IrrigationSystem_Type = "CF"
   424  
   425  // IrrigationSystem represents a Irrigation System service (CF)
   426  // Required characteristics:
   427  //   - active: Active (B0)
   428  //   - programMode: Program Mode (D1)
   429  //   - inUse: In Use (D2)
   430  //
   431  // Optional characteristics:
   432  //   - Name (23)
   433  //   - Remaining Duration (D4)
   434  //   - Status Fault (77)
   435  //
   436  // UUID: 000000CF-0000-1000-8000-0026BB765291
   437  func IrrigationSystem(active hapip.Characteristic, programMode hapip.Characteristic, inUse hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   438  	chars := []hapip.Characteristic{active, programMode, inUse}
   439  	return characteristic.Service{
   440  		Typ:            IrrigationSystem_Type,
   441  		Characteristic: append(chars, optional...),
   442  	}
   443  }
   444  
   445  const LeakSensor_Type = "83"
   446  
   447  // LeakSensor represents a Leak Sensor service (83)
   448  // Required characteristics:
   449  //   - leakDetected: Leak Detected (70)
   450  //
   451  // Optional characteristics:
   452  //   - Status Active (75)
   453  //   - Status Fault (77)
   454  //   - Status Tampered (7A)
   455  //   - Status Low Battery (79)
   456  //   - Name (23)
   457  //
   458  // UUID: 00000083-0000-1000-8000-0026BB765291
   459  func LeakSensor(leakDetected hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   460  	chars := []hapip.Characteristic{leakDetected}
   461  	return characteristic.Service{
   462  		Typ:            LeakSensor_Type,
   463  		Characteristic: append(chars, optional...),
   464  	}
   465  }
   466  
   467  const LightSensor_Type = "84"
   468  
   469  // LightSensor represents a Light Sensor service (84)
   470  // Required characteristics:
   471  //   - currentAmbientLightLevel: Current Ambient Light Level (6B)
   472  //
   473  // Optional characteristics:
   474  //   - Name (23)
   475  //   - Status Active (75)
   476  //   - Status Fault (77)
   477  //   - Status Tampered (7A)
   478  //   - Status Low Battery (79)
   479  //
   480  // UUID: 00000084-0000-1000-8000-0026BB765291
   481  func LightSensor(currentAmbientLightLevel hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   482  	chars := []hapip.Characteristic{currentAmbientLightLevel}
   483  	return characteristic.Service{
   484  		Typ:            LightSensor_Type,
   485  		Characteristic: append(chars, optional...),
   486  	}
   487  }
   488  
   489  const Lightbulb_Type = "43"
   490  
   491  // Lightbulb represents a Lightbulb service (43)
   492  // Required characteristics:
   493  //   - on: On (25)
   494  //
   495  // Optional characteristics:
   496  //   - Brightness (8)
   497  //   - Hue (13)
   498  //   - Saturation (2F)
   499  //   - Name (23)
   500  //
   501  // UUID: 00000043-0000-1000-8000-0026BB765291
   502  func Lightbulb(on hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   503  	chars := []hapip.Characteristic{on}
   504  	return characteristic.Service{
   505  		Typ:            Lightbulb_Type,
   506  		Characteristic: append(chars, optional...),
   507  	}
   508  }
   509  
   510  const LockManagement_Type = "44"
   511  
   512  // LockManagement represents a Lock Management service (44)
   513  // Required characteristics:
   514  //   - lockControlPoint: Lock Control Point (19)
   515  //   - version: Version (37)
   516  //
   517  // Optional characteristics:
   518  //   - Logs (1F)
   519  //   - Audio Feedback (5)
   520  //   - Lock Management Auto Security Timeout (1A)
   521  //   - Administrator Only Access (1)
   522  //   - Lock Last Known Action (1C)
   523  //   - Current Door State (E)
   524  //   - Motion Detected (22)
   525  //   - Name (23)
   526  //
   527  // UUID: 00000044-0000-1000-8000-0026BB765291
   528  func LockManagement(lockControlPoint hapip.Characteristic, version hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   529  	chars := []hapip.Characteristic{lockControlPoint, version}
   530  	return characteristic.Service{
   531  		Typ:            LockManagement_Type,
   532  		Characteristic: append(chars, optional...),
   533  	}
   534  }
   535  
   536  const LockMechanism_Type = "45"
   537  
   538  // LockMechanism represents a Lock Mechanism service (45)
   539  // Required characteristics:
   540  //   - lockCurrentState: Lock Current State (1D)
   541  //   - lockTargetState: Lock Target State (1E)
   542  //
   543  // Optional characteristics:
   544  //   - Name (23)
   545  //
   546  // UUID: 00000045-0000-1000-8000-0026BB765291
   547  func LockMechanism(lockCurrentState hapip.Characteristic, lockTargetState hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   548  	chars := []hapip.Characteristic{lockCurrentState, lockTargetState}
   549  	return characteristic.Service{
   550  		Typ:            LockMechanism_Type,
   551  		Characteristic: append(chars, optional...),
   552  	}
   553  }
   554  
   555  const Microphone_Type = "112"
   556  
   557  // Microphone represents a Microphone service (112)
   558  // Required characteristics:
   559  //   - volume: Volume (119)
   560  //   - mute: Mute (11A)
   561  //
   562  // Optional characteristics:
   563  //   - Name (23)
   564  //
   565  // UUID: 00000112-0000-1000-8000-0026BB765291
   566  func Microphone(volume hapip.Characteristic, mute hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   567  	chars := []hapip.Characteristic{volume, mute}
   568  	return characteristic.Service{
   569  		Typ:            Microphone_Type,
   570  		Characteristic: append(chars, optional...),
   571  	}
   572  }
   573  
   574  const MotionSensor_Type = "85"
   575  
   576  // MotionSensor represents a Motion Sensor service (85)
   577  // Required characteristics:
   578  //   - motionDetected: Motion Detected (22)
   579  //
   580  // Optional characteristics:
   581  //   - Status Active (75)
   582  //   - Status Fault (77)
   583  //   - Status Tampered (7A)
   584  //   - Status Low Battery (79)
   585  //   - Name (23)
   586  //
   587  // UUID: 00000085-0000-1000-8000-0026BB765291
   588  func MotionSensor(motionDetected hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   589  	chars := []hapip.Characteristic{motionDetected}
   590  	return characteristic.Service{
   591  		Typ:            MotionSensor_Type,
   592  		Characteristic: append(chars, optional...),
   593  	}
   594  }
   595  
   596  const OccupancySensor_Type = "86"
   597  
   598  // OccupancySensor represents a Occupancy Sensor service (86)
   599  // Required characteristics:
   600  //   - occupancyDetected: Occupancy Detected (71)
   601  //
   602  // Optional characteristics:
   603  //   - Name (23)
   604  //   - Status Active (75)
   605  //   - Status Fault (77)
   606  //   - Status Tampered (7A)
   607  //   - Status Low Battery (79)
   608  //
   609  // UUID: 00000086-0000-1000-8000-0026BB765291
   610  func OccupancySensor(occupancyDetected hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   611  	chars := []hapip.Characteristic{occupancyDetected}
   612  	return characteristic.Service{
   613  		Typ:            OccupancySensor_Type,
   614  		Characteristic: append(chars, optional...),
   615  	}
   616  }
   617  
   618  const Outlet_Type = "47"
   619  
   620  // Outlet represents a Outlet service (47)
   621  // Required characteristics:
   622  //   - on: On (25)
   623  //   - outletInUse: Outlet In Use (26)
   624  //
   625  // Optional characteristics:
   626  //   - Name (23)
   627  //
   628  // UUID: 00000047-0000-1000-8000-0026BB765291
   629  func Outlet(on hapip.Characteristic, outletInUse hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   630  	chars := []hapip.Characteristic{on, outletInUse}
   631  	return characteristic.Service{
   632  		Typ:            Outlet_Type,
   633  		Characteristic: append(chars, optional...),
   634  	}
   635  }
   636  
   637  const SecuritySystem_Type = "7E"
   638  
   639  // SecuritySystem represents a Security System service (7E)
   640  // Required characteristics:
   641  //   - securitySystemCurrentState: Security System Current State (66)
   642  //   - securitySystemTargetState: Security System Target State (67)
   643  //
   644  // Optional characteristics:
   645  //   - Status Fault (77)
   646  //   - Status Tampered (7A)
   647  //   - Security System Alarm Type (8E)
   648  //   - Name (23)
   649  //
   650  // UUID: 0000007E-0000-1000-8000-0026BB765291
   651  func SecuritySystem(securitySystemCurrentState hapip.Characteristic, securitySystemTargetState hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   652  	chars := []hapip.Characteristic{securitySystemCurrentState, securitySystemTargetState}
   653  	return characteristic.Service{
   654  		Typ:            SecuritySystem_Type,
   655  		Characteristic: append(chars, optional...),
   656  	}
   657  }
   658  
   659  const ServiceLabel_Type = "CC"
   660  
   661  // ServiceLabel represents a Service Label service (CC)
   662  // Required characteristics:
   663  //   - serviceLabelNamespace: Service Label Namespace (CD)
   664  //
   665  // Optional characteristics:
   666  //   - Name (23)
   667  //
   668  // UUID: 000000CC-0000-1000-8000-0026BB765291
   669  func ServiceLabel(serviceLabelNamespace hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   670  	chars := []hapip.Characteristic{serviceLabelNamespace}
   671  	return characteristic.Service{
   672  		Typ:            ServiceLabel_Type,
   673  		Characteristic: append(chars, optional...),
   674  	}
   675  }
   676  
   677  const Slat_Type = "B9"
   678  
   679  // Slat represents a Slat service (B9)
   680  // Required characteristics:
   681  //   - slatType: Slat Type (C0)
   682  //   - currentSlatState: Current Slat State (AA)
   683  //
   684  // Optional characteristics:
   685  //   - Name (23)
   686  //   - Current Tilt Angle (C1)
   687  //   - Target Tilt Angle (C2)
   688  //   - Swing Mode (B6)
   689  //
   690  // UUID: 000000B9-0000-1000-8000-0026BB765291
   691  func Slat(slatType hapip.Characteristic, currentSlatState hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   692  	chars := []hapip.Characteristic{slatType, currentSlatState}
   693  	return characteristic.Service{
   694  		Typ:            Slat_Type,
   695  		Characteristic: append(chars, optional...),
   696  	}
   697  }
   698  
   699  const SmokeSensor_Type = "87"
   700  
   701  // SmokeSensor represents a Smoke Sensor service (87)
   702  // Required characteristics:
   703  //   - smokeDetected: Smoke Detected (76)
   704  //
   705  // Optional characteristics:
   706  //   - Status Active (75)
   707  //   - Status Fault (77)
   708  //   - Status Tampered (7A)
   709  //   - Status Low Battery (79)
   710  //   - Name (23)
   711  //
   712  // UUID: 00000087-0000-1000-8000-0026BB765291
   713  func SmokeSensor(smokeDetected hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   714  	chars := []hapip.Characteristic{smokeDetected}
   715  	return characteristic.Service{
   716  		Typ:            SmokeSensor_Type,
   717  		Characteristic: append(chars, optional...),
   718  	}
   719  }
   720  
   721  const Speaker_Type = "113"
   722  
   723  // Speaker represents a Speaker service (113)
   724  // Required characteristics:
   725  //   - mute: Mute (11A)
   726  //
   727  // Optional characteristics:
   728  //   - Name (23)
   729  //   - Volume (119)
   730  //
   731  // UUID: 00000113-0000-1000-8000-0026BB765291
   732  func Speaker(mute hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   733  	chars := []hapip.Characteristic{mute}
   734  	return characteristic.Service{
   735  		Typ:            Speaker_Type,
   736  		Characteristic: append(chars, optional...),
   737  	}
   738  }
   739  
   740  const StatelessProgrammableSwitch_Type = "89"
   741  
   742  // StatelessProgrammableSwitch represents a Stateless Programmable Switch service (89)
   743  // Required characteristics:
   744  //   - programmableSwitchEvent: Programmable Switch Event (73)
   745  //
   746  // Optional characteristics:
   747  //   - Name (23)
   748  //   - Service Label Index (CB)
   749  //
   750  // UUID: 00000089-0000-1000-8000-0026BB765291
   751  func StatelessProgrammableSwitch(programmableSwitchEvent hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   752  	chars := []hapip.Characteristic{programmableSwitchEvent}
   753  	return characteristic.Service{
   754  		Typ:            StatelessProgrammableSwitch_Type,
   755  		Characteristic: append(chars, optional...),
   756  	}
   757  }
   758  
   759  const Switch_Type = "49"
   760  
   761  // Switch represents a Switch service (49)
   762  // Required characteristics:
   763  //   - on: On (25)
   764  //
   765  // Optional characteristics:
   766  //   - Name (23)
   767  //
   768  // UUID: 00000049-0000-1000-8000-0026BB765291
   769  func Switch(on hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   770  	chars := []hapip.Characteristic{on}
   771  	return characteristic.Service{
   772  		Typ:            Switch_Type,
   773  		Characteristic: append(chars, optional...),
   774  	}
   775  }
   776  
   777  const TemperatureSensor_Type = "8A"
   778  
   779  // TemperatureSensor represents a Temperature Sensor service (8A)
   780  // Required characteristics:
   781  //   - currentTemperature: Current Temperature (11)
   782  //
   783  // Optional characteristics:
   784  //   - Status Active (75)
   785  //   - Status Fault (77)
   786  //   - Status Low Battery (79)
   787  //   - Status Tampered (7A)
   788  //   - Name (23)
   789  //
   790  // UUID: 0000008A-0000-1000-8000-0026BB765291
   791  func TemperatureSensor(currentTemperature hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   792  	chars := []hapip.Characteristic{currentTemperature}
   793  	return characteristic.Service{
   794  		Typ:            TemperatureSensor_Type,
   795  		Characteristic: append(chars, optional...),
   796  	}
   797  }
   798  
   799  const Thermostat_Type = "4A"
   800  
   801  // Thermostat represents a Thermostat service (4A)
   802  // Required characteristics:
   803  //   - currentHeatingCoolingState: Current Heating Cooling State (F)
   804  //   - targetHeatingCoolingState: Target Heating Cooling State (33)
   805  //   - currentTemperature: Current Temperature (11)
   806  //   - targetTemperature: Target Temperature (35)
   807  //   - temperatureDisplayUnits: Temperature Display Units (36)
   808  //
   809  // Optional characteristics:
   810  //   - Current Relative Humidity (10)
   811  //   - Target Relative Humidity (34)
   812  //   - Cooling Threshold Temperature (D)
   813  //   - Heating Threshold Temperature (12)
   814  //   - Name (23)
   815  //
   816  // UUID: 0000004A-0000-1000-8000-0026BB765291
   817  func Thermostat(currentHeatingCoolingState hapip.Characteristic, targetHeatingCoolingState hapip.Characteristic, currentTemperature hapip.Characteristic, targetTemperature hapip.Characteristic, temperatureDisplayUnits hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   818  	chars := []hapip.Characteristic{currentHeatingCoolingState, targetHeatingCoolingState, currentTemperature, targetTemperature, temperatureDisplayUnits}
   819  	return characteristic.Service{
   820  		Typ:            Thermostat_Type,
   821  		Characteristic: append(chars, optional...),
   822  	}
   823  }
   824  
   825  const Valve_Type = "D0"
   826  
   827  // Valve represents a Valve service (D0)
   828  // Required characteristics:
   829  //   - active: Active (B0)
   830  //   - inUse: In Use (D2)
   831  //   - valveType: Valve Type (D5)
   832  //
   833  // Optional characteristics:
   834  //   - Set Duration (D3)
   835  //   - Remaining Duration (D4)
   836  //   - Is Configured (D6)
   837  //   - Service Label Index (CB)
   838  //   - Status Fault (77)
   839  //   - Name (23)
   840  //
   841  // UUID: 000000D0-0000-1000-8000-0026BB765291
   842  func Valve(active hapip.Characteristic, inUse hapip.Characteristic, valveType hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   843  	chars := []hapip.Characteristic{active, inUse, valveType}
   844  	return characteristic.Service{
   845  		Typ:            Valve_Type,
   846  		Characteristic: append(chars, optional...),
   847  	}
   848  }
   849  
   850  const Window_Type = "8B"
   851  
   852  // Window represents a Window service (8B)
   853  // Required characteristics:
   854  //   - currentPosition: Current Position (6D)
   855  //   - targetPosition: Target Position (7C)
   856  //   - positionState: Position State (72)
   857  //
   858  // Optional characteristics:
   859  //   - Hold Position (6F)
   860  //   - Obstruction Detected (24)
   861  //   - Name (23)
   862  //
   863  // UUID: 0000008B-0000-1000-8000-0026BB765291
   864  func Window(currentPosition hapip.Characteristic, targetPosition hapip.Characteristic, positionState hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   865  	chars := []hapip.Characteristic{currentPosition, targetPosition, positionState}
   866  	return characteristic.Service{
   867  		Typ:            Window_Type,
   868  		Characteristic: append(chars, optional...),
   869  	}
   870  }
   871  
   872  const WindowCovering_Type = "8C"
   873  
   874  // WindowCovering represents a Window Covering service (8C)
   875  // Required characteristics:
   876  //   - currentPosition: Current Position (6D)
   877  //   - targetPosition: Target Position (7C)
   878  //   - positionState: Position State (72)
   879  //
   880  // Optional characteristics:
   881  //   - Hold Position (6F)
   882  //   - Target Horizontal Tilt Angle (7B)
   883  //   - Target Vertical Tilt Angle (7D)
   884  //   - Current Horizontal Tilt Angle (6C)
   885  //   - Current Vertical Tilt Angle (6E)
   886  //   - Obstruction Detected (24)
   887  //   - Name (23)
   888  //
   889  // UUID: 0000008C-0000-1000-8000-0026BB765291
   890  func WindowCovering(currentPosition hapip.Characteristic, targetPosition hapip.Characteristic, positionState hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   891  	chars := []hapip.Characteristic{currentPosition, targetPosition, positionState}
   892  	return characteristic.Service{
   893  		Typ:            WindowCovering_Type,
   894  		Characteristic: append(chars, optional...),
   895  	}
   896  }
   897  
   898  const Television_Type = "D8"
   899  
   900  // Television represents a Television service (D8)
   901  // Required characteristics:
   902  //   - active: Active (B0)
   903  //   - activeIdentifier: Active Identifier (E7)
   904  //   - configuredName: Configured Name (E3)
   905  //   - sleepDiscoveryMode: Sleep Discovery Mode (E8)
   906  //
   907  // Optional characteristics:
   908  //   - Brightness (8)
   909  //   - Closed Captions (DD)
   910  //   - Display Order (136)
   911  //   - Current Media State (E0)
   912  //   - Target Media State (137)
   913  //   - Picture Mode (E2)
   914  //   - Power Mode Selection (DF)
   915  //   - Remote Key (E1)
   916  //
   917  // UUID: 000000D8-0000-1000-8000-0026BB765291
   918  func Television(active hapip.Characteristic, activeIdentifier hapip.Characteristic, configuredName hapip.Characteristic, sleepDiscoveryMode hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   919  	chars := []hapip.Characteristic{active, activeIdentifier, configuredName, sleepDiscoveryMode}
   920  	return characteristic.Service{
   921  		Typ:            Television_Type,
   922  		Characteristic: append(chars, optional...),
   923  	}
   924  }
   925  
   926  const InputSource_Type = "D9"
   927  
   928  // InputSource represents a Input Source service (D9)
   929  // Required characteristics:
   930  //   - configuredName: Configured Name (E3)
   931  //   - inputSourceType: Input Source Type (DB)
   932  //   - isConfigured: Is Configured (D6)
   933  //   - currentVisibilityState: Current Visibility State (135)
   934  //
   935  // Optional characteristics:
   936  //   - Identifier (E6)
   937  //   - Input Device Type (DC)
   938  //   - Target Visibility State (134)
   939  //   - Name (23)
   940  //
   941  // UUID: 000000D9-0000-1000-8000-0026BB765291
   942  func InputSource(configuredName hapip.Characteristic, inputSourceType hapip.Characteristic, isConfigured hapip.Characteristic, currentVisibilityState hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   943  	chars := []hapip.Characteristic{configuredName, inputSourceType, isConfigured, currentVisibilityState}
   944  	return characteristic.Service{
   945  		Typ:            InputSource_Type,
   946  		Characteristic: append(chars, optional...),
   947  	}
   948  }
   949  
   950  const CameraRecordingManagement_Type = "204"
   951  
   952  // CameraRecordingManagement represents a Camera Recording Management service (204)
   953  // Required characteristics:
   954  //   - supportedCameraRecordingConfiguration: Supported Camera Recording Configuration (205)
   955  //   - supportedVideoRecordingConfiguration: Supported Video Recording Configuration (206)
   956  //   - supportedAudioRecordingConfiguration: Supported Audio Recording Configuration (207)
   957  //   - selectedCameraRecordingConfiguration: Selected Camera Recording Configuration (209)
   958  //
   959  // UUID: 00000204-0000-1000-8000-0026BB765291
   960  func CameraRecordingManagement(supportedCameraRecordingConfiguration hapip.Characteristic, supportedVideoRecordingConfiguration hapip.Characteristic, supportedAudioRecordingConfiguration hapip.Characteristic, selectedCameraRecordingConfiguration hapip.Characteristic, optional ...hapip.Characteristic) characteristic.Service {
   961  	chars := []hapip.Characteristic{supportedCameraRecordingConfiguration, supportedVideoRecordingConfiguration, supportedAudioRecordingConfiguration, selectedCameraRecordingConfiguration}
   962  	return characteristic.Service{
   963  		Typ:            CameraRecordingManagement_Type,
   964  		Characteristic: append(chars, optional...),
   965  	}
   966  }