\ No newline at end of file
diff --git a/lib/SvelteUi/app/src/lib/HelpIcon.svelte b/lib/SvelteUi/app/src/lib/HelpIcon.svelte
new file mode 100644
index 00000000..0916f204
--- /dev/null
+++ b/lib/SvelteUi/app/src/lib/HelpIcon.svelte
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/lib/SvelteUi/app/src/lib/Helpers.js b/lib/SvelteUi/app/src/lib/Helpers.js
index 678d818c..a71db001 100644
--- a/lib/SvelteUi/app/src/lib/Helpers.js
+++ b/lib/SvelteUi/app/src/lib/Helpers.js
@@ -42,3 +42,50 @@ export function zeropad(num) {
while (num.length < 2) num = "0" + num;
return num;
}
+
+export function boardtype(c, b) {
+ switch(b) {
+ case 5:
+ switch(c) {
+ case 'esp8266':
+ return "Pow-K (GPIO12)";
+ case 'esp32s2':
+ return "Pow-K+";
+ }
+ case 7:
+ switch(c) {
+ case 'esp8266':
+ return "Pow-U (GPIO12)";
+ case 'esp32s2':
+ return "Pow-U+";
+ }
+ case 6:
+ return "Pow-P1";
+ case 51:
+ return "Wemos S2 mini";
+ case 50:
+ return "Generic ESP32-S2";
+ case 201:
+ return "Wemos LOLIN D32";
+ case 202:
+ return "Adafruit HUZZAH32";
+ case 203:
+ return "DevKitC";
+ case 200:
+ return "Generic ESP32";
+ case 2:
+ return "HAN Reader 2.0 by Max Spencer";
+ case 0:
+ return "Custom hardware by Roar Fredriksen";
+ case 1:
+ return "Kamstrup module by Egil Opsahl"
+ case 3:
+ return "Pow-K (UART0)";
+ case 4:
+ return "Pow-U (UART0)";
+ case 101:
+ return "Wemos D1 mini";
+ case 100:
+ return "Generic ESP8266";
+ }
+}
diff --git a/lib/SvelteUi/app/src/lib/InfoIcon.svelte b/lib/SvelteUi/app/src/lib/InfoIcon.svelte
new file mode 100644
index 00000000..44ae7666
--- /dev/null
+++ b/lib/SvelteUi/app/src/lib/InfoIcon.svelte
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/lib/SvelteUi/app/src/lib/Mask.svelte b/lib/SvelteUi/app/src/lib/Mask.svelte
new file mode 100644
index 00000000..206afeea
--- /dev/null
+++ b/lib/SvelteUi/app/src/lib/Mask.svelte
@@ -0,0 +1,14 @@
+
+
+{#if active}
+
+
+ {#if message}
+
{message}
+ {/if}
+
+
+{/if}
diff --git a/lib/SvelteUi/app/src/lib/Modal.svelte b/lib/SvelteUi/app/src/lib/Modal.svelte
deleted file mode 100644
index 03d14b93..00000000
--- a/lib/SvelteUi/app/src/lib/Modal.svelte
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-{#if active}
-
-
-{/if}
diff --git a/lib/SvelteUi/app/src/lib/PowerGaugeSvg.svelte b/lib/SvelteUi/app/src/lib/PowerGaugeSvg.svelte
index 80a067f6..a43b5d2a 100644
--- a/lib/SvelteUi/app/src/lib/PowerGaugeSvg.svelte
+++ b/lib/SvelteUi/app/src/lib/PowerGaugeSvg.svelte
@@ -34,6 +34,6 @@
xmlns="http://www.w3.org/2000/svg">
-
+
diff --git a/lib/SvelteUi/app/src/lib/ReloadIcon.svelte b/lib/SvelteUi/app/src/lib/ReloadIcon.svelte
new file mode 100644
index 00000000..d1bbaff3
--- /dev/null
+++ b/lib/SvelteUi/app/src/lib/ReloadIcon.svelte
@@ -0,0 +1,6 @@
+
+
+
+
+
Device information
+
+ Chip: {sysinfo.chip}
+
+
+ Device: {boardtype(sysinfo.chip, sysinfo.board)}
+
+
+ Firmware version: {sysinfo.version}
+
+
+ {#if sysinfo.meter}
+
+
Meter
+
+ Manufacturer: {metertype(sysinfo.meter.mfg)}
+
+
+ Model: {sysinfo.meter.model}
+
+
+ ID: {sysinfo.meter.id}
+
+
+ {/if}
+ {#if sysinfo.net}
+
+
Network
+
+ IP: {sysinfo.net.ip}
+
+
+ Mask: {sysinfo.net.mask}
+
+
+ Gateway: {sysinfo.net.gw}
+
+
+ DNS: {sysinfo.net.dns1} {#if sysinfo.net.dns2 != '0.0.0.0'}/ {sysinfo.net.dns2}{/if}
+
+
+ {/if}
+
diff --git a/lib/SvelteUi/app/src/lib/UartSelectOptions.svelte b/lib/SvelteUi/app/src/lib/UartSelectOptions.svelte
new file mode 100644
index 00000000..e7676594
--- /dev/null
+++ b/lib/SvelteUi/app/src/lib/UartSelectOptions.svelte
@@ -0,0 +1,80 @@
+
+
+{#if chip == 'esp8266'}
+