atrea_control 1.3.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4a5ccc9d8596b46a4ec4c2eb98e26b820c62bfdbf91c8c1b732adc9f858f31bf
4
- data.tar.gz: bac1c0183608fe7f16c679578203fba54c10d8e2270be7d0bf68fb1f17d7cce4
3
+ metadata.gz: 7d02f9e12d50a1306027858699f71f71435f5f9bd393eb20e157b649ad7111ee
4
+ data.tar.gz: ef9a19f18361713356cd28d5a6ecd5ff634fd82e703bf9073fba9d2763703dcc
5
5
  SHA512:
6
- metadata.gz: 657e441b8aa3ecfaa5eb8905ff6e22064d70d43984156bd15c6b7dfc17f6ed92e1a7c8318cd7febeb2ce68c621ff06f69561cd8861b642f2313f4421df098597
7
- data.tar.gz: 97dcc1fa4810f952e4b89d2f610c93a2359debb663b0138f8bf3d5771ca9e4ddfb96be2d9c8e0a0a2a2667f1daa4533606704adfc9a89571a4d0852800cf7bf1
6
+ metadata.gz: 807dc186b9810f869df2f9c6ad40b9f15fbbb33a85bfcea73a634a396b15a12e9e7060da2d2e76380789158280ee95313303a5f8b6c2e811b58a242fa3d9f950
7
+ data.tar.gz: 55a2c020ad45023c840a5f1734146dc4159849fdc667f91d9dc6c16d16359554dcd374e76be95bfa8852fcf3e1435ed20ea838a507e15ff5b50fd811b7814fd2
@@ -10,7 +10,7 @@ jobs:
10
10
  - name: Set up Ruby
11
11
  uses: ruby/setup-ruby@v1
12
12
  with:
13
- ruby-version: 2.7.2
13
+ ruby-version: 2.7
14
14
  bundler-cache: true
15
15
  - uses: browser-actions/setup-firefox@latest
16
16
  - name: Run tests
data/CHANGELOG.md CHANGED
@@ -1,4 +1,28 @@
1
1
  ## [Unreleased]
2
+ ## [2.0.1] - 2021-12-26
3
+ ### Fixed
4
+ - write correct arguments
5
+
6
+ ## [2.0.0] - 2021-12-26
7
+ ### Changed
8
+ - refactored codebase to more readable classes
9
+ - selenium used only for login and then close => obtain SID (and user with unit)
10
+ - login waiting mechanism
11
+ ### Added
12
+ - found way how to change mode & power (tell unit to change)
13
+
14
+ ## [1.4.1] - 2021-12-18
15
+ ### Changed
16
+ - little refactor
17
+
18
+ ## [1.4.0] - 2021-12-12
19
+ ### Changed
20
+ - founded way to get config and data from Atrea server
21
+
22
+ ## [1.3.1] - 2021-12-11
23
+ ### Changed
24
+ - version of selenium
25
+
2
26
  ## [1.3.0] - 2021-12-11
3
27
  ### Changed
4
28
  - store auth tokens outside
data/Gemfile.lock CHANGED
@@ -1,10 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- atrea_control (1.3.0)
4
+ atrea_control (2.0.1)
5
+ i18n (~> 1.8)
5
6
  nokogiri (~> 1.12)
6
7
  rest-client (~> 2.1)
7
- selenium-webdriver (~> 3.142)
8
+ selenium-webdriver (~> 4.1)
8
9
 
9
10
  GEM
10
11
  remote: https://rubygems.org/
@@ -12,11 +13,12 @@ GEM
12
13
  addressable (2.8.0)
13
14
  public_suffix (>= 2.0.2, < 5.0)
14
15
  ast (2.4.2)
15
- childprocess (3.0.0)
16
+ childprocess (4.1.0)
16
17
  coderay (1.1.3)
18
+ concurrent-ruby (1.1.9)
17
19
  crack (0.4.5)
18
20
  rexml
19
- diff-lcs (1.4.4)
21
+ diff-lcs (1.5.0)
20
22
  docile (1.4.0)
21
23
  domain_name (0.5.20190701)
22
24
  unf (>= 0.0.5, < 1.0.0)
@@ -24,6 +26,8 @@ GEM
24
26
  http-accept (1.7.0)
25
27
  http-cookie (1.0.4)
26
28
  domain_name (~> 0.5)
29
+ i18n (1.8.11)
30
+ concurrent-ruby (~> 1.0)
27
31
  method_source (1.0.0)
28
32
  mime-types (3.4.1)
29
33
  mime-types-data (~> 3.2015)
@@ -31,8 +35,10 @@ GEM
31
35
  netrc (0.11.0)
32
36
  nokogiri (1.12.5-x86_64-darwin)
33
37
  racc (~> 1.4)
38
+ nokogiri (1.12.5-x86_64-linux)
39
+ racc (~> 1.4)
34
40
  parallel (1.21.0)
35
- parser (3.0.2.0)
41
+ parser (3.0.3.2)
36
42
  ast (~> 2.4.1)
37
43
  pry (0.14.1)
38
44
  coderay (~> 1.1)
@@ -41,7 +47,7 @@ GEM
41
47
  racc (1.6.0)
42
48
  rainbow (3.0.0)
43
49
  rake (13.0.6)
44
- regexp_parser (2.1.1)
50
+ regexp_parser (2.2.0)
45
51
  rest-client (2.1.0)
46
52
  http-accept (>= 1.7.0, < 2.0)
47
53
  http-cookie (>= 1.0.2, < 2.0)
@@ -60,24 +66,25 @@ GEM
60
66
  rspec-mocks (3.10.2)
61
67
  diff-lcs (>= 1.2.0, < 2.0)
62
68
  rspec-support (~> 3.10.0)
63
- rspec-support (3.10.2)
64
- rubocop (1.22.2)
69
+ rspec-support (3.10.3)
70
+ rubocop (1.24.0)
65
71
  parallel (~> 1.10)
66
72
  parser (>= 3.0.0.0)
67
73
  rainbow (>= 2.2.2, < 4.0)
68
74
  regexp_parser (>= 1.8, < 3.0)
69
75
  rexml
70
- rubocop-ast (>= 1.12.0, < 2.0)
76
+ rubocop-ast (>= 1.15.0, < 2.0)
71
77
  ruby-progressbar (~> 1.7)
72
78
  unicode-display_width (>= 1.4.0, < 3.0)
73
- rubocop-ast (1.12.0)
79
+ rubocop-ast (1.15.0)
74
80
  parser (>= 3.0.1.1)
75
- rubocop-rspec (2.5.0)
81
+ rubocop-rspec (2.6.0)
76
82
  rubocop (~> 1.19)
77
83
  ruby-progressbar (1.11.0)
78
84
  rubyzip (2.3.2)
79
- selenium-webdriver (3.142.7)
80
- childprocess (>= 0.5, < 4.0)
85
+ selenium-webdriver (4.1.0)
86
+ childprocess (>= 0.5, < 5.0)
87
+ rexml (~> 3.2, >= 3.2.5)
81
88
  rubyzip (>= 1.2.2)
82
89
  simplecov (0.21.2)
83
90
  docile (~> 1.1)
data/README.md CHANGED
@@ -10,7 +10,9 @@ This gem provide simple DSL by parsing content of https://control.atrea.eu with
10
10
  * temperature
11
11
  * fan power
12
12
  * power mode
13
-
13
+ * allow change
14
+ * power
15
+ * mode
14
16
 
15
17
  ## Installation
16
18
 
@@ -30,27 +32,59 @@ Or install it yourself as:
30
32
 
31
33
  ## Usage
32
34
 
33
- UI map of sensors is required = each box have own ID contains sensor ID. Its required for correct element lookup.
34
-
35
- Default sensor map:
35
+ At the begin you need obtain `user_id`, `unit_id` and `sid` (auth token). For this use "Login"
36
36
  ```ruby
37
- def default_sensors_map
38
- {
39
- outdoor_temperature: "I10208",
40
- current_power: "H10704",
41
- current_mode: "H10705",
42
- }
43
- end
37
+ tokens = AtreaControl::Duplex::Login.user_tokens login: "myhome", password: "sup3r-S3CR3T-kocicka"
38
+ tokens # => { user_id: "1234", unit_id: "85425324672", sid: 4012 }
44
39
  ```
40
+ I recommend to store then somewhere...
41
+ Then you can call Unit for data...
42
+
45
43
  Example usage:
46
44
  ```ruby
47
- control = AtreaControl::Duplex.new login: "myhome", password: "sup3r-S3CR3T-kocicka", sensors_map: { current_power: "H10704" }
48
- control.login # => true (takes max 5.minutes)
49
- control.current_mode # => "Bathroom"
50
- control.current_power # => 37.0
45
+ control = AtreaControl::Duplex::Unit.new user_id: "1234", unit_id: "85425324672", sid: 4012
46
+ control.values # => { current_power: 88.0, current_mode: "CO2" }
47
+ control.power # => 88.0
48
+ ```
49
+ ### Dig deeper
50
+ `AtreaControl::Duplex::Unit` expect optional argument `user_ctrl` which should be object respond to
51
+
52
+ `name` (String) = Name of unit
53
+ `sensors` (Hash) = Map of sensors, for example: `{ outdoor_temperature: "HI10208", current_power: "H10704" }`
54
+ `modes` (Hash) = Is a map of "changable" modes - in unit its something like "builtin?" modes. They are translated by unit lang - `{ "0" => "Vypnuto", "1" => "Automat" }`
55
+ `user_modes` (Hash) = Is a map user specific modes, based on home switches / devices (D1, D2, D3, IN1, IN2 ...). They are translated by user texts - `{ "D1" => "Koupelna", "D2" => "CO2", "IN1" => "ovladač" }`
56
+
57
+ __Please check [lib/atrea_control/duplex/user_ctrl.rb](./lib/atrea_control/duplex/user_ctrl.rb) for more details !__
58
+
59
+ ## Development / TODO
60
+ Login is currently done by selenium - fill login form.
61
+ I found that Atre submit form to BE, generate some "empty" HTML and JS which onLoad start doing request to queue for "login".
62
+
63
+ Re-login user, add login procedure into queue:
64
+ ```bash
65
+ curl -X POST -d "comm=config%2Flogin.cgi" "https://control.atrea.eu/apps/rd5Control/handle.php?action=unitLogin&user=XXXX&unit=NNNNNNN&table=userUnits&idPwd=YYYYYYY&NFP"
66
+ ```
67
+ Response is time in seconds when login will ready:
68
+ ```xml
69
+ <root><sended time="264"/></root>
70
+ ```
71
+ Based it su shown countdown ...
72
+
73
+
74
+ Request for current queue status
75
+ ```bash
76
+ curl 'https://control.atrea.eu/apps/rd5Control/handle.php?Sync=1&action=unitQuery&query=loged&user=XXXX&unit=NNNNNNN'
77
+ ```
78
+ if queue is processed:
79
+ ```xml
80
+ <root><login uconn="16395889" sid="010101" ver="3001009"/></root>
81
+ ```
82
+ else
83
+ ```xml
84
+ <root><login uconn="16390480" sid="0"/></root>
51
85
  ```
52
86
 
53
- ## Development
87
+ Goal is to obtain "SID".
54
88
 
55
89
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
56
90
 
@@ -3,14 +3,14 @@
3
3
  require_relative "lib/atrea_control/version"
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = "atrea_control"
7
- spec.version = AtreaControl::VERSION
8
- spec.authors = ["Lukáš Pokorný"]
9
- spec.email = ["pokorny@luk4s.cz"]
10
-
11
- spec.summary = "Get data control.atrea.eu"
12
- spec.description = "Read data from web controller of RD5 duplex by Atrea."
13
- spec.homepage = "https://github.com/luk4s/atrea_control"
6
+ spec.name = "atrea_control"
7
+ spec.version = AtreaControl::VERSION
8
+ spec.authors = ["Lukáš Pokorný"]
9
+ spec.email = ["pokorny@luk4s.cz"]
10
+
11
+ spec.summary = "Get data control.atrea.eu"
12
+ spec.description = "Read data from web controller of RD5 duplex by Atrea."
13
+ spec.homepage = "https://github.com/luk4s/atrea_control"
14
14
  spec.required_ruby_version = Gem::Requirement.new(">= 2.7.2")
15
15
 
16
16
  spec.metadata["allowed_push_host"] = "https://rubygems.org"
@@ -18,14 +18,16 @@ Gem::Specification.new do |spec|
18
18
  spec.metadata["homepage_uri"] = spec.homepage
19
19
  spec.metadata["source_code_uri"] = "https://github.com/luk4s/atrea_control"
20
20
  spec.metadata["changelog_uri"] = "https://github.com/luk4s/atrea_control/CHANGELOG.md"
21
-
21
+ spec.metadata = {
22
+ "rubygems_mfa_required" => "true",
23
+ }
22
24
  # Specify which files should be added to the gem when it is released.
23
25
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
26
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
25
27
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
26
28
  end
27
- spec.bindir = "exe"
28
- spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
29
+ spec.bindir = "exe"
30
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
29
31
  spec.require_paths = ["lib"]
30
32
 
31
33
  # Uncomment to register a new dependency of your gem
@@ -34,7 +36,9 @@ Gem::Specification.new do |spec|
34
36
  # For more information and examples about making a new gem, checkout our
35
37
  # guide at: https://bundler.io/guides/creating_gem.html
36
38
 
39
+ spec.add_dependency "i18n", "~> 1.8"
37
40
  spec.add_dependency "nokogiri", "~> 1.12"
38
41
  spec.add_dependency "rest-client", "~> 2.1"
39
- spec.add_dependency "selenium-webdriver", "~> 3.142"
42
+ spec.add_dependency "selenium-webdriver", "~> 4.1"
43
+
40
44
  end
@@ -0,0 +1,269 @@
1
+ ---
2
+ cs:
3
+ mainTitle: Váš specialista na rekuperaci tepla a ekonomii vzduchotechnických systémů
4
+ save: Uložit
5
+ cancel: Storno
6
+ copy: Kopírovat
7
+ refresh: Obnovit
8
+ change: Změnit
9
+ pleaseWait: Prosím, čekejte ...
10
+ backToHome: Návrat na hlavní stranu
11
+ mainPage: Hlavní strana
12
+ serviceMenu: Servisní menu
13
+ activeFrom: Aktivní od
14
+ hours: Hodiny
15
+ minutes: Minuty
16
+ record: Záznam
17
+ allowed: Povoleno
18
+ netSetup: Nastavení sítě
19
+ getFromDHCP: Načíst hodnoty ze serveru DHCP
20
+ useNextValues: Použít následující hodnoty
21
+ addressIP: IP adresa
22
+ subnetMask: Maska podsítě
23
+ defaultGW: Výchozí brána
24
+ serverDNS: DNS server
25
+ FTPsetup: Nastavení hesla FTP serveru
26
+ passwordOld: Původní heslo
27
+ passwordNew: Nové heslo
28
+ passwordConfirm: Potvrzení nového hesla
29
+ airCond: Vzduchotechnika
30
+ airCondSetup: Nastavení vzduchotechniky
31
+ temperature: Teplota
32
+ tempSetup: Nastavení teploty
33
+ notInDemo: V demo verzi není podporováno
34
+ thisTimeExist: Zadaný čas již existuje
35
+ serviceSetup: Servisní nastavení
36
+ activeAlarms: Aktivní alarmy
37
+ alarmHistory: Historie alarmů
38
+ unitStarted: Start jednotky
39
+ active: Aktivní
40
+ noAlarmDefined: Není definován žádný alarm
41
+ noAlarmDetected: Není detekován žádný alarm
42
+ values: Hodnoty
43
+ parameters: Parametry
44
+ badInput: Chybné zadání
45
+ allowedRange: Povolený rozsah
46
+ start: Start
47
+ stop: Stop
48
+ text: Text
49
+ digiVer: Verze DIGI modulu
50
+ rdVer: Verze RD modulu
51
+ unitAddress: Adresa jednotky
52
+ currentMode: Aktuální mód provozu
53
+ damageWarning: Pozor nastavením těchto parametrů lze způsobit neadekvátní reakci
54
+ větrací jednotky, což může zapříčinit její poruchu či poškození. Za neuvážené
55
+ změny v nastavení výstupů nenese výrobce zařízení žádnou zodpovědnost!
56
+ parameter: Parametr
57
+ value: Hodnota
58
+ minimum: Minimum
59
+ maximum: Maximum
60
+ defValue: Výchozí hodnota
61
+ warning: Varování
62
+ error: Nastav
63
+ accessPrompt: Kontrola přístupu, zadejte přístupový kód
64
+ accessDenied: Přístup odepřen, chybný kód nebo příliš mnoho přihlášených!
65
+ swVer: Verze software
66
+ orderNum: Číslo zakázky
67
+ userSetup: Uživatelské nastavení
68
+ switchman: Manuál
69
+ valueOutOfRange: Hodnota leží mimo rozsah
70
+ fwStep1: Krok 1. - Uložení nastavení
71
+ fwStep2: Krok 2. - Update firmware
72
+ fwSTep3: Krok 3. - Obnova nastavení
73
+ saveSettings: Uložit nastavení
74
+ updateIt: Provést update
75
+ restoreSettings: Obnovit nastavení
76
+ parsNotSaved: Parametry nebyly dosud uloženy
77
+ errLengthCoo: Chyba dat, použijte jiný prohlížeč
78
+ parsSaved: Parametry uloženy
79
+ updateInProcess: Probíhá update, prosím čekejte
80
+ updateNoFile: Nebyl nalezen žádný soubor pro update
81
+ updateSucess: UPDATE dokončen
82
+ updateError: Chyba při updatu
83
+ manControlOn: Ruční řízení povoleno
84
+ manControlOff: Ruční řízení neaktivní
85
+ notConnected: Nepřipojeno
86
+ PgFW_FS1: Obnova/Záloha nastavení
87
+ PgFW_S1: Provedení zálohy servisního nastavení
88
+ PgFW_SB1: Zálohovat
89
+ PgFW_S2: Obnova servisního nastavení ze zálohy
90
+ PgFW_SB2: Obnovit
91
+ PgFW_S3: Obnova nastavení do výrobních hodnot
92
+ PgFW_SB3: Obnovit
93
+ PgFW_FS2: Update
94
+ PgFW_U2: Stažení aplikace pro update
95
+ PgFW_UB1: Otevřít
96
+ PgFW_SB1c: 'Přejete si vytvořit zálohu servisního nastavení? '
97
+ PgFW_SB2c: Opravdu si přejete obnovit servisní nastavení ze zálohy?
98
+ PgFW_SB3c: Opravdu si přejete obnovit výrobní nastavení?
99
+ fwUnit: FW Jednotky
100
+ fwAvail: Dostupný FW
101
+ restInProgress: Probíhá obnova nastavení
102
+ restart: Restart
103
+ activate: Aktivovat
104
+ deactivate: Deaktivovat
105
+ badTimeZone: Nesprávné časové pásmo
106
+ badTime: Nesprávné nastavení času
107
+ setByPC: Nastavit podle PC
108
+ msgFindAddr: Zadejte novou adresu jednotky.
109
+ dtFilterChange: Datum výměny filtru
110
+ confirmFilter: Potvrdit výměnu
111
+ confFilterQuest: Opravdu byl filtr vyměněn?
112
+ 'off': Vypnuto
113
+ 'on': Zapnuto
114
+ dayOfWeek: Den v týdnu
115
+ monday: Pondělí
116
+ tuesday: Úterý
117
+ wednesday: Středa
118
+ thursday: Čtvrtek
119
+ friday: Pátek
120
+ saturday: Sobota
121
+ sunday: Neděle
122
+ medium: Střední
123
+ night: Noc
124
+ day: Den
125
+ power: Výkon
126
+ automatic: Týdenní program
127
+ manual: Ruční
128
+ temporary: Dočasné
129
+ non: Není
130
+ mode: Režim
131
+ perVentilation: Periodické větrání
132
+ ventilation: Větrání
133
+ circulation: Cirkulace
134
+ startUp: Náběh
135
+ runDown: Doběh
136
+ defrosting: Odtávání rekuperátoru
137
+ external: Externě
138
+ inactive: Vypnuto
139
+ zone: Zóna
140
+ heating: Topná
141
+ nonHeating: Netopná
142
+ dateTime: Datum a čas
143
+ filterChange: Výměna filtru
144
+ notWhenAuto: Řízení teploty je nastaveno na automatiku, změna je platná pouze do
145
+ příští změny režimu.
146
+ heatingSched: Rozvrh topná sezóna
147
+ nonHeatingSched: Rozvrh netopná sezóna
148
+ userSetting: Uživatelské nastavení
149
+ season: Sezóna
150
+ modeAC: Režim VZT
151
+ modeTemp: Režim teploty
152
+ controlSetting: Nastavení regulace
153
+ tempSenzorDev: Korekce čidla teploty ovladače
154
+ inputBlock: Blokování vstupu
155
+ personsCount: Počet osob
156
+ thermostatFcn: Funkce termostatu
157
+ holidayParty: Dovolená / párty
158
+ texts: Texty
159
+ txtZone1: Text pro zónu 1
160
+ txtZone2: Text pro zónu 2
161
+ txtZone12: Text pro zónu 1 2
162
+ swInfo: Informace o SW
163
+ alarms: Alarmy
164
+ controlAC: Řízení VZT
165
+ controlTemp: Řízení teploty
166
+ currentPower: Aktuální výkon
167
+ requiredPower: Požadovaný výkon
168
+ requiredTemp: Požadovaná teplota
169
+ requiredMode: Požadovaný režim
170
+ indoorTemp: Vnitřní teplota
171
+ inletTemp: Teplota přívodu
172
+ czech: Česky
173
+ german: Německy
174
+ english: Anglicky
175
+ eqVent: Rovnotlaké větrání
176
+ ventCirc: Větrání s cirkulací
177
+ circDepend: Cirkulace závislá
178
+ overPrVent: Přetlakové větrání
179
+ devHeating: Odchylka pro topení
180
+ devCooling: Odchylka pro chlazení
181
+ devCoolMax: Odchylka pro chlazení na max.
182
+ productNumber: Výrobní číslo
183
+ unitType: Typ jednotky
184
+ polish: Polsky
185
+ bySens: Auto - větrání
186
+ hpDefrosting: Odmražení TČ
187
+ userLogin: Přihlášení uživatele
188
+ passwordInput: Zadejte heslo
189
+ loginCmd: Přihlásit
190
+ weeklyProgram: Týdenní program
191
+ italiano: Italsky
192
+ nightBefCool: Noční předchlazení
193
+ passwordMenu: Změna hesla
194
+ enterAllFields: Zadejte všechny údaje!
195
+ passwordNoChk: Nové heslo a jeho potvrzeni se neshoduje!
196
+ passwordBad: Heslo může obsahovat pouze znaky a-z, A-Z a číslice!
197
+ passwordSaved: Heslo bylo uloženo.
198
+ passwordSaveErr: Chyba při ukládání hesla.
199
+ unavail: Nedostupná
200
+ disabledRange: Nepovolený rozsah
201
+ emergMode: Nouzový režim
202
+ outdoorTemp: Venkovní teplota
203
+ currentZone: Aktuální zóna
204
+ components: Komponenty
205
+ all: Vše
206
+ modeAuto: Automat
207
+ disbalance: Rozvážení
208
+ saveActive: Uložit / Aktivovat
209
+ holidays: Svátky
210
+ vacations: Prázdniny
211
+ unitDesign: Provedení
212
+ unitSpec: Specifikace
213
+ partyStart: Spustit v
214
+ partyEnd: Ukončit v
215
+ tsNtsSwitch: Přepnutí TS/NTS
216
+ tsNtsTemp: Teplota TS/NTS
217
+ in1Block: Blokace cidla IN1
218
+ in2Block: Blokace cidla IN2
219
+ hystHeat: Hystereze topení
220
+ hystCool: Hystereze chlazení
221
+ set: Nastavit
222
+ timeZone: Časové pásmo
223
+ settingTZ: Nastavení časového pásma
224
+ producer: Výrobce
225
+ unitLine: Řada
226
+ unitSize: Velikost jednotky
227
+ unitIntDesign: Vnitřní uspořádání
228
+ currentConfig: Aktuální nastavení
229
+ monthName1: Leden
230
+ monthName2: Únor
231
+ monthName3: Březen
232
+ monthName4: Duben
233
+ monthName5: Květen
234
+ monthName6: Červen
235
+ monthName7: Červenec
236
+ monthName8: Srpen
237
+ monthName9: Září
238
+ monthName10: Říjen
239
+ monthName11: Listopad
240
+ monthName12: Prosinec
241
+ holidayTip: Svátek / Prázdniny
242
+ prodCodeInput: Zadejte kód výrobce
243
+ logType: Typ logu
244
+ current: Aktuální
245
+ week: Týden
246
+ month: Měsíc
247
+ selectDay: Vyberte den
248
+ show: Zobrazit
249
+ dataNotFound: Data nenalezena
250
+ logLive: On-line
251
+ holidayVacation: Svátky a prázdniny
252
+ timeAutoSwitch: Automatické přepnutí na letní čas
253
+ timeSyncInet: Synchronizace času s Internetem
254
+ unitTime: Čas jednotky
255
+ inputs: Vstupy
256
+ outputs: Výstupy
257
+ others: Ostatní
258
+ heatIconTip: Aktivní topení
259
+ coolIconTip: Aktivní chlazení
260
+ partyIconTip: Aktivní režim Párty/Dovolená
261
+ alarmIconTip: Aktivní alarm
262
+ PgFW_S2A: Záloha z
263
+ reset: Reset
264
+ commun: Komunikace
265
+ serverPing: Služba "Connect server"
266
+ acsService: Přístup servisu
267
+ acsDistr: Přístup distributora
268
+ lastCommun: Poslední komunikace
269
+ unitName: Jméno jednotky