iobroker.bydhvs 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG_OLD.md CHANGED
@@ -1,4 +1,7 @@
1
1
  # Older changes
2
+ ## 1.2.2 (2021-06-14)
3
+ * bump to new patch-level (to get rid of the "-0")
4
+
2
5
  ## 1.2.2-0 (2021-05-30)
3
6
  * Create States for Diagnose-Data only if necessary
4
7
  * changes according review of the adapter
package/README.md CHANGED
@@ -53,6 +53,11 @@ Zu den Batterie-Größen: Der Adapter funktioniert für Zelltemperaturen und Zel
53
53
  Placeholder for the next version (at the beginning of the line):
54
54
  ### __WORK IN PROGRESS__
55
55
  -->
56
+ ### 1.4.1 (2023-09-24)
57
+ * Compatibility with js.controller 5x
58
+ * Removed some bugs in detecting inverter
59
+ * Inverternumber ist logged, so I can easily add new inverters if neccerary, just send me the silly-log if inverter is unknown.
60
+
56
61
  ### 1.4.0 (2022-10-31)
57
62
  * Update of referred modules (mainly around testing)
58
63
  * improvmenets contributed by Tapter (5 modules, readme and better readable code)
@@ -73,9 +78,6 @@ Zu den Batterie-Größen: Der Adapter funktioniert für Zelltemperaturen und Zel
73
78
  ### 1.2.3 (2021-06-18)
74
79
  * changed ratio of logo
75
80
 
76
- ### 1.2.2 (2021-06-14)
77
- * bump to new patch-level (to get rid of the "-0")
78
-
79
81
  ###
80
82
 
81
83
  ## License
package/admin/admin.d.ts CHANGED
@@ -1,93 +1,93 @@
1
- declare let systemDictionary: Record<string, Record<string, string>>;
2
-
3
- declare let load: (settings: Record<string, unknown>, onChange: (hasChanges: boolean) => void) => void;
4
- declare let save: (callback: (settings: Record<string, unknown>) => void) => void;
5
-
6
- // make load and save exist on the window object
7
- interface Window {
8
- load: typeof load;
9
- save: typeof save;
10
- }
11
-
12
- declare const instance: number;
13
- declare const adapter: string;
14
- /** Translates text */
15
- declare function _(text: string): string;
16
- declare const socket: ioBrokerSocket;
17
- declare function sendTo(
18
- instance: any | null,
19
- command: string,
20
- message: any,
21
- callback: (result: SendToResult) => void | Promise<void>,
22
- ): void;
23
-
24
- interface SendToResult {
25
- error?: string | Error;
26
- result?: any;
27
- }
28
-
29
- // tslint:disable-next-line:class-name
30
- interface ioBrokerSocket {
31
- emit(
32
- command: "subscribeObjects",
33
- pattern: string,
34
- callback?: (err?: string) => void | Promise<void>,
35
- ): void;
36
- emit(
37
- command: "subscribeStates",
38
- pattern: string,
39
- callback?: (err?: string) => void | Promise<void>,
40
- ): void;
41
- emit(
42
- command: "unsubscribeObjects",
43
- pattern: string,
44
- callback?: (err?: string) => void | Promise<void>,
45
- ): void;
46
- emit(
47
- command: "unsubscribeStates",
48
- pattern: string,
49
- callback?: (err?: string) => void | Promise<void>,
50
- ): void;
51
-
52
- emit(
53
- event: "getObjectView",
54
- view: "system",
55
- type: "device",
56
- options: ioBroker.GetObjectViewParams,
57
- callback: (
58
- err: string | undefined,
59
- result?: any,
60
- ) => void | Promise<void>,
61
- ): void;
62
- emit(
63
- event: "getStates",
64
- callback: (
65
- err: string | undefined,
66
- result?: Record<string, any>,
67
- ) => void,
68
- ): void;
69
- emit(
70
- event: "getState",
71
- id: string,
72
- callback: (err: string | undefined, result?: ioBroker.State) => void,
73
- ): void;
74
- emit(
75
- event: "setState",
76
- id: string,
77
- state: unknown,
78
- callback: (err: string | undefined, result?: any) => void,
79
- ): void;
80
-
81
- on(event: "objectChange", handler: ioBroker.ObjectChangeHandler): void;
82
- on(event: "stateChange", handler: ioBroker.StateChangeHandler): void;
83
- removeEventHandler(
84
- event: "objectChange",
85
- handler: ioBroker.ObjectChangeHandler,
86
- ): void;
87
- removeEventHandler(
88
- event: "stateChange",
89
- handler: ioBroker.StateChangeHandler,
90
- ): void;
91
-
92
- // TODO: other events
93
- }
1
+ declare let systemDictionary: Record<string, Record<string, string>>;
2
+
3
+ declare let load: (settings: Record<string, unknown>, onChange: (hasChanges: boolean) => void) => void;
4
+ declare let save: (callback: (settings: Record<string, unknown>) => void) => void;
5
+
6
+ // make load and save exist on the window object
7
+ interface Window {
8
+ load: typeof load;
9
+ save: typeof save;
10
+ }
11
+
12
+ declare const instance: number;
13
+ declare const adapter: string;
14
+ /** Translates text */
15
+ declare function _(text: string): string;
16
+ declare const socket: ioBrokerSocket;
17
+ declare function sendTo(
18
+ instance: any | null,
19
+ command: string,
20
+ message: any,
21
+ callback: (result: SendToResult) => void | Promise<void>,
22
+ ): void;
23
+
24
+ interface SendToResult {
25
+ error?: string | Error;
26
+ result?: any;
27
+ }
28
+
29
+ // tslint:disable-next-line:class-name
30
+ interface ioBrokerSocket {
31
+ emit(
32
+ command: "subscribeObjects",
33
+ pattern: string,
34
+ callback?: (err?: string) => void | Promise<void>,
35
+ ): void;
36
+ emit(
37
+ command: "subscribeStates",
38
+ pattern: string,
39
+ callback?: (err?: string) => void | Promise<void>,
40
+ ): void;
41
+ emit(
42
+ command: "unsubscribeObjects",
43
+ pattern: string,
44
+ callback?: (err?: string) => void | Promise<void>,
45
+ ): void;
46
+ emit(
47
+ command: "unsubscribeStates",
48
+ pattern: string,
49
+ callback?: (err?: string) => void | Promise<void>,
50
+ ): void;
51
+
52
+ emit(
53
+ event: "getObjectView",
54
+ view: "system",
55
+ type: "device",
56
+ options: ioBroker.GetObjectViewParams,
57
+ callback: (
58
+ err: string | undefined,
59
+ result?: any,
60
+ ) => void | Promise<void>,
61
+ ): void;
62
+ emit(
63
+ event: "getStates",
64
+ callback: (
65
+ err: string | undefined,
66
+ result?: Record<string, any>,
67
+ ) => void,
68
+ ): void;
69
+ emit(
70
+ event: "getState",
71
+ id: string,
72
+ callback: (err: string | undefined, result?: ioBroker.State) => void,
73
+ ): void;
74
+ emit(
75
+ event: "setState",
76
+ id: string,
77
+ state: unknown,
78
+ callback: (err: string | undefined, result?: any) => void,
79
+ ): void;
80
+
81
+ on(event: "objectChange", handler: ioBroker.ObjectChangeHandler): void;
82
+ on(event: "stateChange", handler: ioBroker.StateChangeHandler): void;
83
+ removeEventHandler(
84
+ event: "objectChange",
85
+ handler: ioBroker.ObjectChangeHandler,
86
+ ): void;
87
+ removeEventHandler(
88
+ event: "stateChange",
89
+ handler: ioBroker.StateChangeHandler,
90
+ ): void;
91
+
92
+ // TODO: other events
93
+ }
@@ -1,113 +1,113 @@
1
- <html>
2
-
3
- <head>
4
-
5
- <!-- Load ioBroker scripts and styles-->
6
- <link rel="stylesheet" type="text/css" href="../../css/adapter.css" />
7
- <link rel="stylesheet" type="text/css" href="../../lib/css/materialize.css">
8
-
9
- <script type="text/javascript" src="../../lib/js/jquery-3.2.1.min.js"></script>
10
- <script type="text/javascript" src="../../socket.io/socket.io.js"></script>
11
-
12
- <script type="text/javascript" src="../../js/translate.js"></script>
13
- <script type="text/javascript" src="../../lib/js/materialize.js"></script>
14
- <script type="text/javascript" src="../../js/adapter-settings.js"></script>
15
-
16
- <!-- Load our own files -->
17
- <link rel="stylesheet" type="text/css" href="style.css" />
18
- <script type="text/javascript" src="words.js"></script>
19
-
20
- <script type="text/javascript">
21
- // This will be called by the admin adapter when the settings page loads
22
- function load(settings, onChange) {
23
- // example: select elements with id=key and class=value and insert value
24
- if (!settings) return;
25
- $('.value').each(function () {
26
- var $key = $(this);
27
- var id = $key.attr('id');
28
- if ($key.attr('type') === 'checkbox') {
29
- // do not call onChange direct, because onChange could expect some arguments
30
- $key.prop('checked', settings[id])
31
- .on('change', () => onChange())
32
- ;
33
- } else {
34
- // do not call onChange direct, because onChange could expect some arguments
35
- $key.val(settings[id])
36
- .on('change', () => onChange())
37
- .on('keyup', () => onChange())
38
- ;
39
- }
40
- });
41
- onChange(false);
42
- // reinitialize all the Materialize labels on the page if you are dynamically adding inputs:
43
- if (M) M.updateTextFields();
44
- }
45
-
46
- // This will be called by the admin adapter when the user presses the save button
47
- function save(callback) {
48
- // example: select elements with class=value and build settings object
49
- var obj = {};
50
- $('.value').each(function () {
51
- var $this = $(this);
52
- if ($this.attr('type') === 'checkbox') {
53
- obj[$this.attr('id')] = $this.prop('checked');
54
- } else if ($this.attr('type') === 'number') {
55
- obj[$this.attr('id')] = parseFloat($this.val());
56
- } else {
57
- obj[$this.attr('id')] = $this.val();
58
- }
59
- });
60
- callback(obj);
61
- }
62
- </script>
63
-
64
- </head>
65
-
66
- <body>
67
-
68
- <div class="m adapter-container">
69
-
70
- <div class="row">
71
- <div class="col s12 m4 l2">
72
- <img src="bydhvs.png" class="logo">
73
- </div>
74
- </div>
75
-
76
- <!-- Put your content here -->
77
-
78
- <!-- For example columns with settings: -->
79
- <div class="row">
80
- <div class="col s6 input-field">
81
- <input type="text" class="value" id="ConfPollInterval" />
82
- <label for="PollInterval" class="translate">Interval (s)</label>
83
- </div>
84
-
85
- <div class="col s6 input-field">
86
- <input type="text" class="value" id="ConfIPAdress" />
87
- <label for="IP Adress" class="translate">IP Adress</label>
88
- </div>
89
- <div class="row">
90
- <div class="col s6 input-field">
91
- <input type="checkbox" class="value" id="ConfBatDetails" />
92
- <label for="ConfBatDetails" class="translate">Diagnosis Data from Battery (only tested with two and four modules)</label>
93
- </div>
94
- </div>
95
- <div class="row">
96
- <div class="col s6 input-field">
97
- <input type="checkbox" class="value" id="ConfTestMode" />
98
- <label for="ConfTestMode" class="translate">Test Mode - show data in error log</label>
99
- </div>
100
- </div>
101
- <div class="row">
102
- <div class="col s6 input-field">
103
- <input type="text" class="value" id="ConfDetailshowoften" />
104
- <label for="ConfDetailshowoften" class="translate">Battery-details - every ... cycles</label>
105
- </div>
106
- </div>
107
- </div>
108
-
109
- </div>
110
-
111
- </body>
112
-
1
+ <html>
2
+
3
+ <head>
4
+
5
+ <!-- Load ioBroker scripts and styles-->
6
+ <link rel="stylesheet" type="text/css" href="../../css/adapter.css" />
7
+ <link rel="stylesheet" type="text/css" href="../../lib/css/materialize.css">
8
+
9
+ <script type="text/javascript" src="../../lib/js/jquery-3.2.1.min.js"></script>
10
+ <script type="text/javascript" src="../../socket.io/socket.io.js"></script>
11
+
12
+ <script type="text/javascript" src="../../js/translate.js"></script>
13
+ <script type="text/javascript" src="../../lib/js/materialize.js"></script>
14
+ <script type="text/javascript" src="../../js/adapter-settings.js"></script>
15
+
16
+ <!-- Load our own files -->
17
+ <link rel="stylesheet" type="text/css" href="style.css" />
18
+ <script type="text/javascript" src="words.js"></script>
19
+
20
+ <script type="text/javascript">
21
+ // This will be called by the admin adapter when the settings page loads
22
+ function load(settings, onChange) {
23
+ // example: select elements with id=key and class=value and insert value
24
+ if (!settings) return;
25
+ $('.value').each(function () {
26
+ var $key = $(this);
27
+ var id = $key.attr('id');
28
+ if ($key.attr('type') === 'checkbox') {
29
+ // do not call onChange direct, because onChange could expect some arguments
30
+ $key.prop('checked', settings[id])
31
+ .on('change', () => onChange())
32
+ ;
33
+ } else {
34
+ // do not call onChange direct, because onChange could expect some arguments
35
+ $key.val(settings[id])
36
+ .on('change', () => onChange())
37
+ .on('keyup', () => onChange())
38
+ ;
39
+ }
40
+ });
41
+ onChange(false);
42
+ // reinitialize all the Materialize labels on the page if you are dynamically adding inputs:
43
+ if (M) M.updateTextFields();
44
+ }
45
+
46
+ // This will be called by the admin adapter when the user presses the save button
47
+ function save(callback) {
48
+ // example: select elements with class=value and build settings object
49
+ var obj = {};
50
+ $('.value').each(function () {
51
+ var $this = $(this);
52
+ if ($this.attr('type') === 'checkbox') {
53
+ obj[$this.attr('id')] = $this.prop('checked');
54
+ } else if ($this.attr('type') === 'number') {
55
+ obj[$this.attr('id')] = parseFloat($this.val());
56
+ } else {
57
+ obj[$this.attr('id')] = $this.val();
58
+ }
59
+ });
60
+ callback(obj);
61
+ }
62
+ </script>
63
+
64
+ </head>
65
+
66
+ <body>
67
+
68
+ <div class="m adapter-container">
69
+
70
+ <div class="row">
71
+ <div class="col s12 m4 l2">
72
+ <img src="bydhvs.png" class="logo">
73
+ </div>
74
+ </div>
75
+
76
+ <!-- Put your content here -->
77
+
78
+ <!-- For example columns with settings: -->
79
+ <div class="row">
80
+ <div class="col s6 input-field">
81
+ <input type="text" class="value" id="ConfPollInterval" />
82
+ <label for="PollInterval" class="translate">Interval (s)</label>
83
+ </div>
84
+
85
+ <div class="col s6 input-field">
86
+ <input type="text" class="value" id="ConfIPAdress" />
87
+ <label for="IP Adress" class="translate">IP Adress</label>
88
+ </div>
89
+ <div class="row">
90
+ <div class="col s6 input-field">
91
+ <input type="checkbox" class="value" id="ConfBatDetails" />
92
+ <label for="ConfBatDetails" class="translate">Diagnosis Data from Battery (only tested with two and four modules)</label>
93
+ </div>
94
+ </div>
95
+ <div class="row">
96
+ <div class="col s6 input-field">
97
+ <input type="checkbox" class="value" id="ConfTestMode" />
98
+ <label for="ConfTestMode" class="translate">Test Mode - show data in error log</label>
99
+ </div>
100
+ </div>
101
+ <div class="row">
102
+ <div class="col s6 input-field">
103
+ <input type="text" class="value" id="ConfDetailshowoften" />
104
+ <label for="ConfDetailshowoften" class="translate">Battery-details - every ... cycles</label>
105
+ </div>
106
+ </div>
107
+ </div>
108
+
109
+ </div>
110
+
111
+ </body>
112
+
113
113
  </html>
package/admin/style.css CHANGED
@@ -1,32 +1,32 @@
1
- /* You can delete those if you want. I just found them very helpful */
2
- * {
3
- box-sizing: border-box
4
- }
5
- .m {
6
- /* Don't cut off dropdowns! */
7
- overflow: initial;
8
- }
9
- .m.adapter-container,
10
- .m.adapter-container > div.App {
11
- /* Fix layout/scrolling issues with tabs */
12
- height: 100%;
13
- width: 100%;
14
- position: relative;
15
- }
16
- .m .select-wrapper + label {
17
- /* The positioning for dropdown labels is messed up */
18
- transform: none !important;
19
- }
20
-
21
- label > i[title] {
22
- /* Display the help cursor for the tooltip icons and fix their positioning */
23
- cursor: help;
24
- margin-left: 0.25em;
25
- }
26
-
27
- .dropdown-content {
28
- /* Don't wrap text in dropdowns */
29
- white-space: nowrap;
30
- }
31
-
32
- /* Add your styles here */
1
+ /* You can delete those if you want. I just found them very helpful */
2
+ * {
3
+ box-sizing: border-box
4
+ }
5
+ .m {
6
+ /* Don't cut off dropdowns! */
7
+ overflow: initial;
8
+ }
9
+ .m.adapter-container,
10
+ .m.adapter-container > div.App {
11
+ /* Fix layout/scrolling issues with tabs */
12
+ height: 100%;
13
+ width: 100%;
14
+ position: relative;
15
+ }
16
+ .m .select-wrapper + label {
17
+ /* The positioning for dropdown labels is messed up */
18
+ transform: none !important;
19
+ }
20
+
21
+ label > i[title] {
22
+ /* Display the help cursor for the tooltip icons and fix their positioning */
23
+ cursor: help;
24
+ margin-left: 0.25em;
25
+ }
26
+
27
+ .dropdown-content {
28
+ /* Don't wrap text in dropdowns */
29
+ white-space: nowrap;
30
+ }
31
+
32
+ /* Add your styles here */