atrea_control 1.2.1 → 2.0.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3801a6bbd9c137e26eecbf9adcb43d8d1ba7fd7dbcc19be4a95ff1ae5a189a47
4
- data.tar.gz: efd8adb1f53738b28aac974260c0fca23d46ab3329ec745d2fce6d5bb73c43cf
3
+ metadata.gz: 01f3c707897b8cd1626855caaa5cd4758ebeae0497881dd5164c2fb67a610327
4
+ data.tar.gz: f567bde666512960777679842366f249b0eff130e5a3fd1c487d5d652ef11687
5
5
  SHA512:
6
- metadata.gz: a22728dedc9c10022d86dc433d81cacd91193a1851f4302d066763fa8f600c9a632dc02d235f97560d7300f72618ce25c57f83e4581085d049d41c36f7e0b340
7
- data.tar.gz: e4348ee806d25350c3b2d1f861cec60f8b77504005aabd57115a82966ebb084735f7a8d04a4f79538dbbaa9dff777a34429551d90f302ebdf20dfddc632a09a2
6
+ metadata.gz: 6f4a7ef12bbfde071d91b350e6b100d4528c3275a2642680cf26117ace31ef9ca9ed3072aaad9cb38189f336ec563d4b764db13238248295fc84ecbfe6977f65
7
+ data.tar.gz: d933b73a8afe23d567aba8f56d1d58060f53699fc5fadaa2eb897e9ff1a6f2e9aa1ed314b2f805a4923d08038c8db8924b7dfc2e5e155c6219a376e2fe05f84e
@@ -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/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ .DS_Store
1
2
  /.idea
2
3
  /.bundle/
3
4
  /.yardoc
data/CHANGELOG.md CHANGED
@@ -1,4 +1,28 @@
1
1
  ## [Unreleased]
2
+ ### Changed
3
+ - refactored codebase to more readable classes
4
+ - selenium used only for login and then close => obtain SID (and user with unit)
5
+ - login waiting mechanism
6
+ ### Added
7
+ - found way how to change mode & power (tell unit to change)
8
+
9
+ ## [1.4.1] - 2021-12-18
10
+ ### Changed
11
+ - little refactor
12
+
13
+ ## [1.4.0] - 2021-12-12
14
+ ### Changed
15
+ - founded way to get config and data from Atrea server
16
+
17
+ ## [1.3.1] - 2021-12-11
18
+ ### Changed
19
+ - version of selenium
20
+
21
+ ## [1.3.0] - 2021-12-11
22
+ ### Changed
23
+ - store auth tokens outside
24
+ - minimize selenium only for login
25
+
2
26
  ## [1.2.1] - 2021-10-30
3
27
  ### Changed
4
28
  - login procedure
data/Gemfile.lock CHANGED
@@ -1,10 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- atrea_control (1.2.1)
4
+ atrea_control (2.0.0)
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,15 +26,19 @@ 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
- mime-types (3.3.1)
32
+ mime-types (3.4.1)
29
33
  mime-types-data (~> 3.2015)
30
- mime-types-data (3.2021.0901)
34
+ mime-types-data (3.2021.1115)
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