@homebridge-plugins/homebridge-ewelink 12.3.3

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 (113) hide show
  1. package/CHANGELOG.md +1363 -0
  2. package/LICENSE +21 -0
  3. package/README.md +68 -0
  4. package/config.schema.json +1757 -0
  5. package/eslint.config.js +15 -0
  6. package/lib/connection/api.js +508 -0
  7. package/lib/connection/http.js +304 -0
  8. package/lib/connection/lan.js +318 -0
  9. package/lib/connection/ws.js +414 -0
  10. package/lib/device/curtain.js +324 -0
  11. package/lib/device/diffuser.js +473 -0
  12. package/lib/device/fan.js +349 -0
  13. package/lib/device/group.js +106 -0
  14. package/lib/device/humidifier.js +199 -0
  15. package/lib/device/index.js +61 -0
  16. package/lib/device/light-cct.js +333 -0
  17. package/lib/device/light-dimmer.js +257 -0
  18. package/lib/device/light-rgb-cct.js +809 -0
  19. package/lib/device/light-rgb.js +272 -0
  20. package/lib/device/motor.js +363 -0
  21. package/lib/device/outlet-multi.js +417 -0
  22. package/lib/device/outlet-single-inched.js +409 -0
  23. package/lib/device/outlet-single.js +384 -0
  24. package/lib/device/panel.js +382 -0
  25. package/lib/device/rf-bridge.js +321 -0
  26. package/lib/device/rf-button.js +125 -0
  27. package/lib/device/rf-sensor.js +173 -0
  28. package/lib/device/sensor-ambient.js +311 -0
  29. package/lib/device/sensor-contact.js +140 -0
  30. package/lib/device/sensor-temp-humi.js +182 -0
  31. package/lib/device/simulation/blind.js +253 -0
  32. package/lib/device/simulation/cooler.js +312 -0
  33. package/lib/device/simulation/door.js +253 -0
  34. package/lib/device/simulation/doorbell.js +190 -0
  35. package/lib/device/simulation/garage-eachen.js +235 -0
  36. package/lib/device/simulation/garage-four.js +176 -0
  37. package/lib/device/simulation/garage-od-switch.js +36 -0
  38. package/lib/device/simulation/garage-one.js +395 -0
  39. package/lib/device/simulation/garage-two.js +394 -0
  40. package/lib/device/simulation/gate-one.js +327 -0
  41. package/lib/device/simulation/heater.js +389 -0
  42. package/lib/device/simulation/index.js +75 -0
  43. package/lib/device/simulation/light-fan.js +258 -0
  44. package/lib/device/simulation/lock-eachen.js +163 -0
  45. package/lib/device/simulation/lock-one.js +366 -0
  46. package/lib/device/simulation/p-button.js +223 -0
  47. package/lib/device/simulation/purifier.js +289 -0
  48. package/lib/device/simulation/rf-blind.js +192 -0
  49. package/lib/device/simulation/rf-door.js +180 -0
  50. package/lib/device/simulation/rf-window.js +180 -0
  51. package/lib/device/simulation/sensor-hidden.js +105 -0
  52. package/lib/device/simulation/sensor-leak.js +123 -0
  53. package/lib/device/simulation/sensor-visible.js +231 -0
  54. package/lib/device/simulation/sensor.js +300 -0
  55. package/lib/device/simulation/switch-valve.js +351 -0
  56. package/lib/device/simulation/tap-one.js +283 -0
  57. package/lib/device/simulation/tap-two.js +266 -0
  58. package/lib/device/simulation/th-cooler.js +443 -0
  59. package/lib/device/simulation/th-dehumidifier.js +424 -0
  60. package/lib/device/simulation/th-heater.js +449 -0
  61. package/lib/device/simulation/th-humidifier.js +424 -0
  62. package/lib/device/simulation/th-thermostat.js +611 -0
  63. package/lib/device/simulation/tv.js +252 -0
  64. package/lib/device/simulation/valve-four.js +232 -0
  65. package/lib/device/simulation/valve-one.js +345 -0
  66. package/lib/device/simulation/valve-two.js +340 -0
  67. package/lib/device/simulation/window.js +253 -0
  68. package/lib/device/switch-man.js +106 -0
  69. package/lib/device/switch-mate.js +82 -0
  70. package/lib/device/switch-multi.js +411 -0
  71. package/lib/device/switch-single-inched.js +332 -0
  72. package/lib/device/switch-single.js +307 -0
  73. package/lib/device/template.js +43 -0
  74. package/lib/device/thermostat.js +286 -0
  75. package/lib/device/zigbee/index.js +27 -0
  76. package/lib/device/zigbee/light-cct.js +263 -0
  77. package/lib/device/zigbee/light-dimmer.js +148 -0
  78. package/lib/device/zigbee/light-rgb-cct.js +400 -0
  79. package/lib/device/zigbee/motor.js +301 -0
  80. package/lib/device/zigbee/sensor-ambient.js +177 -0
  81. package/lib/device/zigbee/sensor-contact.js +137 -0
  82. package/lib/device/zigbee/sensor-leak.js +119 -0
  83. package/lib/device/zigbee/sensor-motion.js +119 -0
  84. package/lib/device/zigbee/sensor-occupancy.js +119 -0
  85. package/lib/device/zigbee/sensor-smoke.js +96 -0
  86. package/lib/device/zigbee/switch-stateless.js +104 -0
  87. package/lib/device/zigbee/thermostat.js +323 -0
  88. package/lib/fakegato/LICENSE +21 -0
  89. package/lib/fakegato/fakegato-history.js +813 -0
  90. package/lib/fakegato/fakegato-storage.js +108 -0
  91. package/lib/fakegato/fakegato-timer.js +125 -0
  92. package/lib/fakegato/uuid.js +27 -0
  93. package/lib/homebridge-ui/public/index.html +365 -0
  94. package/lib/homebridge-ui/server.js +46 -0
  95. package/lib/index.js +7 -0
  96. package/lib/node-dns-sd/LICENSE +21 -0
  97. package/lib/node-dns-sd/README.md +613 -0
  98. package/lib/node-dns-sd/lib/dns-sd-classes.json +6 -0
  99. package/lib/node-dns-sd/lib/dns-sd-composer.js +83 -0
  100. package/lib/node-dns-sd/lib/dns-sd-parser.js +344 -0
  101. package/lib/node-dns-sd/lib/dns-sd-types.json +52 -0
  102. package/lib/node-dns-sd/lib/dns-sd.js +580 -0
  103. package/lib/platform.js +2156 -0
  104. package/lib/utils/colour.js +552 -0
  105. package/lib/utils/constants.js +589 -0
  106. package/lib/utils/custom-chars.js +33 -0
  107. package/lib/utils/eve-chars.js +130 -0
  108. package/lib/utils/functions.js +42 -0
  109. package/lib/utils/lang-en.js +160 -0
  110. package/lib/utils/lang-fr.js +163 -0
  111. package/lib/utils/lang-th.js +160 -0
  112. package/lib/utils/lang.js +5 -0
  113. package/package.json +75 -0
@@ -0,0 +1,130 @@
1
+ import { inherits } from 'node:util'
2
+
3
+ export default class {
4
+ constructor(api) {
5
+ this.hapServ = api.hap.Service
6
+ this.hapChar = api.hap.Characteristic
7
+ this.uuids = {
8
+ currentConsumption: 'E863F10D-079E-48FF-8F27-9C2605A29F52',
9
+ totalConsumption: 'E863F10C-079E-48FF-8F27-9C2605A29F52',
10
+ voltage: 'E863F10A-079E-48FF-8F27-9C2605A29F52',
11
+ electricCurrent: 'E863F126-079E-48FF-8F27-9C2605A29F52',
12
+ resetTotal: 'E863F112-079E-48FF-8F27-9C2605A29F52',
13
+ lastActivation: 'E863F11A-079E-48FF-8F27-9C2605A29F52',
14
+ openDuration: 'E863F118-079E-48FF-8F27-9C2605A29F52',
15
+ closedDuration: 'E863F119-079E-48FF-8F27-9C2605A29F52',
16
+ timesOpened: 'E863F129-079E-48FF-8F27-9C2605A29F52',
17
+ }
18
+ const self = this
19
+ this.CurrentConsumption = function CurrentConsumption() {
20
+ self.hapChar.call(this, 'Current Consumption', self.uuids.currentConsumption)
21
+ this.setProps({
22
+ format: api.hap.Formats.UINT16,
23
+ unit: 'W',
24
+ maxValue: 100000,
25
+ minValue: 0,
26
+ minStep: 1,
27
+ perms: [api.hap.Perms.READ, api.hap.Perms.NOTIFY],
28
+ })
29
+ this.value = this.getDefaultValue()
30
+ }
31
+ this.TotalConsumption = function TotalConsumption() {
32
+ self.hapChar.call(this, 'Total Consumption', self.uuids.totalConsumption)
33
+ this.setProps({
34
+ format: api.hap.Formats.FLOAT,
35
+ unit: 'kWh',
36
+ maxValue: 100000000000,
37
+ minValue: 0,
38
+ minStep: 0.01,
39
+ perms: [api.hap.Perms.READ, api.hap.Perms.NOTIFY],
40
+ })
41
+ this.value = this.getDefaultValue()
42
+ }
43
+ this.Voltage = function Voltage() {
44
+ self.hapChar.call(this, 'Voltage', self.uuids.voltage)
45
+ this.setProps({
46
+ format: api.hap.Formats.FLOAT,
47
+ unit: 'V',
48
+ maxValue: 100000000000,
49
+ minValue: 0,
50
+ minStep: 1,
51
+ perms: [api.hap.Perms.READ, api.hap.Perms.NOTIFY],
52
+ })
53
+ this.value = this.getDefaultValue()
54
+ }
55
+ this.ElectricCurrent = function ElectricCurrent() {
56
+ self.hapChar.call(this, 'Electric Current', self.uuids.electricCurrent)
57
+ this.setProps({
58
+ format: api.hap.Formats.FLOAT,
59
+ unit: 'A',
60
+ maxValue: 100000000000,
61
+ minValue: 0,
62
+ minStep: 0.1,
63
+ perms: [api.hap.Perms.READ, api.hap.Perms.NOTIFY],
64
+ })
65
+ this.value = this.getDefaultValue()
66
+ }
67
+ this.ResetTotal = function ResetTotal() {
68
+ self.hapChar.call(this, 'Reset Total', self.uuids.resetTotal)
69
+ this.setProps({
70
+ format: api.hap.Formats.UINT32,
71
+ unit: api.hap.Units.seconds,
72
+ perms: [api.hap.Perms.READ, api.hap.Perms.NOTIFY, api.hap.Perms.WRITE],
73
+ })
74
+ this.value = this.getDefaultValue()
75
+ }
76
+ this.LastActivation = function LastActivation() {
77
+ self.hapChar.call(this, 'Last Activation', self.uuids.lastActivation)
78
+ this.setProps({
79
+ format: api.hap.Formats.UINT32,
80
+ unit: api.hap.Units.SECONDS,
81
+ perms: [api.hap.Perms.READ, api.hap.Perms.NOTIFY],
82
+ })
83
+ this.value = this.getDefaultValue()
84
+ }
85
+ this.OpenDuration = function OpenDuration() {
86
+ self.hapChar.call(this, 'Open Duration', self.uuids.openDuration)
87
+ this.setProps({
88
+ format: api.hap.Formats.UINT32,
89
+ unit: api.hap.Units.SECONDS,
90
+ perms: [api.hap.Perms.READ, api.hap.Perms.NOTIFY, api.hap.Perms.WRITE],
91
+ })
92
+ this.value = this.getDefaultValue()
93
+ }
94
+ this.ClosedDuration = function ClosedDuration() {
95
+ self.hapChar.call(this, 'Closed Duration', self.uuids.closedDuration)
96
+ this.setProps({
97
+ format: api.hap.Formats.UINT32,
98
+ unit: api.hap.Units.SECONDS,
99
+ perms: [api.hap.Perms.READ, api.hap.Perms.NOTIFY, api.hap.Perms.WRITE],
100
+ })
101
+ this.value = this.getDefaultValue()
102
+ }
103
+ this.TimesOpened = function TimesOpened() {
104
+ self.hapChar.call(this, 'Times Opened', self.uuids.timesOpened)
105
+ this.setProps({
106
+ format: api.hap.Formats.UINT32,
107
+ perms: [api.hap.Perms.READ, api.hap.Perms.NOTIFY],
108
+ })
109
+ this.value = this.getDefaultValue()
110
+ }
111
+ inherits(this.CurrentConsumption, this.hapChar)
112
+ inherits(this.TotalConsumption, this.hapChar)
113
+ inherits(this.Voltage, this.hapChar)
114
+ inherits(this.ElectricCurrent, this.hapChar)
115
+ inherits(this.LastActivation, this.hapChar)
116
+ inherits(this.ResetTotal, this.hapChar)
117
+ inherits(this.OpenDuration, this.hapChar)
118
+ inherits(this.ClosedDuration, this.hapChar)
119
+ inherits(this.TimesOpened, this.hapChar)
120
+ this.CurrentConsumption.UUID = this.uuids.currentConsumption
121
+ this.TotalConsumption.UUID = this.uuids.totalConsumption
122
+ this.Voltage.UUID = this.uuids.voltage
123
+ this.ElectricCurrent.UUID = this.uuids.electricCurrent
124
+ this.LastActivation.UUID = this.uuids.lastActivation
125
+ this.ResetTotal.UUID = this.uuids.resetTotal
126
+ this.OpenDuration.UUID = this.uuids.openDuration
127
+ this.ClosedDuration.UUID = this.uuids.closedDuration
128
+ this.TimesOpened.UUID = this.uuids.timesOpened
129
+ }
130
+ }
@@ -0,0 +1,42 @@
1
+ function generateRandomString(length) {
2
+ const chars = 'abcdefghijklmnopqrstuvwxyz0123456789'
3
+ let nonce = ''
4
+ while (nonce.length < length) {
5
+ nonce += chars.charAt(Math.floor(Math.random() * chars.length))
6
+ }
7
+ return nonce
8
+ }
9
+
10
+ const hasProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)
11
+
12
+ function parseDeviceId(deviceId) {
13
+ return deviceId
14
+ .toLowerCase()
15
+ .replace(/[^a-z0-9]+/g, '')
16
+ .replace('sw', 'SW')
17
+ }
18
+
19
+ function parseError(err, hideStack = []) {
20
+ let toReturn = err.message
21
+ if (err?.stack?.length > 0 && !hideStack.includes(err.message)) {
22
+ const stack = err.stack.split('\n')
23
+ if (stack[1]) {
24
+ toReturn += stack[1].replace(' ', '')
25
+ }
26
+ }
27
+ return toReturn
28
+ }
29
+
30
+ function sleep(ms) {
31
+ return new Promise((resolve) => {
32
+ setTimeout(resolve, ms)
33
+ })
34
+ }
35
+
36
+ export {
37
+ generateRandomString,
38
+ hasProperty,
39
+ parseDeviceId,
40
+ parseError,
41
+ sleep,
42
+ }
@@ -0,0 +1,160 @@
1
+ export default {
2
+ apiListenErr: 'Internal API server error',
3
+ apiListening: 'Internal API listening on port',
4
+ apiShutdown: 'Internal API gracefully shutdown',
5
+ beta: 'You are using a beta version of the plugin - you will experience more logging than normal',
6
+ buttonDouble: 'double press',
7
+ buttonLong: 'long press',
8
+ buttonNotFound: 'rf button not found (restart Homebridge)',
9
+ buttonSingle: 'single press',
10
+ buttonTrig: 'button triggered',
11
+ cantReadPacket: 'LAN message received could not be read as',
12
+ cantParsePacket: 'Could not parse DNS packet as',
13
+ cfgDef: 'is not a valid number so using default of',
14
+ cfgDup: 'will be ignored since another entry with this ID already exists',
15
+ cfgIgn: 'is not configured correctly so ignoring',
16
+ cfgIgnItem: 'has an invalid entry which will be ignored',
17
+ cfgItem: 'Config entry',
18
+ cfgLow: 'is set too low so increasing to',
19
+ cfgRmv: 'is unused and can be removed',
20
+ cfgQts: 'should not have quotes around its entry',
21
+ complete: '✓ Setup complete',
22
+ contactNo: 'contact not detected',
23
+ contactYes: 'contact detected',
24
+ curBatt: 'current battery',
25
+ curBright: 'current brightness',
26
+ curColour: 'current colour',
27
+ curCool: 'current cooling',
28
+ curCurr: 'current current',
29
+ curDehumid: 'current dehumidifying',
30
+ curHeat: 'current heating',
31
+ curHumi: 'current humidity',
32
+ curHumid: 'current humidifying',
33
+ curLight: 'current light',
34
+ curMode: 'current mode',
35
+ curPos: 'current position',
36
+ curPower: 'current power',
37
+ curPur: 'current purifying',
38
+ curScene: 'current scene',
39
+ curSpeed: 'current speed',
40
+ curState: 'current state',
41
+ curTarg: 'current target',
42
+ curTemp: 'current temperature',
43
+ curVolt: 'current voltage',
44
+ devAdd: 'has been added to Homebridge',
45
+ devInit: 'initialised and',
46
+ devInitGroup: 'initialised with group id',
47
+ devInitOpts: 'initialising with options',
48
+ devNewNotAdd: 'restart Homebridge to add new device, failed to add automatically as',
49
+ devNoAPIKey: 'cannot retrieve device API key',
50
+ devNoControl: 'cannot be controlled as mode:lan is not compatible with this device',
51
+ devNotAdd: 'could not be added to Homebridge as',
52
+ devNotConf: 'could not be configured as',
53
+ devNotConfLAN: 'device/command not available via LAN mode',
54
+ devNotFound: 'device not found in eWeLink',
55
+ devNotInit: 'could not be initialised as',
56
+ devNotReachLAN: 'device not reachable via LAN mode',
57
+ devNotRf: 'could not be refreshed as',
58
+ devNotRemove: 'could not be removed from Homebridge as',
59
+ devNotSup: 'has not been added as it cannot be supported',
60
+ devNotSupYet: 'is not supported, do create a GitHub issue with the following info',
61
+ devNotUpd: 'device update failed as',
62
+ devRemove: 'has been removed from Homebridge',
63
+ disabledAL: 'adaptive lighting disabled due to significant colour change',
64
+ disabling: 'Disabling plugin',
65
+ doorClosed: 'closed',
66
+ doorOpen: 'open',
67
+ dualr3NoCalib: 'must be calibrated to work in motor mode',
68
+ dualr3NoMeter: 'is not supported in meter mode',
69
+ errGetDevices: 'An error occurred during http getDevices()',
70
+ errGetHomes: 'An error occurred during http getHomes()',
71
+ errGetHost: 'An error occurred during ws getHost()',
72
+ errLogin: 'An error occurred during http login()',
73
+ eweError: 'An eWeLink error [500] occurred, retrying in 30 seconds',
74
+ fetchHome: 'Fetching devices from eWeLink home/id',
75
+ foundWithIP: 'found locally with IP',
76
+ foundWithManIP: 'using manual IP',
77
+ hbVersionFail: 'Your version of Homebridge is too low - update to v1.6',
78
+ heaterSimNoSensor: 'you must configure a device ID that provides a temperature reading',
79
+ httpDisabled: 'HTTP/WS clients disabled as',
80
+ httpLogin10003: 'See https://bit.ly/hb-ewelink-errors for more info about login issues',
81
+ httpRetry: 'Unable to reach eWeLink, retrying in 30 seconds',
82
+ identify: 'identify button pressed',
83
+ initialised: 'Plugin initialised. Setting up accessories...',
84
+ initialising: 'Initialising plugin',
85
+ invalidConfig: 'invalid config',
86
+ lanDisabled: 'LAN mode is disabled',
87
+ lanErr: 'unknown LAN error',
88
+ lanIPDifferent: 'ignoring manual IP since discovered with different IP',
89
+ lanMonitor: 'LAN monitoring started',
90
+ lanNotSup: 'LAN mode is not supported for sending updates to this device',
91
+ lanStarted: 'LAN discovery complete',
92
+ lanStarting: 'LAN discovery starting',
93
+ lanUnsupported: 'LAN mode unavailable as not discovered/supported',
94
+ leakNo: 'leak not detected',
95
+ leakYes: 'leak detected',
96
+ lockLocked: 'locked',
97
+ lockUnlocked: 'unlocked',
98
+ missingCreds: 'eWeLink credentials not configured',
99
+ motionNo: 'motion not detected',
100
+ motionYes: 'motion detected',
101
+ newIP: 'changed IP address to',
102
+ newRegionRec: 'New HTTP API host received',
103
+ noAuthRec: 'No auth token received',
104
+ noGarageForOD: 'No corresponding garage door accessory found',
105
+ noRegionRec: 'No valid region received',
106
+ noWSHost: 'Server did not respond with a web socket host',
107
+ occupancyNo: 'occupancy not detected',
108
+ occupancyYes: 'occupancy detected',
109
+ pluginNotConf: 'Plugin has not been configured',
110
+ repOffline: 'has been reported [offline]',
111
+ repOnline: 'has been reported [online]',
112
+ revertWS: 'reverting to web socket as',
113
+ rfNotFound: 'try restarting Homebridge as no accessory found for',
114
+ rfTrigNo: 'not triggered',
115
+ rfTrigYes: 'triggered',
116
+ sendLogin: 'Sending HTTP login() request',
117
+ sensorErr: 'unsupported as de/humidifier since device does not have supported sensor',
118
+ sensorNo: 'deactivated',
119
+ sensorNoDevice: 'garage/lock accessory not found, this device will be setup as a normal sensor',
120
+ sensorYes: 'activated',
121
+ shareWarn: 'using a shared device with the cloud may cause errors, use your main eWeLink account',
122
+ smokeNo: 'smoke not detected',
123
+ smokeYes: 'smoke detected',
124
+ sonoffCamera: 'see the homebridge-ewelink wiki for details to enable the camera',
125
+ stoppedLAN: 'LAN monitoring gracefully stopped',
126
+ stoppedWS: 'Web socket gracefully closed',
127
+ storageClearErr: 'Could not clear storage folder as',
128
+ storageReadErr: 'Could not read persist folder as',
129
+ storageSetupErr: 'Could not setup storage client as',
130
+ storageWriteErr: 'could not save accessory to file as',
131
+ unreachable: 'it is unreachable',
132
+ updRec: 'receiving update',
133
+ updReq: 'requesting current status',
134
+ updSend: 'sending update',
135
+ valveNo: 'stopped',
136
+ valveYes: 'running',
137
+ viaAL: 'via adaptive lighting',
138
+ viaLAN: 'via LAN',
139
+ viaWS: 'via WS',
140
+ welcome: 'This plugin has been made with ♥ by bwp91, please consider a ☆ on GitHub if you are finding it useful!',
141
+ wsHostRec: 'Web socket host received',
142
+ wsLogin: 'Sending WS login request',
143
+ wsLoginErr: 'Unknown WS parameters received',
144
+ wsLoginError: 'WS login failed as',
145
+ wsLoginErrRecon: 'WS could not be opened and will try again in 5 seconds',
146
+ wsLoginSuccess: 'WS login successful',
147
+ wsLogin406: 'WS login failed [406] see https://bit.ly/hb-ewelink-errors',
148
+ wsPingError: 'Could not send WS ping as',
149
+ wsRec: 'WS message received',
150
+ wsReconnectClose: 'WS close event and will try to reconnect in 5 seconds',
151
+ wsReconnectError: 'WS error event and will try to reconnect in 5 seconds',
152
+ wsRef: 'Refreshing WS connection',
153
+ wsRefFail: 'Refreshing WS connection failed as',
154
+ wsRequired: 'update must be sent this way',
155
+ wsReqTimeout: 'request timeout',
156
+ wsResend: 'Web socket is not open - try again after a few seconds',
157
+ wsUnkAct: 'WS message received has unknown action',
158
+ wsUnkCmd: 'WS unknown command received',
159
+ wsUnkRes: 'unknown WS response',
160
+ }
@@ -0,0 +1,163 @@
1
+ export default {
2
+ apiListenErr: 'Erreur de serveur d\'API interne',
3
+ apiListening: 'API interne à l\'écoute sur le port',
4
+ apiShutdown: 'L\'API interne s\'arrête normalement',
5
+ beta: 'You are using a beta version of the plugin - you will experience more logging than normal',
6
+ buttonDouble: 'appui double',
7
+ buttonLong: 'appui long',
8
+ buttonNotFound: 'rf button non trouvé (veuillez redémarrer Homebridge)',
9
+ buttonSingle: 'appui simple',
10
+ buttonTrig: 'boutton déclenché',
11
+ cantReadPacket: 'Le message LAN reçu n\'a pas pu être lu comme',
12
+ cantParsePacket: 'Impossible d\'analyser le paquet DNS en tant que',
13
+ cfgDef: 'n\'est pas un nombre valide, utilisation de la valeur par defaut',
14
+ cfgDup: 'sera ignoré tant qu\'une autre entrée avec cet ID existe',
15
+ cfgIgn: 'ignoré car non configuré correctement',
16
+ cfgIgnItem: 'a une entrée invalide et sera ignoré',
17
+ cfgItem: 'Configurer l\'entrée',
18
+ cfgLow: 'à une valeur trop basse et sera augmenté à',
19
+ cfgRmv: 'n\'est pas utilisé et peut-être enlevé',
20
+ cfgQts: 'ne devrait pas avoir de guillemets autour de son entrée',
21
+ complete: '✓ Configuration complète',
22
+ contactNo: 'contact non detecté',
23
+ contactYes: 'contact detecté',
24
+ curBatt: 'batterie actuelle',
25
+ curBright: 'luminosité actuelle',
26
+ curColour: 'couleur actuelle',
27
+ curCool: 'refroidissement actuel',
28
+ curCurr: 'actuel actuel',
29
+ curDehumid: 'déshumidification actuelle',
30
+ curHeat: 'chauffage actuel',
31
+ curHumi: 'humidité actuelle',
32
+ curHumid: 'humidification actuelle',
33
+ curLight: 'lumière actuelle',
34
+ curMode: 'mode actuel',
35
+ curPos: 'position actuelle',
36
+ curPower: 'alimentation actuelle',
37
+ curPur: 'purification actuelle',
38
+ curScene: 'current scene',
39
+ curSpeed: 'vitesse actuelle',
40
+ curState: 'état actuel',
41
+ curTarg: 'cible actuelle',
42
+ curTemp: 'température actuelle',
43
+ curVolt: 'voltage actuel',
44
+ devAdd: 'a été ajouté à Homebridge',
45
+ devInit: 'initialisé et',
46
+ devInitGroup: 'initialised with group id',
47
+ devInitOpts: 'initialisation avec options',
48
+ devNewNotAdd:
49
+ 'redémarrer Homebridge pour ajouter un nouvel appareil, echec de l\'ajout automatique en tant que',
50
+ devNoAPIKey: 'ne peux pas récupérer la clé API de l\'appareil',
51
+ devNoControl: 'ne peux pas être controlé via le mode:lan n\'est pas compatible avec ce device',
52
+ devNotAdd: 'ne peux pas être ajouté à Homebridge en tant que',
53
+ devNotConf: 'ne peux pas être configuré en tant que ',
54
+ devNotConfLAN: 'appareil/commande non disponible via le mode LAN',
55
+ devNotFound: 'appareil non trouvé dans eWeLink',
56
+ devNotInit: 'ne peux pas être intialisé en tant que',
57
+ devNotReachLAN: 'appareil non joignable via le mode LAN',
58
+ devNotRf: 'ne peux pas être raffraichi en tant que',
59
+ devNotRemove: 'ne peux pas être supprimé de Homebridge en tant que',
60
+ devNotSup: 'n\'a pas pus être ajouté car ne peux pas être pas supporté',
61
+ devNotSupYet: 'non supporté, crée un ticket incident sur Github avec les infos suivantes',
62
+ devNotUpd: 'echec de la mise à jour de l\'appareil en tant que',
63
+ devRemove: 'a été supprimé de Homebridge',
64
+ disabledAL: 'luminosité adaptative désactivée suite à un changement de couleur',
65
+ disabling: 'Désactivation du plugin',
66
+ doorClosed: 'fermée',
67
+ doorOpen: 'ouverte',
68
+ dualr3NoCalib: 'Doit être calibré pour fonctionner en mode moteur',
69
+ dualr3NoMeter: 'n\'est pas supporté en mode mètre',
70
+ errGetDevices: 'Une erreur est survenue durant https getDevices()',
71
+ errGetHost: 'Une erreur est survenue durant ws getHost()',
72
+ errLogin: 'Une erreur est survenue durant http login()',
73
+ eweError: 'Une erreur eWeLink [500] est survenue, nouvel essaie dans 30 secondes',
74
+ fetchHome: 'Fetching devices from eWeLink home/id',
75
+ foundWithIP: 'trouvé locallement avec IP',
76
+ foundWithManIP: 'utilisation de l\'IP manuelle',
77
+ hbVersionFail: 'Votre version de Homebridge est trop ancienne - Mettez à jour vers v1.6',
78
+ heaterSimNoSensor: 'you must configure a device ID that provides a temperature reading',
79
+ httpDisabled: 'HTTP/WS clients désactivé en tant que',
80
+ httpLogin10003:
81
+ 'Consulter https://bit.ly/hb-ewelink-errors pour plus d\'informations sur cette erreur de connexion',
82
+ httpRetry: 'eWelink n\'est pas joignable, réessai dans 30 secondes',
83
+ identify: 'identifier le bouton préssé',
84
+ initialised: 'Plugin intitialisé. Configuration des accessoires...',
85
+ initialising: 'Initialisation du plugin',
86
+ invalidConfig: 'Configuration invalide',
87
+ lanDisabled: 'LAN mode est désactivé',
88
+ lanErr: 'Error LAN inconnue',
89
+ lanIPDifferent: 'IP manuelle ignorée depuis la découverte d\'une IP différente',
90
+ lanMonitor: 'Surveillance LAN démarré',
91
+ lanNotSup: 'le mode LAN n\'est pas supporté pour envoyer des mise à jour vers cet appareil',
92
+ lanStarted: 'Découverte LAN complète',
93
+ lanStarting: 'Début de la découverte LAN',
94
+ lanUnsupported: 'le mode LAN est indisponible car il est indisponible ou non découvert',
95
+ leakNo: 'fuite non détectée',
96
+ leakYes: 'fuite detectée',
97
+ lockLocked: 'Vérouillé',
98
+ lockUnlocked: 'Déverouillé',
99
+ missingCreds: 'paramètres de connexion eWeLink non configurés',
100
+ motionNo: 'mouvement non detecté',
101
+ motionYes: 'mouvement detecté',
102
+ newIP: 'changement de l\'adresse IP pour',
103
+ newRegionRec: 'Nouvel API hôte HTTTP reçcus',
104
+ noAuthRec: 'pas de token d\'authentification reçus',
105
+ noGarageForOD: 'pas daccessoire de porte de garage trouvé',
106
+ noRegionRec: 'pas de région valide reçus',
107
+ noWSHost: 'le serveur ne répond pas avec un hote web socket',
108
+ occupancyNo: 'occupancy not detected',
109
+ occupancyYes: 'occupancy detected',
110
+ pluginNotConf: 'le plugin n\'a pas été configuré',
111
+ repOffline: 'a été rapporté [offline]',
112
+ repOnline: 'a été rapporté [online]',
113
+ revertWS: 'retour au web socket en tant que',
114
+ rfNotFound: 'essayez de redémarrer Homebridge car aucun accéssoires n\'a été trouvé pour',
115
+ rfTrigNo: 'non déclenché',
116
+ rfTrigYes: 'déclenché',
117
+ sendLogin: 'Envoie d\'une requete HTTP login()',
118
+ sensorErr:
119
+ 'non supporté comme des/humidifier tant que l\'équipement n\'à pas de capteur pris en charge',
120
+ sensorNo: 'désactivé',
121
+ sensorYes: 'activé',
122
+ sensorNoDevice: 'garage/lock accessory not found, this device will be setup as a normal sensor',
123
+ shareWarn:
124
+ 'utiliser un équipement partagé avec le cloud peut provoquer des erreurs, utilisez votre compte eWelink principal',
125
+ smokeNo: 'smoke not detected',
126
+ smokeYes: 'smoke detected',
127
+ sonoffCamera: 'voir le wiki homebridge-ewelink pour plus de détails sur l\'activation de caméra',
128
+ stoppedLAN: 'surveillance LAN gracieusement arreté',
129
+ stoppedWS: 'socket web fracieusement fermé',
130
+ storageClearErr: 'Ne peut pas vider le stockage du dossier en tant que',
131
+ storageReadErr: 'Ne peut pas lire le dossier persitat en tant que',
132
+ storageSetupErr: 'Ne peut pas paramétrer le stockage client en tant que',
133
+ storageWriteErr: 'ne peux pas sauvegarder l\'équipement dans un fichier en tant que',
134
+ unreachable: 'n\'est pas joignable',
135
+ updRec: 'reception d\'une mise à jour',
136
+ updReq: 'récupération de l\'état actuel',
137
+ updSend: 'envoie de la mise à jour',
138
+ valveNo: 'arreté',
139
+ valveYes: 'en fonctionnement',
140
+ viaAL: 'via éclairafe adaptatif',
141
+ viaLAN: 'via LAN',
142
+ viaWS: 'via WS',
143
+ welcome: 'Ce plugin a été fait avec ♥ par bwp91, n\'oubliez pas de ☆ ce plugin sur GitHub si vous le trouvez utile!',
144
+ wsHostRec: 'reception d\'un hôte Web socket',
145
+ wsLogin: 'Envoie d\'une requête de connection WS',
146
+ wsLoginErr: 'Paramètres WS reçus inconnus',
147
+ wsLoginError: 'Echec de la connection WS en tant que',
148
+ wsLoginErrRecon: 'WS n\'a pas pus être ouvert and réessaiera dans 5 secondes',
149
+ wsLoginSuccess: 'Succès de la connection WS',
150
+ wsLogin406: 'Echec de la connection WS [406] voir https://bit.ly/hb-ewelink-errors',
151
+ wsPingError: 'Ne peux pas envoyer un ping WS en tant que',
152
+ wsRec: 'Message WS reçus',
153
+ wsReconnectClose: 'Évènement de fermeture WS et réessaiera de se connecter dans 5 secondes',
154
+ wsReconnectError: 'Évènement d\'erreur WS et réessaiera de se connecter dans 5 secondes',
155
+ wsRef: 'Actualisation de la connection WS',
156
+ wsRefFail: 'Echec de l\'actualisation de la connection en tant que',
157
+ wsRequired: 'la mise à jour doit être envoyée de cette façon',
158
+ wsReqTimeout: 'demande de délai d\'attente',
159
+ wsResend: 'Web socket n\'est pas ouvert - réessayer dans quelques secondes',
160
+ wsUnkAct: 'message WS reçus comme action inconnue',
161
+ wsUnkCmd: 'commande WS inconnue reçue',
162
+ wsUnkRes: 'réponse WS inconnue reçue',
163
+ }
@@ -0,0 +1,160 @@
1
+ export default {
2
+ apiListenErr: 'ข้อผิดพลาดเซิร์ฟเวอร์ API ภายใน',
3
+ apiListening: 'การฟัง API ภายในบนพอร์ต',
4
+ apiShutdown: 'API ภายในปิดได้อย่างสมบูรณ์',
5
+ beta: 'You are using a beta version of the plugin - you will experience more logging than normal',
6
+ buttonDouble: 'กดสองครั้ง',
7
+ buttonLong: 'กดค้าง',
8
+ buttonNotFound: 'ไม่พบปุ่ม rf (รีสตาร์ท Homebridge)',
9
+ buttonSingle: 'กดครั้งเดียว',
10
+ buttonTrig: 'ปุ่มได้ถูกกระตุ้นแล้ว',
11
+ cantReadPacket: 'ข้อความจาก LAN ไม่สามารถได้เป็น',
12
+ cantParsePacket: 'ไม่สามารถแยกวิเคราะห์แพ็กเก็ต DNS เป็น',
13
+ cfgDef: 'ไม่ใช่ตัวเลขที่ถูกต้องดังนั้นใช้ค่าเริ่มต้นของ',
14
+ cfgDup: 'จะถูกละเว้นเนื่องจากมีรายการอื่นที่มี ID นี้อยู่แล้ว',
15
+ cfgIgn: 'ไม่ได้กำหนดค่าอย่างถูกต้องดังนั้นจะถูกละเว้นไว้',
16
+ cfgIgnItem: 'มีรายการที่ไม่ถูกต้องซึ่งจะถูกละเว้นไว้',
17
+ cfgItem: 'รายการกำหนดค่า',
18
+ cfgLow: 'ถูกตั้งไว้ต่ำเกินไปจึงเพิ่มขึ้นเป็น',
19
+ cfgRmv: 'ไม่ได้ใช้งานและสามารถนำออกได้',
20
+ cfgQts: 'ไม่ควรมีเครื่องหมายคำพูดรอบรายการ',
21
+ complete: '✓ การตั้งค่าเสร็จสมบูรณ์',
22
+ contactNo: 'ไม่พบการติดต่อ',
23
+ contactYes: 'ตรวจพบการติดต่อแล้ว',
24
+ curBatt: 'สถานะแบตเตอรี่',
25
+ curBright: 'ความสว่างในตอนนี้',
26
+ curColour: 'สีตอนนี้',
27
+ curCool: 'ความเย็นในตอนนี้',
28
+ curCurr: 'กระแสในตอนนี้',
29
+ curDehumid: 'ค่าความชื้นในตอนนี้',
30
+ curHeat: 'ค่าความร้อนในตอนนี้',
31
+ curHumi: 'ค่าความชื้นในตอนนี้',
32
+ curHumid: 'ค่าความชื้นในตอนนี้',
33
+ curLight: 'แสงตอนนี้',
34
+ curMode: 'โหมดตอนนี้',
35
+ curPos: 'ตำแหน่งตอนนี้',
36
+ curPower: 'กำลังไฟตอนนี้',
37
+ curPur: 'การทำให้บริสุทธิ์ในตอนนี้',
38
+ curScene: 'ฉากตอนนี้',
39
+ curSpeed: 'ความเร็วในตอนนี้',
40
+ curState: 'สถานะตอนนี้',
41
+ curTarg: 'เป้าหมายตอนนี้',
42
+ curTemp: 'อุณหภูมิตอนนี้',
43
+ curVolt: 'แรงดันตอนนี้',
44
+ devAdd: 'ถูกเพิ่มใน Homebridge แล้ว',
45
+ devInit: 'เริ่มต้นและ',
46
+ devInitGroup: 'เริ่มต้นด้วยรหัสกลุ่ม',
47
+ devInitOpts: 'เริ่มต้นด้วยตัวเลือก',
48
+ devNewNotAdd: 'รีสตาร์ท Homebridge เพื่อเพิ่มอุปกรณ์ใหม่ ไม่สามารถเพิ่มโดยอัตโนมัติเป็น',
49
+ devNoAPIKey: 'ไม่สามารถเรียกคีย์ API ของอุปกรณ์ได้',
50
+ devNoControl: 'ไม่สามารถควบคุมเป็นโหมด: LAN เข้ากันไม่ได้กับอุปกรณ์นี้',
51
+ devNotAdd: 'ไม่สามารถเพิ่มใน Homebridge เป็น',
52
+ devNotConf: 'ไม่สามารถกำหนดค่าเป็น',
53
+ devNotConfLAN: 'อุปกรณ์/คำสั่งไม่พร้อมใช้งานผ่านโหมด LAN',
54
+ devNotFound: 'ไม่พบอุปกรณ์ใน eWeLink',
55
+ devNotInit: 'ไม่สามารถเริ่มต้นเป็น',
56
+ devNotReachLAN: 'อุปกรณ์ไม่สามารถเข้าถึงได้ผ่านโหมด LAN',
57
+ devNotRf: 'ไม่สามารถรีเฟรชได้เป็น',
58
+ devNotRemove: 'ไม่สามารถลบออกจาก Homebridge ได้เหมือน',
59
+ devNotSup: 'ไม่ได้เพิ่มเพราะไม่รองรับ',
60
+ devNotSupYet: 'ไม่รองรับ แจ้งปัญหาใน GitHub ด้วยข้อมูลต่อไปนี้',
61
+ devNotUpd: 'การอัปเดตอุปกรณ์ล้มเหลวเนื่องจาก',
62
+ devRemove: 'ถูกลบออกจาก Homebridge แล้ว',
63
+ disabledAL: 'ระบบปรับแสงอัตโนมัติถูกปิดใช้งานเนื่องจากการเปลี่ยนสีอย่างมีนัยสำคัญ',
64
+ disabling: 'ปิดการใช้งานปลั๊กอิน',
65
+ doorClosed: 'ปิดแล้ว',
66
+ doorOpen: 'เปิด',
67
+ dualr3NoCalib: 'ต้องสอบเทียบให้ทำงานในโหมดมอเตอร์',
68
+ dualr3NoMeter: 'ไม่รองรับโหมดมิเตอร์',
69
+ errGetDevices: 'เกิดข้อผิดพลาดระหว่าง http getDevices()',
70
+ errGetHomes: 'เกิดข้อผิดพลาดระหว่าง http getHomes()',
71
+ errGetHost: 'เกิดข้อผิดพลาดระหว่าง ws getHost()',
72
+ errLogin: 'เกิดข้อผิดพลาดระหว่างการเข้าสู่ระบบ http()',
73
+ eweError: 'เกิดข้อผิดพลาด eWeLink [500] ลองอีกครั้งใน 30 วินาที',
74
+ fetchHome: 'กำลังดึงอุปกรณ์จาก eWeLink home/id',
75
+ foundWithIP: 'พบในท้องที่ด้วย IP',
76
+ foundWithManIP: 'ใช้ IP ด้วยตนเอง',
77
+ hbVersionFail: 'เวอร์ชัน Homebridge ของคุณต่ำเกินไป - อัปเดตเป็น v1.6',
78
+ heaterSimNoSensor: 'คุณต้องกำหนดค่า ID อุปกรณ์ที่ให้การอ่านอุณหภูมิ',
79
+ httpDisabled: 'ไคลเอ็นต์ HTTP/WS ถูกปิดใช้งานเป็น',
80
+ httpLogin10003: 'ดู https://bit.ly/hb-ewelink-errors สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาการเข้าสู่ระบบ',
81
+ httpRetry: 'ไม่สามารถเข้าถึง eWeLink ได้ ลองอีกครั้งใน 30 วินาที',
82
+ identify: 'ระบุปุ่มกด',
83
+ initialised: 'ปลั๊กอินเริ่มต้น กำลังตั้งค่าอุปกรณ์เสริม...',
84
+ initialising: 'กำลังเริ่มต้นปลั๊กอิน',
85
+ invalidConfig: 'config ไม่ถูกต้อง',
86
+ lanDisabled: 'โหมด LAN ถูกปิดใช้งาน',
87
+ lanErr: 'ข้อผิดพลาด LAN ที่ไม่รู้จัก',
88
+ lanIPDifferent: 'ละเว้น IP ด้วยตนเองตั้งแต่ค้นพบด้วย IP ที่แตกต่างกัน',
89
+ lanMonitor: 'เริ่มการตรวจสอบ LAN แล้ว',
90
+ lanNotSup: 'ไม่รองรับโหมด LAN ในการส่งการอัปเดตไปยังอุปกรณ์นี้',
91
+ lanStarted: 'การค้นหาใน LAN เสร็จสมบูรณ์',
92
+ lanStarting: 'การค้นหาใน LAN เริ่มต้นg',
93
+ lanUnsupported: 'โหมด LAN ไม่พร้อมใช้งานเนื่องจากไม่พบ/สนับสนุน',
94
+ leakNo: 'ตรวจไม่พบการรั่ว',
95
+ leakYes: 'ตรวจพบการรั่ว',
96
+ lockLocked: 'ล็อคแล้ว',
97
+ lockUnlocked: 'ปลดล็อคแล้ว',
98
+ missingCreds: 'ไม่ได้กำหนดค่าข้อมูลรับรอง eWeLink',
99
+ motionNo: 'ตรวจไม่พบการเคลื่อนไหว',
100
+ motionYes: 'ตรวจพบการเคลื่อนไหว',
101
+ newIP: 'เปลี่ยนที่อยู่ IP เป็น',
102
+ newRegionRec: 'ได้รับโฮสต์ HTTP API ใหม่แล้ว',
103
+ noAuthRec: 'ไม่ได้รับโทเค็นการตรวจสอบสิทธิ์',
104
+ noGarageForOD: 'ไม่พบอุปกรณ์เสริมประตูโรงรถที่สอดคล้องกัน',
105
+ noRegionRec: 'ไม่ได้รับภูมิภาคที่ถูกต้อง',
106
+ noWSHost: 'เซิร์ฟเวอร์ไม่ตอบสนองกับโฮสต์เว็บซ็อกเก็ต',
107
+ occupancyNo: 'occupancy not detected',
108
+ occupancyYes: 'occupancy detected',
109
+ pluginNotConf: 'ปลั๊กอินไม่ได้รับการกำหนดค่า',
110
+ repOffline: 'มีการรายงาน [ออฟไลน์]',
111
+ repOnline: 'มีการรายงาน [ออนไลน์]',
112
+ revertWS: 'เปลี่ยนกลับเป็นเว็บซ็อกเก็ตเป็น',
113
+ rfNotFound: 'ลองรีสตาร์ท Homebridge เนื่องจากไม่พบอุปกรณ์เสริมสำหรับ',
114
+ rfTrigNo: 'ไม่ถูกกระตุ้น',
115
+ rfTrigYes: 'ถูกกระตุ้น',
116
+ sendLogin: 'กำลังส่งคำขอเข้าสู่ระบบ HTTP ()',
117
+ sensorErr: 'ไม่รองรับเป็น ลด/เพิ่มความชื้นเนื่องจากอุปกรณ์ไม่รองรับเซ็นเซอร์',
118
+ sensorNo: 'ปิดการใช้งาน',
119
+ sensorNoDevice: 'ไม่พบอุปกรณ์โรงรถ/ล็อค อุปกรณ์นี้จะถูกตั้งค่าเป็นเซ็นเซอร์ปกติ',
120
+ sensorYes: 'เปิดใช้งาน',
121
+ shareWarn: 'การใช้อุปกรณ์ที่ใช้ร่วมกันกับคลาวด์อาจทำให้เกิดข้อผิดพลาด ใช้บัญชี eWeLink หลักของคุณ',
122
+ smokeNo: 'ตรวจไม่พบควัน',
123
+ smokeYes: 'ตรวจพบควัน',
124
+ sonoffCamera: 'ดูวิกิ homebridge-ewelink สำหรับรายละเอียดเพื่อเปิดใช้งานกล้อง',
125
+ stoppedLAN: 'การตรวจสอบ LAN หยุดลงอย่างสมบูรณ์',
126
+ stoppedWS: 'เว็บซ็อกเก็ตปิดอย่างสมบูรณ์',
127
+ storageClearErr: 'ไม่สามารถล้างโฟลเดอร์ที่เก็บข้อมูลเป็น',
128
+ storageReadErr: 'ไม่สามารถอ่านโฟลเดอร์คงอยู่เป็น',
129
+ storageSetupErr: 'ไม่สามารถตั้งค่าไคลเอนต์ที่เก็บข้อมูลเป็น',
130
+ storageWriteErr: 'ไม่สามารถบันทึกอุปกรณ์เสริมลงในไฟล์เป็น',
131
+ unreachable: 'มันเข้าถึงไม่ได้',
132
+ updRec: 'ได้รับการปรับปรุง',
133
+ updReq: 'ขอสถานะปัจจุบัน',
134
+ updSend: 'กำลังส่งการปรับปรุง',
135
+ valveNo: 'หยุดแล้ว',
136
+ valveYes: 'กำลังดำเนินงาน',
137
+ viaAL: 'ผ่านแสงแบบปรับได้',
138
+ viaLAN: 'ผ่าน LAN',
139
+ viaWS: 'ผ่าน WS',
140
+ welcome: 'ปลั๊กอินนี้สร้างด้วย ♥ โดย bwp91, อย่าลืม ☆ ปลั๊กอินนี้บน GitHub หากคุณพบว่ามีประโยชน์!',
141
+ wsHostRec: 'ได้รับโฮสต์เว็บซ็อกเก็ต',
142
+ wsLogin: 'กำลังส่งคำขอเข้าสู่ระบบ WS',
143
+ wsLoginErr: 'ได้รับพารามิเตอร์ WS ที่ไม่รู้จัก',
144
+ wsLoginError: 'การเข้าสู่ระบบ WS ล้มเหลวเนื่องจาก',
145
+ wsLoginErrRecon: 'ไม่สามารถเปิด WS ได้และจะลองอีกครั้งใน 5 วินาที',
146
+ wsLoginSuccess: 'เข้าสู่ระบบ WS สำเร็จ',
147
+ wsLogin406: 'การเข้าสู่ระบบ WS ล้มเหลว [406] ดู https://bit.ly/hb-ewelink-errors',
148
+ wsPingError: 'ไม่สามารถส่ง WS ping เป็น',
149
+ wsRec: 'ได้รับข้อความ WS',
150
+ wsReconnectClose: 'WS ปิดเหตุการณ์และจะพยายามเชื่อมต่อใหม่ใน 5 วินาที',
151
+ wsReconnectError: 'เหตุการณ์ข้อผิดพลาด WS และจะพยายามเชื่อมต่อใหม่ใน 5 วินาที',
152
+ wsRef: 'กำลังรีเฟรชการเชื่อมต่อ WS',
153
+ wsRefFail: 'การรีเฟรชการเชื่อมต่อ WS ล้มเหลวเนื่องจาก',
154
+ wsRequired: 'ต้องส่งการอัพเดทมาทางนี้',
155
+ wsReqTimeout: 'หมดเวลาการร้องขอ',
156
+ wsResend: 'เว็บซ็อกเก็ตไม่เปิด - โปรดลองอีกครั้งหลังจากผ่านไปสักครู่',
157
+ wsUnkAct: 'ได้รับข้อความ WS มีการดำเนินการที่ไม่รู้จัก',
158
+ wsUnkCmd: 'ได้รับคำสั่ง WS ที่ไม่รู้จัก',
159
+ wsUnkRes: 'การตอบสนอง WS ที่ไม่รู้จัก',
160
+ }