smart-nodes 0.3.37 → 0.4.0

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.
Files changed (109) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/README.md +35 -17
  3. package/central/central.html +26 -12
  4. package/central/central.js +84 -26
  5. package/central/locales/de-DE/central.json +1 -4
  6. package/central/locales/en-US/central.json +0 -3
  7. package/compare/compare.html +40 -24
  8. package/compare/compare.js +69 -29
  9. package/compare/locales/de-DE/compare.json +5 -7
  10. package/compare/locales/en-US/compare.json +18 -8
  11. package/counter/counter.html +64 -17
  12. package/counter/counter.js +43 -20
  13. package/counter/locales/de-DE/counter.json +6 -9
  14. package/counter/locales/en-US/counter.json +12 -16
  15. package/delay/delay.html +18 -88
  16. package/delay/delay.js +63 -20
  17. package/delay/locales/de-DE/delay.html +71 -0
  18. package/delay/locales/de-DE/delay.json +19 -0
  19. package/delay/locales/en-US/delay.html +76 -0
  20. package/delay/locales/en-US/delay.json +19 -0
  21. package/forwarder/forwarder.html +11 -42
  22. package/forwarder/forwarder.js +59 -18
  23. package/forwarder/locales/de-DE/forwarder.html +32 -0
  24. package/forwarder/locales/de-DE/forwarder.json +15 -0
  25. package/forwarder/locales/en-US/forwarder.html +32 -0
  26. package/forwarder/locales/en-US/forwarder.json +15 -0
  27. package/heating-curve/heating-curve.html +10 -51
  28. package/heating-curve/heating-curve.js +38 -13
  29. package/heating-curve/locales/de-DE/heating-curve.html +38 -0
  30. package/heating-curve/locales/de-DE/heating-curve.json +12 -0
  31. package/heating-curve/locales/en-US/heating-curve.html +38 -0
  32. package/heating-curve/locales/en-US/heating-curve.json +12 -0
  33. package/hysteresis/hysteresis.html +43 -65
  34. package/hysteresis/hysteresis.js +94 -68
  35. package/hysteresis/locales/de-DE/hysteresis.html +36 -0
  36. package/hysteresis/locales/de-DE/hysteresis.json +27 -0
  37. package/hysteresis/locales/en-US/hysteresis.html +36 -0
  38. package/hysteresis/locales/en-US/hysteresis.json +27 -0
  39. package/{light-control/light-control.html → light/light.html} +34 -144
  40. package/{light-control/light-control.js → light/light.js} +151 -32
  41. package/light/locales/de-DE/light.html +149 -0
  42. package/light/locales/de-DE/light.json +24 -0
  43. package/light/locales/en-US/light.html +148 -0
  44. package/light/locales/en-US/light.json +24 -0
  45. package/logic/locales/de-DE/logic.html +12 -0
  46. package/logic/locales/de-DE/logic.json +26 -0
  47. package/logic/locales/en-US/logic.html +12 -0
  48. package/logic/locales/en-US/logic.json +26 -0
  49. package/logic/logic.html +27 -40
  50. package/logic/logic.js +63 -29
  51. package/long-press/locales/de-DE/long-press.html +5 -0
  52. package/long-press/locales/de-DE/long-press.json +13 -0
  53. package/long-press/locales/en-US/long-press.html +5 -0
  54. package/long-press/locales/en-US/long-press.json +13 -0
  55. package/{long-press-control/long-press-control.html → long-press/long-press.html} +10 -14
  56. package/long-press/long-press.js +163 -0
  57. package/mixing-valve/locales/de-DE/mixing-valve.html +65 -0
  58. package/mixing-valve/locales/de-DE/mixing-valve.json +19 -0
  59. package/mixing-valve/locales/en-US/mixing-valve.html +66 -0
  60. package/mixing-valve/locales/en-US/mixing-valve.json +19 -0
  61. package/mixing-valve/mixing-valve.html +15 -79
  62. package/mixing-valve/mixing-valve.js +87 -61
  63. package/multi-press/locales/de-DE/multi-press.html +5 -0
  64. package/multi-press/locales/de-DE/multi-press.json +12 -0
  65. package/multi-press/locales/en-US/multi-press.html +5 -0
  66. package/multi-press/locales/en-US/multi-press.json +12 -0
  67. package/{multi-press-control/multi-press-control.html → multi-press/multi-press.html} +9 -13
  68. package/{multi-press-control/multi-press-control.js → multi-press/multi-press.js} +53 -5
  69. package/package.json +7 -7
  70. package/persistence.js +1 -0
  71. package/scene/locales/de-DE/scene.html +105 -0
  72. package/scene/locales/de-DE/scene.json +21 -0
  73. package/scene/locales/en-US/scene.html +107 -0
  74. package/scene/locales/en-US/scene.json +20 -0
  75. package/{scene-control/scene-control.html → scene/scene.html} +18 -121
  76. package/{scene-control/scene-control.js → scene/scene.js} +76 -26
  77. package/scheduler/locales/de-DE/scheduler.html +30 -0
  78. package/scheduler/locales/de-DE/scheduler.json +21 -0
  79. package/scheduler/locales/en-US/scheduler.html +30 -0
  80. package/scheduler/locales/en-US/scheduler.json +21 -0
  81. package/scheduler/scheduler.html +34 -64
  82. package/scheduler/scheduler.js +85 -53
  83. package/shutter/locales/de-DE/shutter.html +127 -0
  84. package/shutter/locales/de-DE/shutter.json +11 -0
  85. package/shutter/locales/en-US/shutter.html +133 -0
  86. package/shutter/locales/en-US/shutter.json +11 -0
  87. package/{shutter-control/shutter-control.html → shutter/shutter.html} +7 -133
  88. package/{shutter-control/shutter-control.js → shutter/shutter.js} +116 -56
  89. package/shutter-complex/locales/de-DE/shutter-complex.html +120 -0
  90. package/shutter-complex/locales/de-DE/shutter-complex.json +20 -0
  91. package/shutter-complex/locales/en-US/shutter-complex.html +120 -0
  92. package/shutter-complex/locales/en-US/shutter-complex.json +20 -0
  93. package/{shutter-complex-control/shutter-complex-control.html → shutter-complex/shutter-complex.html} +30 -133
  94. package/shutter-complex/shutter-complex.js +578 -0
  95. package/smart_helper.js +52 -9
  96. package/statistic/locales/de-DE/statistic.html +10 -0
  97. package/statistic/locales/de-DE/statistic.json +29 -0
  98. package/statistic/locales/en-US/statistic.html +10 -0
  99. package/statistic/locales/en-US/statistic.json +29 -0
  100. package/statistic/statistic.html +32 -36
  101. package/statistic/statistic.js +57 -28
  102. package/text-exec/locales/de-DE/text-exec.html +18 -0
  103. package/text-exec/locales/de-DE/text-exec.json +7 -0
  104. package/text-exec/locales/en-US/text-exec.html +18 -0
  105. package/text-exec/locales/en-US/text-exec.json +7 -0
  106. package/text-exec/text-exec.html +9 -25
  107. package/text-exec/text-exec.js +43 -2
  108. package/long-press-control/long-press-control.js +0 -76
  109. package/shutter-complex-control/shutter-complex-control.js +0 -442
@@ -0,0 +1,149 @@
1
+ <script type="text/html" data-help-name="smart_light-control">
2
+ <p>
3
+ Diese Node steuert einen Ausgang. Dies kann ein Licht, eine Steckdose oder ähnliches sein.
4
+ Als Ausgang wird immer <code>msg.payload = true</code> oder <code>msg.payload = false</code> gesendet um den Ausgang ein-, bzw. auszuschalten.
5
+ </p>
6
+ <p>
7
+ <b>Hinweis:</b> Smart Nodes verwenden Topics im Format <code>name#nummer</code>, damit können verschiedene Smart Nodes mit dem gleichen Topic angesteuert werden.<br/>
8
+ Diese Node verwendet nur den Teil <code>name</code>. <code>#</code> und <code>nummer</code> sind dabei optional.
9
+ </p>
10
+ <p>
11
+ Folgende topics werden akzeptiert:
12
+ <table>
13
+ <thead>
14
+ <tr>
15
+ <th>Topic</th>
16
+ <th>Beschreibung</th>
17
+ <th>msg.payload == false wird ignoriert</th>
18
+ </tr>
19
+ </thead>
20
+ <tbody>
21
+ <tr>
22
+ <td><code>status</code></td>
23
+ <td>
24
+ Gibt über <code>msg.payload = true</code> oder <code>msg.payload = false</code> den aktuellen Status des Ausgangs an.<br/>
25
+ Bei einem Wechsel von ausgeschaltet nach eingeschaltet wird die Zeitmessung für die hinterlegte, bzw. mitgesendete Zeit gestartet, sofern vorhanden.
26
+ </td>
27
+ <td>Nein</td>
28
+ </tr>
29
+ <tr>
30
+ <td><code>on</code></td>
31
+ <td>Schaltet den Ausgang ein und startet die Zeitmessung für die hinterlegte, bzw. mitgesendete Zeit gestartet, sofern vorhanden.</td>
32
+ <td>Ja</td>
33
+ </tr>
34
+ <tr>
35
+ <td><code>off</code></td>
36
+ <td>Schaltet den Ausgang aus.</td>
37
+ <td>Ja</td>
38
+ </tr>
39
+ <tr>
40
+ <td><code>set</code></td>
41
+ <td>
42
+ Schaltet den Ausgang bei <code>msg.payload = true</code> ein und bei <code>msg.payload = false</code> aus.<br/>
43
+ Bei einem Wechsel von ausgeschaltet nach eingeschaltet wird die Zeitmessung für die hinterlegte, bzw. mitgesendete Zeit gestartet, sofern vorhanden.
44
+ </td>
45
+ <td>Nein</td>
46
+ </tr>
47
+ <tr>
48
+ <td><code>set_permanent</code></td>
49
+ <td>
50
+ Schaltet den Ausgang bei <code>msg.payload = true</code> dauerhaft ein und bei <code>msg.payload = false</code> aus.<br/>
51
+ Es wird dabei keine Zeitmessung gestartet.
52
+ </td>
53
+ <td>Nein</td>
54
+ </tr>
55
+ <tr>
56
+ <td><code>motion</code></td>
57
+ <td>
58
+ Schaltet den Ausgang bei <code>msg.payload = true</code> ein ohne eine Zeitmessung.<br/>
59
+ Bei <code>msg.payload = false</code> wird die Zeitmessung für die hinterlegte, bzw. mitgesendete Zeit gestartet, sofern vorhanden.<br/>
60
+ Ist keine Zeit angegeben oder hinterlegt, schaltet sich der Ausgang sofort aus.
61
+ </td>
62
+ <td>Nein</td>
63
+ </tr>
64
+ <tr>
65
+ <td><code>alarm</code></td>
66
+ <td>
67
+ Setzt den aktuellen Alarmzustand auf den Wert von <code>msg.payload</code> und löst die entsprechende Aktion aus.<br/>
68
+
69
+ <table>
70
+ <thead>
71
+ <tr>
72
+ <th>Einstellung</th>
73
+ <th>Beschreibung</th>
74
+ </tr>
75
+ </thead>
76
+ <tbody>
77
+ <tr>
78
+ <td>Keine Aktion</td>
79
+ <td>Es passiert nichts</td>
80
+ </tr>
81
+ <tr>
82
+ <td>Einschalten</td>
83
+ <td>Der Ausgang wird eingeschalten.</td>
84
+ </tr>
85
+ <tr>
86
+ <td>Ausschalten</td>
87
+ <td>Der Ausgang wird ausgeschalten.</td>
88
+ </tr>
89
+ <tr>
90
+ <td>Letzen Zustand</td>
91
+ <td>Der Zustand bevor der Alarm gesetzt wurde wird wiederhergestellt.</td>
92
+ </tr>
93
+ <tr>
94
+ <td>Zuletzt gesendeten Zustand</td>
95
+ <td>Der Zustand der zuletzt empfangen wurde, auch während der Alarm aktiv war, wird wiederhergestellt.</td>
96
+ </tr>
97
+ </tbody>
98
+ </table>
99
+ </td>
100
+ <td>Nein</td>
101
+ </tr>
102
+ <tr>
103
+ <td><code>toggle</code> (default)</td>
104
+ <td>
105
+ Schaltet den Ausgang abwechselnd ein und aus.<br/>
106
+ Bei einem Wechsel von ausgeschaltet nach eingeschaltet wird die Zeitmessung für die hinterlegte, bzw. mitgesendete Zeit gestartet, sofern vorhanden.
107
+ </td>
108
+ <td>Ja</td>
109
+ </tr>
110
+ </tbody>
111
+ </table>
112
+ </p>
113
+ <p>
114
+ Diese Node hat eine einstellbare Maximallaufzeit, bevor der Ausgang automatisch wieder ausgeschalten wird.
115
+ Diese Zeitmessung wird wie in der Tabelle oben verwendet.
116
+ Die eingestellte Zeit kann gezielt überschrieben werden.
117
+ Beispiel: <code>msg = { "topic": "on", "time_on": 5000 }</code> oder <code>msg = { "topic": "on", "time_on": "5s" }</code><br/>
118
+ Diese Nachricht schaltet das Licht für 5000 Millisekunden / 5 Sekunden an und anschließend wieder aus.
119
+ Die nächste Nachricht ohne <code>time_on</code> Angabe verwendet wieder die voreingestellte Zeit.
120
+ Ist die Zeit auf 0 eingestellt, wird das Licht <b>nicht</b> automatisch ausgeschalten.<br/>
121
+ Als Einheit für die Zeit können folgende Werte verwendet werden:
122
+ <table>
123
+ <thead>
124
+ <tr>
125
+ <th>Einheit</th>
126
+ <th>Beschreibung</th>
127
+ </tr>
128
+ </thead>
129
+ <tbody>
130
+ <tr>
131
+ <td><code>ms</code> (default)</td>
132
+ <td>Millisekunden</td>
133
+ </tr>
134
+ <tr>
135
+ <td><code>s</code> oder <code>sec</code></td>
136
+ <td>Sekunden</td>
137
+ </tr>
138
+ <tr>
139
+ <td><code>m</code> oder <code>min</code></td>
140
+ <td>Mintun.</td>
141
+ </tr>
142
+ <tr>
143
+ <td><code>h</code></td>
144
+ <td>Stunden</td>
145
+ </tr>
146
+ </tbody>
147
+ </table>
148
+ </p>
149
+ </script>
@@ -0,0 +1,24 @@
1
+ {
2
+ "light": {
3
+ "ui": {
4
+ "name": "Name",
5
+ "text": "Text",
6
+ "controlled_by_words": "Diese Node kann über die eingegebenen Wörter gesteuert werden. Mehrere Wörter werden durch ein Komma getrennt.",
7
+ "time_on": "Zeit Ein",
8
+ "alarm_on": "Alarm Ein",
9
+ "alarm_off": "Alarm Aus",
10
+ "controlled_by_central": "Dieser Baustein wird von folgenden Zentralbausteinen gesteuert:",
11
+
12
+ "milliseconds": "Millisekunden",
13
+ "seconds": "Sekunden",
14
+ "minutes": "Minuten",
15
+ "hours": "Stunden",
16
+
17
+ "no_action": "Keine Aktion",
18
+ "turn_on": "Einschalten",
19
+ "turn_off": "Ausschalten",
20
+ "last_state": "Letzen Zustand",
21
+ "last_sended_state": "Zuletzt gesendeten Zustand"
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,148 @@
1
+ <script type="text/html" data-help-name="smart_light-control">
2
+ <p>
3
+ This node controls an output. This can be a light, a socket or something similar.
4
+ The output is always <code>msg.payload = true</code> or <code>msg.payload = false</code> to switch the output on or off.
5
+ </p>
6
+ <p>
7
+ <b>Note:</b> Smart nodes use topics in the format <code>name#number</code>, so different smart nodes can be controlled with the same topic.<br />
8
+ This node only uses the <code>name</code> part. <code>#</code> and <code>number</code> are optional.
9
+ </p>
10
+ <p>
11
+ The following topics are accepted:
12
+ <table>
13
+ <thead>
14
+ <tr>
15
+ <th>Topic</th>
16
+ <th>Description</th>
17
+ <th>msg.payload == false is ignored</th>
18
+ </tr>
19
+ </thead>
20
+ <tbody>
21
+ <tr>
22
+ <td><code>status</code></td>
23
+ <td>
24
+ Specifies the current status of the output via <code>msg.payload = true</code> or <code>msg.payload = false</code>.<br />
25
+ When changing from switched off to switched on, the time measurement is started for the stored or time, if available. </td>
26
+ <td>No</td>
27
+ </tr>
28
+ <tr>
29
+ <td><code>on</code></td>
30
+ <td>Switches the output on and starts the time measurement for the stored or sent time, if available.</td>
31
+ <td>Yes</td>
32
+ </tr>
33
+ <tr>
34
+ <td><code>off</code></td>
35
+ <td>Switches the output off.</td>
36
+ <td>Yes</td>
37
+ </tr>
38
+ <tr>
39
+ <td><code>set</code></td>
40
+ <td>
41
+ Switches the output on when <code>msg.payload = true</code> and off when <code>msg.payload = false</code>.<br />
42
+ When changing from switched off to switched on, the time measurement is started for the stored or sent time, if available.
43
+ </td>
44
+ <td>No</td>
45
+ </tr>
46
+ <tr>
47
+ <td><code>set_permanent</code></td>
48
+ <td>
49
+ Switches the output on permanently when <code>msg.payload = true</code> and off when <code>msg.payload = false</code>.<br />
50
+ No time measurement is started.
51
+ </td>
52
+ <td>No</td>
53
+ </tr>
54
+ <tr>
55
+ <td><code>motion</code></td>
56
+ <td>
57
+ Switches the output on when <code>msg.payload = true</code> without a time measurement.<br />
58
+ When <code>msg.payload = false</code> the time measurement is started for the stored or sent time, if available.<br />
59
+ If no time is specified or stored, the output switches off immediately.
60
+ </td>
61
+ <td>No</td>
62
+ </tr>
63
+ <tr>
64
+ <td><code>alarm</code></td>
65
+ <td>
66
+ Sets the current alarm state to the value of <code>msg.payload</code> and triggers the corresponding action.<br />
67
+
68
+ <table>
69
+ <thead>
70
+ <tr>
71
+ <th>Setting</th>
72
+ <th>Description</th>
73
+ </tr>
74
+ </thead>
75
+ <tbody>
76
+ <tr>
77
+ <td>No action</td>
78
+ <td>Nothing happens</td>
79
+ </tr>
80
+ <tr>
81
+ <td>Switch on</td>
82
+ <td>The output is switched on.</td>
83
+ </tr>
84
+ <tr>
85
+ <td>Switch off</td>
86
+ <td>The output is switched off.</td>
87
+ </tr>
88
+ <tr>
89
+ <td>Last state</td>
90
+ <td>The state before the alarm was set is restored.</td>
91
+ </tr>
92
+ <tr>
93
+ <td>Last sent state</td>
94
+ <td>The state that was last received, even while the alarm was active, is restored.</td>
95
+ </tr>
96
+ </tbody>
97
+ </table>
98
+ </td>
99
+ <td>No</td>
100
+ </tr>
101
+ <tr>
102
+ <td><code>toggle</code> (default)</td>
103
+ <td>
104
+ Switches the output on and off alternately.<br />
105
+ When switching from off to on, the time measurement is started for the stored or sent time, if available.
106
+ </td>
107
+ <td>Yes</td>
108
+ </tr>
109
+ </tbody>
110
+ </table>
111
+ </p>
112
+ <p>
113
+ This node has an adjustable maximum runtime before the output is automatically switched off again.
114
+ This time measurement is used as in the table above.
115
+ The set time can be overwritten specifically.
116
+ Example: <code>msg = { "topic": "on", "time_on": 5000 }</code> or <code>msg = { "topic": "on", "time_on": "5s" }</code><br />
117
+ This message switches the light on for 5000 milliseconds / 5 seconds and then off again.
118
+ The next message without <code>time_on</code> specification uses the preset time again.
119
+ If the time is set to 0, the light will <b>not</b> be switched off automatically.<br />
120
+ The following values can be used as the unit for the time:
121
+ <table>
122
+ <thead>
123
+ <tr>
124
+ <th>Unit</th>
125
+ <th>Description</th>
126
+ </tr>
127
+ </thead>
128
+ <tbody>
129
+ <tr>
130
+ <td><code>ms</code> (default)</td>
131
+ <td>Milliseconds</td>
132
+ </tr>
133
+ <tr>
134
+ <td><code>s</code> or <code>sec</code></td>
135
+ <td>Seconds</td>
136
+ </tr>
137
+ <tr>
138
+ <td><code>m</code> or <code>min</code></td>
139
+ <td>Mintun.</td>
140
+ </tr>
141
+ <tr>
142
+ <td><code>h</code></td>
143
+ <td>Hours</td>
144
+ </tr>
145
+ </tbody>
146
+ </table>
147
+ </p>
148
+ </script>
@@ -0,0 +1,24 @@
1
+ {
2
+ "light": {
3
+ "ui": {
4
+ "name": "Name",
5
+ "text": "Text",
6
+ "controlled_by_words": "This node can be controlled using the words entered. Multiple words are separated by a comma.",
7
+ "time_on": "Time On",
8
+ "alarm_on": "Alarm On",
9
+ "alarm_off": "Alarm Off",
10
+ "controlled_by_central": "This block is controlled by the following central blocks:",
11
+
12
+ "milliseconds": "Milliseconds",
13
+ "seconds": "Seconds",
14
+ "minutes": "Minutes",
15
+ "hours": "Hours",
16
+
17
+ "no_action": "No action",
18
+ "turn_on": "Turn on",
19
+ "turn_off": "Turn off",
20
+ "last_state": "Last state",
21
+ "last_sended_state": "Last sent state"
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,12 @@
1
+ <script type="text/html" data-help-name="smart_logic">
2
+ <p>Dieser Knoten bietet verschiedene Logikoperationen, wie AND, OR und XOR an.</p>
3
+ <p>Alle Eingänge, sowie der Ausgang lassen sich gezielt invertieren, womit weitere komplexe Logiken abgebildet werden können.</p>
4
+ <p>Um beispielsweise eine NOT Logik zu erstellen, wird die Anzahl der Eingänge auf 1 gesetzt, die Logik auf AND oder OR und der Ausgang invertiert.</p>
5
+ <p>
6
+ <b>Hinweis:</b> Smart Nodes verwenden Topics im Format <code>name#nummer</code>, damit können verschiedene Smart Nodes mit dem gleichen Topic angesteuert werden.<br/>
7
+ Diese Node verwendet nur den Teil <code>nummer</code>. <code>name</code> und <code>#</code> sind dabei optional.
8
+ </p>
9
+ <p>
10
+ <strong>Hinweis:</strong> <code>msg.payload</code> wird automatisch auf das Logik-Ergebnis gesetzt, sofern es nicht bereits in der Konfiguration gesetzt wurde.
11
+ </p>
12
+ </script>
@@ -0,0 +1,26 @@
1
+ {
2
+ "logic": {
3
+ "ui": {
4
+ "name": "Name",
5
+ "logic": "Logik",
6
+ "inputs": "Eingänge",
7
+ "invert": "Invertieren",
8
+ "output": "Ausgang",
9
+ "output_messages": "Ausgangsnachrichten",
10
+ "true": "Wahr",
11
+ "false": "Falsch",
12
+ "send": "Senden",
13
+ "outputs": "Ausgänge",
14
+ "note": "Hinweis:",
15
+ "note_text": "<code>msg.payload</code> wird automatisch auf das Logik-Ergebnis gesetzt,<br/>sofern es nicht bereits hier in der Konfiguration gesetzt wurde.",
16
+ "system_start": "Systemstart",
17
+ "save_state": "Zustand speichern",
18
+ "send_after_start": "Letze Nachricht 10 Sekunden nach dem Start senden",
19
+
20
+ "send_only_change": "Nur bei Änderung",
21
+ "always": "Immer",
22
+ "common_output": "Gemeinsamer Ausgang",
23
+ "separate_output": "Separate Ausgänge"
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,12 @@
1
+ <script type="text/html" data-help-name="smart_logic">
2
+ <p>This node offers various logic operations, such as AND, OR and XOR.</p>
3
+ <p>All inputs and the output can be specifically inverted, which can be used to map further complex logic.</p>
4
+ <p>For example, to create a NOT logic, the number of inputs is set to 1, the logic to AND or OR and the output is inverted.</p>
5
+ <p>
6
+ <b>Note:</b> Smart Nodes use topics in the format <code>name#number</code>, so that different Smart Nodes can be controlled with the same topic.<br />
7
+ This node only uses the <code>number</code> part. <code>name</code> and <code>#</code> are optional.
8
+ </p>
9
+ <p>
10
+ <strong>Note:</strong> <code>msg.payload</code> is automatically set to the logic result if it has not already been set in the configuration.
11
+ </p>
12
+ </script>
@@ -0,0 +1,26 @@
1
+ {
2
+ "logic": {
3
+ "ui": {
4
+ "name": "Name",
5
+ "logic": "Logic",
6
+ "inputs": "Inputs",
7
+ "invert": "Invert",
8
+ "output": "Output",
9
+ "output_messages": "Output messages",
10
+ "true": "True",
11
+ "false": "False",
12
+ "send": "Send",
13
+ "outputs": "Outputs",
14
+ "note": "Note:",
15
+ "note_text": "<code>msg.payload</code> is automatically set to the logic result<br/>if it has not already been set here in the configuration.",
16
+ "system_start": "System start",
17
+ "save_state": "Save state",
18
+ "send_after_start": "Send last message 10 seconds after start",
19
+
20
+ "send_only_change": "Only on change",
21
+ "always": "Always",
22
+ "common_output": "Common output",
23
+ "separate_output": "Separate outputs"
24
+ }
25
+ }
26
+ }
package/logic/logic.html CHANGED
@@ -31,6 +31,8 @@
31
31
  },
32
32
  oneditprepare: function ()
33
33
  {
34
+ let node = this;
35
+
34
36
  $("#node-input-logic").typedInput({
35
37
  types: [{
36
38
  value: "logic",
@@ -73,8 +75,8 @@
73
75
  $("#node-input-out_true").typedInput({
74
76
  type: "json",
75
77
  types: ["json", {
76
- value: "null",
77
- label: "Nichts senden",
78
+ value: "NOTHING",
79
+ label: node._("logic.ui.send_nothing"),
78
80
  icon: "fa fa-times",
79
81
  hasValue: false,
80
82
  }],
@@ -84,8 +86,8 @@
84
86
  $("#node-input-out_false").typedInput({
85
87
  type: "json",
86
88
  types: ["json", {
87
- value: "null",
88
- label: "Nichts senden",
89
+ value: "NOTING",
90
+ label: node._("logic.ui.send_nothing"),
89
91
  icon: "fa fa-times",
90
92
  hasValue: false,
91
93
  }],
@@ -97,8 +99,8 @@
97
99
  types: [{
98
100
  value: "send_only_change",
99
101
  options: [
100
- { value: "true", label: "Nur bei Änderung" },
101
- { value: "false", label: "Immer" },
102
+ { value: "true", label: node._("logic.ui.send_only_change") },
103
+ { value: "false", label: node._("logic.ui.always") },
102
104
  ]
103
105
  }]
104
106
  });
@@ -108,14 +110,13 @@
108
110
  types: [{
109
111
  value: "outputs",
110
112
  options: [
111
- { value: "1", label: "Gemeinsamer Ausgang" },
112
- { value: "2", label: "Separate Ausgänge" },
113
+ { value: "1", label: node._("logic.ui.common_output") },
114
+ { value: "2", label: node._("logic.ui.separate_output") },
113
115
  ]
114
116
  }]
115
117
  });
116
118
 
117
119
 
118
-
119
120
  $("#node-input-save_state").on("change", ev =>
120
121
  {
121
122
  if (ev.target.checked)
@@ -153,72 +154,58 @@
153
154
 
154
155
  <script type="text/html" data-template-name="smart_logic">
155
156
  <div class="form-row">
156
- <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
157
- <input type="text" id="node-input-name" placeholder="Name" />
157
+ <label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="logic.ui.name"></span></label>
158
+ <input type="text" id="node-input-name" data-i18n="[placeholder]logic.ui.name" />
158
159
  </div>
159
160
  <div class="form-row">
160
- <label for="node-input-logic"><i class="fa fa-microchip"></i> Logik</label>
161
+ <label for="node-input-logic"><i class="fa fa-microchip"></i> <span data-i18n="logic.ui.logic"></span></label>
161
162
  <input id="node-input-logic" />
162
163
  </div>
163
164
  <div class="form-row">
164
- <label for="node-input-logic_inputs"><i class="fa fa-hashtag"></i> Eingänge</label>
165
+ <label for="node-input-logic_inputs"><i class="fa fa-hashtag"></i> <span data-i18n="logic.ui.inputs"></span></label>
165
166
  <input id="node-input-logic_inputs" />
166
167
  </div>
167
168
  <div class="form-row">
168
- <label for="node-input-inverts"><i class="fa fa-circle-o"></i> Invertieren</label>
169
+ <label for="node-input-inverts"><i class="fa fa-circle-o"></i> <span data-i18n="logic.ui.invert"></span></label>
169
170
  <input id="node-input-inverts" />
170
171
  </div>
171
172
  <div class="form-row">
172
- <label for="node-input-invert_output"><i class="fa fa-circle-o"></i> Ausgang</label>
173
+ <label for="node-input-invert_output"><i class="fa fa-circle-o"></i> <span data-i18n="logic.ui.output"></span></label>
173
174
  <input type="checkbox" id="node-input-invert_output" style="width: unset; margin: 0;" />
174
- <label for="node-input-invert_output">&nbsp;Invertieren</label>
175
+ <label for="node-input-invert_output" data-i18n="logic.ui.invert"></label>
175
176
  </div>
176
177
  <hr/>
177
- <h4 style="margin: 0.5rem 0;">Ausgangsnachrichten</h4>
178
+ <h4 style="margin: 0.5rem 0;" data-i18n="logic.ui.output_messages"></h4>
178
179
  <div class="form-row">
179
- <label for="node-input-out_true"><i class="fa fa-check-circle"></i> Wahr</label>
180
+ <label for="node-input-out_true"><i class="fa fa-check-circle"></i> <span data-i18n="logic.ui.true"></span></label>
180
181
  <input type="text" id="node-input-out_true"/>
181
182
  <input type="hidden" id="node-input-out_true_type">
182
183
  </div>
183
184
  <div class="form-row">
184
- <label for="node-input-out_false"><i class="fa fa-times-circle"></i> Falsch</label>
185
+ <label for="node-input-out_false"><i class="fa fa-times-circle"></i> <span data-i18n="logic.ui.false"></span></label>
185
186
  <input type="text" id="node-input-out_false" />
186
187
  <input type="hidden" id="node-input-out_false_type">
187
188
  </div>
188
189
  <div class="form-row">
189
- <label for="node-input-send_only_change"><i class="fa fa-repeat"></i> Senden</label>
190
+ <label for="node-input-send_only_change"><i class="fa fa-repeat"></i> <span data-i18n="logic.ui.send"></span></label>
190
191
  <input id="node-input-send_only_change" />
191
192
  </div>
192
193
  <div class="form-row">
193
- <label for="node-input-outputs"><i class="fa fa-hashtag"></i> Ausgänge</label>
194
+ <label for="node-input-outputs"><i class="fa fa-hashtag"></i> <span data-i18n="logic.ui.outputs"></span></label>
194
195
  <input id="node-input-outputs" />
195
196
  </div>
196
197
  <div class="form-row">
197
- <div><strong>Hinweis:</strong></div>
198
- <div><code>msg.payload</code> wird automatisch auf das Logik-Ergebnis gesetzt,</div>
199
- <div>sofern es nicht bereits hier in der Konfiguration gesetzt wurde.</div>
198
+ <div><strong data-i18n="logic.ui.note"></strong></div>
199
+ <div data-i18n="[html]logic.ui.note_text"></div>
200
200
  </div>
201
201
  <hr/>
202
- <h4 style="margin: 0.5rem 0;">Systemstart</h4>
202
+ <h4 style="margin: 0.5rem 0;" data-i18n="logic.ui.system_start"></h4>
203
203
  <div class="form-row">
204
204
  <input type="checkbox" id="node-input-save_state" style="width: 20px;" />
205
- <label for="node-input-save_state" style="width: calc(100% - 30px);">Zustand speichern</label>
205
+ <label for="node-input-save_state" style="width: calc(100% - 30px);" data-i18n="logic.ui.save_state"></label>
206
206
  </div>
207
207
  <div class="form-row" id="resend_on_start_row">
208
208
  <input type="checkbox" id="node-input-resend_on_start" style="width: 20px;" />
209
- <label for="node-input-resend_on_start" style="width: calc(100% - 30px);">Letze Nachricht 10 Sekunden nach dem Start senden</label>
209
+ <label for="node-input-resend_on_start" style="width: calc(100% - 30px);" data-i18n="logic.ui.send_after_start"></label>
210
210
  </div>
211
- </script>
212
-
213
- <script type="text/html" data-help-name="smart_logic">
214
- <p>Dieser Knoten bietet verschiedene Logikoperationen, wie AND, OR und XOR an.</p>
215
- <p>Alle Eingänge, sowie der Ausgang lassen sich gezielt invertieren, womit weitere komplexe Logiken abgebildet werden können.</p>
216
- <p>Um beispielsweise eine NOT Logik zu erstellen, wird die Anzahl der Eingänge auf 1 gesetzt, die Logik auf AND oder OR und der Ausgang invertiert.</p>
217
- <p>
218
- <b>Hinweis:</b> Smart Nodes verwenden Topics im Format <code>name#nummer</code>, damit können verschiedene Smart Nodes mit dem gleichen Topic angesteuert werden.<br/>
219
- Diese Node verwendet nur den Teil <code>nummer</code>. <code>name</code> und <code>#</code> sind dabei optional.
220
- </p>
221
- <p>
222
- <strong>Hinweis:</strong> <code>msg.payload</code> wird automatisch auf das Logik-Ergebnis gesetzt, sofern es nicht bereits in der Konfiguration gesetzt wurde.
223
- </p>
224
211
  </script>