@riddix/hamh 2.1.0-alpha.589 → 2.1.0-alpha.590

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.
@@ -172152,19 +172152,48 @@ function DishwasherEndpoint(homeAssistantEntity) {
172152
172152
  init_esm();
172153
172153
  init_home_assistant_entity_behavior();
172154
172154
  var logger180 = Logger.get("GenericSwitchServer");
172155
- var FeaturedBase7 = SwitchServer.with(
172155
+ var SimpleBase = SwitchServer.with(
172156
+ "MomentarySwitch",
172157
+ "MomentarySwitchRelease",
172158
+ "MomentarySwitchLongPress"
172159
+ );
172160
+ var FullBase = SwitchServer.with(
172156
172161
  "MomentarySwitch",
172157
172162
  "MomentarySwitchRelease",
172158
172163
  "MomentarySwitchLongPress",
172159
172164
  "MomentarySwitchMultiPress"
172160
172165
  );
172161
- var GenericSwitchServerBase = class extends FeaturedBase7 {
172166
+ function isLongPress(lower) {
172167
+ return lower.includes("long") && !lower.includes("release") || lower === "hold";
172168
+ }
172169
+ function isLongRelease(lower) {
172170
+ return lower.includes("long") && lower.includes("release");
172171
+ }
172172
+ function getPressCount(lower) {
172173
+ if (lower.includes("triple") || lower.includes("3_press") || lower.includes("three")) {
172174
+ return 3;
172175
+ }
172176
+ if (lower.includes("double") || lower.includes("2_press") || lower.includes("two") || lower.includes("multi")) {
172177
+ return 2;
172178
+ }
172179
+ return 1;
172180
+ }
172181
+ function fireBridgeEvent(agent, eventType, pressCount) {
172182
+ const homeAssistant = agent.get(HomeAssistantEntityBehavior);
172183
+ homeAssistant.fireEvent("hamh_action", {
172184
+ action: "press",
172185
+ event_type: eventType,
172186
+ press_count: pressCount,
172187
+ source: "matter_bridge"
172188
+ });
172189
+ }
172190
+ var HaGenericSwitchServerBase = class extends SimpleBase {
172162
172191
  inLongPress = false;
172163
172192
  async initialize() {
172164
172193
  await super.initialize();
172165
172194
  const homeAssistant = await this.agent.load(HomeAssistantEntityBehavior);
172166
172195
  const entityId = homeAssistant.entityId;
172167
- logger180.debug(`[${entityId}] GenericSwitch initialized`);
172196
+ logger180.debug(`[${entityId}] GenericSwitch initialized (simple)`);
172168
172197
  this.reactTo(homeAssistant.onChange, this.handleEventChange);
172169
172198
  }
172170
172199
  handleEventChange() {
@@ -172180,74 +172209,111 @@ var GenericSwitchServerBase = class extends FeaturedBase7 {
172180
172209
  }
172181
172210
  triggerPress(eventType) {
172182
172211
  const lower = eventType.toLowerCase();
172183
- if (this.isLongPress(lower)) {
172212
+ if (isLongPress(lower)) {
172184
172213
  this.inLongPress = true;
172185
172214
  this.state.currentPosition = 1;
172186
- this.events.initialPress?.emit({ newPosition: 1 }, this.context);
172187
- this.events.longPress?.emit({ newPosition: 1 }, this.context);
172188
- this.fireBridgeEvent(eventType, 1);
172215
+ this.events.initialPress.emit({ newPosition: 1 }, this.context);
172216
+ this.events.longPress.emit({ newPosition: 1 }, this.context);
172217
+ fireBridgeEvent(this.agent, eventType, 1);
172189
172218
  return;
172190
172219
  }
172191
- if (this.isLongRelease(lower)) {
172220
+ if (isLongRelease(lower)) {
172192
172221
  if (!this.inLongPress) {
172193
172222
  this.state.currentPosition = 1;
172194
- this.events.initialPress?.emit({ newPosition: 1 }, this.context);
172195
- this.events.longPress?.emit({ newPosition: 1 }, this.context);
172223
+ this.events.initialPress.emit({ newPosition: 1 }, this.context);
172224
+ this.events.longPress.emit({ newPosition: 1 }, this.context);
172196
172225
  }
172197
172226
  this.inLongPress = false;
172198
172227
  this.state.currentPosition = 0;
172199
- this.events.longRelease?.emit({ previousPosition: 1 }, this.context);
172200
- this.fireBridgeEvent(eventType, 1);
172228
+ this.events.longRelease.emit({ previousPosition: 1 }, this.context);
172229
+ fireBridgeEvent(this.agent, eventType, 1);
172201
172230
  return;
172202
172231
  }
172203
172232
  if (lower.includes("cont") && lower.includes("press")) {
172204
172233
  return;
172205
172234
  }
172206
- const pressCount = this.getPressCount(lower);
172207
172235
  this.state.currentPosition = 1;
172208
- this.events.initialPress?.emit({ newPosition: 1 }, this.context);
172236
+ this.events.initialPress.emit({ newPosition: 1 }, this.context);
172209
172237
  this.state.currentPosition = 0;
172210
- this.events.shortRelease?.emit({ previousPosition: 1 }, this.context);
172211
- this.events.multiPressComplete?.emit(
172212
- {
172213
- previousPosition: 0,
172214
- totalNumberOfPressesCounted: pressCount
172215
- },
172216
- this.context
172217
- );
172218
- this.fireBridgeEvent(eventType, pressCount);
172238
+ this.events.shortRelease.emit({ previousPosition: 1 }, this.context);
172239
+ fireBridgeEvent(this.agent, eventType, 1);
172219
172240
  }
172220
- fireBridgeEvent(eventType, pressCount) {
172221
- const homeAssistant = this.agent.get(HomeAssistantEntityBehavior);
172222
- homeAssistant.fireEvent("hamh_action", {
172223
- action: "press",
172224
- event_type: eventType,
172225
- press_count: pressCount,
172226
- source: "matter_bridge"
172227
- });
172241
+ };
172242
+ ((HaGenericSwitchServerBase2) => {
172243
+ class State extends SimpleBase.State {
172228
172244
  }
172229
- isLongPress(lower) {
172230
- return lower.includes("long") && !lower.includes("release") || lower === "hold";
172245
+ HaGenericSwitchServerBase2.State = State;
172246
+ })(HaGenericSwitchServerBase || (HaGenericSwitchServerBase = {}));
172247
+ var HaGenericSwitchServerMultiBase = class extends FullBase {
172248
+ inLongPress = false;
172249
+ async initialize() {
172250
+ await super.initialize();
172251
+ const homeAssistant = await this.agent.load(HomeAssistantEntityBehavior);
172252
+ const entityId = homeAssistant.entityId;
172253
+ logger180.debug(`[${entityId}] GenericSwitch initialized (multi)`);
172254
+ this.reactTo(homeAssistant.onChange, this.handleEventChange);
172231
172255
  }
172232
- isLongRelease(lower) {
172233
- return lower.includes("long") && lower.includes("release");
172256
+ handleEventChange() {
172257
+ const homeAssistant = this.agent.get(HomeAssistantEntityBehavior);
172258
+ const entity = homeAssistant.entity;
172259
+ if (!entity?.state || !entity.state.attributes) return;
172260
+ const attrs = entity.state.attributes;
172261
+ const eventType = attrs.event_type;
172262
+ if (!eventType) return;
172263
+ const entityId = homeAssistant.entityId;
172264
+ logger180.debug(`[${entityId}] Event fired: ${eventType}`);
172265
+ this.triggerPress(eventType);
172234
172266
  }
172235
- getPressCount(lower) {
172236
- if (lower.includes("triple") || lower.includes("3_press") || lower.includes("three")) {
172237
- return 3;
172267
+ triggerPress(eventType) {
172268
+ const lower = eventType.toLowerCase();
172269
+ if (isLongPress(lower)) {
172270
+ this.inLongPress = true;
172271
+ this.state.currentPosition = 1;
172272
+ this.events.initialPress.emit({ newPosition: 1 }, this.context);
172273
+ this.events.longPress.emit({ newPosition: 1 }, this.context);
172274
+ fireBridgeEvent(this.agent, eventType, 1);
172275
+ return;
172276
+ }
172277
+ if (isLongRelease(lower)) {
172278
+ if (!this.inLongPress) {
172279
+ this.state.currentPosition = 1;
172280
+ this.events.initialPress.emit({ newPosition: 1 }, this.context);
172281
+ this.events.longPress.emit({ newPosition: 1 }, this.context);
172282
+ }
172283
+ this.inLongPress = false;
172284
+ this.state.currentPosition = 0;
172285
+ this.events.longRelease.emit({ previousPosition: 1 }, this.context);
172286
+ fireBridgeEvent(this.agent, eventType, 1);
172287
+ return;
172238
172288
  }
172239
- if (lower.includes("double") || lower.includes("2_press") || lower.includes("two") || lower.includes("multi")) {
172240
- return 2;
172289
+ if (lower.includes("cont") && lower.includes("press")) {
172290
+ return;
172241
172291
  }
172242
- return 1;
172292
+ const pressCount = getPressCount(lower);
172293
+ this.state.currentPosition = 1;
172294
+ this.events.initialPress.emit({ newPosition: 1 }, this.context);
172295
+ this.state.currentPosition = 0;
172296
+ this.events.shortRelease.emit({ previousPosition: 1 }, this.context);
172297
+ this.events.multiPressComplete.emit(
172298
+ {
172299
+ previousPosition: 0,
172300
+ totalNumberOfPressesCounted: pressCount
172301
+ },
172302
+ this.context
172303
+ );
172304
+ fireBridgeEvent(this.agent, eventType, pressCount);
172243
172305
  }
172244
172306
  };
172245
- ((GenericSwitchServerBase2) => {
172246
- class State extends FeaturedBase7.State {
172307
+ ((HaGenericSwitchServerMultiBase2) => {
172308
+ class State extends FullBase.State {
172247
172309
  }
172248
- GenericSwitchServerBase2.State = State;
172249
- })(GenericSwitchServerBase || (GenericSwitchServerBase = {}));
172250
- var HaGenericSwitchServer = GenericSwitchServerBase.set({
172310
+ HaGenericSwitchServerMultiBase2.State = State;
172311
+ })(HaGenericSwitchServerMultiBase || (HaGenericSwitchServerMultiBase = {}));
172312
+ var HaGenericSwitchServerSimple = HaGenericSwitchServerBase.set({
172313
+ numberOfPositions: 2,
172314
+ currentPosition: 0
172315
+ });
172316
+ var HaGenericSwitchServer = HaGenericSwitchServerMultiBase.set({
172251
172317
  numberOfPositions: 2,
172252
172318
  currentPosition: 0,
172253
172319
  multiPressMax: 3
@@ -172255,12 +172321,18 @@ var HaGenericSwitchServer = GenericSwitchServerBase.set({
172255
172321
 
172256
172322
  // src/matter/endpoints/legacy/event/index.ts
172257
172323
  init_home_assistant_entity_behavior();
172258
- var EventEndpointType = GenericSwitchDevice.with(
172324
+ var EventEndpointTypeMulti = GenericSwitchDevice.with(
172259
172325
  BasicInformationServer2,
172260
172326
  IdentifyServer2,
172261
172327
  HomeAssistantEntityBehavior,
172262
172328
  HaGenericSwitchServer
172263
172329
  );
172330
+ var EventEndpointTypeSimple = GenericSwitchDevice.with(
172331
+ BasicInformationServer2,
172332
+ IdentifyServer2,
172333
+ HomeAssistantEntityBehavior,
172334
+ HaGenericSwitchServerSimple
172335
+ );
172264
172336
  var multiPressPatterns = [
172265
172337
  [/triple|3_press|three/, 3],
172266
172338
  [/double|2_press|two|multi/, 2]
@@ -172278,9 +172350,14 @@ function detectMultiPressMax(eventTypes) {
172278
172350
  function EventDevice(homeAssistantEntity) {
172279
172351
  const attrs = homeAssistantEntity.entity.state.attributes;
172280
172352
  const multiPressMax = detectMultiPressMax(attrs.event_types ?? []);
172281
- return EventEndpointType.set({
172282
- homeAssistantEntity,
172283
- switch: { multiPressMax }
172353
+ if (multiPressMax >= 2) {
172354
+ return EventEndpointTypeMulti.set({
172355
+ homeAssistantEntity,
172356
+ switch: { multiPressMax }
172357
+ });
172358
+ }
172359
+ return EventEndpointTypeSimple.set({
172360
+ homeAssistantEntity
172284
172361
  });
172285
172362
  }
172286
172363
 
@@ -172524,8 +172601,8 @@ function consumePendingColorStaging(entityId) {
172524
172601
  pendingColorStaging.delete(entityId);
172525
172602
  return data;
172526
172603
  }
172527
- var FeaturedBase8 = ColorControlServer.with("ColorTemperature", "HueSaturation");
172528
- var ColorControlServerBase = class extends FeaturedBase8 {
172604
+ var FeaturedBase7 = ColorControlServer.with("ColorTemperature", "HueSaturation");
172605
+ var ColorControlServerBase = class extends FeaturedBase7 {
172529
172606
  pendingTransitionTime;
172530
172607
  async [Symbol.asyncDispose]() {
172531
172608
  const entityId = this.agent.get(HomeAssistantEntityBehavior).entityId;
@@ -172763,7 +172840,7 @@ var ColorControlServerBase = class extends FeaturedBase8 {
172763
172840
  }
172764
172841
  };
172765
172842
  ((ColorControlServerBase2) => {
172766
- class State extends FeaturedBase8.State {
172843
+ class State extends FeaturedBase7.State {
172767
172844
  config;
172768
172845
  }
172769
172846
  ColorControlServerBase2.State = State;
@@ -173857,8 +173934,8 @@ var logger184 = Logger.get("SpeakerLevelControlServer");
173857
173934
  var optimisticLevelState2 = /* @__PURE__ */ new Map();
173858
173935
  var OPTIMISTIC_TIMEOUT_MS4 = 3e3;
173859
173936
  var OPTIMISTIC_TOLERANCE3 = 5;
173860
- var FeaturedBase9 = LevelControlServer.with("OnOff");
173861
- var SpeakerLevelControlServerBase = class extends FeaturedBase9 {
173937
+ var FeaturedBase8 = LevelControlServer.with("OnOff");
173938
+ var SpeakerLevelControlServerBase = class extends FeaturedBase8 {
173862
173939
  async initialize() {
173863
173940
  if (this.state.currentLevel == null) {
173864
173941
  this.state.currentLevel = 0;
@@ -173958,7 +174035,7 @@ var SpeakerLevelControlServerBase = class extends FeaturedBase9 {
173958
174035
  }
173959
174036
  };
173960
174037
  ((SpeakerLevelControlServerBase2) => {
173961
- class State extends FeaturedBase9.State {
174038
+ class State extends FeaturedBase8.State {
173962
174039
  config;
173963
174040
  }
173964
174041
  SpeakerLevelControlServerBase2.State = State;