-
Notifications
You must be signed in to change notification settings - Fork 5
/
compute_name.php
130 lines (121 loc) · 7.42 KB
/
compute_name.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?php
declare(strict_types=1);
define('READABLE_IDS', [
'heating compressors.%d.statistics' => 'Heizkreis %d: Verdichter',
'heating.boiler.sensors.temperature.main' => 'Kesseltemperatur',
'heating.boiler.serial' => 'Meine Anlage: Seriennummer',
'heating.controller.serial' => 'Meine Steuerung: Seriennummer',
'heating.burner.modulation' => 'Modulation',
'heating.burner.statistics' => 'Brenner',
'heating.burner' => 'Brennerstatus',
'heating.operating.programs.holiday' => 'Ferienprogramm',
'heating.circuits.%d.circulation.schedule.active' => 'Zeitprogramm Zirkulation',
'heating.circuits.%d.heating.curve' => 'Heizkreis %d: Heizkennlinie',
'heating.circuits.%d.heating.schedule' => 'Heizkreis %d: Zeitprogramm Heizen',
'heating.circuits.%d.operating.modes.active' => 'Heizkreis %d: Betriebsart',
'heating.circuits.%d.operating.modes.dhw' => 'Heizkreis %d: Nur Warmwasser aktiv',
'heating.circuits.%d.operating.modes.dhwAndHeating' => 'Heizkreis %d: Heizung & Warmwasser aktiv',
'heating.circuits.%d.operating.modes.forcedNormal' => 'Heizkreis %d: Dauernd Tagbetrieb',
'heating.circuits.%d.operating.modes.forcedReduced' => 'Heizkreis %d: Dauernd reduziert',
'heating.circuits.%d.operating.modes.forcedReduced' => 'Heizkreis %d: Dauernd reduziert',
'heating.circuits.%d.operating.programs.active' => 'Heizkreis %d: Aktiver Heizmodus',
'heating.circuits.%d.operating.programs.comfort' => 'Heizkreis %d: Raumtemperatur',
'heating.circuits.%d.operating.programs.eco' => 'Heizkreis %d: Reduzierte Raumtemperatur',
'heating.circuits.%d.operating.programs.holiday' => 'Heizkreis %d: Ferienprogramm',
'heating.circuits.%d.operating.programs.normal' => 'Heizkreis %d: Normal',
'heating.circuits.%d.operating.programs.reduced' => 'Heizkreis %d: Reduziert',
'heating.circuits.%d.operating.programs.standby' => 'Heizkreis %d: Heizung Standby (AUS)',
'heating.circuits.%d.sensors.temperature.supply' => 'Heizkreis %d: Kesseltemperatur',
'heating.circuits.%d.sensors.temperature.room' => 'Heizkreis %d: Raumtemperatur',
'heating.circuits.%d' => 'Heizkreis %d',
'heating.compressor.%d.statistics' => 'Heizkreis %d: Verdichter',
'heating.compressor.%d' => 'Heizkreis %d: Betrieb Verdichter',
'heating.compressor.statistics' => 'Verdichter',
'heating.compressor' => 'Betrieb Verdichter',
'heating.configuration.multiFamilyHouse' => 'Mehrfamilienhaus',
'heating.dhw.charging' => 'Warmwasser Aufladung',
'heating.dhw.oneTimeCharge' => 'Warmwasser Einmalaufladung',
'heating.dhw.pumps.circulation.schedule' => 'Warmwasser Zirkulationspumpe Zeitprogramm',
'heating.dhw.schedule' => 'Warmwasser Zeitprogramm',
'heating.dhw.sensors.temperature.hotWaterStorage.top' => 'Warmwassertemperatur',
'heating.dhw.sensors.temperature.hotWaterStorage' => 'Warmwasser Temperatur',
'heating.dhw.temperature.hysteresis' => 'Warmwassertemperatur Hysterese',
'heating.dhw.temperature.main' => 'Warmwasser Primäre Wunschtemperatur',
'heating.dhw.temperature.temp2' => 'Warmwassertemperatur 2 Soll',
'heating.dhw.temperature' => 'Warmwasser Wunschtemperatur',
'heating.dhw' => 'Warmwasser',
'heating.gas.consumption.dhw' => 'Gasverbrauch Warmwasserbereitung',
'heating.gas.consumption.heating' => 'Gasverbrauch Raumbeheizung',
'heating.power.consumption' => 'Energieverbrauch',
'heating.sensors.temperature.outside' => 'Außentemperatur',
'heating.sensors.temperature.return' => 'Rücklauftemperatur Sekundärkreis',
'ventilation.operating.modes.active' => 'Lüftung Betriebsart',
'ventilation.operating.modes.standard' => 'Lüftung Grundbetrieb',
'ventilation.operating.modes.standby' => 'Lüftung Standby (AUS)',
'ventilation.operating.modes.ventilation' => 'Lüftungsautomatik',
'ventilation.operating.programs.active' => 'Lüftung Betriebsart',
'ventilation.operating.programs.basic' => 'Lüftung MIN Betrieb',
'ventilation.operating.programs.intensive' => 'Lüftung intensiever Betrieb',
'ventilation.operating.programs.reduced' => 'Lüftung reduzierter Betrieb',
'ventilation.operating.programs.standard' => 'Lüftung normaler Betrieb',
'ventilation.operating.programs.standby' => 'Lüftung Standby (AUS)',
'ventilation.schedule' => 'Lüftung Zeitprogramm',
'ventilation' => 'Betrieb Lüftung'
]);
define('READABLE_NAMES', [
'value' => '',
'active' => '',
'hours' => ' ' . '(Betriebsstunden)',
'starts' => ' ' . '(Starts)',
'name' => ' ' . '(Name)',
'temperature' => ' ' . '(Soll)',
'day' => ' ' . '(heute)',
'week' => ' ' . '(diese Woche)',
'month' => ' ' . '(diesen Monat)',
'year' => ' ' . '(dieses Jahr)',
'shift' => ' ' . '(Niveau)',
'slope' => ' ' . '(Neigung)',
'hoursLoadClassFive' => ' ' . '(Laufzeit Belastungsklasse 5)',
'hoursLoadClassFour' => ' ' . '(Laufzeit Belastungsklasse 4)',
'hoursLoadClassThree' => ' ' . '(Laufzeit Belastungsklasse 3)',
'hoursLoadClassTwo' => ' ' . '(Laufzeit Belastungsklasse 2)',
'hoursLoadClassOne' => ' ' . '(Laufzeit Belastungsklasse 1)',
'start' => ' ' . '(Start)',
'end' => ' ' . '(Ende)',
]);
// Generated names are currently German only, as we only know the names within the German app
function computeName($id, $name)
{
$numbers = [];
$splitID = explode('.', $id);
for ($i = 0; $i < count($splitID); $i++) {
if (is_numeric($splitID[$i])) {
$numbers[] = intval($splitID[$i]) + 1; // Add 1, so we start enumerating at 1, not 0
$splitID[$i] = '%d';
}
}
$placeholderID = implode('.', $splitID);
if (array_key_exists($placeholderID, READABLE_IDS) && array_key_exists($name, READABLE_NAMES)) {
return sprintf(READABLE_IDS[$placeholderID], ...$numbers) . READABLE_NAMES[$name];
} else {
return "$id ($name)";
}
}
// Translate enums for profiles
function enumToName($enum)
{
switch ($enum) {
case 'standby':
return 'Aus';
case 'dhw':
return 'Nur Warmwasser';
case 'dhwAndHeating':
return 'Heizung & Warmwasser';
case 'forcedReduced':
return 'Dauernd reduziert';
case 'forcedNormal':
return 'Dauernd Tagbetrieb';
default:
return $enum;
}
}