Controller screens
Build Linux and Android / build (push) Successful in 2m46s

This commit is contained in:
2026-08-17 19:02:47 +02:00
parent 8f0b45dab9
commit dbd4a71fb5
20 changed files with 4731 additions and 199 deletions
+8
View File
@@ -115,6 +115,8 @@ qt_add_qml_module(evcharger-app
qml/HotspotPage.qml
qml/InformationsTabPage.qml
qml/InformationChartPanel.qml
qml/IndexedEditValueItem.qml
qml/IndexedOnOffSwitch.qml
qml/KwhLimitPage.qml
qml/LanguageSelector.qml
qml/LedPage.qml
@@ -124,6 +126,7 @@ qt_add_qml_module(evcharger-app
qml/MainScreen.qml
qml/MaterialIcon.qml
qml/MaterialIconFont.qml
qml/MeasurementRow.qml
qml/MqttPage.qml
qml/NamePage.qml
qml/NavigationItem.qml
@@ -144,6 +147,10 @@ qt_add_qml_module(evcharger-app
qml/SelectPhaseSwitchModeItem.qml
qml/SendMessageButton.qml
qml/SensorsConfigurationPage.qml
qml/CurrentSensorPage.qml
qml/CurrentSensorsPage.qml
qml/SensorCategoriesPage.qml
qml/SensorCategoryPage.qml
qml/SettingsCard.qml
qml/SettingsLabel.qml
qml/SettingsSectionLabel.qml
@@ -159,6 +166,7 @@ qt_add_qml_module(evcharger-app
qml/TimePicker.qml
qml/TitleText.qml
qml/VerticalTabButton.qml
qml/VoltageSensorsPage.qml
qml/WhiteBox.qml
qml/WhiteCheckDelegate.qml
qml/WhiteItemDelegate.qml
+617 -31
View File
@@ -1015,6 +1015,163 @@
<translation>Strømniveauer</translation>
</message>
</context>
<context>
<name>CurrentSensorPage</name>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="14"/>
<source>L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="15"/>
<source>L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="16"/>
<source>L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="17"/>
<source>Neutral</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="50"/>
<source>Live measurement</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="51"/>
<source>Current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="51"/>
<source>A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="52"/>
<source>Active power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="52"/>
<source>W</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="53"/>
<source>Power factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="54"/>
<source>Voltage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="54"/>
<source>V</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="59"/>
<source>Sensor settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="64"/>
<source>Electrical phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="90"/>
<source>Invert measurement direction</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="98"/>
<source>Current transformer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="105"/>
<source>Enter the primary and secondary current printed on the current transformer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="112"/>
<source>Primary current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="117"/>
<location filename="../qml/CurrentSensorPage.qml" line="127"/>
<source>%1 A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="122"/>
<source>Secondary current</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CurrentSensorsPage</name>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="8"/>
<source>Current sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="19"/>
<source>Current sensor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="29"/>
<source>No measurement available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="33"/>
<source>%1 A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="35"/>
<source>%1 W</source>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="37"/>
<source>power factor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="55"/>
<source>Select a sensor to inspect its live data and configure its phase, direction and transformer ratio.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="79"/>
<source>Calibration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="84"/>
<source>Current calibration factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="92"/>
<source>Phase calibration factor</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DailyTripPage</name>
<message>
@@ -1679,28 +1836,28 @@
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="409"/>
<source>Switch firmware partition?</source>
<source>Switch firmware partition?</source>
<translation>Skift firmwarepartition?</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="414"/>
<source>Switch to firmware %1 and reboot the charger? The charger will temporarily disconnect.</source>
<source>Switch to firmware %1 and reboot the charger? The charger will temporarily disconnect.</source>
<translation>Skift til firmware %1, og genstart laderen? Forbindelsen til laderen afbrydes midlertidigt.</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="421"/>
<source>Cancel</source>
<source>Cancel</source>
<translation>Annuller</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="427"/>
<location filename="../qml/FirmwarePage.qml" line="692"/>
<source>Switch and reboot</source>
<source>Switch and reboot</source>
<translation>Skift og genstart</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="575"/>
<source>OTHER PARTITION</source>
<source>OTHER PARTITION</source>
<translation>ANDEN PARTITION</translation>
</message>
<message>
@@ -3054,12 +3211,325 @@
<translation>Ingen enhedsforbindelse indstillet!</translation>
</message>
</context>
<context>
<name>SensorCategoriesPage</name>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="8"/>
<source>Energy categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="23"/>
<source>%1 W</source>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="25"/>
<source>%1 Wh imported</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="27"/>
<source>hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="28"/>
<source>No measurement available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="62"/>
<source>Categories combine one or more current sensors into meaningful totals such as grid, home, car, solar or battery.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SensorCategoryPage</name>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="47"/>
<source>Current sensor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="51"/>
<source>None</source>
<translation type="unfinished">Ingen</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="52"/>
<source>Home</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="53"/>
<source>Grid</source>
<translation type="unfinished">Elnet</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="54"/>
<source>Car</source>
<translation type="unfinished">Bil</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="55"/>
<source>Relay</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="56"/>
<source>Solar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="57"/>
<source>Battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="75"/>
<source>Live data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="76"/>
<source>Power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="76"/>
<source>W</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="77"/>
<source>Current L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="77"/>
<location filename="../qml/SensorCategoryPage.qml" line="78"/>
<location filename="../qml/SensorCategoryPage.qml" line="79"/>
<location filename="../qml/SensorCategoryPage.qml" line="80"/>
<source>A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="78"/>
<source>Current L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="79"/>
<source>Current L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="80"/>
<source>Neutral current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="81"/>
<source>Imported energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="81"/>
<location filename="../qml/SensorCategoryPage.qml" line="82"/>
<location filename="../qml/SensorCategoryPage.qml" line="83"/>
<location filename="../qml/SensorCategoryPage.qml" line="84"/>
<location filename="../qml/SensorCategoryPage.qml" line="85"/>
<location filename="../qml/SensorCategoryPage.qml" line="86"/>
<location filename="../qml/SensorCategoryPage.qml" line="87"/>
<location filename="../qml/SensorCategoryPage.qml" line="88"/>
<location filename="../qml/SensorCategoryPage.qml" line="89"/>
<location filename="../qml/SensorCategoryPage.qml" line="90"/>
<source>Wh</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="82"/>
<source>Exported energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="83"/>
<source>Imported energy L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="84"/>
<source>Exported energy L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="85"/>
<source>Imported energy L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="86"/>
<source>Exported energy L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="87"/>
<source>Imported energy L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="88"/>
<source>Exported energy L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="89"/>
<source>Imported neutral energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="90"/>
<source>Exported neutral energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="95"/>
<source>Category settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="100"/>
<source>Show category</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="106"/>
<source>Category name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="117"/>
<source>Category icon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="144"/>
<source>Temporary external power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="148"/>
<source>Inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="149"/>
<source>%1 W</source>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="156"/>
<source>External power is a live input and expires if it is not refreshed by the sender.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="164"/>
<source>Sensor factors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="171"/>
<source>Each factor multiplies that sensor&apos;s current and power before adding it to this category. Use 0 to exclude a sensor, 1 to add it unchanged, or -1 to subtract it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="192"/>
<location filename="../qml/SensorCategoryPage.qml" line="207"/>
<source>Reset category</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="197"/>
<source>Reset this custom category, including its name, icon, factors and energy counters.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="198"/>
<source>Reset this category&apos;s visibility, sensor factors and energy counters to their defaults.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="219"/>
<source>Reset category?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="225"/>
<source>This resets the configuration and accumulated energy of %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SensorsConfigurationPage</name>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="6"/>
<source>Sensors Configuration</source>
<translation>Sensorkonfiguration</translation>
<translation type="vanished">Sensorkonfiguration</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="7"/>
<source>Sensors and categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="41"/>
<source>Measurement</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="48"/>
<source>Measurement service enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="54"/>
<source>Continuous raw measurement can reduce controller performance.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="65"/>
<source>Measurement update rate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="71"/>
<source>Voltage sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="72"/>
<source>Live voltages, phase assignment and calibration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="79"/>
<source>Current sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="80"/>
<source>Live current, power, phase, direction and CT ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="87"/>
<source>Energy categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="88"/>
<source>Power, energy counters and sensor factors</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -3153,122 +3623,122 @@
<translation>Jordingskontrol</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="55"/>
<location filename="../qml/SettingsTabPage.qml" line="71"/>
<source>Sensors Configuration</source>
<translation>Sensorkonfiguration</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="57"/>
<location filename="../qml/SettingsTabPage.qml" line="73"/>
<source>Sensors</source>
<translation>Sensorer</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="58"/>
<location filename="../qml/SettingsTabPage.qml" line="74"/>
<source>Categories</source>
<translation>Kategorier</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="104"/>
<location filename="../qml/SettingsTabPage.qml" line="122"/>
<source>Connection</source>
<translation>Forbindelse</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="106"/>
<location filename="../qml/SettingsTabPage.qml" line="124"/>
<source>Wi-Fi</source>
<translation>Wi-Fi</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="107"/>
<location filename="../qml/SettingsTabPage.qml" line="125"/>
<source>Cellular</source>
<translation>Mobilnetværk</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="108"/>
<location filename="../qml/SettingsTabPage.qml" line="126"/>
<source>Hotspot</source>
<translation>Hotspot</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="109"/>
<location filename="../qml/SettingsTabPage.qml" line="127"/>
<source>Ethernet</source>
<translation>Ethernet</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="110"/>
<location filename="../qml/SettingsTabPage.qml" line="128"/>
<source>Cloud</source>
<translation>Sky</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="111"/>
<location filename="../qml/SettingsTabPage.qml" line="129"/>
<source>OCPP</source>
<translation>OCPP</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="112"/>
<location filename="../qml/SettingsTabPage.qml" line="130"/>
<source>MQTT</source>
<translation>MQTT</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="113"/>
<location filename="../qml/SettingsTabPage.qml" line="131"/>
<source>API Settings</source>
<translation>API-indstillinger</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="138"/>
<location filename="../qml/SettingsTabPage.qml" line="156"/>
<source>General</source>
<translation>Generelt</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="140"/>
<location filename="../qml/SettingsTabPage.qml" line="158"/>
<source>Name</source>
<translation>Navn</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="141"/>
<location filename="../qml/SettingsTabPage.qml" line="159"/>
<source>Switch Language</source>
<translation>Skift sprog</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="142"/>
<location filename="../qml/SettingsTabPage.qml" line="160"/>
<source>Notifications</source>
<translation>Meddelelser</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="143"/>
<location filename="../qml/SettingsTabPage.qml" line="161"/>
<source>Date and time</source>
<translation>Dato og tid</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="144"/>
<location filename="../qml/SettingsTabPage.qml" line="162"/>
<source>LED</source>
<translation>LED</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="145"/>
<location filename="../qml/SettingsTabPage.qml" line="163"/>
<source>Controller</source>
<translation>Styreenhed</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="146"/>
<location filename="../qml/SettingsTabPage.qml" line="164"/>
<source>Display settings</source>
<translation>Skærmindstillinger</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="155"/>
<location filename="../qml/SettingsTabPage.qml" line="173"/>
<source>About</source>
<translation>Om appen</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="157"/>
<location filename="../qml/SettingsTabPage.qml" line="175"/>
<source>Firmware</source>
<translation>Firmware</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="158"/>
<location filename="../qml/SettingsTabPage.qml" line="176"/>
<source>Hardware information</source>
<translation>Hardwareoplysninger</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="159"/>
<location filename="../qml/SettingsTabPage.qml" line="177"/>
<source>Licenses</source>
<translation>Licenser</translation>
</message>
@@ -3307,6 +3777,122 @@
<translation>PM</translation>
</message>
</context>
<context>
<name>VoltageSensorsPage</name>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="8"/>
<source>Voltage sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="11"/>
<source>L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="12"/>
<source>L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="13"/>
<source>L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="14"/>
<source>Neutral</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="25"/>
<source>Voltage sensor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="54"/>
<source>Live measurements</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="70"/>
<source>Voltage L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="70"/>
<location filename="../qml/VoltageSensorsPage.qml" line="71"/>
<location filename="../qml/VoltageSensorsPage.qml" line="72"/>
<location filename="../qml/VoltageSensorsPage.qml" line="73"/>
<source>V</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="71"/>
<source>Voltage L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="72"/>
<source>Voltage L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="73"/>
<source>Neutral voltage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="74"/>
<source>Frequency</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="74"/>
<source>Hz</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="81"/>
<source>Phase assignment</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="87"/>
<source>Assign each physical voltage input to the electrical phase it measures.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="93"/>
<source>Voltage input 1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="98"/>
<source>Voltage input 2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="103"/>
<source>Voltage input 3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="108"/>
<source>Voltage input 4</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="116"/>
<source>Calibration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="121"/>
<source>Voltage calibration factor</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiErrorsPage</name>
<message>
+618 -32
View File
@@ -1123,6 +1123,163 @@
<translation>Strompegel</translation>
</message>
</context>
<context>
<name>CurrentSensorPage</name>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="14"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="15"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="16"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="17"/>
<source>Neutral</source>
<translation>Neutralleiter</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="50"/>
<source>Live measurement</source>
<translation>Live-Messwerte</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="51"/>
<source>Current</source>
<translation>Strom</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="51"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="52"/>
<source>Active power</source>
<translation>Wirkleistung</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="52"/>
<source>W</source>
<translation>W</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="53"/>
<source>Power factor</source>
<translation>Leistungsfaktor</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="54"/>
<source>Voltage</source>
<translation>Spannung</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="54"/>
<source>V</source>
<translation>V</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="59"/>
<source>Sensor settings</source>
<translation>Sensoreinstellungen</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="64"/>
<source>Electrical phase</source>
<translation>Elektrische Phase</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="90"/>
<source>Invert measurement direction</source>
<translation>Messrichtung umkehren</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="98"/>
<source>Current transformer</source>
<translation>Stromwandler</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="105"/>
<source>Enter the primary and secondary current printed on the current transformer.</source>
<translation>Primär- und Sekundärstrom laut Beschriftung des Stromwandlers eingeben.</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="112"/>
<source>Primary current</source>
<translation>Primärstrom</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="117"/>
<location filename="../qml/CurrentSensorPage.qml" line="127"/>
<source>%1 A</source>
<translation>%1 A</translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="122"/>
<source>Secondary current</source>
<translation>Sekundärstrom</translation>
</message>
</context>
<context>
<name>CurrentSensorsPage</name>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="8"/>
<source>Current sensors</source>
<translation>Stromsensoren</translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="19"/>
<source>Current sensor %1</source>
<translation>Stromsensor %1</translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="29"/>
<source>No measurement available</source>
<translation>Kein Messwert verfügbar</translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="33"/>
<source>%1 A</source>
<translation>%1 A</translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="35"/>
<source>%1 W</source>
<translation>%1 W</translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="37"/>
<source>power factor %1</source>
<translation>Leistungsfaktor %1</translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="55"/>
<source>Select a sensor to inspect its live data and configure its phase, direction and transformer ratio.</source>
<translation>Sensor auswählen, um Live-Messwerte anzuzeigen und Phase, Messrichtung sowie Wandlerverhältnis einzustellen.</translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="79"/>
<source>Calibration</source>
<translation>Kalibrierung</translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="84"/>
<source>Current calibration factor</source>
<translation>Strom-Kalibrierfaktor</translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="92"/>
<source>Phase calibration factor</source>
<translation>Phasen-Kalibrierfaktor</translation>
</message>
</context>
<context>
<name>DailyTripPage</name>
<message>
@@ -1842,28 +1999,28 @@
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="409"/>
<source>Switch firmware partition?</source>
<source>Switch firmware partition?</source>
<translation>Firmware-Partition wechseln?</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="414"/>
<source>Switch to firmware %1 and reboot the charger? The charger will temporarily disconnect.</source>
<source>Switch to firmware %1 and reboot the charger? The charger will temporarily disconnect.</source>
<translation>Zu Firmware %1 wechseln und das Ladegerät neu starten? Die Verbindung zum Ladegerät wird vorübergehend getrennt.</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="421"/>
<source>Cancel</source>
<source>Cancel</source>
<translation>Abbrechen</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="427"/>
<location filename="../qml/FirmwarePage.qml" line="692"/>
<source>Switch and reboot</source>
<source>Switch and reboot</source>
<translation>Wechseln und neu starten</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="575"/>
<source>OTHER PARTITION</source>
<source>OTHER PARTITION</source>
<translation>ANDERE PARTITION</translation>
</message>
<message>
@@ -2987,7 +3144,7 @@
<message>
<location filename="../qml/PvSurplusPage.qml" line="12"/>
<source>%1 W</source>
<translation type="unfinished"></translation>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/PvSurplusPage.qml" line="17"/>
@@ -3334,12 +3491,325 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SensorCategoriesPage</name>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="8"/>
<source>Energy categories</source>
<translation>Energiekategorien</translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="23"/>
<source>%1 W</source>
<translation>%1 W</translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="25"/>
<source>%1 Wh imported</source>
<translation>%1 Wh bezogen</translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="27"/>
<source>hidden</source>
<translation>ausgeblendet</translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="28"/>
<source>No measurement available</source>
<translation>Kein Messwert verfügbar</translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="62"/>
<source>Categories combine one or more current sensors into meaningful totals such as grid, home, car, solar or battery.</source>
<translation>Kategorien fassen einen oder mehrere Stromsensoren zu aussagekräftigen Summen wie Netz, Haus, Auto, Solar oder Batterie zusammen.</translation>
</message>
</context>
<context>
<name>SensorCategoryPage</name>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="47"/>
<source>Current sensor %1</source>
<translation>Stromsensor %1</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="51"/>
<source>None</source>
<translation>Keines</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="52"/>
<source>Home</source>
<translation>Haus</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="53"/>
<source>Grid</source>
<translation>Netz</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="54"/>
<source>Car</source>
<translation>Auto</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="55"/>
<source>Relay</source>
<translation>Relais</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="56"/>
<source>Solar</source>
<translation>Solar</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="57"/>
<source>Battery</source>
<translation>Batterie</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="75"/>
<source>Live data</source>
<translation>Live-Daten</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="76"/>
<source>Power</source>
<translation>Leistung</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="76"/>
<source>W</source>
<translation>W</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="77"/>
<source>Current L1</source>
<translation>Strom L1</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="77"/>
<location filename="../qml/SensorCategoryPage.qml" line="78"/>
<location filename="../qml/SensorCategoryPage.qml" line="79"/>
<location filename="../qml/SensorCategoryPage.qml" line="80"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="78"/>
<source>Current L2</source>
<translation>Strom L2</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="79"/>
<source>Current L3</source>
<translation>Strom L3</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="80"/>
<source>Neutral current</source>
<translation>Neutralleiterstrom</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="81"/>
<source>Imported energy</source>
<translation>Bezogene Energie</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="81"/>
<location filename="../qml/SensorCategoryPage.qml" line="82"/>
<location filename="../qml/SensorCategoryPage.qml" line="83"/>
<location filename="../qml/SensorCategoryPage.qml" line="84"/>
<location filename="../qml/SensorCategoryPage.qml" line="85"/>
<location filename="../qml/SensorCategoryPage.qml" line="86"/>
<location filename="../qml/SensorCategoryPage.qml" line="87"/>
<location filename="../qml/SensorCategoryPage.qml" line="88"/>
<location filename="../qml/SensorCategoryPage.qml" line="89"/>
<location filename="../qml/SensorCategoryPage.qml" line="90"/>
<source>Wh</source>
<translation>Wh</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="82"/>
<source>Exported energy</source>
<translation>Eingespeiste Energie</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="83"/>
<source>Imported energy L1</source>
<translation>Bezogene Energie L1</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="84"/>
<source>Exported energy L1</source>
<translation>Eingespeiste Energie L1</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="85"/>
<source>Imported energy L2</source>
<translation>Bezogene Energie L2</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="86"/>
<source>Exported energy L2</source>
<translation>Eingespeiste Energie L2</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="87"/>
<source>Imported energy L3</source>
<translation>Bezogene Energie L3</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="88"/>
<source>Exported energy L3</source>
<translation>Eingespeiste Energie L3</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="89"/>
<source>Imported neutral energy</source>
<translation>Bezogene Neutralleiterenergie</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="90"/>
<source>Exported neutral energy</source>
<translation>Eingespeiste Neutralleiterenergie</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="95"/>
<source>Category settings</source>
<translation>Kategorieeinstellungen</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="100"/>
<source>Show category</source>
<translation>Kategorie anzeigen</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="106"/>
<source>Category name</source>
<translation>Kategoriename</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="117"/>
<source>Category icon</source>
<translation>Kategoriesymbol</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="144"/>
<source>Temporary external power</source>
<translation>Temporäre externe Leistung</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="148"/>
<source>Inactive</source>
<translation>Inaktiv</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="149"/>
<source>%1 W</source>
<translation>%1 W</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="156"/>
<source>External power is a live input and expires if it is not refreshed by the sender.</source>
<translation>Die externe Leistung ist ein Live-Eingang und verfällt, wenn sie vom Absender nicht regelmäßig aktualisiert wird.</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="164"/>
<source>Sensor factors</source>
<translation>Sensorfaktoren</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="171"/>
<source>Each factor multiplies that sensor&apos;s current and power before adding it to this category. Use 0 to exclude a sensor, 1 to add it unchanged, or -1 to subtract it.</source>
<translation>Jeder Faktor multipliziert Strom und Leistung des Sensors, bevor sie zu dieser Kategorie addiert werden. Mit 0 wird der Sensor ausgeschlossen, mit 1 unverändert addiert und mit -1 subtrahiert.</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="192"/>
<location filename="../qml/SensorCategoryPage.qml" line="207"/>
<source>Reset category</source>
<translation>Kategorie zurücksetzen</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="197"/>
<source>Reset this custom category, including its name, icon, factors and energy counters.</source>
<translation>Diese benutzerdefinierte Kategorie einschließlich Name, Symbol, Faktoren und Energiezählern zurücksetzen.</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="198"/>
<source>Reset this category&apos;s visibility, sensor factors and energy counters to their defaults.</source>
<translation>Sichtbarkeit, Sensorfaktoren und Energiezähler dieser Kategorie auf die Standardwerte zurücksetzen.</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="219"/>
<source>Reset category?</source>
<translation>Kategorie zurücksetzen?</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="225"/>
<source>This resets the configuration and accumulated energy of %1.</source>
<translation>Dadurch werden die Konfiguration und die erfasste Energie von %1 zurückgesetzt.</translation>
</message>
</context>
<context>
<name>SensorsConfigurationPage</name>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="6"/>
<source>Sensors Configuration</source>
<translation>Sensorkonfiguration</translation>
<translation type="vanished">Sensorkonfiguration</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="7"/>
<source>Sensors and categories</source>
<translation>Sensoren und Kategorien</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="41"/>
<source>Measurement</source>
<translation>Messung</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="48"/>
<source>Measurement service enabled</source>
<translation>Messdienst aktiviert</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="54"/>
<source>Continuous raw measurement can reduce controller performance.</source>
<translation>Die kontinuierliche Rohdatenmessung kann die Controllerleistung verringern.</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="65"/>
<source>Measurement update rate</source>
<translation>Messaktualisierungsrate</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="71"/>
<source>Voltage sensors</source>
<translation>Spannungssensoren</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="72"/>
<source>Live voltages, phase assignment and calibration</source>
<translation>Live-Spannungen, Phasenzuordnung und Kalibrierung</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="79"/>
<source>Current sensors</source>
<translation>Stromsensoren</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="80"/>
<source>Live current, power, phase, direction and CT ratio</source>
<translation>Live-Strom und -Leistung, Phase, Messrichtung und Stromwandlerverhältnis</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="87"/>
<source>Energy categories</source>
<translation>Energiekategorien</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="88"/>
<source>Power, energy counters and sensor factors</source>
<translation>Leistung, Energiezähler und Sensorfaktoren</translation>
</message>
</context>
<context>
@@ -3428,102 +3898,102 @@
<translation>Erdungsprüfung</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="57"/>
<location filename="../qml/SettingsTabPage.qml" line="73"/>
<source>Sensors</source>
<translation>Sensoren</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="58"/>
<location filename="../qml/SettingsTabPage.qml" line="74"/>
<source>Categories</source>
<translation>Kategorien</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="106"/>
<location filename="../qml/SettingsTabPage.qml" line="124"/>
<source>Wi-Fi</source>
<translation>WLAN</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="107"/>
<location filename="../qml/SettingsTabPage.qml" line="125"/>
<source>Cellular</source>
<translation>Mobilfunk</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="108"/>
<location filename="../qml/SettingsTabPage.qml" line="126"/>
<source>Hotspot</source>
<translation>Hotspot</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="109"/>
<location filename="../qml/SettingsTabPage.qml" line="127"/>
<source>Ethernet</source>
<translation>Ethernet</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="111"/>
<location filename="../qml/SettingsTabPage.qml" line="129"/>
<source>OCPP</source>
<translation>OCPP</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="110"/>
<location filename="../qml/SettingsTabPage.qml" line="128"/>
<source>Cloud</source>
<translation>Cloud</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="112"/>
<location filename="../qml/SettingsTabPage.qml" line="130"/>
<source>MQTT</source>
<translation>MQTT</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="113"/>
<location filename="../qml/SettingsTabPage.qml" line="131"/>
<source>API Settings</source>
<translation>API Einstellungen</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="140"/>
<location filename="../qml/SettingsTabPage.qml" line="158"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="141"/>
<location filename="../qml/SettingsTabPage.qml" line="159"/>
<source>Switch Language</source>
<translation>Sprache ändern</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="142"/>
<location filename="../qml/SettingsTabPage.qml" line="160"/>
<source>Notifications</source>
<translation>Benachrichtigungen</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="143"/>
<location filename="../qml/SettingsTabPage.qml" line="161"/>
<source>Date and time</source>
<translation>Datum und Uhrzeit</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="144"/>
<location filename="../qml/SettingsTabPage.qml" line="162"/>
<source>LED</source>
<translation>LED</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="145"/>
<location filename="../qml/SettingsTabPage.qml" line="163"/>
<source>Controller</source>
<translation>Controller</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="146"/>
<location filename="../qml/SettingsTabPage.qml" line="164"/>
<source>Display settings</source>
<translation>Display</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="157"/>
<location filename="../qml/SettingsTabPage.qml" line="175"/>
<source>Firmware</source>
<translation>Firmware</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="158"/>
<location filename="../qml/SettingsTabPage.qml" line="176"/>
<source>Hardware information</source>
<translation>Hardwareinformationen</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="159"/>
<location filename="../qml/SettingsTabPage.qml" line="177"/>
<source>Licenses</source>
<translation>Lizenzen</translation>
</message>
@@ -3541,7 +4011,7 @@
<translation type="vanished">Kabel • Zugangskontrolle • Passwort • Netz • Erdungsprüfung</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="55"/>
<location filename="../qml/SettingsTabPage.qml" line="71"/>
<source>Sensors Configuration</source>
<translation>Sensorkonfiguration</translation>
</message>
@@ -3550,7 +4020,7 @@
<translation type="vanished">Sensoren • Kategorien</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="104"/>
<location filename="../qml/SettingsTabPage.qml" line="122"/>
<source>Connection</source>
<translation>Verbindung</translation>
</message>
@@ -3559,7 +4029,7 @@
<translation type="vanished">WLAN • Hotspot • OCPP • API Einstellungen</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="138"/>
<location filename="../qml/SettingsTabPage.qml" line="156"/>
<source>General</source>
<translation>Allgemein</translation>
</message>
@@ -3568,7 +4038,7 @@
<translation type="vanished">Name • Sprache ändern • Benachrichtigungen • Datum und Uhrzeit • LED • Controller</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="155"/>
<location filename="../qml/SettingsTabPage.qml" line="173"/>
<source>About</source>
<translation>Über</translation>
</message>
@@ -3611,6 +4081,122 @@
<translation>PM</translation>
</message>
</context>
<context>
<name>VoltageSensorsPage</name>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="8"/>
<source>Voltage sensors</source>
<translation>Spannungssensoren</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="11"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="12"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="13"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="14"/>
<source>Neutral</source>
<translation>Neutralleiter</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="25"/>
<source>Voltage sensor %1</source>
<translation>Spannungssensor %1</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="54"/>
<source>Live measurements</source>
<translation>Live-Messwerte</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="70"/>
<source>Voltage L1</source>
<translation>Spannung L1</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="70"/>
<location filename="../qml/VoltageSensorsPage.qml" line="71"/>
<location filename="../qml/VoltageSensorsPage.qml" line="72"/>
<location filename="../qml/VoltageSensorsPage.qml" line="73"/>
<source>V</source>
<translation>V</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="71"/>
<source>Voltage L2</source>
<translation>Spannung L2</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="72"/>
<source>Voltage L3</source>
<translation>Spannung L3</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="73"/>
<source>Neutral voltage</source>
<translation>Neutralleiterspannung</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="74"/>
<source>Frequency</source>
<translation>Frequenz</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="74"/>
<source>Hz</source>
<translation>Hz</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="81"/>
<source>Phase assignment</source>
<translation>Phasenzuordnung</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="87"/>
<source>Assign each physical voltage input to the electrical phase it measures.</source>
<translation>Jeden physischen Spannungseingang der gemessenen elektrischen Phase zuordnen.</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="93"/>
<source>Voltage input 1</source>
<translation>Spannungseingang 1</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="98"/>
<source>Voltage input 2</source>
<translation>Spannungseingang 2</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="103"/>
<source>Voltage input 3</source>
<translation>Spannungseingang 3</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="108"/>
<source>Voltage input 4</source>
<translation>Spannungseingang 4</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="116"/>
<source>Calibration</source>
<translation>Kalibrierung</translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="121"/>
<source>Voltage calibration factor</source>
<translation>Spannungs-Kalibrierfaktor</translation>
</message>
</context>
<context>
<name>WiFiErrorsPage</name>
<message>
+617 -31
View File
@@ -1015,6 +1015,163 @@
<translation>Virtatasot</translation>
</message>
</context>
<context>
<name>CurrentSensorPage</name>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="14"/>
<source>L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="15"/>
<source>L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="16"/>
<source>L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="17"/>
<source>Neutral</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="50"/>
<source>Live measurement</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="51"/>
<source>Current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="51"/>
<source>A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="52"/>
<source>Active power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="52"/>
<source>W</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="53"/>
<source>Power factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="54"/>
<source>Voltage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="54"/>
<source>V</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="59"/>
<source>Sensor settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="64"/>
<source>Electrical phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="90"/>
<source>Invert measurement direction</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="98"/>
<source>Current transformer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="105"/>
<source>Enter the primary and secondary current printed on the current transformer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="112"/>
<source>Primary current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="117"/>
<location filename="../qml/CurrentSensorPage.qml" line="127"/>
<source>%1 A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="122"/>
<source>Secondary current</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CurrentSensorsPage</name>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="8"/>
<source>Current sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="19"/>
<source>Current sensor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="29"/>
<source>No measurement available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="33"/>
<source>%1 A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="35"/>
<source>%1 W</source>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="37"/>
<source>power factor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="55"/>
<source>Select a sensor to inspect its live data and configure its phase, direction and transformer ratio.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="79"/>
<source>Calibration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="84"/>
<source>Current calibration factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="92"/>
<source>Phase calibration factor</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DailyTripPage</name>
<message>
@@ -1679,28 +1836,28 @@
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="409"/>
<source>Switch firmware partition?</source>
<source>Switch firmware partition?</source>
<translation>Vaihda laiteohjelmisto-osiota?</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="414"/>
<source>Switch to firmware %1 and reboot the charger? The charger will temporarily disconnect.</source>
<source>Switch to firmware %1 and reboot the charger? The charger will temporarily disconnect.</source>
<translation>Vaihda laiteohjelmistoon %1 ja käynnistä laturi uudelleen? Yhteys laturiin katkeaa väliaikaisesti.</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="421"/>
<source>Cancel</source>
<source>Cancel</source>
<translation>Peruuta</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="427"/>
<location filename="../qml/FirmwarePage.qml" line="692"/>
<source>Switch and reboot</source>
<source>Switch and reboot</source>
<translation>Vaihda ja käynnistä uudelleen</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="575"/>
<source>OTHER PARTITION</source>
<source>OTHER PARTITION</source>
<translation>TOINEN OSIO</translation>
</message>
<message>
@@ -3054,12 +3211,325 @@
<translation>Laiteliitäntää ei ole asetettu!</translation>
</message>
</context>
<context>
<name>SensorCategoriesPage</name>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="8"/>
<source>Energy categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="23"/>
<source>%1 W</source>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="25"/>
<source>%1 Wh imported</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="27"/>
<source>hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="28"/>
<source>No measurement available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="62"/>
<source>Categories combine one or more current sensors into meaningful totals such as grid, home, car, solar or battery.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SensorCategoryPage</name>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="47"/>
<source>Current sensor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="51"/>
<source>None</source>
<translation type="unfinished">Ei mitään</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="52"/>
<source>Home</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="53"/>
<source>Grid</source>
<translation type="unfinished">Sähköverkko</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="54"/>
<source>Car</source>
<translation type="unfinished">Auto</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="55"/>
<source>Relay</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="56"/>
<source>Solar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="57"/>
<source>Battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="75"/>
<source>Live data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="76"/>
<source>Power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="76"/>
<source>W</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="77"/>
<source>Current L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="77"/>
<location filename="../qml/SensorCategoryPage.qml" line="78"/>
<location filename="../qml/SensorCategoryPage.qml" line="79"/>
<location filename="../qml/SensorCategoryPage.qml" line="80"/>
<source>A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="78"/>
<source>Current L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="79"/>
<source>Current L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="80"/>
<source>Neutral current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="81"/>
<source>Imported energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="81"/>
<location filename="../qml/SensorCategoryPage.qml" line="82"/>
<location filename="../qml/SensorCategoryPage.qml" line="83"/>
<location filename="../qml/SensorCategoryPage.qml" line="84"/>
<location filename="../qml/SensorCategoryPage.qml" line="85"/>
<location filename="../qml/SensorCategoryPage.qml" line="86"/>
<location filename="../qml/SensorCategoryPage.qml" line="87"/>
<location filename="../qml/SensorCategoryPage.qml" line="88"/>
<location filename="../qml/SensorCategoryPage.qml" line="89"/>
<location filename="../qml/SensorCategoryPage.qml" line="90"/>
<source>Wh</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="82"/>
<source>Exported energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="83"/>
<source>Imported energy L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="84"/>
<source>Exported energy L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="85"/>
<source>Imported energy L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="86"/>
<source>Exported energy L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="87"/>
<source>Imported energy L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="88"/>
<source>Exported energy L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="89"/>
<source>Imported neutral energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="90"/>
<source>Exported neutral energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="95"/>
<source>Category settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="100"/>
<source>Show category</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="106"/>
<source>Category name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="117"/>
<source>Category icon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="144"/>
<source>Temporary external power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="148"/>
<source>Inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="149"/>
<source>%1 W</source>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="156"/>
<source>External power is a live input and expires if it is not refreshed by the sender.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="164"/>
<source>Sensor factors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="171"/>
<source>Each factor multiplies that sensor&apos;s current and power before adding it to this category. Use 0 to exclude a sensor, 1 to add it unchanged, or -1 to subtract it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="192"/>
<location filename="../qml/SensorCategoryPage.qml" line="207"/>
<source>Reset category</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="197"/>
<source>Reset this custom category, including its name, icon, factors and energy counters.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="198"/>
<source>Reset this category&apos;s visibility, sensor factors and energy counters to their defaults.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="219"/>
<source>Reset category?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="225"/>
<source>This resets the configuration and accumulated energy of %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SensorsConfigurationPage</name>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="6"/>
<source>Sensors Configuration</source>
<translation>Anturien konfigurointi</translation>
<translation type="vanished">Anturien konfigurointi</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="7"/>
<source>Sensors and categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="41"/>
<source>Measurement</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="48"/>
<source>Measurement service enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="54"/>
<source>Continuous raw measurement can reduce controller performance.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="65"/>
<source>Measurement update rate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="71"/>
<source>Voltage sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="72"/>
<source>Live voltages, phase assignment and calibration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="79"/>
<source>Current sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="80"/>
<source>Live current, power, phase, direction and CT ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="87"/>
<source>Energy categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="88"/>
<source>Power, energy counters and sensor factors</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -3153,122 +3623,122 @@
<translation>Maadoituksen tarkistus</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="55"/>
<location filename="../qml/SettingsTabPage.qml" line="71"/>
<source>Sensors Configuration</source>
<translation>Anturien konfigurointi</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="57"/>
<location filename="../qml/SettingsTabPage.qml" line="73"/>
<source>Sensors</source>
<translation>Anturit</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="58"/>
<location filename="../qml/SettingsTabPage.qml" line="74"/>
<source>Categories</source>
<translation>Luokat</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="104"/>
<location filename="../qml/SettingsTabPage.qml" line="122"/>
<source>Connection</source>
<translation>Yhteys</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="106"/>
<location filename="../qml/SettingsTabPage.qml" line="124"/>
<source>Wi-Fi</source>
<translation>Wi-Fi</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="107"/>
<location filename="../qml/SettingsTabPage.qml" line="125"/>
<source>Cellular</source>
<translation>Mobiiliverkko</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="108"/>
<location filename="../qml/SettingsTabPage.qml" line="126"/>
<source>Hotspot</source>
<translation>Tukiasema</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="109"/>
<location filename="../qml/SettingsTabPage.qml" line="127"/>
<source>Ethernet</source>
<translation>Ethernet</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="110"/>
<location filename="../qml/SettingsTabPage.qml" line="128"/>
<source>Cloud</source>
<translation>Pilvi</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="111"/>
<location filename="../qml/SettingsTabPage.qml" line="129"/>
<source>OCPP</source>
<translation>OCPP</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="112"/>
<location filename="../qml/SettingsTabPage.qml" line="130"/>
<source>MQTT</source>
<translation>MQTT</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="113"/>
<location filename="../qml/SettingsTabPage.qml" line="131"/>
<source>API Settings</source>
<translation>API-asetukset</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="138"/>
<location filename="../qml/SettingsTabPage.qml" line="156"/>
<source>General</source>
<translation>Yleiset</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="140"/>
<location filename="../qml/SettingsTabPage.qml" line="158"/>
<source>Name</source>
<translation>Nimi</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="141"/>
<location filename="../qml/SettingsTabPage.qml" line="159"/>
<source>Switch Language</source>
<translation>Vaihda kieltä</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="142"/>
<location filename="../qml/SettingsTabPage.qml" line="160"/>
<source>Notifications</source>
<translation>Ilmoitukset</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="143"/>
<location filename="../qml/SettingsTabPage.qml" line="161"/>
<source>Date and time</source>
<translation>Päivämäärä ja aika</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="144"/>
<location filename="../qml/SettingsTabPage.qml" line="162"/>
<source>LED</source>
<translation>LED</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="145"/>
<location filename="../qml/SettingsTabPage.qml" line="163"/>
<source>Controller</source>
<translation>Ohjain</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="146"/>
<location filename="../qml/SettingsTabPage.qml" line="164"/>
<source>Display settings</source>
<translation>Näyttöasetukset</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="155"/>
<location filename="../qml/SettingsTabPage.qml" line="173"/>
<source>About</source>
<translation>Tietoja</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="157"/>
<location filename="../qml/SettingsTabPage.qml" line="175"/>
<source>Firmware</source>
<translation>Laiteohjelmisto</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="158"/>
<location filename="../qml/SettingsTabPage.qml" line="176"/>
<source>Hardware information</source>
<translation>Laitteiston tiedot</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="159"/>
<location filename="../qml/SettingsTabPage.qml" line="177"/>
<source>Licenses</source>
<translation>Lisenssit</translation>
</message>
@@ -3307,6 +3777,122 @@
<translation>ip.</translation>
</message>
</context>
<context>
<name>VoltageSensorsPage</name>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="8"/>
<source>Voltage sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="11"/>
<source>L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="12"/>
<source>L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="13"/>
<source>L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="14"/>
<source>Neutral</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="25"/>
<source>Voltage sensor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="54"/>
<source>Live measurements</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="70"/>
<source>Voltage L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="70"/>
<location filename="../qml/VoltageSensorsPage.qml" line="71"/>
<location filename="../qml/VoltageSensorsPage.qml" line="72"/>
<location filename="../qml/VoltageSensorsPage.qml" line="73"/>
<source>V</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="71"/>
<source>Voltage L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="72"/>
<source>Voltage L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="73"/>
<source>Neutral voltage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="74"/>
<source>Frequency</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="74"/>
<source>Hz</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="81"/>
<source>Phase assignment</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="87"/>
<source>Assign each physical voltage input to the electrical phase it measures.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="93"/>
<source>Voltage input 1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="98"/>
<source>Voltage input 2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="103"/>
<source>Voltage input 3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="108"/>
<source>Voltage input 4</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="116"/>
<source>Calibration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="121"/>
<source>Voltage calibration factor</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiErrorsPage</name>
<message>
+617 -31
View File
@@ -1015,6 +1015,163 @@
<translation>Strømnivåer</translation>
</message>
</context>
<context>
<name>CurrentSensorPage</name>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="14"/>
<source>L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="15"/>
<source>L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="16"/>
<source>L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="17"/>
<source>Neutral</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="50"/>
<source>Live measurement</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="51"/>
<source>Current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="51"/>
<source>A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="52"/>
<source>Active power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="52"/>
<source>W</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="53"/>
<source>Power factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="54"/>
<source>Voltage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="54"/>
<source>V</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="59"/>
<source>Sensor settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="64"/>
<source>Electrical phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="90"/>
<source>Invert measurement direction</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="98"/>
<source>Current transformer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="105"/>
<source>Enter the primary and secondary current printed on the current transformer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="112"/>
<source>Primary current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="117"/>
<location filename="../qml/CurrentSensorPage.qml" line="127"/>
<source>%1 A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="122"/>
<source>Secondary current</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CurrentSensorsPage</name>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="8"/>
<source>Current sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="19"/>
<source>Current sensor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="29"/>
<source>No measurement available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="33"/>
<source>%1 A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="35"/>
<source>%1 W</source>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="37"/>
<source>power factor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="55"/>
<source>Select a sensor to inspect its live data and configure its phase, direction and transformer ratio.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="79"/>
<source>Calibration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="84"/>
<source>Current calibration factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="92"/>
<source>Phase calibration factor</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DailyTripPage</name>
<message>
@@ -1679,28 +1836,28 @@
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="409"/>
<source>Switch firmware partition?</source>
<source>Switch firmware partition?</source>
<translation>Bytte fastvarepartisjon?</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="414"/>
<source>Switch to firmware %1 and reboot the charger? The charger will temporarily disconnect.</source>
<source>Switch to firmware %1 and reboot the charger? The charger will temporarily disconnect.</source>
<translation>Bytte til fastvare %1 og starte laderen på nytt? Tilkoblingen til laderen brytes midlertidig.</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="421"/>
<source>Cancel</source>
<source>Cancel</source>
<translation>Avbryt</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="427"/>
<location filename="../qml/FirmwarePage.qml" line="692"/>
<source>Switch and reboot</source>
<source>Switch and reboot</source>
<translation>Bytt og start på nytt</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="575"/>
<source>OTHER PARTITION</source>
<source>OTHER PARTITION</source>
<translation>ANNEN PARTISJON</translation>
</message>
<message>
@@ -3054,12 +3211,325 @@
<translation>Ingen enhetstilkobling satt!</translation>
</message>
</context>
<context>
<name>SensorCategoriesPage</name>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="8"/>
<source>Energy categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="23"/>
<source>%1 W</source>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="25"/>
<source>%1 Wh imported</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="27"/>
<source>hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="28"/>
<source>No measurement available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="62"/>
<source>Categories combine one or more current sensors into meaningful totals such as grid, home, car, solar or battery.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SensorCategoryPage</name>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="47"/>
<source>Current sensor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="51"/>
<source>None</source>
<translation type="unfinished">Ingen</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="52"/>
<source>Home</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="53"/>
<source>Grid</source>
<translation type="unfinished">Strømnett</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="54"/>
<source>Car</source>
<translation type="unfinished">Bil</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="55"/>
<source>Relay</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="56"/>
<source>Solar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="57"/>
<source>Battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="75"/>
<source>Live data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="76"/>
<source>Power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="76"/>
<source>W</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="77"/>
<source>Current L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="77"/>
<location filename="../qml/SensorCategoryPage.qml" line="78"/>
<location filename="../qml/SensorCategoryPage.qml" line="79"/>
<location filename="../qml/SensorCategoryPage.qml" line="80"/>
<source>A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="78"/>
<source>Current L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="79"/>
<source>Current L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="80"/>
<source>Neutral current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="81"/>
<source>Imported energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="81"/>
<location filename="../qml/SensorCategoryPage.qml" line="82"/>
<location filename="../qml/SensorCategoryPage.qml" line="83"/>
<location filename="../qml/SensorCategoryPage.qml" line="84"/>
<location filename="../qml/SensorCategoryPage.qml" line="85"/>
<location filename="../qml/SensorCategoryPage.qml" line="86"/>
<location filename="../qml/SensorCategoryPage.qml" line="87"/>
<location filename="../qml/SensorCategoryPage.qml" line="88"/>
<location filename="../qml/SensorCategoryPage.qml" line="89"/>
<location filename="../qml/SensorCategoryPage.qml" line="90"/>
<source>Wh</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="82"/>
<source>Exported energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="83"/>
<source>Imported energy L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="84"/>
<source>Exported energy L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="85"/>
<source>Imported energy L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="86"/>
<source>Exported energy L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="87"/>
<source>Imported energy L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="88"/>
<source>Exported energy L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="89"/>
<source>Imported neutral energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="90"/>
<source>Exported neutral energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="95"/>
<source>Category settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="100"/>
<source>Show category</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="106"/>
<source>Category name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="117"/>
<source>Category icon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="144"/>
<source>Temporary external power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="148"/>
<source>Inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="149"/>
<source>%1 W</source>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="156"/>
<source>External power is a live input and expires if it is not refreshed by the sender.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="164"/>
<source>Sensor factors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="171"/>
<source>Each factor multiplies that sensor&apos;s current and power before adding it to this category. Use 0 to exclude a sensor, 1 to add it unchanged, or -1 to subtract it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="192"/>
<location filename="../qml/SensorCategoryPage.qml" line="207"/>
<source>Reset category</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="197"/>
<source>Reset this custom category, including its name, icon, factors and energy counters.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="198"/>
<source>Reset this category&apos;s visibility, sensor factors and energy counters to their defaults.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="219"/>
<source>Reset category?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="225"/>
<source>This resets the configuration and accumulated energy of %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SensorsConfigurationPage</name>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="6"/>
<source>Sensors Configuration</source>
<translation>Sensorkonfigurasjon</translation>
<translation type="vanished">Sensorkonfigurasjon</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="7"/>
<source>Sensors and categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="41"/>
<source>Measurement</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="48"/>
<source>Measurement service enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="54"/>
<source>Continuous raw measurement can reduce controller performance.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="65"/>
<source>Measurement update rate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="71"/>
<source>Voltage sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="72"/>
<source>Live voltages, phase assignment and calibration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="79"/>
<source>Current sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="80"/>
<source>Live current, power, phase, direction and CT ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="87"/>
<source>Energy categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="88"/>
<source>Power, energy counters and sensor factors</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -3153,122 +3623,122 @@
<translation>Jordingskontroll</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="55"/>
<location filename="../qml/SettingsTabPage.qml" line="71"/>
<source>Sensors Configuration</source>
<translation>Sensorkonfigurasjon</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="57"/>
<location filename="../qml/SettingsTabPage.qml" line="73"/>
<source>Sensors</source>
<translation>Sensorer</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="58"/>
<location filename="../qml/SettingsTabPage.qml" line="74"/>
<source>Categories</source>
<translation>Kategorier</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="104"/>
<location filename="../qml/SettingsTabPage.qml" line="122"/>
<source>Connection</source>
<translation>Tilkobling</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="106"/>
<location filename="../qml/SettingsTabPage.qml" line="124"/>
<source>Wi-Fi</source>
<translation>Wi-Fi</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="107"/>
<location filename="../qml/SettingsTabPage.qml" line="125"/>
<source>Cellular</source>
<translation>Mobilnett</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="108"/>
<location filename="../qml/SettingsTabPage.qml" line="126"/>
<source>Hotspot</source>
<translation>Hotspot</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="109"/>
<location filename="../qml/SettingsTabPage.qml" line="127"/>
<source>Ethernet</source>
<translation>Ethernet</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="110"/>
<location filename="../qml/SettingsTabPage.qml" line="128"/>
<source>Cloud</source>
<translation>Sky</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="111"/>
<location filename="../qml/SettingsTabPage.qml" line="129"/>
<source>OCPP</source>
<translation>OCPP</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="112"/>
<location filename="../qml/SettingsTabPage.qml" line="130"/>
<source>MQTT</source>
<translation>MQTT</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="113"/>
<location filename="../qml/SettingsTabPage.qml" line="131"/>
<source>API Settings</source>
<translation>API-innstillinger</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="138"/>
<location filename="../qml/SettingsTabPage.qml" line="156"/>
<source>General</source>
<translation>Generelt</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="140"/>
<location filename="../qml/SettingsTabPage.qml" line="158"/>
<source>Name</source>
<translation>Navn</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="141"/>
<location filename="../qml/SettingsTabPage.qml" line="159"/>
<source>Switch Language</source>
<translation>Bytt språk</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="142"/>
<location filename="../qml/SettingsTabPage.qml" line="160"/>
<source>Notifications</source>
<translation>Varsler</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="143"/>
<location filename="../qml/SettingsTabPage.qml" line="161"/>
<source>Date and time</source>
<translation>Dato og tid</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="144"/>
<location filename="../qml/SettingsTabPage.qml" line="162"/>
<source>LED</source>
<translation>LED</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="145"/>
<location filename="../qml/SettingsTabPage.qml" line="163"/>
<source>Controller</source>
<translation>Kontroller</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="146"/>
<location filename="../qml/SettingsTabPage.qml" line="164"/>
<source>Display settings</source>
<translation>Skjerminnstillinger</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="155"/>
<location filename="../qml/SettingsTabPage.qml" line="173"/>
<source>About</source>
<translation>Om</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="157"/>
<location filename="../qml/SettingsTabPage.qml" line="175"/>
<source>Firmware</source>
<translation>Fastvare</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="158"/>
<location filename="../qml/SettingsTabPage.qml" line="176"/>
<source>Hardware information</source>
<translation>Maskinvareinformasjon</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="159"/>
<location filename="../qml/SettingsTabPage.qml" line="177"/>
<source>Licenses</source>
<translation>Lisenser</translation>
</message>
@@ -3307,6 +3777,122 @@
<translation>PM</translation>
</message>
</context>
<context>
<name>VoltageSensorsPage</name>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="8"/>
<source>Voltage sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="11"/>
<source>L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="12"/>
<source>L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="13"/>
<source>L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="14"/>
<source>Neutral</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="25"/>
<source>Voltage sensor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="54"/>
<source>Live measurements</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="70"/>
<source>Voltage L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="70"/>
<location filename="../qml/VoltageSensorsPage.qml" line="71"/>
<location filename="../qml/VoltageSensorsPage.qml" line="72"/>
<location filename="../qml/VoltageSensorsPage.qml" line="73"/>
<source>V</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="71"/>
<source>Voltage L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="72"/>
<source>Voltage L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="73"/>
<source>Neutral voltage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="74"/>
<source>Frequency</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="74"/>
<source>Hz</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="81"/>
<source>Phase assignment</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="87"/>
<source>Assign each physical voltage input to the electrical phase it measures.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="93"/>
<source>Voltage input 1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="98"/>
<source>Voltage input 2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="103"/>
<source>Voltage input 3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="108"/>
<source>Voltage input 4</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="116"/>
<source>Calibration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="121"/>
<source>Voltage calibration factor</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiErrorsPage</name>
<message>
+617 -31
View File
@@ -1015,6 +1015,163 @@
<translation>Strömnivåer</translation>
</message>
</context>
<context>
<name>CurrentSensorPage</name>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="14"/>
<source>L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="15"/>
<source>L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="16"/>
<source>L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="17"/>
<source>Neutral</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="50"/>
<source>Live measurement</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="51"/>
<source>Current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="51"/>
<source>A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="52"/>
<source>Active power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="52"/>
<source>W</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="53"/>
<source>Power factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="54"/>
<source>Voltage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="54"/>
<source>V</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="59"/>
<source>Sensor settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="64"/>
<source>Electrical phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="90"/>
<source>Invert measurement direction</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="98"/>
<source>Current transformer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="105"/>
<source>Enter the primary and secondary current printed on the current transformer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="112"/>
<source>Primary current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="117"/>
<location filename="../qml/CurrentSensorPage.qml" line="127"/>
<source>%1 A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="122"/>
<source>Secondary current</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CurrentSensorsPage</name>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="8"/>
<source>Current sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="19"/>
<source>Current sensor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="29"/>
<source>No measurement available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="33"/>
<source>%1 A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="35"/>
<source>%1 W</source>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="37"/>
<source>power factor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="55"/>
<source>Select a sensor to inspect its live data and configure its phase, direction and transformer ratio.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="79"/>
<source>Calibration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="84"/>
<source>Current calibration factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="92"/>
<source>Phase calibration factor</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DailyTripPage</name>
<message>
@@ -1679,28 +1836,28 @@
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="409"/>
<source>Switch firmware partition?</source>
<source>Switch firmware partition?</source>
<translation>Byta firmwarepartition?</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="414"/>
<source>Switch to firmware %1 and reboot the charger? The charger will temporarily disconnect.</source>
<source>Switch to firmware %1 and reboot the charger? The charger will temporarily disconnect.</source>
<translation>Byta till firmware %1 och starta om laddaren? Anslutningen till laddaren bryts tillfälligt.</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="421"/>
<source>Cancel</source>
<source>Cancel</source>
<translation>Avbryt</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="427"/>
<location filename="../qml/FirmwarePage.qml" line="692"/>
<source>Switch and reboot</source>
<source>Switch and reboot</source>
<translation>Byt och starta om</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="575"/>
<source>OTHER PARTITION</source>
<source>OTHER PARTITION</source>
<translation>ANNAN PARTITION</translation>
</message>
<message>
@@ -3054,12 +3211,325 @@
<translation>Ingen enhetsanslutning inställd!</translation>
</message>
</context>
<context>
<name>SensorCategoriesPage</name>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="8"/>
<source>Energy categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="23"/>
<source>%1 W</source>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="25"/>
<source>%1 Wh imported</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="27"/>
<source>hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="28"/>
<source>No measurement available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="62"/>
<source>Categories combine one or more current sensors into meaningful totals such as grid, home, car, solar or battery.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SensorCategoryPage</name>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="47"/>
<source>Current sensor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="51"/>
<source>None</source>
<translation type="unfinished">Ingen</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="52"/>
<source>Home</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="53"/>
<source>Grid</source>
<translation type="unfinished">Elnät</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="54"/>
<source>Car</source>
<translation type="unfinished">Bil</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="55"/>
<source>Relay</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="56"/>
<source>Solar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="57"/>
<source>Battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="75"/>
<source>Live data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="76"/>
<source>Power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="76"/>
<source>W</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="77"/>
<source>Current L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="77"/>
<location filename="../qml/SensorCategoryPage.qml" line="78"/>
<location filename="../qml/SensorCategoryPage.qml" line="79"/>
<location filename="../qml/SensorCategoryPage.qml" line="80"/>
<source>A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="78"/>
<source>Current L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="79"/>
<source>Current L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="80"/>
<source>Neutral current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="81"/>
<source>Imported energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="81"/>
<location filename="../qml/SensorCategoryPage.qml" line="82"/>
<location filename="../qml/SensorCategoryPage.qml" line="83"/>
<location filename="../qml/SensorCategoryPage.qml" line="84"/>
<location filename="../qml/SensorCategoryPage.qml" line="85"/>
<location filename="../qml/SensorCategoryPage.qml" line="86"/>
<location filename="../qml/SensorCategoryPage.qml" line="87"/>
<location filename="../qml/SensorCategoryPage.qml" line="88"/>
<location filename="../qml/SensorCategoryPage.qml" line="89"/>
<location filename="../qml/SensorCategoryPage.qml" line="90"/>
<source>Wh</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="82"/>
<source>Exported energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="83"/>
<source>Imported energy L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="84"/>
<source>Exported energy L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="85"/>
<source>Imported energy L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="86"/>
<source>Exported energy L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="87"/>
<source>Imported energy L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="88"/>
<source>Exported energy L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="89"/>
<source>Imported neutral energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="90"/>
<source>Exported neutral energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="95"/>
<source>Category settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="100"/>
<source>Show category</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="106"/>
<source>Category name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="117"/>
<source>Category icon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="144"/>
<source>Temporary external power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="148"/>
<source>Inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="149"/>
<source>%1 W</source>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="156"/>
<source>External power is a live input and expires if it is not refreshed by the sender.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="164"/>
<source>Sensor factors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="171"/>
<source>Each factor multiplies that sensor&apos;s current and power before adding it to this category. Use 0 to exclude a sensor, 1 to add it unchanged, or -1 to subtract it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="192"/>
<location filename="../qml/SensorCategoryPage.qml" line="207"/>
<source>Reset category</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="197"/>
<source>Reset this custom category, including its name, icon, factors and energy counters.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="198"/>
<source>Reset this category&apos;s visibility, sensor factors and energy counters to their defaults.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="219"/>
<source>Reset category?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="225"/>
<source>This resets the configuration and accumulated energy of %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SensorsConfigurationPage</name>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="6"/>
<source>Sensors Configuration</source>
<translation>Sensorkonfiguration</translation>
<translation type="vanished">Sensorkonfiguration</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="7"/>
<source>Sensors and categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="41"/>
<source>Measurement</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="48"/>
<source>Measurement service enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="54"/>
<source>Continuous raw measurement can reduce controller performance.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="65"/>
<source>Measurement update rate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="71"/>
<source>Voltage sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="72"/>
<source>Live voltages, phase assignment and calibration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="79"/>
<source>Current sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="80"/>
<source>Live current, power, phase, direction and CT ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="87"/>
<source>Energy categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="88"/>
<source>Power, energy counters and sensor factors</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -3153,122 +3623,122 @@
<translation>Jordningskontroll</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="55"/>
<location filename="../qml/SettingsTabPage.qml" line="71"/>
<source>Sensors Configuration</source>
<translation>Sensorkonfiguration</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="57"/>
<location filename="../qml/SettingsTabPage.qml" line="73"/>
<source>Sensors</source>
<translation>Sensorer</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="58"/>
<location filename="../qml/SettingsTabPage.qml" line="74"/>
<source>Categories</source>
<translation>Kategorier</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="104"/>
<location filename="../qml/SettingsTabPage.qml" line="122"/>
<source>Connection</source>
<translation>Anslutning</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="106"/>
<location filename="../qml/SettingsTabPage.qml" line="124"/>
<source>Wi-Fi</source>
<translation>Wi-Fi</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="107"/>
<location filename="../qml/SettingsTabPage.qml" line="125"/>
<source>Cellular</source>
<translation>Mobilnät</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="108"/>
<location filename="../qml/SettingsTabPage.qml" line="126"/>
<source>Hotspot</source>
<translation>Hotspot</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="109"/>
<location filename="../qml/SettingsTabPage.qml" line="127"/>
<source>Ethernet</source>
<translation>Ethernet</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="110"/>
<location filename="../qml/SettingsTabPage.qml" line="128"/>
<source>Cloud</source>
<translation>Moln</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="111"/>
<location filename="../qml/SettingsTabPage.qml" line="129"/>
<source>OCPP</source>
<translation>OCPP</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="112"/>
<location filename="../qml/SettingsTabPage.qml" line="130"/>
<source>MQTT</source>
<translation>MQTT</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="113"/>
<location filename="../qml/SettingsTabPage.qml" line="131"/>
<source>API Settings</source>
<translation>API-inställningar</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="138"/>
<location filename="../qml/SettingsTabPage.qml" line="156"/>
<source>General</source>
<translation>Allmänt</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="140"/>
<location filename="../qml/SettingsTabPage.qml" line="158"/>
<source>Name</source>
<translation>Namn</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="141"/>
<location filename="../qml/SettingsTabPage.qml" line="159"/>
<source>Switch Language</source>
<translation>Byt språk</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="142"/>
<location filename="../qml/SettingsTabPage.qml" line="160"/>
<source>Notifications</source>
<translation>Aviseringar</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="143"/>
<location filename="../qml/SettingsTabPage.qml" line="161"/>
<source>Date and time</source>
<translation>Datum och tid</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="144"/>
<location filename="../qml/SettingsTabPage.qml" line="162"/>
<source>LED</source>
<translation>LED</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="145"/>
<location filename="../qml/SettingsTabPage.qml" line="163"/>
<source>Controller</source>
<translation>Styrenhet</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="146"/>
<location filename="../qml/SettingsTabPage.qml" line="164"/>
<source>Display settings</source>
<translation>Displayinställningar</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="155"/>
<location filename="../qml/SettingsTabPage.qml" line="173"/>
<source>About</source>
<translation>Om appen</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="157"/>
<location filename="../qml/SettingsTabPage.qml" line="175"/>
<source>Firmware</source>
<translation>Firmware</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="158"/>
<location filename="../qml/SettingsTabPage.qml" line="176"/>
<source>Hardware information</source>
<translation>Hårdvaruinformation</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="159"/>
<location filename="../qml/SettingsTabPage.qml" line="177"/>
<source>Licenses</source>
<translation>Licenser</translation>
</message>
@@ -3307,6 +3777,122 @@
<translation>em</translation>
</message>
</context>
<context>
<name>VoltageSensorsPage</name>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="8"/>
<source>Voltage sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="11"/>
<source>L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="12"/>
<source>L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="13"/>
<source>L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="14"/>
<source>Neutral</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="25"/>
<source>Voltage sensor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="54"/>
<source>Live measurements</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="70"/>
<source>Voltage L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="70"/>
<location filename="../qml/VoltageSensorsPage.qml" line="71"/>
<location filename="../qml/VoltageSensorsPage.qml" line="72"/>
<location filename="../qml/VoltageSensorsPage.qml" line="73"/>
<source>V</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="71"/>
<source>Voltage L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="72"/>
<source>Voltage L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="73"/>
<source>Neutral voltage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="74"/>
<source>Frequency</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="74"/>
<source>Hz</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="81"/>
<source>Phase assignment</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="87"/>
<source>Assign each physical voltage input to the electrical phase it measures.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="93"/>
<source>Voltage input 1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="98"/>
<source>Voltage input 2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="103"/>
<source>Voltage input 3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="108"/>
<source>Voltage input 4</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="116"/>
<source>Calibration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="121"/>
<source>Voltage calibration factor</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiErrorsPage</name>
<message>
+617 -31
View File
@@ -1015,6 +1015,163 @@
<translation>Akım seviyeleri</translation>
</message>
</context>
<context>
<name>CurrentSensorPage</name>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="14"/>
<source>L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="15"/>
<source>L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="16"/>
<source>L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="17"/>
<source>Neutral</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="50"/>
<source>Live measurement</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="51"/>
<source>Current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="51"/>
<source>A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="52"/>
<source>Active power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="52"/>
<source>W</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="53"/>
<source>Power factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="54"/>
<source>Voltage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="54"/>
<source>V</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="59"/>
<source>Sensor settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="64"/>
<source>Electrical phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="90"/>
<source>Invert measurement direction</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="98"/>
<source>Current transformer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="105"/>
<source>Enter the primary and secondary current printed on the current transformer.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="112"/>
<source>Primary current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="117"/>
<location filename="../qml/CurrentSensorPage.qml" line="127"/>
<source>%1 A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorPage.qml" line="122"/>
<source>Secondary current</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CurrentSensorsPage</name>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="8"/>
<source>Current sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="19"/>
<source>Current sensor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="29"/>
<source>No measurement available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="33"/>
<source>%1 A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="35"/>
<source>%1 W</source>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="37"/>
<source>power factor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="55"/>
<source>Select a sensor to inspect its live data and configure its phase, direction and transformer ratio.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="79"/>
<source>Calibration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="84"/>
<source>Current calibration factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/CurrentSensorsPage.qml" line="92"/>
<source>Phase calibration factor</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DailyTripPage</name>
<message>
@@ -1679,28 +1836,28 @@
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="409"/>
<source>Switch firmware partition?</source>
<source>Switch firmware partition?</source>
<translation>Firmware bölümü değiştirilsin mi?</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="414"/>
<source>Switch to firmware %1 and reboot the charger? The charger will temporarily disconnect.</source>
<source>Switch to firmware %1 and reboot the charger? The charger will temporarily disconnect.</source>
<translation>%1 firmware sürümüne geçilip şarj cihazı yeniden başlatılsın mı? Şarj cihazıyla bağlantı geçici olarak kesilecektir.</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="421"/>
<source>Cancel</source>
<source>Cancel</source>
<translation>İptal</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="427"/>
<location filename="../qml/FirmwarePage.qml" line="692"/>
<source>Switch and reboot</source>
<source>Switch and reboot</source>
<translation>Değiştir ve yeniden başlat</translation>
</message>
<message>
<location filename="../qml/FirmwarePage.qml" line="575"/>
<source>OTHER PARTITION</source>
<source>OTHER PARTITION</source>
<translation>DİĞER BÖLÜM</translation>
</message>
<message>
@@ -3054,12 +3211,325 @@
<translation>Cihaz bağlantısı ayarlanmadı!</translation>
</message>
</context>
<context>
<name>SensorCategoriesPage</name>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="8"/>
<source>Energy categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="23"/>
<source>%1 W</source>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="25"/>
<source>%1 Wh imported</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="27"/>
<source>hidden</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="28"/>
<source>No measurement available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoriesPage.qml" line="62"/>
<source>Categories combine one or more current sensors into meaningful totals such as grid, home, car, solar or battery.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SensorCategoryPage</name>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="47"/>
<source>Current sensor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="51"/>
<source>None</source>
<translation type="unfinished">Hiçbiri</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="52"/>
<source>Home</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="53"/>
<source>Grid</source>
<translation type="unfinished">Şebeke</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="54"/>
<source>Car</source>
<translation type="unfinished">Araba</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="55"/>
<source>Relay</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="56"/>
<source>Solar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="57"/>
<source>Battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="75"/>
<source>Live data</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="76"/>
<source>Power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="76"/>
<source>W</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="77"/>
<source>Current L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="77"/>
<location filename="../qml/SensorCategoryPage.qml" line="78"/>
<location filename="../qml/SensorCategoryPage.qml" line="79"/>
<location filename="../qml/SensorCategoryPage.qml" line="80"/>
<source>A</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="78"/>
<source>Current L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="79"/>
<source>Current L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="80"/>
<source>Neutral current</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="81"/>
<source>Imported energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="81"/>
<location filename="../qml/SensorCategoryPage.qml" line="82"/>
<location filename="../qml/SensorCategoryPage.qml" line="83"/>
<location filename="../qml/SensorCategoryPage.qml" line="84"/>
<location filename="../qml/SensorCategoryPage.qml" line="85"/>
<location filename="../qml/SensorCategoryPage.qml" line="86"/>
<location filename="../qml/SensorCategoryPage.qml" line="87"/>
<location filename="../qml/SensorCategoryPage.qml" line="88"/>
<location filename="../qml/SensorCategoryPage.qml" line="89"/>
<location filename="../qml/SensorCategoryPage.qml" line="90"/>
<source>Wh</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="82"/>
<source>Exported energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="83"/>
<source>Imported energy L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="84"/>
<source>Exported energy L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="85"/>
<source>Imported energy L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="86"/>
<source>Exported energy L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="87"/>
<source>Imported energy L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="88"/>
<source>Exported energy L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="89"/>
<source>Imported neutral energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="90"/>
<source>Exported neutral energy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="95"/>
<source>Category settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="100"/>
<source>Show category</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="106"/>
<source>Category name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="117"/>
<source>Category icon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="144"/>
<source>Temporary external power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="148"/>
<source>Inactive</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="149"/>
<source>%1 W</source>
<translation type="unfinished">%1 W</translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="156"/>
<source>External power is a live input and expires if it is not refreshed by the sender.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="164"/>
<source>Sensor factors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="171"/>
<source>Each factor multiplies that sensor&apos;s current and power before adding it to this category. Use 0 to exclude a sensor, 1 to add it unchanged, or -1 to subtract it.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="192"/>
<location filename="../qml/SensorCategoryPage.qml" line="207"/>
<source>Reset category</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="197"/>
<source>Reset this custom category, including its name, icon, factors and energy counters.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="198"/>
<source>Reset this category&apos;s visibility, sensor factors and energy counters to their defaults.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="219"/>
<source>Reset category?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorCategoryPage.qml" line="225"/>
<source>This resets the configuration and accumulated energy of %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SensorsConfigurationPage</name>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="6"/>
<source>Sensors Configuration</source>
<translation>Sensör Yapılandırması</translation>
<translation type="vanished">Sensör Yapılandırması</translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="7"/>
<source>Sensors and categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="41"/>
<source>Measurement</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="48"/>
<source>Measurement service enabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="54"/>
<source>Continuous raw measurement can reduce controller performance.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="65"/>
<source>Measurement update rate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="71"/>
<source>Voltage sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="72"/>
<source>Live voltages, phase assignment and calibration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="79"/>
<source>Current sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="80"/>
<source>Live current, power, phase, direction and CT ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="87"/>
<source>Energy categories</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/SensorsConfigurationPage.qml" line="88"/>
<source>Power, energy counters and sensor factors</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -3153,122 +3623,122 @@
<translation>Topraklama kontrolü</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="55"/>
<location filename="../qml/SettingsTabPage.qml" line="71"/>
<source>Sensors Configuration</source>
<translation>Sensör Yapılandırması</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="57"/>
<location filename="../qml/SettingsTabPage.qml" line="73"/>
<source>Sensors</source>
<translation>Sensörler</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="58"/>
<location filename="../qml/SettingsTabPage.qml" line="74"/>
<source>Categories</source>
<translation>Kategoriler</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="104"/>
<location filename="../qml/SettingsTabPage.qml" line="122"/>
<source>Connection</source>
<translation>Bağlantı</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="106"/>
<location filename="../qml/SettingsTabPage.qml" line="124"/>
<source>Wi-Fi</source>
<translation>Wi-Fi</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="107"/>
<location filename="../qml/SettingsTabPage.qml" line="125"/>
<source>Cellular</source>
<translation>Mobil ağ</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="108"/>
<location filename="../qml/SettingsTabPage.qml" line="126"/>
<source>Hotspot</source>
<translation>Erişim noktası</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="109"/>
<location filename="../qml/SettingsTabPage.qml" line="127"/>
<source>Ethernet</source>
<translation>Ethernet</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="110"/>
<location filename="../qml/SettingsTabPage.qml" line="128"/>
<source>Cloud</source>
<translation>Bulut</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="111"/>
<location filename="../qml/SettingsTabPage.qml" line="129"/>
<source>OCPP</source>
<translation>OCPP</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="112"/>
<location filename="../qml/SettingsTabPage.qml" line="130"/>
<source>MQTT</source>
<translation>MQTT</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="113"/>
<location filename="../qml/SettingsTabPage.qml" line="131"/>
<source>API Settings</source>
<translation>API Ayarları</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="138"/>
<location filename="../qml/SettingsTabPage.qml" line="156"/>
<source>General</source>
<translation>Genel</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="140"/>
<location filename="../qml/SettingsTabPage.qml" line="158"/>
<source>Name</source>
<translation>İsim</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="141"/>
<location filename="../qml/SettingsTabPage.qml" line="159"/>
<source>Switch Language</source>
<translation>Dili Değiştir</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="142"/>
<location filename="../qml/SettingsTabPage.qml" line="160"/>
<source>Notifications</source>
<translation>Bildirimler</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="143"/>
<location filename="../qml/SettingsTabPage.qml" line="161"/>
<source>Date and time</source>
<translation>Tarih ve saat</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="144"/>
<location filename="../qml/SettingsTabPage.qml" line="162"/>
<source>LED</source>
<translation>LED</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="145"/>
<location filename="../qml/SettingsTabPage.qml" line="163"/>
<source>Controller</source>
<translation>Kontrol cihazı</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="146"/>
<location filename="../qml/SettingsTabPage.qml" line="164"/>
<source>Display settings</source>
<translation>Ekran ayarları</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="155"/>
<location filename="../qml/SettingsTabPage.qml" line="173"/>
<source>About</source>
<translation>Hakkında</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="157"/>
<location filename="../qml/SettingsTabPage.qml" line="175"/>
<source>Firmware</source>
<translation>Firmware</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="158"/>
<location filename="../qml/SettingsTabPage.qml" line="176"/>
<source>Hardware information</source>
<translation>Donanım bilgileri</translation>
</message>
<message>
<location filename="../qml/SettingsTabPage.qml" line="159"/>
<location filename="../qml/SettingsTabPage.qml" line="177"/>
<source>Licenses</source>
<translation>Lisanslar</translation>
</message>
@@ -3307,6 +3777,122 @@
<translation>ÖS</translation>
</message>
</context>
<context>
<name>VoltageSensorsPage</name>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="8"/>
<source>Voltage sensors</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="11"/>
<source>L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="12"/>
<source>L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="13"/>
<source>L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="14"/>
<source>Neutral</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="25"/>
<source>Voltage sensor %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="54"/>
<source>Live measurements</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="70"/>
<source>Voltage L1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="70"/>
<location filename="../qml/VoltageSensorsPage.qml" line="71"/>
<location filename="../qml/VoltageSensorsPage.qml" line="72"/>
<location filename="../qml/VoltageSensorsPage.qml" line="73"/>
<source>V</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="71"/>
<source>Voltage L2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="72"/>
<source>Voltage L3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="73"/>
<source>Neutral voltage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="74"/>
<source>Frequency</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="74"/>
<source>Hz</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="81"/>
<source>Phase assignment</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="87"/>
<source>Assign each physical voltage input to the electrical phase it measures.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="93"/>
<source>Voltage input 1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="98"/>
<source>Voltage input 2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="103"/>
<source>Voltage input 3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="108"/>
<source>Voltage input 4</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="116"/>
<source>Calibration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/VoltageSensorsPage.qml" line="121"/>
<source>Voltage calibration factor</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiErrorsPage</name>
<message>
+130
View File
@@ -0,0 +1,130 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import EVChargerApp
NavigationPage {
id: page
required property int sensorIndex
property string fallbackSensorName
title: sensorName()
readonly property var phaseChoices: [
{ value: 0, text: qsTr("L1") },
{ value: 1, text: qsTr("L2") },
{ value: 2, text: qsTr("L3") },
{ value: 3, text: qsTr("Neutral") }
]
readonly property var reading: valueAt(sensorValues.value, sensorIndex)
function valueAt(array, index) {
return array !== null && array !== undefined && array.length !== undefined
&& index >= 0 && index < array.length ? array[index] : undefined
}
function sensorName() {
const name = valueAt(sensorNames.value, sensorIndex)
return name === null || name === undefined ? fallbackSensorName : name
}
ApiKeyValueHelper {
id: sensorNames
deviceConnection: theDeviceConnection
apiKey: "isn"
}
ApiKeyValueHelper {
id: sensorValues
deviceConnection: theDeviceConnection
apiKey: "isv"
}
ApiKeyValueHelper {
id: ctRatios
deviceConnection: theDeviceConnection
apiKey: "ctr"
}
SettingsCard {
SettingsSectionLabel { text: qsTr("Live measurement") }
MeasurementRow { label: qsTr("Current"); value: page.reading ? page.reading.i : undefined; unit: qsTr("A") }
MeasurementRow { label: qsTr("Active power"); value: page.reading ? page.reading.p : undefined; unit: qsTr("W") }
MeasurementRow { label: qsTr("Power factor"); value: page.reading ? page.reading.f : undefined; decimals: 3 }
MeasurementRow { label: qsTr("Voltage"); value: page.reading ? page.reading.u : undefined; unit: qsTr("V") }
}
Text {
Layout.fillWidth: true
text: qsTr("Sensor settings")
font.bold: true
}
IndexedEditValueItem {
text: qsTr("Electrical phase")
apiKey: "ips"
arrayIndex: page.sensorIndex
valueText: {
for (let i = 0; i < page.phaseChoices.length; ++i) {
if (page.phaseChoices[i].value === value)
return page.phaseChoices[i].text
}
return "—"
}
editableItem: ComboBox {
id: phaseCombo
property var value
model: page.phaseChoices
textRole: "text"
valueRole: "value"
onValueChanged: {
const selected = indexOfValue(value)
if (selected >= 0)
currentIndex = selected
}
onActivated: value = currentValue
}
}
IndexedOnOffSwitch {
text: qsTr("Invert measurement direction")
apiKey: "iim"
arrayIndex: page.sensorIndex
}
Text {
Layout.fillWidth: true
Layout.topMargin: 8
text: qsTr("Current transformer")
font.bold: true
visible: ctRatios.exists
}
Text {
Layout.fillWidth: true
text: qsTr("Enter the primary and secondary current printed on the current transformer.")
color: "gray"
wrapMode: Text.Wrap
visible: ctRatios.exists
}
IndexedEditValueItem {
text: qsTr("Primary current")
apiKey: "ctr"
arrayIndex: page.sensorIndex
innerArrayIndex: 0
sendCompleteArray: true
valueText: value === null || value === undefined ? "—" : qsTr("%1 A").arg(Qt.locale().toString(Number(value)))
editableItem: SpinBox { editable: true; from: 1; to: 100000; stepSize: 1 }
}
IndexedEditValueItem {
text: qsTr("Secondary current")
apiKey: "ctr"
arrayIndex: page.sensorIndex
innerArrayIndex: 1
sendCompleteArray: true
valueText: value === null || value === undefined ? "—" : qsTr("%1 A").arg(Qt.locale().toString(Number(value)))
editableItem: SpinBox { editable: true; from: 1; to: 100000; stepSize: 1 }
}
}
+98
View File
@@ -0,0 +1,98 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import EVChargerApp
NavigationPage {
id: page
title: qsTr("Current sensors")
readonly property int sensorCount: Math.max(arrayLength(sensorNames.value), arrayLength(sensorValues.value))
function arrayLength(value) {
return value !== null && value !== undefined && value.length !== undefined ? value.length : 0
}
function sensorName(index) {
if (arrayLength(sensorNames.value) > index)
return sensorNames.value[index]
return qsTr("Current sensor %1").arg(index + 1)
}
function sensorValue(index) {
return arrayLength(sensorValues.value) > index ? sensorValues.value[index] : null
}
function formatReading(index) {
const reading = sensorValue(index)
if (!reading)
return qsTr("No measurement available")
const values = []
if (reading.i !== null && reading.i !== undefined)
values.push(qsTr("%1 A").arg(Qt.locale().toString(Number(reading.i), "f", 2)))
if (reading.p !== null && reading.p !== undefined)
values.push(qsTr("%1 W").arg(Qt.locale().toString(Number(reading.p), "f", 2)))
if (reading.f !== null && reading.f !== undefined)
values.push(qsTr("power factor %1").arg(Qt.locale().toString(Number(reading.f), "f", 3)))
return values.join(" • ")
}
ApiKeyValueHelper {
id: sensorNames
deviceConnection: theDeviceConnection
apiKey: "isn"
}
ApiKeyValueHelper {
id: sensorValues
deviceConnection: theDeviceConnection
apiKey: "isv"
}
Text {
Layout.fillWidth: true
text: qsTr("Select a sensor to inspect its live data and configure its phase, direction and transformer ratio.")
color: "gray"
wrapMode: Text.Wrap
}
Repeater {
model: page.sensorCount
NavigationItem {
required property int index
title: page.sensorName(index)
description: page.formatReading(index)
iconName: "speed"
componentProperties: ({
sensorIndex: index,
fallbackSensorName: page.sensorName(index)
})
component: Component { CurrentSensorPage {} }
}
}
Text {
Layout.fillWidth: true
Layout.topMargin: 8
text: qsTr("Calibration")
font.bold: true
}
EditValueItem {
text: qsTr("Current calibration factor")
apiKey: "mic"
visible: exists
valueText: value === null || value === undefined ? "—" : Qt.locale().toString(Number(value), "f", 5)
editableItem: DoubleSpinBox { decimals: 5; from: 0; to: 1000; stepSize: 0.00001 }
}
EditValueItem {
text: qsTr("Phase calibration factor")
apiKey: "mpc"
visible: exists
valueText: value === null || value === undefined ? "—" : Qt.locale().toString(Number(value), "f", 5)
editableItem: DoubleSpinBox { decimals: 5; from: -1000; to: 1000; stepSize: 0.00001 }
}
}
+16 -7
View File
@@ -4,6 +4,9 @@ import QtQuick.Controls
Item {
id: doubleSpinBox
implicitWidth: spinbox.implicitWidth
implicitHeight: spinbox.implicitHeight
property int decimals: 2
property real value: 0.0
property real from: 0.0
@@ -15,19 +18,25 @@ Item {
id: spinbox
stepSize: doubleSpinBox.stepSize * factor
value: doubleSpinBox.value * factor
stepSize: Math.max(1, Math.round(doubleSpinBox.stepSize * factor))
value: Math.round(doubleSpinBox.value * factor)
onValueChanged: doubleSpinBox.value = spinbox.value / factor
to : doubleSpinBox.to * factor
from : doubleSpinBox.from * factor
to: Math.round(doubleSpinBox.to * factor)
from: Math.round(doubleSpinBox.from * factor)
validator: DoubleValidator {
bottom: Math.min(spinbox.from, spinbox.to) * spinbox.factor
top: Math.max(spinbox.from, spinbox.to) * spinbox.factor
bottom: Math.min(doubleSpinBox.from, doubleSpinBox.to)
top: Math.max(doubleSpinBox.from, doubleSpinBox.to)
decimals: doubleSpinBox.decimals
locale: spinbox.locale.name
}
textFromValue: function(value, locale) {
return parseFloat(value * 1.0 / factor).toFixed(decimals)
return locale.toString(value / factor, "f", doubleSpinBox.decimals)
}
valueFromText: function(text, locale) {
return Math.round(locale.toDouble(text) * factor)
}
}
}
+133
View File
@@ -0,0 +1,133 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import EVChargerApp
WhiteItemDelegate {
id: itemDelegate
required property string apiKey
required property int arrayIndex
property int innerArrayIndex: -1
property bool sendCompleteArray: false
property alias editableItem: dialog.contentItem
property var editValueTransform: null
property string valueText: value === null || value === undefined ? "—" : String(value)
readonly property alias exists: apiValue.exists
readonly property var value: valueAt(apiValue.value)
Layout.fillWidth: true
visible: exists
function valueAt(source) {
if (source === null || source === undefined || source.length === undefined
|| arrayIndex < 0 || arrayIndex >= source.length)
return undefined
const outerValue = source[arrayIndex]
if (innerArrayIndex < 0)
return outerValue
if (outerValue === null || outerValue === undefined || outerValue.length === undefined
|| innerArrayIndex >= outerValue.length)
return undefined
return outerValue[innerArrayIndex]
}
function sparseValue(newValue) {
if (sendCompleteArray) {
const source = apiValue.value
const complete = []
if (source !== null && source !== undefined && source.length !== undefined) {
for (let i = 0; i < source.length; ++i) {
const sourceEntry = source[i]
if (sourceEntry !== null && sourceEntry !== undefined && sourceEntry.length !== undefined)
complete.push(Array.prototype.slice.call(sourceEntry))
else
complete.push(sourceEntry)
}
}
if (innerArrayIndex < 0) {
complete[arrayIndex] = newValue
} else {
while (complete.length <= arrayIndex)
complete.push(null)
let inner = complete[arrayIndex]
if (inner === null || inner === undefined || inner.length === undefined)
inner = []
while (inner.length <= innerArrayIndex)
inner.push(null)
inner[innerArrayIndex] = newValue
complete[arrayIndex] = inner
}
return complete
}
const result = []
for (let i = 0; i < arrayIndex; ++i)
result.push(null)
if (innerArrayIndex < 0) {
result.push(newValue)
} else {
const inner = []
for (let i = 0; i < innerArrayIndex; ++i)
inner.push(null)
inner.push(newValue)
result.push(inner)
}
return result
}
ApiKeyValueHelper {
id: apiValue
deviceConnection: theDeviceConnection
apiKey: itemDelegate.apiKey
}
SetValueHelper {
id: valueSetter
deviceConnection: theDeviceConnection
apiKey: itemDelegate.apiKey
}
contentItem: RowLayout {
SettingsLabel {
Layout.fillWidth: true
text: itemDelegate.text
}
BusyIndicator {
visible: valueSetter.pending
}
RequestStatusText {
request: valueSetter
}
Text {
text: itemDelegate.valueText
}
MaterialIcon {
iconName: "chevron_right"
font.pixelSize: 22
}
}
onClicked: {
editableItem.value = editValueTransform === null
? value : editValueTransform(value)
dialog.open()
}
CenteredDialog {
id: dialog
title: itemDelegate.text
standardButtons: Dialog.Ok | Dialog.Cancel
focus: true
modal: true
onAccepted: valueSetter.setValue(itemDelegate.sparseValue(editableItem.value))
}
}
+51
View File
@@ -0,0 +1,51 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import EVChargerApp
WhiteCheckDelegate {
id: control
required property string apiKey
required property int arrayIndex
readonly property alias exists: apiValue.exists
readonly property var value: apiValue.value !== null && apiValue.value !== undefined
&& apiValue.value.length !== undefined
&& arrayIndex >= 0 && arrayIndex < apiValue.value.length
? apiValue.value[arrayIndex] : undefined
Layout.fillWidth: true
visible: exists
checked: value === true
ApiKeyValueHelper {
id: apiValue
deviceConnection: theDeviceConnection
apiKey: control.apiKey
}
SetValueHelper {
id: valueSetter
deviceConnection: theDeviceConnection
apiKey: control.apiKey
onResponseChanged: control.checked = Qt.binding(function() {
return control.value === true
})
}
onClicked: {
const update = []
for (let i = 0; i < arrayIndex; ++i)
update.push(null)
update.push(checked)
valueSetter.setValue(update)
}
BusyIndicator {
visible: valueSetter.pending
}
RequestStatusText {
request: valueSetter
}
}
+36
View File
@@ -0,0 +1,36 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
RowLayout {
id: row
required property string label
required property var value
property string unit
property int decimals: 2
property var valueFormatter: null
readonly property bool available: value !== null && value !== undefined
Layout.fillWidth: true
visible: available
SettingsLabel {
Layout.fillWidth: true
text: row.label
}
Text {
text: {
if (!row.available)
return "—"
if (row.valueFormatter !== null)
return row.valueFormatter(row.value)
const number = Number(row.value)
const formatted = isNaN(number)
? String(row.value)
: Qt.locale().toString(number, "f", row.decimals)
return row.unit === "" ? formatted : formatted + " " + row.unit
}
}
}
+2 -1
View File
@@ -10,13 +10,14 @@ WhiteItemDelegate {
property alias title: titleText.text
property string description
property Component component
property var componentProperties: ({})
Layout.fillWidth: true
implicitWidth: row.implicitWidth
implicitHeight: Math.max(row.implicitHeight, 50)
onClicked: stackView.push(navigationItem.component)
onClicked: stackView.push(navigationItem.component, navigationItem.componentProperties)
RowLayout {
id: row
@@ -0,0 +1,83 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import EVChargerApp
NavigationPage {
id: page
title: qsTr("Energy categories")
function arrayLength(value) {
return value !== null && value !== undefined && value.length !== undefined ? value.length : 0
}
function valueAt(array, index) {
return arrayLength(array) > index ? array[index] : undefined
}
function categoryDescription(index) {
const pieces = []
const power = valueAt(categoryPowers.value, index)
const energies = valueAt(categoryEnergies.value, index)
if (power !== null && power !== undefined)
pieces.push(qsTr("%1 W").arg(Qt.locale().toString(Number(power), "f", 2)))
if (energies && energies.length > 0)
pieces.push(qsTr("%1 Wh imported").arg(Qt.locale().toString(Number(energies[0]), "f", 2)))
if (valueAt(categoryShown.value, index) === false)
pieces.push(qsTr("hidden"))
return pieces.length > 0 ? pieces.join(" • ") : qsTr("No measurement available")
}
function categoryIcon(index) {
const icons = ["home", "electrical_services", "directions_car", "toggle_on", "solar_power", "battery_charging_full"]
return index < icons.length ? icons[index] : "category"
}
ApiKeyValueHelper {
id: categoryNames
deviceConnection: theDeviceConnection
apiKey: "ccn"
}
ApiKeyValueHelper {
id: categoryPowers
deviceConnection: theDeviceConnection
apiKey: "ccp"
}
ApiKeyValueHelper {
id: categoryEnergies
deviceConnection: theDeviceConnection
apiKey: "cec"
}
ApiKeyValueHelper {
id: categoryShown
deviceConnection: theDeviceConnection
apiKey: "ccs"
}
Text {
Layout.fillWidth: true
text: qsTr("Categories combine one or more current sensors into meaningful totals such as grid, home, car, solar or battery.")
color: "gray"
wrapMode: Text.Wrap
}
Repeater {
model: categoryNames.value
NavigationItem {
required property int index
required property var modelData
title: String(modelData)
description: page.categoryDescription(index)
iconName: page.categoryIcon(index)
componentProperties: ({
categoryIndex: index,
fallbackCategoryName: String(modelData)
})
component: Component { SensorCategoryPage {} }
}
}
}
+235
View File
@@ -0,0 +1,235 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import EVChargerApp
NavigationPage {
id: page
required property int categoryIndex
property string fallbackCategoryName
title: categoryName()
readonly property int categoryCount: arrayLength(categoryNames.value)
readonly property int customCategoryCount: arrayLength(customCategoryIcons.value)
readonly property int builtInCategoryCount: Math.max(0, categoryCount - customCategoryCount)
readonly property int customCategoryIndex: categoryIndex - builtInCategoryCount
readonly property bool isCustomCategory: customCategoryIndex >= 0
readonly property int currentSensorCount: Math.max(arrayLength(currentSensorNames.value), arrayLength(categoryFactors.value))
readonly property var categoryPower: valueAt(categoryPowers.value, categoryIndex)
readonly property var categoryCurrents: valueAt(phaseCurrents.value, categoryIndex)
readonly property var categoryEnergy: valueAt(categoryEnergies.value, categoryIndex)
function arrayLength(value) {
return value !== null && value !== undefined && value.length !== undefined ? value.length : 0
}
function valueAt(array, index) {
return arrayLength(array) > index ? array[index] : undefined
}
function categoryName() {
const name = valueAt(categoryNames.value, categoryIndex)
return name === null || name === undefined ? fallbackCategoryName : String(name)
}
function energyAt(index) {
return valueAt(categoryEnergy, index)
}
function currentAt(index) {
return valueAt(categoryCurrents, index)
}
function currentSensorName(index) {
const name = valueAt(currentSensorNames.value, index)
return name === null || name === undefined
? qsTr("Current sensor %1").arg(index + 1) : String(name)
}
readonly property var iconChoices: [
{ value: 0, text: qsTr("None") },
{ value: 1, text: qsTr("Home") },
{ value: 2, text: qsTr("Grid") },
{ value: 3, text: qsTr("Car") },
{ value: 4, text: qsTr("Relay") },
{ value: 5, text: qsTr("Solar") },
{ value: 6, text: qsTr("Battery") }
]
ApiKeyValueHelper { id: categoryNames; deviceConnection: theDeviceConnection; apiKey: "ccn" }
ApiKeyValueHelper { id: categoryPowers; deviceConnection: theDeviceConnection; apiKey: "ccp" }
ApiKeyValueHelper { id: phaseCurrents; deviceConnection: theDeviceConnection; apiKey: "cpc" }
ApiKeyValueHelper { id: categoryEnergies; deviceConnection: theDeviceConnection; apiKey: "cec" }
ApiKeyValueHelper { id: currentSensorNames; deviceConnection: theDeviceConnection; apiKey: "isn" }
ApiKeyValueHelper { id: categoryFactors; deviceConnection: theDeviceConnection; apiKey: "ccf" }
ApiKeyValueHelper { id: customCategoryIcons; deviceConnection: theDeviceConnection; apiKey: "ccci" }
ApiKeyValueHelper { id: externalPowers; deviceConnection: theDeviceConnection; apiKey: "ecp" }
SendMessageHelper {
id: resetCategory
deviceConnection: theDeviceConnection
}
SettingsCard {
SettingsSectionLabel { text: qsTr("Live data") }
MeasurementRow { label: qsTr("Power"); value: page.categoryPower; unit: qsTr("W") }
MeasurementRow { label: qsTr("Current L1"); value: page.currentAt(0); unit: qsTr("A") }
MeasurementRow { label: qsTr("Current L2"); value: page.currentAt(1); unit: qsTr("A") }
MeasurementRow { label: qsTr("Current L3"); value: page.currentAt(2); unit: qsTr("A") }
MeasurementRow { label: qsTr("Neutral current"); value: page.currentAt(3); unit: qsTr("A") }
MeasurementRow { label: qsTr("Imported energy"); value: page.energyAt(0); unit: qsTr("Wh") }
MeasurementRow { label: qsTr("Exported energy"); value: page.energyAt(1); unit: qsTr("Wh") }
MeasurementRow { label: qsTr("Imported energy L1"); value: page.energyAt(2); unit: qsTr("Wh") }
MeasurementRow { label: qsTr("Exported energy L1"); value: page.energyAt(3); unit: qsTr("Wh") }
MeasurementRow { label: qsTr("Imported energy L2"); value: page.energyAt(4); unit: qsTr("Wh") }
MeasurementRow { label: qsTr("Exported energy L2"); value: page.energyAt(5); unit: qsTr("Wh") }
MeasurementRow { label: qsTr("Imported energy L3"); value: page.energyAt(6); unit: qsTr("Wh") }
MeasurementRow { label: qsTr("Exported energy L3"); value: page.energyAt(7); unit: qsTr("Wh") }
MeasurementRow { label: qsTr("Imported neutral energy"); value: page.energyAt(8); unit: qsTr("Wh") }
MeasurementRow { label: qsTr("Exported neutral energy"); value: page.energyAt(9); unit: qsTr("Wh") }
}
Text {
Layout.fillWidth: true
text: qsTr("Category settings")
font.bold: true
}
IndexedOnOffSwitch {
text: qsTr("Show category")
apiKey: "ccs"
arrayIndex: page.categoryIndex
}
IndexedEditValueItem {
text: qsTr("Category name")
apiKey: "ccn"
arrayIndex: page.categoryIndex
visible: exists && page.isCustomCategory
editableItem: TextField {
id: categoryNameField
property alias value: categoryNameField.text
}
}
IndexedEditValueItem {
text: qsTr("Category icon")
apiKey: "ccci"
arrayIndex: page.customCategoryIndex
visible: exists && page.isCustomCategory
valueText: {
for (let i = 0; i < page.iconChoices.length; ++i) {
if (page.iconChoices[i].value === value)
return page.iconChoices[i].text
}
return "—"
}
editableItem: ComboBox {
id: iconCombo
property var value
model: page.iconChoices
textRole: "text"
valueRole: "value"
onValueChanged: {
const selected = indexOfValue(value)
if (selected >= 0)
currentIndex = selected
}
onActivated: value = currentValue
}
}
IndexedEditValueItem {
text: qsTr("Temporary external power")
apiKey: "ecp"
arrayIndex: page.categoryIndex
editValueTransform: function(value) { return value === null || value === undefined ? 0 : value }
valueText: value === null || value === undefined ? qsTr("Inactive")
: qsTr("%1 W").arg(Qt.locale().toString(Number(value), "f", 3))
editableItem: DoubleSpinBox { decimals: 3; from: -1000000; to: 1000000; stepSize: 1 }
}
Text {
Layout.fillWidth: true
visible: externalPowers.exists
text: qsTr("External power is a live input and expires if it is not refreshed by the sender.")
color: "gray"
wrapMode: Text.Wrap
}
Text {
Layout.fillWidth: true
Layout.topMargin: 8
text: qsTr("Sensor factors")
font.bold: true
visible: categoryFactors.exists
}
Text {
Layout.fillWidth: true
text: qsTr("Each factor multiplies that sensor's current and power before adding it to this category. Use 0 to exclude a sensor, 1 to add it unchanged, or -1 to subtract it.")
color: "gray"
wrapMode: Text.Wrap
visible: categoryFactors.exists
}
Repeater {
model: page.currentSensorCount
IndexedEditValueItem {
required property int index
text: page.currentSensorName(index)
apiKey: "ccf"
arrayIndex: index
innerArrayIndex: page.categoryIndex
valueText: value === null || value === undefined ? "—" : Qt.locale().toString(Number(value), "f", 3)
editableItem: DoubleSpinBox { decimals: 3; from: -1000; to: 1000; stepSize: 0.001 }
}
}
SettingsCard {
SettingsSectionLabel { text: qsTr("Reset category") }
Text {
Layout.fillWidth: true
text: page.isCustomCategory
? qsTr("Reset this custom category, including its name, icon, factors and energy counters.")
: qsTr("Reset this category's visibility, sensor factors and energy counters to their defaults.")
color: "gray"
wrapMode: Text.Wrap
}
RowLayout {
Layout.fillWidth: true
Button {
text: qsTr("Reset category")
enabled: !resetCategory.pending
onClicked: resetConfirmation.open()
}
BusyIndicator { visible: resetCategory.pending }
RequestStatusText { request: resetCategory }
}
}
CenteredDialog {
id: resetConfirmation
title: qsTr("Reset category?")
standardButtons: Dialog.Yes | Dialog.No
modal: true
Label {
width: parent.width
text: qsTr("This resets the configuration and accumulated energy of %1.").arg(page.categoryName())
wrapMode: Text.Wrap
}
onAccepted: resetCategory.sendMessage({
type: "setValue",
key: "ccc",
value: page.categoryIndex
})
}
}
+82 -3
View File
@@ -1,13 +1,92 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import EVChargerApp
NavigationPage {
title: qsTr("Sensors Configuration")
title: qsTr("Sensors and categories")
ApiKeyValueHelper {
id: voltageNames
deviceConnection: theDeviceConnection
apiKey: "usn"
}
ApiKeyValueHelper {
id: voltageValues
deviceConnection: theDeviceConnection
apiKey: "usv"
}
ApiKeyValueHelper {
id: currentNames
deviceConnection: theDeviceConnection
apiKey: "isn"
}
ApiKeyValueHelper {
id: currentValues
deviceConnection: theDeviceConnection
apiKey: "isv"
}
ApiKeyValueHelper {
id: categoryNames
deviceConnection: theDeviceConnection
apiKey: "ccn"
}
Text {
text: "TODO"
Layout.fillWidth: true
text: qsTr("Measurement")
font.bold: true
}
Layout.fillHeight: true
GeneralOnOffSwitch {
id: measurementService
apiKey: "mea"
text: qsTr("Measurement service enabled")
}
Text {
Layout.fillWidth: true
visible: measurementService.exists
text: qsTr("Continuous raw measurement can reduce controller performance.")
color: "gray"
wrapMode: Text.Wrap
}
SettingsCard {
visible: updateRate.exists
ApiStatusRow {
id: updateRate
apiKey: "mur"
label: qsTr("Measurement update rate")
}
}
NavigationItem {
iconName: "electric_meter"
title: qsTr("Voltage sensors")
description: qsTr("Live voltages, phase assignment and calibration")
visible: voltageNames.exists || voltageValues.exists
component: Component { VoltageSensorsPage {} }
}
NavigationItem {
iconName: "speed"
title: qsTr("Current sensors")
description: qsTr("Live current, power, phase, direction and CT ratio")
visible: currentNames.exists || currentValues.exists
component: Component { CurrentSensorsPage {} }
}
NavigationItem {
iconName: "category"
title: qsTr("Energy categories")
description: qsTr("Power, energy counters and sensor factors")
visible: categoryNames.exists
component: Component { SensorCategoriesPage {} }
}
}
+19 -1
View File
@@ -51,6 +51,22 @@ AnimatedStackView {
visible: carApiKeyHelper.exists
}
NavigationItem {
ApiKeyValueHelper {
id: sensorCategoriesApiKeyHelper
deviceConnection: theDeviceConnection
apiKey: "ccn"
}
ApiKeyValueHelper {
id: voltageSensorsApiKeyHelper
deviceConnection: theDeviceConnection
apiKey: "usv"
}
ApiKeyValueHelper {
id: currentSensorsApiKeyHelper
deviceConnection: theDeviceConnection
apiKey: "isv"
}
iconName: "device_hub"
title: qsTr("Sensors Configuration")
description: [
@@ -61,7 +77,9 @@ AnimatedStackView {
SensorsConfigurationPage {
}
}
visible: controllerApiKeyHelper.exists
visible: sensorCategoriesApiKeyHelper.exists
|| voltageSensorsApiKeyHelper.exists
|| currentSensorsApiKeyHelper.exists
}
NavigationItem {
ApiKeyValueHelper {
+127
View File
@@ -0,0 +1,127 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import EVChargerApp
NavigationPage {
id: page
title: qsTr("Voltage sensors")
readonly property var phaseChoices: [
{ value: 0, text: qsTr("L1") },
{ value: 1, text: qsTr("L2") },
{ value: 2, text: qsTr("L3") },
{ value: 3, text: qsTr("Neutral") }
]
readonly property int sensorCount: Math.max(arrayLength(sensorNames.value), arrayLength(sensorValues.value))
function arrayLength(value) {
return value !== null && value !== undefined && value.length !== undefined ? value.length : 0
}
function sensorName(index) {
if (arrayLength(sensorNames.value) > index)
return sensorNames.value[index]
return qsTr("Voltage sensor %1").arg(index + 1)
}
function sensorValue(index) {
return arrayLength(sensorValues.value) > index ? sensorValues.value[index] : null
}
function phaseName(value) {
for (let i = 0; i < phaseChoices.length; ++i) {
if (phaseChoices[i].value === value)
return phaseChoices[i].text
}
return "—"
}
ApiKeyValueHelper {
id: sensorNames
deviceConnection: theDeviceConnection
apiKey: "usn"
}
ApiKeyValueHelper {
id: sensorValues
deviceConnection: theDeviceConnection
apiKey: "usv"
}
Text {
Layout.fillWidth: true
text: qsTr("Live measurements")
font.bold: true
}
Repeater {
model: page.sensorCount
SettingsCard {
id: voltageCard
required property int index
readonly property var reading: page.sensorValue(index)
SettingsSectionLabel {
text: page.sensorName(index)
}
MeasurementRow { label: qsTr("Voltage L1"); value: voltageCard.reading ? voltageCard.reading.u1 : undefined; unit: qsTr("V") }
MeasurementRow { label: qsTr("Voltage L2"); value: voltageCard.reading ? voltageCard.reading.u2 : undefined; unit: qsTr("V") }
MeasurementRow { label: qsTr("Voltage L3"); value: voltageCard.reading ? voltageCard.reading.u3 : undefined; unit: qsTr("V") }
MeasurementRow { label: qsTr("Neutral voltage"); value: voltageCard.reading ? voltageCard.reading.uN : undefined; unit: qsTr("V") }
MeasurementRow { label: qsTr("Frequency"); value: voltageCard.reading ? voltageCard.reading.fhz : undefined; unit: qsTr("Hz") }
}
}
Text {
Layout.fillWidth: true
Layout.topMargin: 8
text: qsTr("Phase assignment")
font.bold: true
}
Text {
Layout.fillWidth: true
text: qsTr("Assign each physical voltage input to the electrical phase it measures.")
color: "gray"
wrapMode: Text.Wrap
}
ApiEnumEditItem {
text: qsTr("Voltage input 1")
apiKey: "u1p"
choices: page.phaseChoices
}
ApiEnumEditItem {
text: qsTr("Voltage input 2")
apiKey: "u2p"
choices: page.phaseChoices
}
ApiEnumEditItem {
text: qsTr("Voltage input 3")
apiKey: "u3p"
choices: page.phaseChoices
}
ApiEnumEditItem {
text: qsTr("Voltage input 4")
apiKey: "u4p"
choices: page.phaseChoices
}
Text {
Layout.fillWidth: true
Layout.topMargin: 8
text: qsTr("Calibration")
font.bold: true
}
EditValueItem {
text: qsTr("Voltage calibration factor")
apiKey: "mvc"
visible: exists
valueText: value === null || value === undefined ? "—" : Qt.locale().toString(Number(value), "f", 5)
editableItem: DoubleSpinBox { decimals: 5; from: 0; to: 1000; stepSize: 0.00001 }
}
}
+8
View File
@@ -51,12 +51,15 @@ EVChargerApp 1.0 HardwareInformationPage.qml
EVChargerApp 1.0 HotspotPage.qml
EVChargerApp 1.0 InformationsTabPage.qml
EVChargerApp 1.0 InformationChartPanel.qml
EVChargerApp 1.0 IndexedEditValueItem.qml
EVChargerApp 1.0 IndexedOnOffSwitch.qml
EVChargerApp 1.0 KwhLimitPage.qml
EVChargerApp 1.0 LedPage.qml
EVChargerApp 1.0 LicensesPage.qml
EVChargerApp 1.0 LoadBalancingPage.qml
EVChargerApp 1.0 LogicModeButton.qml
EVChargerApp 1.0 MainScreen.qml
EVChargerApp 1.0 MeasurementRow.qml
EVChargerApp 1.0 MqttPage.qml
EVChargerApp 1.0 NamePage.qml
EVChargerApp 1.0 NavigationItem.qml
@@ -77,6 +80,10 @@ EVChargerApp 1.0 SelectLogicModeItem.qml
EVChargerApp 1.0 SelectPhaseSwitchModeItem.qml
EVChargerApp 1.0 SendMessageButton.qml
EVChargerApp 1.0 SensorsConfigurationPage.qml
EVChargerApp 1.0 CurrentSensorPage.qml
EVChargerApp 1.0 CurrentSensorsPage.qml
EVChargerApp 1.0 SensorCategoriesPage.qml
EVChargerApp 1.0 SensorCategoryPage.qml
EVChargerApp 1.0 SetPriceLimitPage.qml
EVChargerApp 1.0 SettingsTabPage.qml
EVChargerApp 1.0 SetValueHelper.qml
@@ -89,6 +96,7 @@ EVChargerApp 1.0 TimePickerLabel.qml
EVChargerApp 1.0 TimePicker.qml
EVChargerApp 1.0 TitleText.qml
EVChargerApp 1.0 VerticalTabButton.qml
EVChargerApp 1.0 VoltageSensorsPage.qml
EVChargerApp 1.0 WhiteBox.qml
EVChargerApp 1.0 WhiteCheckDelegate.qml
EVChargerApp 1.0 WhiteItemDelegate.qml