@marcel2215/homebridge-supla-plugin 2.1.27 → 2.1.29
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.
- package/README.md +43 -0
- package/config.schema.json +67 -71
- package/dist/Accesories/ActionTriggerAccessory.js.map +1 -1
- package/dist/Accesories/AirQualityAccessory.js +1 -2
- package/dist/Accesories/AirQualityAccessory.js.map +1 -1
- package/dist/Accesories/DimmerAccessory.js.map +1 -1
- package/dist/Accesories/DimmerRgbLightAccessory.js.map +1 -1
- package/dist/Accesories/DoorAccessory.js.map +1 -1
- package/dist/Accesories/ElectricityMeterAccessory.js.map +1 -1
- package/dist/Accesories/FacadeBlindAccessory.js +1 -1
- package/dist/Accesories/FacadeBlindAccessory.js.map +1 -1
- package/dist/Accesories/FrontGateFsm.d.ts +67 -67
- package/dist/Accesories/FrontGateFsm.d.ts.map +1 -1
- package/dist/Accesories/FrontGateFsm.js +499 -399
- package/dist/Accesories/FrontGateFsm.js.map +1 -1
- package/dist/Accesories/GarageDoorOpenerAccesory.js.map +1 -1
- package/dist/Accesories/GateAccessory.d.ts +6 -2
- package/dist/Accesories/GateAccessory.d.ts.map +1 -1
- package/dist/Accesories/GateAccessory.js +127 -82
- package/dist/Accesories/GateAccessory.js.map +1 -1
- package/dist/Accesories/GateLockAccessory.js.map +1 -1
- package/dist/Accesories/LightBulbAccesory.js.map +1 -1
- package/dist/Accesories/PressureAccessory.js.map +1 -1
- package/dist/Accesories/RollerShutterAccessory.d.ts.map +1 -1
- package/dist/Accesories/RollerShutterAccessory.js +6 -5
- package/dist/Accesories/RollerShutterAccessory.js.map +1 -1
- package/dist/Accesories/SwitchAccessory.js.map +1 -1
- package/dist/Accesories/TemperatureAccessory.js.map +1 -1
- package/dist/Accesories/TemperatureHumidityAccessory.js.map +1 -1
- package/dist/Accesories/ThermostatAccessory.js +2 -2
- package/dist/Accesories/ThermostatAccessory.js.map +1 -1
- package/dist/Heplers/ColorConverters.js +4 -5
- package/dist/Heplers/ColorConverters.js.map +1 -1
- package/dist/Heplers/SuplaChannelContext.d.ts.map +1 -1
- package/dist/Heplers/SuplaMqttClient.d.ts +2 -3
- package/dist/Heplers/SuplaMqttClient.d.ts.map +1 -1
- package/dist/Heplers/SuplaMqttClient.js +34 -28
- package/dist/Heplers/SuplaMqttClient.js.map +1 -1
- package/dist/Heplers/SuplaMqttClientContext.d.ts +5 -4
- package/dist/Heplers/SuplaMqttClientContext.d.ts.map +1 -1
- package/dist/Heplers/SuplaMqttClientContext.js +2 -1
- package/dist/Heplers/SuplaMqttClientContext.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/platform.d.ts +34 -34
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +228 -183
- package/dist/platform.js.map +1 -1
- package/package.json +9 -8
- package/.codex/environments/environment.toml +0 -31
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
export type GateTarget = 'open' | 'closed';
|
|
2
2
|
export type MotionDirection = 'opening' | 'closing';
|
|
3
|
-
export type
|
|
4
|
-
export type
|
|
5
|
-
export type IdleNotClosedMode = 'openKnown' | 'openishUnknown';
|
|
6
|
-
export type NextPulseDirection = MotionDirection | 'unknown';
|
|
3
|
+
export type UnknownOpenPolicy = 'reject' | 'accept_non_closed';
|
|
4
|
+
export type UnknownClosePolicy = 'reject' | 'single_pulse_best_effort' | 'seek_closed';
|
|
7
5
|
export declare const enum DoorCurrentState {
|
|
8
6
|
OPEN = 0,
|
|
9
7
|
CLOSED = 1,
|
|
@@ -15,30 +13,37 @@ export declare const enum DoorTargetState {
|
|
|
15
13
|
OPEN = 0,
|
|
16
14
|
CLOSED = 1
|
|
17
15
|
}
|
|
18
|
-
export interface
|
|
16
|
+
export interface FrontGateConfig {
|
|
19
17
|
fullTravelMs: number;
|
|
20
18
|
reversePauseMs: number;
|
|
21
|
-
wrongDirectionRunMs: number;
|
|
22
19
|
minimumPulseGapMs: number;
|
|
23
|
-
|
|
20
|
+
unknownOpenPolicy: UnknownOpenPolicy;
|
|
21
|
+
unknownClosePolicy: UnknownClosePolicy;
|
|
22
|
+
seekClosedMaxPulses: number;
|
|
23
|
+
assumeOpenAfterTravel: boolean;
|
|
24
24
|
}
|
|
25
|
-
export declare const
|
|
26
|
-
export
|
|
25
|
+
export declare const DEFAULT_FRONT_GATE_CONFIG: FrontGateConfig;
|
|
26
|
+
export type FrontGateErrorCode = 'unavailable' | 'not_allowed' | 'resource_busy' | 'communication_failure' | 'operation_timed_out';
|
|
27
|
+
export declare class FrontGateError extends Error {
|
|
28
|
+
readonly code: FrontGateErrorCode;
|
|
29
|
+
constructor(code: FrontGateErrorCode, message: string, options?: ErrorOptions);
|
|
27
30
|
}
|
|
31
|
+
export type PositionEstimateKind = 'closed' | 'openingKnown' | 'closingKnown' | 'reversalPause' | 'notClosedUnknown' | 'openAssumed';
|
|
32
|
+
export type FrontGateOperationKind = 'none' | 'scheduledPulse' | 'reversalPause' | 'seekClosed';
|
|
28
33
|
export interface FrontGateSnapshot {
|
|
29
34
|
available: boolean;
|
|
35
|
+
transportConnected: boolean;
|
|
30
36
|
controlConnected: boolean | null;
|
|
31
37
|
sensorConnected: boolean | null;
|
|
32
38
|
closedSensor: boolean | null;
|
|
33
|
-
|
|
39
|
+
observationEpoch: number;
|
|
40
|
+
sensorSampleEpoch: number | null;
|
|
34
41
|
currentDoorState?: DoorCurrentState;
|
|
35
42
|
targetDoorState?: DoorTargetState;
|
|
36
|
-
|
|
43
|
+
desiredTarget: GateTarget | null;
|
|
44
|
+
positionEstimate: PositionEstimateKind;
|
|
37
45
|
motionDirection: MotionDirection | 'none';
|
|
38
|
-
|
|
39
|
-
planKind: Plan['kind'];
|
|
40
|
-
idleNotClosedMode: IdleNotClosedMode;
|
|
41
|
-
nextPulseDirection: NextPulseDirection;
|
|
46
|
+
operationKind: FrontGateOperationKind;
|
|
42
47
|
note: string;
|
|
43
48
|
}
|
|
44
49
|
export interface FrontGateLogger {
|
|
@@ -51,81 +56,76 @@ export interface FrontGateIo {
|
|
|
51
56
|
publishSnapshot(snapshot: FrontGateSnapshot): void;
|
|
52
57
|
log: FrontGateLogger;
|
|
53
58
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
direction: MotionDirection;
|
|
59
|
-
certainty: MotionCertainty;
|
|
60
|
-
source: MotionSource;
|
|
61
|
-
startedAt: number;
|
|
62
|
-
deadlineAt: number;
|
|
63
|
-
} | {
|
|
64
|
-
kind: 'waitingSecondPulse';
|
|
65
|
-
stoppedFrom: MotionDirection;
|
|
66
|
-
finalDirection: MotionDirection;
|
|
67
|
-
source: MotionSource;
|
|
68
|
-
dueAt: number;
|
|
69
|
-
deadlineAt: number;
|
|
70
|
-
reason: 'reverseToOpen' | 'reverseToClose';
|
|
71
|
-
};
|
|
59
|
+
export interface FrontGateScheduler {
|
|
60
|
+
now(): number;
|
|
61
|
+
schedule(callback: () => void, delayMs: number): () => void;
|
|
62
|
+
}
|
|
72
63
|
export declare class FrontGateFsm {
|
|
73
64
|
private readonly io;
|
|
74
|
-
private readonly
|
|
75
|
-
private readonly
|
|
65
|
+
private readonly config;
|
|
66
|
+
private readonly scheduler;
|
|
76
67
|
private facts;
|
|
77
|
-
private
|
|
78
|
-
private
|
|
79
|
-
private
|
|
80
|
-
private
|
|
81
|
-
private
|
|
82
|
-
private
|
|
83
|
-
private
|
|
84
|
-
private
|
|
85
|
-
private
|
|
86
|
-
private
|
|
68
|
+
private observationEpoch;
|
|
69
|
+
private sensorSampleEpoch;
|
|
70
|
+
private previousSensorInEpoch;
|
|
71
|
+
private desiredTarget;
|
|
72
|
+
private position;
|
|
73
|
+
private positionGeneration;
|
|
74
|
+
private operation;
|
|
75
|
+
private nextOperationId;
|
|
76
|
+
private lastPublishedPulseAt;
|
|
77
|
+
private cancelMovementTimer?;
|
|
78
|
+
private cancelOperationTimer?;
|
|
87
79
|
private sequence;
|
|
88
80
|
private disposed;
|
|
89
|
-
constructor(io: FrontGateIo,
|
|
81
|
+
constructor(io: FrontGateIo, config?: Partial<FrontGateConfig>, scheduler?: FrontGateScheduler);
|
|
90
82
|
dispose(): void;
|
|
91
|
-
|
|
83
|
+
handleTransportConnectedChange(connected: boolean): void;
|
|
92
84
|
handleControlConnectedChange(connected: boolean): void;
|
|
93
85
|
handleSensorConnectedChange(connected: boolean): void;
|
|
94
86
|
handleClosedSensorChange(closed: boolean): void;
|
|
95
87
|
handleObservedExternalPulse(reason?: string): void;
|
|
96
88
|
requestHomeKitTarget(target: GateTarget): Promise<void>;
|
|
97
89
|
getSnapshot(): FrontGateSnapshot;
|
|
90
|
+
whenIdle(): Promise<void>;
|
|
98
91
|
private enqueue;
|
|
92
|
+
private applyTransportConnectedChange;
|
|
99
93
|
private applyControlConnectedChange;
|
|
100
94
|
private applySensorConnectedChange;
|
|
101
95
|
private applyClosedSensorChange;
|
|
102
96
|
private applyHomeKitTarget;
|
|
103
|
-
private
|
|
104
|
-
private
|
|
105
|
-
private
|
|
106
|
-
private
|
|
107
|
-
private
|
|
108
|
-
private
|
|
109
|
-
private
|
|
110
|
-
private
|
|
111
|
-
private
|
|
112
|
-
private
|
|
113
|
-
private
|
|
114
|
-
private
|
|
115
|
-
private
|
|
116
|
-
private
|
|
117
|
-
private
|
|
118
|
-
private
|
|
97
|
+
private acceptOpenRequest;
|
|
98
|
+
private acceptCloseRequest;
|
|
99
|
+
private acceptUnknownCloseRequest;
|
|
100
|
+
private acceptPulse;
|
|
101
|
+
private executeScheduledPulse;
|
|
102
|
+
private applySuccessfulPulse;
|
|
103
|
+
private startReversalPause;
|
|
104
|
+
private startSeekClosedWait;
|
|
105
|
+
private scheduleOperationTimer;
|
|
106
|
+
private handleOperationTimer;
|
|
107
|
+
private executeReversalPulse;
|
|
108
|
+
private advanceSeekClosed;
|
|
109
|
+
private validateScheduledPulse;
|
|
110
|
+
private validateOperationContext;
|
|
111
|
+
private hasCurrentOperation;
|
|
112
|
+
private cancelConflictingOperation;
|
|
113
|
+
private cancelInvalidOperation;
|
|
119
114
|
private applyObservedExternalPulse;
|
|
120
|
-
private
|
|
115
|
+
private advanceObservationEpoch;
|
|
116
|
+
private setKnownMovement;
|
|
117
|
+
private setPosition;
|
|
118
|
+
private handleMovementTimeout;
|
|
119
|
+
private setOperation;
|
|
120
|
+
private clearOperation;
|
|
121
|
+
private clearMovementTimer;
|
|
122
|
+
private clearOperationTimer;
|
|
121
123
|
private isAvailableForHomeKit;
|
|
122
|
-
private pulseMotor;
|
|
123
124
|
private emitSnapshot;
|
|
124
125
|
private buildSnapshot;
|
|
125
126
|
private getMotionDirection;
|
|
126
|
-
private getMotionCertainty;
|
|
127
127
|
private computeCurrentDoorState;
|
|
128
128
|
private computeTargetDoorState;
|
|
129
|
+
private errorMessage;
|
|
129
130
|
}
|
|
130
|
-
export {};
|
|
131
131
|
//# sourceMappingURL=FrontGateFsm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrontGateFsm.d.ts","sourceRoot":"","sources":["../../src/Accesories/FrontGateFsm.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC3C,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AACpD,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"FrontGateFsm.d.ts","sourceRoot":"","sources":["../../src/Accesories/FrontGateFsm.ts"],"names":[],"mappings":"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"}
|