@felixgeelhaar/govee-api-client 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +162 -2
  2. package/dist/GoveeClient.d.ts +16 -1
  3. package/dist/GoveeClient.d.ts.map +1 -1
  4. package/dist/GoveeClient.js +27 -0
  5. package/dist/GoveeClient.js.map +1 -1
  6. package/dist/domain/entities/Command.d.ts +124 -1
  7. package/dist/domain/entities/Command.d.ts.map +1 -1
  8. package/dist/domain/entities/Command.js +173 -1
  9. package/dist/domain/entities/Command.js.map +1 -1
  10. package/dist/domain/entities/DeviceState.d.ts +34 -2
  11. package/dist/domain/entities/DeviceState.d.ts.map +1 -1
  12. package/dist/domain/entities/DeviceState.js +32 -0
  13. package/dist/domain/entities/DeviceState.js.map +1 -1
  14. package/dist/domain/entities/GoveeDevice.d.ts.map +1 -1
  15. package/dist/domain/entities/GoveeDevice.js +56 -0
  16. package/dist/domain/entities/GoveeDevice.js.map +1 -1
  17. package/dist/domain/entities/index.d.ts +2 -2
  18. package/dist/domain/entities/index.d.ts.map +1 -1
  19. package/dist/domain/entities/index.js +1 -1
  20. package/dist/domain/entities/index.js.map +1 -1
  21. package/dist/domain/repositories/IGoveeDeviceRepository.d.ts +5 -0
  22. package/dist/domain/repositories/IGoveeDeviceRepository.d.ts.map +1 -1
  23. package/dist/domain/value-objects/LightScene.d.ts +72 -0
  24. package/dist/domain/value-objects/LightScene.d.ts.map +1 -0
  25. package/dist/domain/value-objects/LightScene.js +138 -0
  26. package/dist/domain/value-objects/LightScene.js.map +1 -0
  27. package/dist/domain/value-objects/MusicMode.d.ts +51 -0
  28. package/dist/domain/value-objects/MusicMode.d.ts.map +1 -0
  29. package/dist/domain/value-objects/MusicMode.js +95 -0
  30. package/dist/domain/value-objects/MusicMode.js.map +1 -0
  31. package/dist/domain/value-objects/SegmentColor.d.ts +59 -0
  32. package/dist/domain/value-objects/SegmentColor.d.ts.map +1 -0
  33. package/dist/domain/value-objects/SegmentColor.js +90 -0
  34. package/dist/domain/value-objects/SegmentColor.js.map +1 -0
  35. package/dist/domain/value-objects/index.d.ts +3 -0
  36. package/dist/domain/value-objects/index.d.ts.map +1 -1
  37. package/dist/domain/value-objects/index.js +3 -0
  38. package/dist/domain/value-objects/index.js.map +1 -1
  39. package/dist/index.d.ts +3 -3
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +3 -3
  42. package/dist/index.js.map +1 -1
  43. package/dist/infrastructure/GoveeDeviceRepository.d.ts +2 -0
  44. package/dist/infrastructure/GoveeDeviceRepository.d.ts.map +1 -1
  45. package/dist/infrastructure/GoveeDeviceRepository.js +125 -8
  46. package/dist/infrastructure/GoveeDeviceRepository.js.map +1 -1
  47. package/dist/infrastructure/response-schemas.d.ts +47 -0
  48. package/dist/infrastructure/response-schemas.d.ts.map +1 -1
  49. package/dist/infrastructure/response-schemas.js +28 -0
  50. package/dist/infrastructure/response-schemas.js.map +1 -1
  51. package/dist/infrastructure/retry/RetryableRepository.d.ts +5 -0
  52. package/dist/infrastructure/retry/RetryableRepository.d.ts.map +1 -1
  53. package/dist/infrastructure/retry/RetryableRepository.js +17 -0
  54. package/dist/infrastructure/retry/RetryableRepository.js.map +1 -1
  55. package/dist/services/GoveeControlService.d.ts +43 -1
  56. package/dist/services/GoveeControlService.d.ts.map +1 -1
  57. package/dist/services/GoveeControlService.js +70 -0
  58. package/dist/services/GoveeControlService.js.map +1 -1
  59. package/docs/EXAMPLES.md +238 -0
  60. package/docs/LLM_API_REFERENCE.md +139 -6
  61. package/docs/TYPE_DEFINITIONS.md +86 -0
  62. package/package.json +1 -1
@@ -73,10 +73,57 @@ export declare const GoveeCommandResponseSchema: z.ZodObject<{
73
73
  message: z.ZodString;
74
74
  data: z.ZodOptional<z.ZodUnknown>;
75
75
  }, z.core.$strip>;
76
+ export declare const GoveeSceneOptionSchema: z.ZodObject<{
77
+ name: z.ZodString;
78
+ value: z.ZodObject<{
79
+ paramId: z.ZodNumber;
80
+ id: z.ZodNumber;
81
+ }, z.core.$strip>;
82
+ }, z.core.$strip>;
83
+ export declare const GoveeDynamicSceneCapabilitySchema: z.ZodObject<{
84
+ type: z.ZodString;
85
+ instance: z.ZodString;
86
+ parameters: z.ZodObject<{
87
+ dataType: z.ZodString;
88
+ options: z.ZodArray<z.ZodObject<{
89
+ name: z.ZodString;
90
+ value: z.ZodObject<{
91
+ paramId: z.ZodNumber;
92
+ id: z.ZodNumber;
93
+ }, z.core.$strip>;
94
+ }, z.core.$strip>>;
95
+ }, z.core.$strip>;
96
+ }, z.core.$strip>;
97
+ export declare const GoveeDynamicScenesResponseSchema: z.ZodObject<{
98
+ requestId: z.ZodOptional<z.ZodString>;
99
+ msg: z.ZodOptional<z.ZodString>;
100
+ code: z.ZodNumber;
101
+ payload: z.ZodObject<{
102
+ sku: z.ZodString;
103
+ device: z.ZodString;
104
+ capabilities: z.ZodArray<z.ZodObject<{
105
+ type: z.ZodString;
106
+ instance: z.ZodString;
107
+ parameters: z.ZodObject<{
108
+ dataType: z.ZodString;
109
+ options: z.ZodArray<z.ZodObject<{
110
+ name: z.ZodString;
111
+ value: z.ZodObject<{
112
+ paramId: z.ZodNumber;
113
+ id: z.ZodNumber;
114
+ }, z.core.$strip>;
115
+ }, z.core.$strip>>;
116
+ }, z.core.$strip>;
117
+ }, z.core.$strip>>;
118
+ }, z.core.$strip>;
119
+ }, z.core.$strip>;
76
120
  export type GoveeCapability = z.infer<typeof GoveeCapabilitySchema>;
77
121
  export type GoveeDeviceResponse = z.infer<typeof GoveeDeviceResponseSchema>;
78
122
  export type GoveeDevicesResponse = z.infer<typeof GoveeDevicesResponseSchema>;
79
123
  export type GoveeStateCapability = z.infer<typeof GoveeStateCapabilitySchema>;
80
124
  export type GoveeStateResponse = z.infer<typeof GoveeStateResponseSchema>;
81
125
  export type GoveeCommandResponse = z.infer<typeof GoveeCommandResponseSchema>;
126
+ export type GoveeSceneOption = z.infer<typeof GoveeSceneOptionSchema>;
127
+ export type GoveeDynamicSceneCapability = z.infer<typeof GoveeDynamicSceneCapabilitySchema>;
128
+ export type GoveeDynamicScenesResponse = z.infer<typeof GoveeDynamicScenesResponseSchema>;
82
129
  //# sourceMappingURL=response-schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response-schemas.d.ts","sourceRoot":"","sources":["../../src/infrastructure/response-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAkBlB,CAAC;AAGjB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;iBAOtB,CAAC;AAGjB,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;iBAIrC,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;;;iBAMrC,CAAC;AAGH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;iBAQnC,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;iBAIrC,CAAC;AAGH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
1
+ {"version":3,"file":"response-schemas.d.ts","sourceRoot":"","sources":["../../src/infrastructure/response-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAkBlB,CAAC;AAGjB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;iBAOtB,CAAC;AAGjB,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;iBAIrC,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;;;iBAMrC,CAAC;AAGH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;iBAQnC,CAAC;AAGH,eAAO,MAAM,0BAA0B;;;;iBAIrC,CAAC;AAGH,eAAO,MAAM,sBAAsB;;;;;;iBAMjC,CAAC;AAGH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;iBAO5C,CAAC;AAGH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;iBAS3C,CAAC;AAGH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAC5F,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC"}
@@ -56,4 +56,32 @@ export const GoveeCommandResponseSchema = z.object({
56
56
  message: z.string(),
57
57
  data: z.unknown().optional(),
58
58
  });
59
+ // Dynamic Scene option schema
60
+ export const GoveeSceneOptionSchema = z.object({
61
+ name: z.string(),
62
+ value: z.object({
63
+ paramId: z.number(),
64
+ id: z.number(),
65
+ }),
66
+ });
67
+ // Dynamic Scenes capability schema
68
+ export const GoveeDynamicSceneCapabilitySchema = z.object({
69
+ type: z.string(),
70
+ instance: z.string(),
71
+ parameters: z.object({
72
+ dataType: z.string(),
73
+ options: z.array(GoveeSceneOptionSchema),
74
+ }),
75
+ });
76
+ // Dynamic Scenes API response schema
77
+ export const GoveeDynamicScenesResponseSchema = z.object({
78
+ requestId: z.string().optional(),
79
+ msg: z.string().optional(),
80
+ code: z.number(),
81
+ payload: z.object({
82
+ sku: z.string(),
83
+ device: z.string(),
84
+ capabilities: z.array(GoveeDynamicSceneCapabilitySchema),
85
+ }),
86
+ });
59
87
  //# sourceMappingURL=response-schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"response-schemas.js","sourceRoot":"","sources":["../../src/infrastructure/response-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,uDAAuD;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC1C,UAAU,EAAE,CAAC;SACV,MAAM,CAAC;QACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,OAAO,EAAE,CAAC;aACP,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;SACnB,CAAC,CACH;aACA,QAAQ,EAAE;KACd,CAAC;SACD,QAAQ,EAAE;CACd,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,6DAA6D;AAC7D,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC;KACvC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACxC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,kCAAkC;CACvG,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,mCAAmC;AACnC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC;CACzC,CAAC,CAAC;AAEH,iCAAiC;AACjC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,kDAAkD,CAAC;IAC3E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sDAAsD,CAAC;IACnF,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;KACnB,CAAC;CACH,CAAC,CAAC;AAEH,mCAAmC;AACnC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;QACjE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,gCAAgC,CAAC;QACxD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC;KAClD,CAAC;CACH,CAAC,CAAC;AAEH,8BAA8B;AAC9B,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC"}
1
+ {"version":3,"file":"response-schemas.js","sourceRoot":"","sources":["../../src/infrastructure/response-schemas.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { IGoveeDeviceRepository } from '../../domain/repositories/IGoveeDeviceRe
3
3
  import { GoveeDevice } from '../../domain/entities/GoveeDevice';
4
4
  import { DeviceState } from '../../domain/entities/DeviceState';
5
5
  import { Command } from '../../domain/entities/Command';
6
+ import { LightScene } from '../../domain/value-objects';
6
7
  import { RetryExecutor, RetryResult } from './RetryableRequest';
7
8
  /**
8
9
  * Configuration for RetryableRepository
@@ -43,6 +44,10 @@ export declare class RetryableRepository implements IGoveeDeviceRepository {
43
44
  * Sends command with retry logic
44
45
  */
45
46
  sendCommand(deviceId: string, sku: string, command: Command): Promise<void>;
47
+ /**
48
+ * Finds dynamic scenes with retry logic
49
+ */
50
+ findDynamicScenes(deviceId: string, sku: string): Promise<LightScene[]>;
46
51
  /**
47
52
  * Gets detailed retry result for findAll operation
48
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"RetryableRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/retry/RetryableRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EACL,aAAa,EAGb,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAG5B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,wCAAwC;IACxC,UAAU,EAAE,sBAAsB,CAAC;IACnC,4BAA4B;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,sBAAsB;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,gBAAgB,CAAK;gBAEjB,MAAM,EAAE,yBAAyB;IAQ7C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAcvC;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAgBpE;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjF;;OAEG;IACG,sBAAsB,IAAI,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAcnE;;OAEG;IACG,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAgBhG;;OAEG;IACG,0BAA0B,CAC9B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAiB7B;;OAEG;IACH,eAAe;IAIf;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;OAEG;IACH,uBAAuB,IAAI,sBAAsB;CAGlD;AAED;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"RetryableRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/retry/RetryableRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EACL,aAAa,EAGb,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAG5B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,wCAAwC;IACxC,UAAU,EAAE,sBAAsB,CAAC;IACnC,4BAA4B;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,sBAAsB;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,gBAAgB,CAAK;gBAEjB,MAAM,EAAE,yBAAyB;IAQ7C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAcvC;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAgBpE;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjF;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAgB7E;;OAEG;IACG,sBAAsB,IAAI,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;IAcnE;;OAEG;IACG,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAgBhG;;OAEG;IACG,0BAA0B,CAC9B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAiB7B;;OAEG;IACH,eAAe;IAIf;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;OAEG;IACH,uBAAuB,IAAI,sBAAsB;CAGlD;AAED;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -70,6 +70,23 @@ export class RetryableRepository {
70
70
  };
71
71
  return this.retryExecutor.execute(request);
72
72
  }
73
+ /**
74
+ * Finds dynamic scenes with retry logic
75
+ */
76
+ async findDynamicScenes(deviceId, sku) {
77
+ const request = {
78
+ id: this.generateRequestId('findDynamicScenes'),
79
+ description: `Fetch dynamic scenes for device ${deviceId} (${sku})`,
80
+ execute: () => this.repository.findDynamicScenes(deviceId, sku),
81
+ context: {
82
+ operation: 'findDynamicScenes',
83
+ deviceId,
84
+ sku,
85
+ timestamp: new Date().toISOString(),
86
+ },
87
+ };
88
+ return this.retryExecutor.execute(request);
89
+ }
73
90
  /**
74
91
  * Gets detailed retry result for findAll operation
75
92
  */
@@ -1 +1 @@
1
- {"version":3,"file":"RetryableRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/retry/RetryableRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RetryableRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/retry/RetryableRepository.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { IGoveeDeviceRepository } from '../domain/repositories/IGoveeDeviceRepos
3
3
  import { GoveeDevice } from '../domain/entities/GoveeDevice';
4
4
  import { DeviceState } from '../domain/entities/DeviceState';
5
5
  import { Command } from '../domain/entities/Command';
6
- import { ColorRgb, ColorTemperature, Brightness } from '../domain/value-objects';
6
+ import { ColorRgb, ColorTemperature, Brightness, LightScene, SegmentColor, MusicMode } from '../domain/value-objects';
7
7
  import { SlidingWindowRateLimiterConfig } from '../infrastructure';
8
8
  import { RetryPolicy } from '../infrastructure/retry';
9
9
  export interface GoveeControlServiceConfig {
@@ -57,6 +57,48 @@ export declare class GoveeControlService {
57
57
  * Sets the color temperature of a device
58
58
  */
59
59
  setColorTemperature(deviceId: string, model: string, colorTemperature: ColorTemperature): Promise<void>;
60
+ /**
61
+ * Retrieves available dynamic light scenes for a specific device
62
+ */
63
+ getDynamicScenes(deviceId: string, model: string): Promise<LightScene[]>;
64
+ /**
65
+ * Sets a dynamic light scene on a device
66
+ */
67
+ setLightScene(deviceId: string, model: string, scene: LightScene): Promise<void>;
68
+ /**
69
+ * Sets segment colors for RGB IC devices
70
+ */
71
+ setSegmentColors(deviceId: string, model: string, segments: SegmentColor | SegmentColor[]): Promise<void>;
72
+ /**
73
+ * Sets segment brightness for RGB IC devices
74
+ */
75
+ setSegmentBrightness(deviceId: string, model: string, segments: Array<{
76
+ index: number;
77
+ brightness: Brightness;
78
+ }> | {
79
+ index: number;
80
+ brightness: Brightness;
81
+ }): Promise<void>;
82
+ /**
83
+ * Sets music mode on a device
84
+ */
85
+ setMusicMode(deviceId: string, model: string, musicMode: MusicMode): Promise<void>;
86
+ /**
87
+ * Toggles nightlight mode on a device
88
+ */
89
+ setNightlightToggle(deviceId: string, model: string, enabled: boolean): Promise<void>;
90
+ /**
91
+ * Toggles gradient mode on a device
92
+ */
93
+ setGradientToggle(deviceId: string, model: string, enabled: boolean): Promise<void>;
94
+ /**
95
+ * Sets nightlight scene on a device
96
+ */
97
+ setNightlightScene(deviceId: string, model: string, sceneValue: string | number): Promise<void>;
98
+ /**
99
+ * Sets preset scene on a device
100
+ */
101
+ setPresetScene(deviceId: string, model: string, sceneValue: string | number): Promise<void>;
60
102
  /**
61
103
  * Convenience method to turn on a device and set its brightness
62
104
  */
@@ -1 +1 @@
1
- {"version":3,"file":"GoveeControlService.d.ts","sourceRoot":"","sources":["../../src/services/GoveeControlService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GoveeControlService.d.ts","sourceRoot":"","sources":["../../src/services/GoveeControlService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAkB,MAAM,4BAA4B,CAAC;AACrE,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,SAAS,EACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAA4B,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAGL,WAAW,EAEZ,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,sBAAsB,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;CACjF;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;gBAE5B,MAAM,EAAE,yBAAyB;IA4C7C;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAqDjC,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAU1C;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAW3E;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnF;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3F;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/E;;OAEG;IACG,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,gBAAgB,GACjC,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAW9E;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtF;;OAEG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE,GACtC,OAAO,CAAC,IAAI,CAAC;IAShB;;OAEG;IACG,oBAAoB,CACxB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EACJ,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,UAAU,CAAA;KAAE,CAAC,GAChD;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,UAAU,CAAA;KAAE,GAC5C,OAAO,CAAC,IAAI,CAAC;IAShB;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxF;;OAEG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3F;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzF;;OAEG;IACG,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GAAG,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC;IAKhB;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GAAG,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC;IAKhB;;OAEG;IACG,oBAAoB,CACxB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,IAAI,CAAC;IAShB;;OAEG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,QAAQ,EACf,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,IAAI,CAAC;IAYhB;;OAEG;IACG,0BAA0B,CAC9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,IAAI,CAAC;IAYhB;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvE;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1E;;OAEG;IACG,sBAAsB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAKtD;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAKrD;;OAEG;IACG,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAO5E;;OAEG;IACG,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAK/D;;OAEG;IACH,mBAAmB;;;;;;;;;IAInB;;OAEG;IACH,eAAe;IAYf;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAWzB;;OAEG;IACH,eAAe;;;;;;;;;;;;;;;;IAaf;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB,OAAO,CAAC,oBAAoB;CAQ7B"}
@@ -167,6 +167,76 @@ export class GoveeControlService {
167
167
  this.logger?.info({ deviceId, model, colorTemperature: colorTemperature.kelvin }, 'Setting device color temperature');
168
168
  await this.sendCommand(deviceId, model, CommandFactory.colorTemperature(colorTemperature));
169
169
  }
170
+ /**
171
+ * Retrieves available dynamic light scenes for a specific device
172
+ */
173
+ async getDynamicScenes(deviceId, model) {
174
+ this.validateDeviceParams(deviceId, model);
175
+ this.logger?.info({ deviceId, model }, 'Getting dynamic light scenes');
176
+ return this.rateLimiter.execute(async () => {
177
+ const scenes = await this.repository.findDynamicScenes(deviceId, model);
178
+ this.logger?.info({ deviceId, model, sceneCount: scenes.length }, 'Retrieved dynamic scenes');
179
+ return scenes;
180
+ });
181
+ }
182
+ /**
183
+ * Sets a dynamic light scene on a device
184
+ */
185
+ async setLightScene(deviceId, model, scene) {
186
+ this.logger?.info({ deviceId, model, scene: scene.name }, 'Setting device light scene');
187
+ await this.sendCommand(deviceId, model, CommandFactory.lightScene(scene));
188
+ }
189
+ /**
190
+ * Sets segment colors for RGB IC devices
191
+ */
192
+ async setSegmentColors(deviceId, model, segments) {
193
+ const segmentArray = Array.isArray(segments) ? segments : [segments];
194
+ this.logger?.info({ deviceId, model, segmentCount: segmentArray.length }, 'Setting device segment colors');
195
+ await this.sendCommand(deviceId, model, CommandFactory.segmentColorRgb(segments));
196
+ }
197
+ /**
198
+ * Sets segment brightness for RGB IC devices
199
+ */
200
+ async setSegmentBrightness(deviceId, model, segments) {
201
+ const segmentArray = Array.isArray(segments) ? segments : [segments];
202
+ this.logger?.info({ deviceId, model, segmentCount: segmentArray.length }, 'Setting device segment brightness');
203
+ await this.sendCommand(deviceId, model, CommandFactory.segmentBrightness(segments));
204
+ }
205
+ /**
206
+ * Sets music mode on a device
207
+ */
208
+ async setMusicMode(deviceId, model, musicMode) {
209
+ this.logger?.info({ deviceId, model, modeId: musicMode.modeId, sensitivity: musicMode.sensitivity }, 'Setting device music mode');
210
+ await this.sendCommand(deviceId, model, CommandFactory.musicMode(musicMode));
211
+ }
212
+ /**
213
+ * Toggles nightlight mode on a device
214
+ */
215
+ async setNightlightToggle(deviceId, model, enabled) {
216
+ this.logger?.info({ deviceId, model, enabled }, 'Setting device nightlight toggle');
217
+ await this.sendCommand(deviceId, model, CommandFactory.nightlightToggle(enabled));
218
+ }
219
+ /**
220
+ * Toggles gradient mode on a device
221
+ */
222
+ async setGradientToggle(deviceId, model, enabled) {
223
+ this.logger?.info({ deviceId, model, enabled }, 'Setting device gradient toggle');
224
+ await this.sendCommand(deviceId, model, CommandFactory.gradientToggle(enabled));
225
+ }
226
+ /**
227
+ * Sets nightlight scene on a device
228
+ */
229
+ async setNightlightScene(deviceId, model, sceneValue) {
230
+ this.logger?.info({ deviceId, model, sceneValue }, 'Setting device nightlight scene');
231
+ await this.sendCommand(deviceId, model, CommandFactory.nightlightScene(sceneValue));
232
+ }
233
+ /**
234
+ * Sets preset scene on a device
235
+ */
236
+ async setPresetScene(deviceId, model, sceneValue) {
237
+ this.logger?.info({ deviceId, model, sceneValue }, 'Setting device preset scene');
238
+ await this.sendCommand(deviceId, model, CommandFactory.presetScene(sceneValue));
239
+ }
170
240
  /**
171
241
  * Convenience method to turn on a device and set its brightness
172
242
  */
@@ -1 +1 @@
1
- {"version":3,"file":"GoveeControlService.js","sourceRoot":"","sources":["../../src/services/GoveeControlService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GoveeControlService.js","sourceRoot":"","sources":["../../src/services/GoveeControlService.ts"],"names":[],"mappings":"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"}
package/docs/EXAMPLES.md CHANGED
@@ -13,6 +13,7 @@ This document provides comprehensive examples for using the Govee API Client lib
13
13
  - [Runtime Validation & Error Recovery](#runtime-validation--error-recovery)
14
14
  - [Rate Limiting & Monitoring](#rate-limiting--monitoring)
15
15
  - [Retry Configuration](#retry-configuration)
16
+ - [Advanced Light Control](#advanced-light-control)
16
17
  - [Advanced Usage](#advanced-usage)
17
18
 
18
19
  ## Basic Setup
@@ -743,6 +744,243 @@ const client = new GoveeClient({
743
744
  });
744
745
  ```
745
746
 
747
+ ## Advanced Light Control
748
+
749
+ ### Dynamic Light Scenes
750
+
751
+ ```typescript
752
+ import { LightScene } from '@felixgeelhaar/govee-api-client';
753
+
754
+ async function setDynamicLightScenes(deviceId: string, model: string) {
755
+ try {
756
+ // Get available scenes for the device
757
+ const availableScenes = await client.getDynamicScenes(deviceId, model);
758
+ console.log('Available scenes:');
759
+ availableScenes.forEach(scene => {
760
+ console.log(`- ${scene.name} (ID: ${scene.id}, ParamID: ${scene.paramId})`);
761
+ });
762
+
763
+ // Use built-in factory methods for common scenes
764
+ await client.setLightScene(deviceId, model, LightScene.sunrise());
765
+ console.log('Set sunrise scene');
766
+
767
+ await new Promise(resolve => setTimeout(resolve, 5000));
768
+
769
+ await client.setLightScene(deviceId, model, LightScene.rainbow());
770
+ console.log('Set rainbow scene');
771
+
772
+ await new Promise(resolve => setTimeout(resolve, 5000));
773
+
774
+ await client.setLightScene(deviceId, model, LightScene.aurora());
775
+ console.log('Set aurora scene');
776
+
777
+ // Or use a custom scene from the available scenes list
778
+ if (availableScenes.length > 0) {
779
+ await client.setLightScene(deviceId, model, availableScenes[0]);
780
+ console.log(`Set custom scene: ${availableScenes[0].name}`);
781
+ }
782
+ } catch (error) {
783
+ console.error('Failed to set light scenes:', error.message);
784
+ }
785
+ }
786
+
787
+ // All available factory methods:
788
+ // LightScene.sunrise()
789
+ // LightScene.sunset()
790
+ // LightScene.rainbow()
791
+ // LightScene.aurora()
792
+ // LightScene.candlelight()
793
+ // LightScene.nightlight()
794
+ // LightScene.romantic()
795
+ // LightScene.blinking()
796
+ ```
797
+
798
+ ### RGB IC Segment Control
799
+
800
+ ```typescript
801
+ import { SegmentColor, ColorRgb, Brightness } from '@felixgeelhaar/govee-api-client';
802
+
803
+ async function controlSegmentColors(deviceId: string, model: string) {
804
+ try {
805
+ // Set rainbow effect across 6 segments
806
+ const rainbowSegments = [
807
+ new SegmentColor(0, new ColorRgb(255, 0, 0)), // Red
808
+ new SegmentColor(1, new ColorRgb(255, 127, 0)), // Orange
809
+ new SegmentColor(2, new ColorRgb(255, 255, 0)), // Yellow
810
+ new SegmentColor(3, new ColorRgb(0, 255, 0)), // Green
811
+ new SegmentColor(4, new ColorRgb(0, 0, 255)), // Blue
812
+ new SegmentColor(5, new ColorRgb(75, 0, 130)), // Indigo
813
+ ];
814
+
815
+ await client.setSegmentColors(deviceId, model, rainbowSegments);
816
+ console.log('Set rainbow effect on segments');
817
+
818
+ // Set individual segment brightness levels
819
+ await client.setSegmentBrightness(deviceId, model, [
820
+ { index: 0, brightness: new Brightness(100) },
821
+ { index: 1, brightness: new Brightness(90) },
822
+ { index: 2, brightness: new Brightness(80) },
823
+ { index: 3, brightness: new Brightness(70) },
824
+ { index: 4, brightness: new Brightness(60) },
825
+ { index: 5, brightness: new Brightness(50) },
826
+ ]);
827
+ console.log('Set gradient brightness on segments');
828
+
829
+ // Fade effect - gradually change brightness
830
+ for (let brightness = 100; brightness >= 20; brightness -= 10) {
831
+ await client.setSegmentBrightness(deviceId, model,
832
+ Array.from({ length: 6 }, (_, i) => ({
833
+ index: i,
834
+ brightness: new Brightness(brightness),
835
+ }))
836
+ );
837
+ await new Promise(resolve => setTimeout(resolve, 200));
838
+ }
839
+ console.log('Completed fade effect');
840
+ } catch (error) {
841
+ console.error('Failed to control segment colors:', error.message);
842
+ }
843
+ }
844
+
845
+ async function createChaseEffect(deviceId: string, model: string, segments: number = 10) {
846
+ const red = new ColorRgb(255, 0, 0);
847
+ const black = new ColorRgb(0, 0, 0);
848
+
849
+ for (let i = 0; i < segments * 2; i++) {
850
+ const segmentColors = Array.from({ length: segments }, (_, idx) => {
851
+ const isLit = idx === (i % segments);
852
+ return new SegmentColor(idx, isLit ? red : black);
853
+ });
854
+
855
+ await client.setSegmentColors(deviceId, model, segmentColors);
856
+ await new Promise(resolve => setTimeout(resolve, 100));
857
+ }
858
+ console.log('Completed chase effect');
859
+ }
860
+ ```
861
+
862
+ ### Music Mode
863
+
864
+ ```typescript
865
+ import { MusicMode } from '@felixgeelhaar/govee-api-client';
866
+
867
+ async function setMusicReactiveMode(deviceId: string, model: string) {
868
+ try {
869
+ // Enable music mode with high sensitivity
870
+ const highSensitivity = new MusicMode(1, 90);
871
+ await client.setMusicMode(deviceId, model, highSensitivity);
872
+ console.log('Music mode enabled with 90% sensitivity');
873
+
874
+ // Wait for 10 seconds to see the effect
875
+ await new Promise(resolve => setTimeout(resolve, 10000));
876
+
877
+ // Change to medium sensitivity
878
+ const mediumSensitivity = new MusicMode(1, 50);
879
+ await client.setMusicMode(deviceId, model, mediumSensitivity);
880
+ console.log('Changed to 50% sensitivity');
881
+
882
+ // Music mode without explicit sensitivity (uses device default)
883
+ const defaultMode = new MusicMode(2);
884
+ await client.setMusicMode(deviceId, model, defaultMode);
885
+ console.log('Set music mode 2 with default sensitivity');
886
+ } catch (error) {
887
+ console.error('Failed to set music mode:', error.message);
888
+ }
889
+ }
890
+ ```
891
+
892
+ ### Toggle and Mode Controls
893
+
894
+ ```typescript
895
+ async function toggleAndModeControls(deviceId: string, model: string) {
896
+ try {
897
+ // Enable nightlight mode
898
+ await client.setNightlightToggle(deviceId, model, true);
899
+ console.log('Nightlight enabled');
900
+
901
+ await new Promise(resolve => setTimeout(resolve, 3000));
902
+
903
+ // Set nightlight scene
904
+ await client.setNightlightScene(deviceId, model, 1);
905
+ console.log('Nightlight scene 1 selected');
906
+
907
+ await new Promise(resolve => setTimeout(resolve, 3000));
908
+
909
+ // Disable nightlight
910
+ await client.setNightlightToggle(deviceId, model, false);
911
+ console.log('Nightlight disabled');
912
+
913
+ // Enable gradient effect
914
+ await client.setGradientToggle(deviceId, model, true);
915
+ console.log('Gradient effect enabled');
916
+
917
+ await new Promise(resolve => setTimeout(resolve, 3000));
918
+
919
+ // Set a preset scene
920
+ await client.setPresetScene(deviceId, model, 'cozy');
921
+ console.log('Preset scene "cozy" applied');
922
+ } catch (error) {
923
+ console.error('Failed to set toggle/mode controls:', error.message);
924
+ }
925
+ }
926
+ ```
927
+
928
+ ### Complete Lighting Sequence
929
+
930
+ ```typescript
931
+ async function createComplexLightingSequence(deviceId: string, model: string) {
932
+ try {
933
+ console.log('Starting complex lighting sequence...');
934
+
935
+ // 1. Turn on with warm white
936
+ await client.turnOnWithColorTemperature(
937
+ deviceId,
938
+ model,
939
+ ColorTemperature.warmWhite(),
940
+ new Brightness(50)
941
+ );
942
+ console.log('1. Warm white at 50%');
943
+ await new Promise(resolve => setTimeout(resolve, 3000));
944
+
945
+ // 2. Sunrise scene
946
+ await client.setLightScene(deviceId, model, LightScene.sunrise());
947
+ console.log('2. Sunrise scene');
948
+ await new Promise(resolve => setTimeout(resolve, 5000));
949
+
950
+ // 3. Rainbow segment effect
951
+ const rainbowSegments = [
952
+ new SegmentColor(0, new ColorRgb(255, 0, 0)),
953
+ new SegmentColor(1, new ColorRgb(255, 127, 0)),
954
+ new SegmentColor(2, new ColorRgb(255, 255, 0)),
955
+ new SegmentColor(3, new ColorRgb(0, 255, 0)),
956
+ new SegmentColor(4, new ColorRgb(0, 0, 255)),
957
+ new SegmentColor(5, new ColorRgb(75, 0, 130)),
958
+ ];
959
+ await client.setSegmentColors(deviceId, model, rainbowSegments);
960
+ console.log('3. Rainbow segment effect');
961
+ await new Promise(resolve => setTimeout(resolve, 5000));
962
+
963
+ // 4. Music reactive mode
964
+ await client.setMusicMode(deviceId, model, new MusicMode(1, 75));
965
+ console.log('4. Music reactive mode (75% sensitivity)');
966
+ await new Promise(resolve => setTimeout(resolve, 10000));
967
+
968
+ // 5. Sunset scene
969
+ await client.setLightScene(deviceId, model, LightScene.sunset());
970
+ console.log('5. Sunset scene');
971
+ await new Promise(resolve => setTimeout(resolve, 5000));
972
+
973
+ // 6. Turn off
974
+ await client.turnOff(deviceId, model);
975
+ console.log('6. Turned off');
976
+
977
+ console.log('Lighting sequence completed!');
978
+ } catch (error) {
979
+ console.error('Lighting sequence failed:', error.message);
980
+ }
981
+ }
982
+ ```
983
+
746
984
  ## Advanced Usage
747
985
 
748
986
  ### Command Pattern