atrea_control 1.3.1 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +5 -3
- data/atrea_control.gemspec +15 -11
- data/config/locales/cs.yml +269 -0
- data/config/locales/de.yml +269 -0
- data/config/locales/en.yml +269 -0
- data/lib/atrea_control/duplex.rb +93 -43
- data/lib/atrea_control/version.rb +1 -1
- data/lib/atrea_control.rb +6 -0
- metadata +20 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bdf15229042c9284e6e7c385a94336e769d2c0118b7b9e723ed673faacfbac26
|
4
|
+
data.tar.gz: 8926e926db7cfea4b5f48473bfb9a13c57584adfea15d19afbd70b70fa3b43c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b774b17e3be8f214eb756839fa464f9f46bba7a2363cd1a1508c47796e6884ce16dc8172f8ceeb73b67d97bd4d9eec7d2736bcec843ce4242b73e4d457d8f3de
|
7
|
+
data.tar.gz: 2af518d17ad3757473bc6b0611d3b17eeeb47d6039567dd597df19979059886d8a9225915e08c4538f72eeaf7e1065efbb2714077f4b4cae7632c7fe90511919
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
atrea_control (1.
|
4
|
+
atrea_control (1.4.0)
|
5
|
+
i18n (~> 1.8)
|
5
6
|
nokogiri (~> 1.12)
|
6
7
|
rest-client (~> 2.1)
|
7
8
|
selenium-webdriver (~> 4.1)
|
@@ -14,6 +15,7 @@ GEM
|
|
14
15
|
ast (2.4.2)
|
15
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
21
|
diff-lcs (1.4.4)
|
@@ -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,6 @@ GEM
|
|
31
35
|
netrc (0.11.0)
|
32
36
|
nokogiri (1.12.5-x86_64-darwin)
|
33
37
|
racc (~> 1.4)
|
34
|
-
nokogiri (1.12.5-x86_64-linux)
|
35
|
-
racc (~> 1.4)
|
36
38
|
parallel (1.21.0)
|
37
39
|
parser (3.0.3.2)
|
38
40
|
ast (~> 2.4.1)
|
data/atrea_control.gemspec
CHANGED
@@ -3,14 +3,14 @@
|
|
3
3
|
require_relative "lib/atrea_control/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
|
-
spec.name
|
7
|
-
spec.version
|
8
|
-
spec.authors
|
9
|
-
spec.email
|
10
|
-
|
11
|
-
spec.summary
|
12
|
-
spec.description
|
13
|
-
spec.homepage
|
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
|
28
|
-
spec.executables
|
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
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
|
@@ -0,0 +1,269 @@
|
|
1
|
+
---
|
2
|
+
de:
|
3
|
+
mainTitle: Ihr Spezialist für Lüftung mit Wärmerückgewinnung
|
4
|
+
save: Speichern
|
5
|
+
cancel: Abbrechen
|
6
|
+
copy: Kopieren
|
7
|
+
refresh: Überschreiben
|
8
|
+
change: Übernehmen
|
9
|
+
pleaseWait: Bitte warten
|
10
|
+
backToHome: Zurück zur Startseite
|
11
|
+
mainPage: Startseite
|
12
|
+
serviceMenu: Service Menü
|
13
|
+
activeFrom: Aktiv
|
14
|
+
hours: Analog
|
15
|
+
minutes: Minuten
|
16
|
+
record: Eintrag
|
17
|
+
allowed: Ermöglicht
|
18
|
+
netSetup: Netzeinstellungen
|
19
|
+
getFromDHCP: DHCP Einstellung
|
20
|
+
useNextValues: Folgende Einstellungen verwenden
|
21
|
+
addressIP: IP Addresse
|
22
|
+
subnetMask: Subnet Maske
|
23
|
+
defaultGW: Gateway
|
24
|
+
serverDNS: DNS Server
|
25
|
+
FTPsetup: FTP Server Passwort
|
26
|
+
passwordOld: 'Original Passwort '
|
27
|
+
passwordNew: Neues Passwort
|
28
|
+
passwordConfirm: Password bestätigen
|
29
|
+
airCond: Lüftungsgerät
|
30
|
+
airCondSetup: Geräte Einstellungen
|
31
|
+
temperature: Temperatur
|
32
|
+
tempSetup: Temperatur Einstellungen
|
33
|
+
notInDemo: Demoversion wird nicht unterstützt
|
34
|
+
thisTimeExist: Zeitvorgabe existiert bereits
|
35
|
+
serviceSetup: Service Einstellungen
|
36
|
+
activeAlarms: Aktive Alarme
|
37
|
+
alarmHistory: Alarm Historie
|
38
|
+
unitStarted: Anlauf
|
39
|
+
active: Aktiv
|
40
|
+
noAlarmDefined: Kein Alarm definiert
|
41
|
+
noAlarmDetected: Keine aktiven Alarme
|
42
|
+
values: Wert
|
43
|
+
parameters: Parameter
|
44
|
+
badInput: Falsche Eingabe
|
45
|
+
allowedRange: Erforderlicher Bereich
|
46
|
+
start: Start
|
47
|
+
stop: Stop
|
48
|
+
text: Text
|
49
|
+
digiVer: DIGI Module Version
|
50
|
+
rdVer: RD Module Version
|
51
|
+
unitAddress: Geräte Adresse
|
52
|
+
currentMode: Aktueller Modus
|
53
|
+
damageWarning: Achtung! Bei falscher Einstellung dieser Parameter, besteht die Möglichkeit,
|
54
|
+
dass das Gerät nicht richtig arbeitet. Für Schäden, die durch falsche Einstellung
|
55
|
+
entstehen, übernimmt der Hersteller keine Haftung!
|
56
|
+
parameter: Parameter
|
57
|
+
value: Wert
|
58
|
+
minimum: Minimum
|
59
|
+
maximum: Maximal
|
60
|
+
defValue: Standard Wert
|
61
|
+
warning: Warnung
|
62
|
+
error: Eingeben
|
63
|
+
accessPrompt: Geben Sie bitte den Service-Code ein
|
64
|
+
accessDenied: Zugriff verweigert, falscher Code
|
65
|
+
swVer: Software Version
|
66
|
+
orderNum: Produktionsnummer
|
67
|
+
userSetup: Benutzereinstellungen
|
68
|
+
switchman: Manuell
|
69
|
+
valueOutOfRange: Der Wert liegt außerhalb des Bereichs
|
70
|
+
fwStep1: Schritt 1 - Speichern der Parameter
|
71
|
+
fwStep2: Schritt 2 - Firmware Update
|
72
|
+
fwSTep3: Schritt 3 - Aktualisierung
|
73
|
+
saveSettings: Speichern der Parameter
|
74
|
+
updateIt: Updaten
|
75
|
+
restoreSettings: Wiederherstellen der Parameter
|
76
|
+
parsNotSaved: Parameter wurden nicht gespeichert
|
77
|
+
errLengthCoo: Fehler! - Bitte verwenden Sie einen anderen Browser
|
78
|
+
parsSaved: Parameter wurden gespeichert
|
79
|
+
updateInProcess: Update, bitte warten...
|
80
|
+
updateNoFile: Datei wurde nicht gefunden...
|
81
|
+
updateSucess: Update war erfolgreich!
|
82
|
+
updateError: Störung - Update
|
83
|
+
manControlOn: Manuelle Eingabe aktiv!
|
84
|
+
manControlOff: Manuelle Eingabe deaktiviert
|
85
|
+
notConnected: Nicht angeschlossen
|
86
|
+
PgFW_FS1: Backup Einstellungen wiederherstellen
|
87
|
+
PgFW_S1: Backup Serviceeinstellungen
|
88
|
+
PgFW_SB1: Backup
|
89
|
+
PgFW_S2: Serviceeinstellungen wiederherstellen
|
90
|
+
PgFW_SB2: Überschreiben
|
91
|
+
PgFW_S3: Werkseinstellungen wiederherstellen
|
92
|
+
PgFW_SB3: Überschreiben
|
93
|
+
PgFW_FS2: Update
|
94
|
+
PgFW_U2: Download Update Anwendungen
|
95
|
+
PgFW_UB1: Öffnen
|
96
|
+
PgFW_SB1c: Möchten Sie wirklich ein Backup der Serviceeinstellungen durchführen?
|
97
|
+
PgFW_SB2c: Möchten Sie wirklich die Serviceeinstellung wiederherstellen?
|
98
|
+
PgFW_SB3c: Möchten Sie wirklich die Standardeinstellungen wiederherstellen?
|
99
|
+
fwUnit: Vorhandene FW
|
100
|
+
fwAvail: Verfügbare FW
|
101
|
+
restInProgress: Parameter werden wiederhergestellt
|
102
|
+
restart: Neustart
|
103
|
+
activate: Aktivieren
|
104
|
+
deactivate: Deaktivieren
|
105
|
+
badTimeZone: Falsche Zeitzone
|
106
|
+
badTime: Falsche Zeiteinstellung
|
107
|
+
setByPC: Einstellen nach PC
|
108
|
+
msgFindAddr: Geben Sie eine neue Geräteadresse ein
|
109
|
+
dtFilterChange: Nächst. Filterwechsel
|
110
|
+
confirmFilter: Filter gewechselt
|
111
|
+
confFilterQuest: Wurden die Filter gewechselt?
|
112
|
+
'off': Aus
|
113
|
+
'on': Ein
|
114
|
+
dayOfWeek: Wochentag
|
115
|
+
monday: Montag
|
116
|
+
tuesday: Dienstag
|
117
|
+
wednesday: Mittwoch
|
118
|
+
thursday: Donnerstag
|
119
|
+
friday: Freitag
|
120
|
+
saturday: Samstag
|
121
|
+
sunday: Sonntag
|
122
|
+
medium: Mittlerer
|
123
|
+
night: Nacht
|
124
|
+
day: Tag
|
125
|
+
power: Luftleistung
|
126
|
+
automatic: Wochenprogramm
|
127
|
+
manual: Manuell
|
128
|
+
temporary: Vorübergehend
|
129
|
+
non: Keine
|
130
|
+
mode: Betriebsmodus
|
131
|
+
perVentilation: Periodische Lüftung
|
132
|
+
ventilation: Lüftung
|
133
|
+
circulation: Umluft
|
134
|
+
startUp: Anlauf
|
135
|
+
runDown: Auslauf
|
136
|
+
defrosting: Enteisung
|
137
|
+
external: Extern
|
138
|
+
inactive: Aus
|
139
|
+
zone: Lüftungszone
|
140
|
+
heating: Heizsaison
|
141
|
+
nonHeating: Nichtheizsaison
|
142
|
+
dateTime: Datum/Uhrzeit
|
143
|
+
filterChange: Filtertausch
|
144
|
+
notWhenAuto: Wenn die Temperatursteuerung im Automatik Modus läuft, ist dei momentane
|
145
|
+
Einstellung nur bis zum nächsten Wochenprogramm Intervall gültig.
|
146
|
+
heatingSched: Wochenprogramm - Heizsaison
|
147
|
+
nonHeatingSched: Wochenprogramm - Nichtheizsaison
|
148
|
+
userSetting: Benutzereinstellungen
|
149
|
+
season: Saison
|
150
|
+
modeAC: Lüftungsmodus
|
151
|
+
modeTemp: Temperaturmodus
|
152
|
+
controlSetting: Regelungsparameter
|
153
|
+
tempSenzorDev: Korrektur Raumtemperatur Sensor
|
154
|
+
inputBlock: Blockierung IN1/IN2
|
155
|
+
personsCount: Anzahl der Personen
|
156
|
+
thermostatFcn: Funktion Temperaturwächter
|
157
|
+
holidayParty: Urlaub / Party
|
158
|
+
texts: Bezeichnungen
|
159
|
+
txtZone1: Zone 1
|
160
|
+
txtZone2: Zone 2
|
161
|
+
txtZone12: Zone 1 2
|
162
|
+
swInfo: Software Information
|
163
|
+
alarms: Alarme
|
164
|
+
controlAC: Lüftungsregelung
|
165
|
+
controlTemp: Temperaturregelung
|
166
|
+
currentPower: Aktuelle Leistung
|
167
|
+
requiredPower: Ausgewählte Leistung
|
168
|
+
requiredTemp: Ausgewählte Temperatur
|
169
|
+
requiredMode: Ausgewählter Modus
|
170
|
+
indoorTemp: Raumtemperatur
|
171
|
+
inletTemp: Zulufttemperatur
|
172
|
+
czech: Tschechisch
|
173
|
+
german: Deutsch
|
174
|
+
english: Englisch
|
175
|
+
eqVent: Konstant Volumenstrom Modus
|
176
|
+
ventCirc: Lüftung mit Zirkulation
|
177
|
+
circDepend: Zirkulations intervall
|
178
|
+
overPrVent: Überdruck Lüftung
|
179
|
+
devHeating: Korrektur Abweichung Heizung
|
180
|
+
devCooling: Korrektur Abweichung Kühlung
|
181
|
+
devCoolMax: Maximale Temperaturabweichung für maximale Kühlung
|
182
|
+
productNumber: Produktionsnummer
|
183
|
+
unitType: Gerätetyp
|
184
|
+
polish: Polnisch
|
185
|
+
bySens: Automatik
|
186
|
+
hpDefrosting: Enteisung Nachheizregister PWW
|
187
|
+
userLogin: Benutzeranmeldung
|
188
|
+
passwordInput: Passwort eingeben
|
189
|
+
loginCmd: einloggen
|
190
|
+
weeklyProgram: Wochenprogramm
|
191
|
+
italiano: Italienisch
|
192
|
+
nightBefCool: Nachtkühlung
|
193
|
+
passwordMenu: Ändern des Passworts
|
194
|
+
enterAllFields: Geben Sie alle Daten
|
195
|
+
passwordNoChk: Neues Passwort und Bestätigung stimmen nicht überein!
|
196
|
+
passwordBad: Passwort darf nur aus folgenden Zeichen a-z or A-Z or 0-9 bestehen!
|
197
|
+
passwordSaved: Passwort wurde gespeichert
|
198
|
+
passwordSaveErr: Passwort wurde - errornicht gespeichert - Fehler.
|
199
|
+
unavail: nicht verfügbar
|
200
|
+
disabledRange: 'Unzulässige Auswahl '
|
201
|
+
emergMode: Notlauf-Funktion
|
202
|
+
outdoorTemp: Aussen Temperatur
|
203
|
+
currentZone: Aktueller Zone
|
204
|
+
components: Komponenten
|
205
|
+
all: Alles
|
206
|
+
modeAuto: Automatik
|
207
|
+
disbalance: Disbalance
|
208
|
+
saveActive: Speichern / Aktivieren
|
209
|
+
holidays: Feiertag
|
210
|
+
vacations: Ferienzeit
|
211
|
+
unitDesign: Konstruktion
|
212
|
+
unitSpec: Spezifikation
|
213
|
+
partyStart: Start
|
214
|
+
partyEnd: Ende
|
215
|
+
tsNtsSwitch: HS/NHS Schaltung
|
216
|
+
tsNtsTemp: HS/NHS Temperatur
|
217
|
+
in1Block: IN1 Eingang Deaktivieren
|
218
|
+
in2Block: IN2 Eingang Deaktivieren
|
219
|
+
hystHeat: Vol. Steigerüng Kühlung
|
220
|
+
hystCool: Vol. Steigerüng Heitzung
|
221
|
+
set: Einstellen
|
222
|
+
timeZone: Zeit Zone
|
223
|
+
settingTZ: Time zone setting
|
224
|
+
producer: Lieferant
|
225
|
+
unitLine: Serie
|
226
|
+
unitSize: Gereatgrosse
|
227
|
+
unitIntDesign: Spezifikationen
|
228
|
+
currentConfig: Aktueller Einstellung
|
229
|
+
monthName1: Januar
|
230
|
+
monthName2: Februar
|
231
|
+
monthName3: März
|
232
|
+
monthName4: April
|
233
|
+
monthName5: Mai
|
234
|
+
monthName6: Juli
|
235
|
+
monthName7: Juli
|
236
|
+
monthName8: August
|
237
|
+
monthName9: September
|
238
|
+
monthName10: Oktober
|
239
|
+
monthName11: November
|
240
|
+
monthName12: Dezember
|
241
|
+
holidayTip: Feiertag/Ferienzeit
|
242
|
+
prodCodeInput: Geben Sie den Lieferanten Code ein...
|
243
|
+
logType: Typ
|
244
|
+
current: Aktuell
|
245
|
+
week: Woche
|
246
|
+
month: Monat
|
247
|
+
selectDay: Wählen Sie einen Tag
|
248
|
+
show: Anzeige
|
249
|
+
dataNotFound: Daten wurden nicht gefunden
|
250
|
+
logLive: Eingeschaltet
|
251
|
+
holidayVacation: Feiertag und Ferienzeit
|
252
|
+
timeAutoSwitch: DST automatisch
|
253
|
+
timeSyncInet: Zeit mit Internet synchronisieren
|
254
|
+
unitTime: Gerätezeit
|
255
|
+
inputs: Eingänge
|
256
|
+
outputs: Ausgänge
|
257
|
+
others: Andere
|
258
|
+
heatIconTip: Heizung aktiviert
|
259
|
+
coolIconTip: Kühlung aktiviert
|
260
|
+
partyIconTip: Modus Party/Urlaub aktiviert
|
261
|
+
alarmIconTip: Aktiver Alarm
|
262
|
+
PgFW_S2A: Letzte Datensicherung
|
263
|
+
reset: Reset
|
264
|
+
commun: Kommunikation
|
265
|
+
serverPing: Funktion "Connect server"
|
266
|
+
acsService: Servicezugang
|
267
|
+
acsDistr: Lieferantenzugang
|
268
|
+
lastCommun: Letzte Kommunikation
|
269
|
+
unitName: Jméno jednotky
|
@@ -0,0 +1,269 @@
|
|
1
|
+
---
|
2
|
+
en:
|
3
|
+
mainTitle: Your specialist for heat recovery and air-handling system economy
|
4
|
+
save: Save
|
5
|
+
cancel: Cancel
|
6
|
+
copy: Copy
|
7
|
+
refresh: Restore
|
8
|
+
change: Change
|
9
|
+
pleaseWait: Wait, please...
|
10
|
+
backToHome: Back to main page
|
11
|
+
mainPage: Main page
|
12
|
+
serviceMenu: Service menu
|
13
|
+
activeFrom: Active from
|
14
|
+
hours: Analog
|
15
|
+
minutes: Minutes
|
16
|
+
record: Record
|
17
|
+
allowed: Allowed
|
18
|
+
netSetup: Network setting
|
19
|
+
getFromDHCP: DHCP parameters setting
|
20
|
+
useNextValues: Use the following setting
|
21
|
+
addressIP: IP address
|
22
|
+
subnetMask: Net mask
|
23
|
+
defaultGW: Gateway
|
24
|
+
serverDNS: DNS server
|
25
|
+
FTPsetup: FTP server password
|
26
|
+
passwordOld: 'Original password '
|
27
|
+
passwordNew: 'New password '
|
28
|
+
passwordConfirm: Password confirmation
|
29
|
+
airCond: Air handling unit
|
30
|
+
airCondSetup: HVAC unit configuration
|
31
|
+
temperature: Temperature
|
32
|
+
tempSetup: Temperature setting
|
33
|
+
notInDemo: Demo version does not support
|
34
|
+
thisTimeExist: Set time already exists
|
35
|
+
serviceSetup: Service setting
|
36
|
+
activeAlarms: Active alarms
|
37
|
+
alarmHistory: Alarm history
|
38
|
+
unitStarted: Unit start
|
39
|
+
active: Active
|
40
|
+
noAlarmDefined: No alarm defined
|
41
|
+
noAlarmDetected: No alarm is active
|
42
|
+
values: Values
|
43
|
+
parameters: Parameters
|
44
|
+
badInput: Wrong value inserted
|
45
|
+
allowedRange: Required values range
|
46
|
+
start: Start
|
47
|
+
stop: Stop
|
48
|
+
text: Text
|
49
|
+
digiVer: DIGI module version
|
50
|
+
rdVer: RD module version
|
51
|
+
unitAddress: Address of unit
|
52
|
+
currentMode: Current mode
|
53
|
+
damageWarning: 'Attention! When setting following parameters, be carefull about
|
54
|
+
the set values, inadequate setting may cause malfunction of the Unit. The appliance
|
55
|
+
producer is not responsible in any case of harm! '
|
56
|
+
parameter: Parameter
|
57
|
+
value: Value
|
58
|
+
minimum: Minimum
|
59
|
+
maximum: Max
|
60
|
+
defValue: Default
|
61
|
+
warning: Warning
|
62
|
+
error: Set
|
63
|
+
accessPrompt: Access check, enter the service code!
|
64
|
+
accessDenied: Access denied, wrong code!
|
65
|
+
swVer: Software version
|
66
|
+
orderNum: Production number
|
67
|
+
userSetup: User setting
|
68
|
+
switchman: Manual
|
69
|
+
valueOutOfRange: Value exceeded the range
|
70
|
+
fwStep1: Step 1 - Save parameters
|
71
|
+
fwStep2: Step 2 - Firmware update
|
72
|
+
fwSTep3: Step 3 - Parameters refresh
|
73
|
+
saveSettings: Save parameters
|
74
|
+
updateIt: Make update
|
75
|
+
restoreSettings: Refresh parameters
|
76
|
+
parsNotSaved: No parameters has been saved till now
|
77
|
+
errLengthCoo: Data error, use different browser
|
78
|
+
parsSaved: Parameters have been saved
|
79
|
+
updateInProcess: The update is in progress, wait please.
|
80
|
+
updateNoFile: No file for update has been found
|
81
|
+
updateSucess: UPDATE finished
|
82
|
+
updateError: Update error
|
83
|
+
manControlOn: Manual control enabled
|
84
|
+
manControlOff: Manual control disabled
|
85
|
+
notConnected: Not connected
|
86
|
+
PgFW_FS1: Restore/back-up setting
|
87
|
+
PgFW_S1: The backup of the service setting
|
88
|
+
PgFW_SB1: Back-up
|
89
|
+
PgFW_S2: Service setting restore from back-up
|
90
|
+
PgFW_SB2: Restore
|
91
|
+
PgFW_S3: 'Restore to production setting '
|
92
|
+
PgFW_SB3: Restore
|
93
|
+
PgFW_FS2: Update
|
94
|
+
PgFW_U2: Download of the update application
|
95
|
+
PgFW_UB1: Open
|
96
|
+
PgFW_SB1c: Do you wish to make a back-up of the service setting?
|
97
|
+
PgFW_SB2c: 'Are you sure to restore service setting from the back-up file? '
|
98
|
+
PgFW_SB3c: Are you sure to restore the default setting?
|
99
|
+
fwUnit: Current fw ver.
|
100
|
+
fwAvail: Available fw ver.
|
101
|
+
restInProgress: Setting restore is in the progress
|
102
|
+
restart: Restart
|
103
|
+
activate: Activate
|
104
|
+
deactivate: Deactivate
|
105
|
+
badTimeZone: Wrong time zone
|
106
|
+
badTime: Wrong time setting
|
107
|
+
setByPC: Set according to the PC
|
108
|
+
msgFindAddr: Enter a new unit address.
|
109
|
+
dtFilterChange: Next filter change
|
110
|
+
confirmFilter: Confirm the change
|
111
|
+
confFilterQuest: Are you sure the filter has been changed?
|
112
|
+
'off': 'Off'
|
113
|
+
'on': 'On'
|
114
|
+
dayOfWeek: Day of week
|
115
|
+
monday: Monday
|
116
|
+
tuesday: Tuesday
|
117
|
+
wednesday: Wednesday
|
118
|
+
thursday: Thursday
|
119
|
+
friday: Friday
|
120
|
+
saturday: Saturday
|
121
|
+
sunday: Sunday
|
122
|
+
medium: Medium
|
123
|
+
night: Night
|
124
|
+
day: Day
|
125
|
+
power: Power
|
126
|
+
automatic: Schedule
|
127
|
+
manual: Manual
|
128
|
+
temporary: Temporary
|
129
|
+
non: Non
|
130
|
+
mode: Mode
|
131
|
+
perVentilation: Period. ventilation
|
132
|
+
ventilation: Ventilation
|
133
|
+
circulation: Circulation
|
134
|
+
startUp: Start-up
|
135
|
+
runDown: Run-out
|
136
|
+
defrosting: Defrosting
|
137
|
+
external: External
|
138
|
+
inactive: 'Off'
|
139
|
+
zone: Zone
|
140
|
+
heating: Heating
|
141
|
+
nonHeating: Non-heating
|
142
|
+
dateTime: 'Time and date '
|
143
|
+
filterChange: Filter change
|
144
|
+
notWhenAuto: Temperature control set to the Automatic mode, the current setting
|
145
|
+
is valid till the next week interval is active.
|
146
|
+
heatingSched: Heating season schedule
|
147
|
+
nonHeatingSched: Non-heating season schedule
|
148
|
+
userSetting: User setting
|
149
|
+
season: Season
|
150
|
+
modeAC: Mode air-handling
|
151
|
+
modeTemp: Temperature mode
|
152
|
+
controlSetting: Control procesor setting
|
153
|
+
tempSenzorDev: Temperature sensor correction - CP
|
154
|
+
inputBlock: IN Blocking
|
155
|
+
personsCount: Number of persons
|
156
|
+
thermostatFcn: Thermostat function
|
157
|
+
holidayParty: Holiday / party
|
158
|
+
texts: Texts
|
159
|
+
txtZone1: Text for zone 1
|
160
|
+
txtZone2: Text for zone 2
|
161
|
+
txtZone12: Text for zone 1 and 2
|
162
|
+
swInfo: About the control
|
163
|
+
alarms: Alarms
|
164
|
+
controlAC: Air-handling control
|
165
|
+
controlTemp: Temperature control
|
166
|
+
currentPower: Actual Power
|
167
|
+
requiredPower: Requested power
|
168
|
+
requiredTemp: Requested temperature
|
169
|
+
requiredMode: Requested mode
|
170
|
+
indoorTemp: Inner temperature
|
171
|
+
inletTemp: Supply air temperature
|
172
|
+
czech: Czech
|
173
|
+
german: German
|
174
|
+
english: English
|
175
|
+
eqVent: Equal volume flow
|
176
|
+
ventCirc: Ventilat. circulation
|
177
|
+
circDepend: Interval circulation
|
178
|
+
overPrVent: Overpressure
|
179
|
+
devHeating: Temperature hysteresis - heating
|
180
|
+
devCooling: Temperature hysteresis - cooling
|
181
|
+
devCoolMax: Max. temperature drop - max. cooling
|
182
|
+
productNumber: Production number
|
183
|
+
unitType: Unit type
|
184
|
+
polish: Polish
|
185
|
+
bySens: Auto - ventilation
|
186
|
+
hpDefrosting: HP defrosting
|
187
|
+
userLogin: User login
|
188
|
+
passwordInput: Enter the password
|
189
|
+
loginCmd: Login
|
190
|
+
weeklyProgram: Schedule
|
191
|
+
italiano: Italian
|
192
|
+
nightBefCool: Night precooling
|
193
|
+
passwordMenu: Password change
|
194
|
+
enterAllFields: Fill all the data
|
195
|
+
passwordNoChk: A new password and the confirmation does not match!
|
196
|
+
passwordBad: The password may only consist of figures a-z or A-Z or 0-9!
|
197
|
+
passwordSaved: The password has been saved
|
198
|
+
passwordSaveErr: Password was not saved - error.
|
199
|
+
unavail: Unavailable
|
200
|
+
disabledRange: Range is exceeded
|
201
|
+
emergMode: Emergency mode
|
202
|
+
outdoorTemp: Outdoor temperature
|
203
|
+
currentZone: Actual zone
|
204
|
+
components: Components
|
205
|
+
all: All
|
206
|
+
modeAuto: Automat
|
207
|
+
disbalance: Disbalance
|
208
|
+
saveActive: Save / Activate
|
209
|
+
holidays: Bank Holidays
|
210
|
+
vacations: Vacations
|
211
|
+
unitDesign: Design
|
212
|
+
unitSpec: Specification
|
213
|
+
partyStart: Starts at...
|
214
|
+
partyEnd: Expires at...
|
215
|
+
tsNtsSwitch: HS/NHS switching
|
216
|
+
tsNtsTemp: HS/NHS switch temp.
|
217
|
+
in1Block: IN1 input blocking
|
218
|
+
in2Block: IN2 input blocking
|
219
|
+
hystHeat: Hysteresis - heating
|
220
|
+
hystCool: Hysteresis - cooling
|
221
|
+
set: Set new
|
222
|
+
timeZone: Time zone
|
223
|
+
settingTZ: Time zone setting
|
224
|
+
producer: Supplier
|
225
|
+
unitLine: Line
|
226
|
+
unitSize: Unit size
|
227
|
+
unitIntDesign: Specification
|
228
|
+
currentConfig: Current setting
|
229
|
+
monthName1: January
|
230
|
+
monthName2: Fabruery
|
231
|
+
monthName3: March
|
232
|
+
monthName4: April
|
233
|
+
monthName5: May
|
234
|
+
monthName6: June
|
235
|
+
monthName7: July
|
236
|
+
monthName8: August
|
237
|
+
monthName9: September
|
238
|
+
monthName10: October
|
239
|
+
monthName11: November
|
240
|
+
monthName12: December
|
241
|
+
holidayTip: Bank holid./Vacation
|
242
|
+
prodCodeInput: Enter the supplier code...
|
243
|
+
logType: Log typ
|
244
|
+
current: Current
|
245
|
+
week: Week
|
246
|
+
month: Month
|
247
|
+
selectDay: Choose the week day
|
248
|
+
show: Show...
|
249
|
+
dataNotFound: Data are not found
|
250
|
+
logLive: On-line
|
251
|
+
holidayVacation: Bank holidays, Vacation
|
252
|
+
timeAutoSwitch: DST automaticaly
|
253
|
+
timeSyncInet: Internet time synchronisation
|
254
|
+
unitTime: Unit time
|
255
|
+
inputs: Inputs
|
256
|
+
outputs: Outputs
|
257
|
+
others: Others
|
258
|
+
heatIconTip: 'Heating activated '
|
259
|
+
coolIconTip: Cooling activated
|
260
|
+
partyIconTip: Party/Holiday mode activated
|
261
|
+
alarmIconTip: Activ alarm
|
262
|
+
PgFW_S2A: Last backup
|
263
|
+
reset: Reset
|
264
|
+
commun: Communication
|
265
|
+
serverPing: '"Connect server" service'
|
266
|
+
acsService: Service access
|
267
|
+
acsDistr: Distributor access
|
268
|
+
lastCommun: Last communication
|
269
|
+
unitName: Jméno jednotky
|
data/lib/atrea_control/duplex.rb
CHANGED
@@ -15,6 +15,7 @@ module AtreaControl
|
|
15
15
|
attr_reader :valid_for
|
16
16
|
|
17
17
|
attr_accessor :user_id, :unit_id, :auth_token
|
18
|
+
attr_writer :user_texts, :user_modes, :modes
|
18
19
|
|
19
20
|
# @param [String] login
|
20
21
|
# @param [String] password
|
@@ -74,30 +75,13 @@ module AtreaControl
|
|
74
75
|
def open_dashboard
|
75
76
|
uri = driver.find_element(tag_name: "object").attribute "data"
|
76
77
|
driver.get uri
|
77
|
-
user_id && unit_id && auth_token
|
78
78
|
logger.debug "#{name} login success"
|
79
79
|
end
|
80
80
|
|
81
81
|
# @return [String]
|
82
82
|
def name
|
83
|
-
@name ||=
|
84
|
-
|
85
|
-
end
|
86
|
-
|
87
|
-
# # @return [String] ID of logged user
|
88
|
-
# def user_id
|
89
|
-
# @user_id ||= driver.execute_script("return window._user")
|
90
|
-
# end
|
91
|
-
#
|
92
|
-
# # @return [String] ID of recuperation unit
|
93
|
-
# def unit_id
|
94
|
-
# @unit_id ||= driver.execute_script("return window._unit")
|
95
|
-
# end
|
96
|
-
#
|
97
|
-
# # @return [String] session token
|
98
|
-
# def auth_token
|
99
|
-
# @auth_token ||= user&.[]("auth")
|
100
|
-
# end
|
83
|
+
@name ||= user_texts["UnitName"]
|
84
|
+
end
|
101
85
|
|
102
86
|
# Window.user object from atrea
|
103
87
|
# @return [Hash, nil]
|
@@ -105,14 +89,6 @@ module AtreaControl
|
|
105
89
|
driver.execute_script("return window.user")
|
106
90
|
end
|
107
91
|
|
108
|
-
# @return [String]
|
109
|
-
def current_mode_name
|
110
|
-
return current_mode unless logged?
|
111
|
-
|
112
|
-
element = sensor_element(@sensors[:current_mode])
|
113
|
-
element.find_element(css: "div:first-child").text
|
114
|
-
end
|
115
|
-
|
116
92
|
# quit selenium browser
|
117
93
|
def close
|
118
94
|
driver.quit
|
@@ -137,19 +113,51 @@ module AtreaControl
|
|
137
113
|
as_json.to_json(*args)
|
138
114
|
end
|
139
115
|
|
140
|
-
# def inspect
|
141
|
-
# "<AtreaControl name: '#{name}' outdoor_temperature: '#{outdoor_temperature}°C' current_power: '#{current_power}%' current_mode: '#{current_mode}' valid_for: '#{valid_for}'>"
|
142
|
-
# end
|
143
|
-
|
144
116
|
def call_unit!
|
145
117
|
return false if @login_in_progress
|
146
118
|
|
147
119
|
logger.debug "call_unit!"
|
148
|
-
|
120
|
+
parse_values(response_comm_unit)
|
149
121
|
@valid_for = Time.now
|
150
122
|
as_json
|
151
123
|
end
|
152
124
|
|
125
|
+
def modes
|
126
|
+
return @modes if @modes
|
127
|
+
|
128
|
+
@modes = {}
|
129
|
+
user_ctrl.xpath("//op[@id='Mode']/i").each do |mode|
|
130
|
+
m = translate_mode(mode)
|
131
|
+
@modes[m[:id]] = m[:value]
|
132
|
+
end
|
133
|
+
@modes
|
134
|
+
end
|
135
|
+
|
136
|
+
def user_modes
|
137
|
+
return @user_modes if @user_modes
|
138
|
+
|
139
|
+
@user_modes = {}
|
140
|
+
user_ctrl.xpath("//op[@id='ModeText']/i").each do |mode|
|
141
|
+
m = translate_mode(mode)
|
142
|
+
@user_modes[m[:id]] = m[:value]
|
143
|
+
end
|
144
|
+
@user_modes
|
145
|
+
end
|
146
|
+
|
147
|
+
# User defined texts in RD5 unit
|
148
|
+
# @return [Hash]
|
149
|
+
def user_texts
|
150
|
+
return @user_texts if @user_texts
|
151
|
+
|
152
|
+
response = rd5_request(params_comm_unit.merge(_t: "config/texts.xml"))
|
153
|
+
xml = Nokogiri::XML response.body
|
154
|
+
@user_texts = xml.xpath("//i").map do |node|
|
155
|
+
value = node.attributes["value"].value
|
156
|
+
id = node.attributes["id"].value
|
157
|
+
[id, value.gsub(/%u([\dA-Z]{4})/) { |i| +'' << i[$1].to_i(16) }]
|
158
|
+
end.to_h
|
159
|
+
end
|
160
|
+
|
153
161
|
private
|
154
162
|
|
155
163
|
# @see scripts.php -> loadRD5Values(node, init)
|
@@ -159,7 +167,7 @@ module AtreaControl
|
|
159
167
|
# values[key]=values[key]-params[key].offset;
|
160
168
|
# if(params[key] && params[key].coef)
|
161
169
|
# values[key]=values[key]/params[key].coef;
|
162
|
-
def
|
170
|
+
def parse_values(response)
|
163
171
|
xml = Nokogiri::XML response.body
|
164
172
|
sensors_values = @sensors.transform_values do |id|
|
165
173
|
value = xml.xpath("//O[@I=\"#{id}\"]/@V").last&.value.to_i
|
@@ -176,16 +184,16 @@ module AtreaControl
|
|
176
184
|
def refresh_data(values)
|
177
185
|
@outdoor_temperature = values[:outdoor_temperature].to_f / 10.0
|
178
186
|
@current_power = values[:current_power].to_f
|
179
|
-
@current_mode =
|
187
|
+
@current_mode = if values[:current_mode_switch].positive?
|
188
|
+
user_modes[values[:current_mode_switch].to_s]
|
189
|
+
else
|
190
|
+
modes[values[:current_mode].to_s]
|
191
|
+
end
|
192
|
+
# @current_mode = mode_map[values[:current_mode_name] > 0 ? values[:current_mode_name] : values[:current_mode]]
|
180
193
|
|
181
194
|
as_json
|
182
195
|
end
|
183
196
|
|
184
|
-
# ? I10204 ?
|
185
|
-
def mode_map
|
186
|
-
{ 0 => "Vypnuto", 1 => "Automat", 2 => "Větrání", 6 => "Rozvážení" }
|
187
|
-
end
|
188
|
-
|
189
197
|
def logger
|
190
198
|
@logger ||= ::Logger.new($stdout)
|
191
199
|
end
|
@@ -207,14 +215,30 @@ module AtreaControl
|
|
207
215
|
|
208
216
|
# @return [RestClient::Response]
|
209
217
|
def response_comm_unit
|
210
|
-
|
218
|
+
rd5_request(params_comm_unit.merge(_t: "config/xml.xml"))
|
219
|
+
end
|
220
|
+
|
221
|
+
def rd5_request(params)
|
222
|
+
RestClient.get "https://control.atrea.eu/comm/sw/unit.php", { Cookie: "autoLogin=#{autologin_token}", params: params }
|
223
|
+
end
|
224
|
+
|
225
|
+
def user_ctrl
|
226
|
+
response = rd5_request(params_comm_unit.merge(_t: "lang/userCtrl.xml"))
|
227
|
+
xml = Nokogiri::XML response.body
|
228
|
+
end
|
229
|
+
|
230
|
+
def autologin_token
|
231
|
+
@autologin_token ||= CGI.escape([@login, @password].join("\b"))
|
232
|
+
end
|
233
|
+
|
234
|
+
# @note `ver` is done by atrea server
|
235
|
+
def params_comm_unit
|
236
|
+
{
|
211
237
|
_user: user_id.to_i,
|
212
238
|
_unit: unit_id,
|
213
239
|
auth: auth_token || "null",
|
214
|
-
|
240
|
+
ver: "003001009",
|
215
241
|
}
|
216
|
-
autologin_token = CGI.escape([@login, @password].join("\b"))
|
217
|
-
RestClient.get "https://control.atrea.eu/comm/sw/unit.php", { Cookie: "autoLogin=#{autologin_token}", params: params }
|
218
242
|
end
|
219
243
|
|
220
244
|
# Update tokens based on current state
|
@@ -224,5 +248,31 @@ module AtreaControl
|
|
224
248
|
@auth_token = user&.[]("auth")
|
225
249
|
end
|
226
250
|
|
251
|
+
# @param [Nokogiri::XML::Element] mode
|
252
|
+
# @return [Hash{Symbol->String}]
|
253
|
+
def translate_mode(mode)
|
254
|
+
id = mode.attributes["id"].value
|
255
|
+
title = mode.attributes["title"].value
|
256
|
+
title = if title.start_with?("$")
|
257
|
+
I18n.t(title[/\w+/])
|
258
|
+
else
|
259
|
+
user_texts[title]
|
260
|
+
end
|
261
|
+
{ id: id, value: title }
|
262
|
+
end
|
263
|
+
|
264
|
+
# Re-generate copy of locale files
|
265
|
+
# @note internal use only
|
266
|
+
def update_locales_files!
|
267
|
+
{ cs: "0", de: "1", en: "2" }.each do |name, atrea_id|
|
268
|
+
response = rd5_request(params_comm_unit.merge(_t: "lang/texts_#{atrea_id}.xml", auth: nil))
|
269
|
+
|
270
|
+
xml = Nokogiri::XML response.body
|
271
|
+
locale = eval xml.xpath("//words/text()")[0].text
|
272
|
+
yaml = { name.to_s => JSON.parse(locale.to_json) }.to_yaml
|
273
|
+
File.write(File.expand_path("../../config/locales/#{name}.yml", __dir__), yaml)
|
274
|
+
end
|
275
|
+
end
|
276
|
+
|
227
277
|
end
|
228
278
|
end
|
data/lib/atrea_control.rb
CHANGED
@@ -1,12 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative "atrea_control/version"
|
4
|
+
require "i18n"
|
5
|
+
require "yaml"
|
4
6
|
|
5
7
|
module AtreaControl
|
6
8
|
class Error < StandardError; end
|
7
9
|
|
8
10
|
autoload :Duplex, "atrea_control/duplex"
|
9
11
|
|
12
|
+
I18n.load_path.concat Dir["#{File.expand_path("../config/locales", __dir__)}/*.yml"]
|
13
|
+
I18n.default_locale = :cs
|
14
|
+
|
10
15
|
# Provide map sensor to element ID
|
11
16
|
module Config
|
12
17
|
module_function
|
@@ -16,6 +21,7 @@ module AtreaControl
|
|
16
21
|
outdoor_temperature: "I10208",
|
17
22
|
current_power: "H10704",
|
18
23
|
current_mode: "H10705",
|
24
|
+
current_mode_switch: "H10712",
|
19
25
|
}
|
20
26
|
end
|
21
27
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: atrea_control
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lukáš Pokorný
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-12-
|
11
|
+
date: 2021-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: i18n
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.8'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.8'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: nokogiri
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -73,16 +87,16 @@ files:
|
|
73
87
|
- atrea_control.gemspec
|
74
88
|
- bin/console
|
75
89
|
- bin/setup
|
90
|
+
- config/locales/cs.yml
|
91
|
+
- config/locales/de.yml
|
92
|
+
- config/locales/en.yml
|
76
93
|
- lib/atrea_control.rb
|
77
94
|
- lib/atrea_control/duplex.rb
|
78
95
|
- lib/atrea_control/version.rb
|
79
96
|
homepage: https://github.com/luk4s/atrea_control
|
80
97
|
licenses: []
|
81
98
|
metadata:
|
82
|
-
|
83
|
-
homepage_uri: https://github.com/luk4s/atrea_control
|
84
|
-
source_code_uri: https://github.com/luk4s/atrea_control
|
85
|
-
changelog_uri: https://github.com/luk4s/atrea_control/CHANGELOG.md
|
99
|
+
rubygems_mfa_required: 'true'
|
86
100
|
post_install_message:
|
87
101
|
rdoc_options: []
|
88
102
|
require_paths:
|