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.
- package/CHANGELOG.md +62 -0
- package/README.md +35 -17
- package/central/central.html +26 -12
- package/central/central.js +84 -26
- package/central/locales/de-DE/central.json +1 -4
- package/central/locales/en-US/central.json +0 -3
- package/compare/compare.html +40 -24
- package/compare/compare.js +69 -29
- package/compare/locales/de-DE/compare.json +5 -7
- package/compare/locales/en-US/compare.json +18 -8
- package/counter/counter.html +64 -17
- package/counter/counter.js +43 -20
- package/counter/locales/de-DE/counter.json +6 -9
- package/counter/locales/en-US/counter.json +12 -16
- package/delay/delay.html +18 -88
- package/delay/delay.js +63 -20
- package/delay/locales/de-DE/delay.html +71 -0
- package/delay/locales/de-DE/delay.json +19 -0
- package/delay/locales/en-US/delay.html +76 -0
- package/delay/locales/en-US/delay.json +19 -0
- package/forwarder/forwarder.html +11 -42
- package/forwarder/forwarder.js +59 -18
- package/forwarder/locales/de-DE/forwarder.html +32 -0
- package/forwarder/locales/de-DE/forwarder.json +15 -0
- package/forwarder/locales/en-US/forwarder.html +32 -0
- package/forwarder/locales/en-US/forwarder.json +15 -0
- package/heating-curve/heating-curve.html +10 -51
- package/heating-curve/heating-curve.js +38 -13
- package/heating-curve/locales/de-DE/heating-curve.html +38 -0
- package/heating-curve/locales/de-DE/heating-curve.json +12 -0
- package/heating-curve/locales/en-US/heating-curve.html +38 -0
- package/heating-curve/locales/en-US/heating-curve.json +12 -0
- package/hysteresis/hysteresis.html +43 -65
- package/hysteresis/hysteresis.js +94 -68
- package/hysteresis/locales/de-DE/hysteresis.html +36 -0
- package/hysteresis/locales/de-DE/hysteresis.json +27 -0
- package/hysteresis/locales/en-US/hysteresis.html +36 -0
- package/hysteresis/locales/en-US/hysteresis.json +27 -0
- package/{light-control/light-control.html → light/light.html} +34 -144
- package/{light-control/light-control.js → light/light.js} +151 -32
- package/light/locales/de-DE/light.html +149 -0
- package/light/locales/de-DE/light.json +24 -0
- package/light/locales/en-US/light.html +148 -0
- package/light/locales/en-US/light.json +24 -0
- package/logic/locales/de-DE/logic.html +12 -0
- package/logic/locales/de-DE/logic.json +26 -0
- package/logic/locales/en-US/logic.html +12 -0
- package/logic/locales/en-US/logic.json +26 -0
- package/logic/logic.html +27 -40
- package/logic/logic.js +63 -29
- package/long-press/locales/de-DE/long-press.html +5 -0
- package/long-press/locales/de-DE/long-press.json +13 -0
- package/long-press/locales/en-US/long-press.html +5 -0
- package/long-press/locales/en-US/long-press.json +13 -0
- package/{long-press-control/long-press-control.html → long-press/long-press.html} +10 -14
- package/long-press/long-press.js +163 -0
- package/mixing-valve/locales/de-DE/mixing-valve.html +65 -0
- package/mixing-valve/locales/de-DE/mixing-valve.json +19 -0
- package/mixing-valve/locales/en-US/mixing-valve.html +66 -0
- package/mixing-valve/locales/en-US/mixing-valve.json +19 -0
- package/mixing-valve/mixing-valve.html +15 -79
- package/mixing-valve/mixing-valve.js +87 -61
- package/multi-press/locales/de-DE/multi-press.html +5 -0
- package/multi-press/locales/de-DE/multi-press.json +12 -0
- package/multi-press/locales/en-US/multi-press.html +5 -0
- package/multi-press/locales/en-US/multi-press.json +12 -0
- package/{multi-press-control/multi-press-control.html → multi-press/multi-press.html} +9 -13
- package/{multi-press-control/multi-press-control.js → multi-press/multi-press.js} +53 -5
- package/package.json +7 -7
- package/persistence.js +1 -0
- package/scene/locales/de-DE/scene.html +105 -0
- package/scene/locales/de-DE/scene.json +21 -0
- package/scene/locales/en-US/scene.html +107 -0
- package/scene/locales/en-US/scene.json +20 -0
- package/{scene-control/scene-control.html → scene/scene.html} +18 -121
- package/{scene-control/scene-control.js → scene/scene.js} +76 -26
- package/scheduler/locales/de-DE/scheduler.html +30 -0
- package/scheduler/locales/de-DE/scheduler.json +21 -0
- package/scheduler/locales/en-US/scheduler.html +30 -0
- package/scheduler/locales/en-US/scheduler.json +21 -0
- package/scheduler/scheduler.html +34 -64
- package/scheduler/scheduler.js +85 -53
- package/shutter/locales/de-DE/shutter.html +127 -0
- package/shutter/locales/de-DE/shutter.json +11 -0
- package/shutter/locales/en-US/shutter.html +133 -0
- package/shutter/locales/en-US/shutter.json +11 -0
- package/{shutter-control/shutter-control.html → shutter/shutter.html} +7 -133
- package/{shutter-control/shutter-control.js → shutter/shutter.js} +116 -56
- package/shutter-complex/locales/de-DE/shutter-complex.html +120 -0
- package/shutter-complex/locales/de-DE/shutter-complex.json +20 -0
- package/shutter-complex/locales/en-US/shutter-complex.html +120 -0
- package/shutter-complex/locales/en-US/shutter-complex.json +20 -0
- package/{shutter-complex-control/shutter-complex-control.html → shutter-complex/shutter-complex.html} +30 -133
- package/shutter-complex/shutter-complex.js +578 -0
- package/smart_helper.js +52 -9
- package/statistic/locales/de-DE/statistic.html +10 -0
- package/statistic/locales/de-DE/statistic.json +29 -0
- package/statistic/locales/en-US/statistic.html +10 -0
- package/statistic/locales/en-US/statistic.json +29 -0
- package/statistic/statistic.html +32 -36
- package/statistic/statistic.js +57 -28
- package/text-exec/locales/de-DE/text-exec.html +18 -0
- package/text-exec/locales/de-DE/text-exec.json +7 -0
- package/text-exec/locales/en-US/text-exec.html +18 -0
- package/text-exec/locales/en-US/text-exec.json +7 -0
- package/text-exec/text-exec.html +9 -25
- package/text-exec/text-exec.js +43 -2
- package/long-press-control/long-press-control.js +0 -76
- package/shutter-complex-control/shutter-complex-control.js +0 -442
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "smart-nodes",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Smart Nodes",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"node-red",
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
"node-red": {
|
|
35
35
|
"version": ">=1.0.0",
|
|
36
36
|
"nodes": {
|
|
37
|
-
"light
|
|
38
|
-
"scene
|
|
39
|
-
"shutter
|
|
40
|
-
"shutter-complex
|
|
41
|
-
"long-press
|
|
42
|
-
"multi-press
|
|
37
|
+
"light": "light/light.js",
|
|
38
|
+
"scene": "scene/scene.js",
|
|
39
|
+
"shutter": "shutter/shutter.js",
|
|
40
|
+
"shutter-complex": "shutter-complex/shutter-complex.js",
|
|
41
|
+
"long-press": "long-press/long-press.js",
|
|
42
|
+
"multi-press": "multi-press/multi-press.js",
|
|
43
43
|
"logic": "logic/logic.js",
|
|
44
44
|
"forwarder": "forwarder/forwarder.js",
|
|
45
45
|
"compare": "compare/compare.js",
|
package/persistence.js
CHANGED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="smart_scene-control">
|
|
2
|
+
<p>
|
|
3
|
+
Diese Node steuert mehrere Ausgänge die anhand einer definierten Szene ein- bzw. ausgeschaltet werden.
|
|
4
|
+
An jeden Ausgang wird immer <code>msg.payload = true</code> oder <code>msg.payload = false</code> gesendet um ihn 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 sowohl den Teil <code>name</code> als auch <code>nummer</code>. Je nach Nachricht müssen evtl. beide Werte gesetzt sein.
|
|
9
|
+
</p>
|
|
10
|
+
<p>
|
|
11
|
+
Folgende topics werden akzeptiert:
|
|
12
|
+
<table>
|
|
13
|
+
<thead>
|
|
14
|
+
<tr>
|
|
15
|
+
<th>Topic</th>
|
|
16
|
+
<th>Beschreibung</th>
|
|
17
|
+
</tr>
|
|
18
|
+
</thead>
|
|
19
|
+
<tbody>
|
|
20
|
+
<tr>
|
|
21
|
+
<td><code>status#2</code></td>
|
|
22
|
+
<td>
|
|
23
|
+
Gibt über <code>msg.payload = true</code> oder <code>msg.payload = false</code> den aktuellen Status des Ausgangs <code>2</code> an.<br/>
|
|
24
|
+
Bei einem Wechsel eines Ausgangs wird die Zeitmessung für die hinterlegte, bzw. mitgesendete Zeit gestartet, sofern vorhanden.
|
|
25
|
+
</td>
|
|
26
|
+
</tr>
|
|
27
|
+
<tr>
|
|
28
|
+
<td><code>on</code></td>
|
|
29
|
+
<td>Schaltet alle Ausgänge ein und startet die Zeitmessung für die hinterlegte, bzw. mitgesendete Zeit gestartet, sofern vorhanden.</td>
|
|
30
|
+
</tr>
|
|
31
|
+
<tr>
|
|
32
|
+
<td><code>off</code></td>
|
|
33
|
+
<td>Schaltet alle Ausgänge aus.</td>
|
|
34
|
+
</tr>
|
|
35
|
+
<tr>
|
|
36
|
+
<td><code>set</code></td>
|
|
37
|
+
<td>
|
|
38
|
+
Schaltet alle Ausgänge bei <code>msg.payload = true</code> ein und bei <code>msg.payload = false</code> aus.<br/>
|
|
39
|
+
Bei einem Wechsel von ausgeschaltet nach eingeschaltet wird die Zeitmessung für die hinterlegte, bzw. mitgesendete Zeit gestartet, sofern vorhanden.
|
|
40
|
+
</td>
|
|
41
|
+
</tr>
|
|
42
|
+
<tr>
|
|
43
|
+
<td><code>set_permanent</code></td>
|
|
44
|
+
<td>
|
|
45
|
+
Schaltet alle Ausgänge bei <code>msg.payload = true</code>dauerhaft ein und bei <code>msg.payload = false</code> aus.<br/>
|
|
46
|
+
Es wird dabei keine Zeitmessung gestartet.
|
|
47
|
+
</td>
|
|
48
|
+
</tr>
|
|
49
|
+
<tr>
|
|
50
|
+
<td><code>scene_x,y,z</code></td>
|
|
51
|
+
<td>
|
|
52
|
+
Schaltet die Ausgänge entsprechend der mitgegebenen Szenennummern (x, y und z) an, bzw. aus.<br/>
|
|
53
|
+
Beim Eintreffen der Nachricht wird geschaut welche Szene aktuell aktiv ist. Taucht die Nummer in der Liste auf, wird die nächste angegebene Szene aktiviert.<br/>
|
|
54
|
+
Taucht die Szene nicht in der Liste auf, wird die erste aufgelistete Szene aktiviert.<br/>
|
|
55
|
+
Wenn nur eine Szene angegeben ist, wechselt der Baustein zwischen der angegebenen Szene und aus.<br/>
|
|
56
|
+
Sollte mindestens ein Ausgang eingeschaltet sein, startet die Zeitmessung erneut.
|
|
57
|
+
</td>
|
|
58
|
+
</tr>
|
|
59
|
+
<tr>
|
|
60
|
+
<td><code>toggle</code> (default)</td>
|
|
61
|
+
<td>
|
|
62
|
+
Schaltet alle Ausgänge aus, falls mindestens einer bereits eingeschaltet wahr.<br/>
|
|
63
|
+
Sollten bereits alle Ausgänge ausgeschaltet sein, werden alle eingeschalten.
|
|
64
|
+
</td>
|
|
65
|
+
</tr>
|
|
66
|
+
</tbody>
|
|
67
|
+
</table>
|
|
68
|
+
</p>
|
|
69
|
+
<p>
|
|
70
|
+
Diese Node hat eine einstellbare Maximallaufzeit, bevor alle Ausgänge automatisch wieder ausgeschalten werden.
|
|
71
|
+
Diese Zeitmessung wird wie in der Tabelle oben verwendet.
|
|
72
|
+
Die eingestellte Zeit kann gezielt überschrieben werden.
|
|
73
|
+
Beispiel: <code>msg = { "topic": "on", "time_on": 5000 }</code> oder <code>msg = { "topic": "on", "time_on": "5s" }</code><br/>
|
|
74
|
+
Diese Nachricht schaltet das Licht für 5000 Millisekunden / 5 Sekunden an und anschließend wieder aus.
|
|
75
|
+
Die nächste Nachricht ohne <code>time_on</code> Angabe verwendet wieder die voreingestellte Zeit.
|
|
76
|
+
Ist die Zeit auf 0 eingestellt, wird das Licht <b>nicht</b> automatisch ausgeschalten.<br/>
|
|
77
|
+
Als Einheit für die Zeit können folgende Werte verwendet werden:
|
|
78
|
+
<table>
|
|
79
|
+
<thead>
|
|
80
|
+
<tr>
|
|
81
|
+
<th>Einheit</th>
|
|
82
|
+
<th>Beschreibung</th>
|
|
83
|
+
</tr>
|
|
84
|
+
</thead>
|
|
85
|
+
<tbody>
|
|
86
|
+
<tr>
|
|
87
|
+
<td><code>ms</code> (default)</td>
|
|
88
|
+
<td>Millisekunden</td>
|
|
89
|
+
</tr>
|
|
90
|
+
<tr>
|
|
91
|
+
<td><code>s</code> oder <code>sec</code></td>
|
|
92
|
+
<td>Sekunden</td>
|
|
93
|
+
</tr>
|
|
94
|
+
<tr>
|
|
95
|
+
<td><code>m</code> oder <code>min</code></td>
|
|
96
|
+
<td>Mintun.</td>
|
|
97
|
+
</tr>
|
|
98
|
+
<tr>
|
|
99
|
+
<td><code>h</code></td>
|
|
100
|
+
<td>Stunden</td>
|
|
101
|
+
</tr>
|
|
102
|
+
</tbody>
|
|
103
|
+
</table>
|
|
104
|
+
</p>
|
|
105
|
+
</script>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"scene": {
|
|
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
|
+
"controlled_by_central": "Dieser Baustein wird von folgenden Zentralbausteinen gesteuert:",
|
|
9
|
+
|
|
10
|
+
"outputs": "Ausgänge",
|
|
11
|
+
"scenes": "Szenen",
|
|
12
|
+
"links": "Links",
|
|
13
|
+
|
|
14
|
+
"milliseconds": "Millisekunden",
|
|
15
|
+
"seconds": "Sekunden",
|
|
16
|
+
"minutes": "Minuten",
|
|
17
|
+
"hours": "Stunden"
|
|
18
|
+
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="smart_scene-control">
|
|
2
|
+
<p>
|
|
3
|
+
This node controls several outputs that are switched on or off based on a defined scene.
|
|
4
|
+
|
|
5
|
+
<code>msg.payload = true</code> or <code>msg.payload = false</code> is always sent to each output to switch it on or off.
|
|
6
|
+
|
|
7
|
+
</p>
|
|
8
|
+
<p>
|
|
9
|
+
<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 />
|
|
10
|
+
This node uses both the <code>name</code> and <code>number</code> parts. Depending on the message, both values may need to be set.
|
|
11
|
+
</p>
|
|
12
|
+
<p>
|
|
13
|
+
The following topics are accepted:
|
|
14
|
+
<table>
|
|
15
|
+
<thead>
|
|
16
|
+
<tr>
|
|
17
|
+
<th>Topic</th>
|
|
18
|
+
<th>Description</th>
|
|
19
|
+
</tr>
|
|
20
|
+
</thead>
|
|
21
|
+
<tbody>
|
|
22
|
+
<tr>
|
|
23
|
+
<td><code>status#2</code></td>
|
|
24
|
+
<td>
|
|
25
|
+
Indicates the current status of output <code>2</code> via <code>msg.payload = true</code> or <code>msg.payload = false</code>.<br />
|
|
26
|
+
When an output changes, the time measurement is started for the stored or sent time, if available.
|
|
27
|
+
</td>
|
|
28
|
+
</tr>
|
|
29
|
+
<tr>
|
|
30
|
+
<td><code>on</code></td>
|
|
31
|
+
<td>Switches all outputs on and starts the time measurement for the stored or sent time, if available.</td>
|
|
32
|
+
</tr>
|
|
33
|
+
<tr>
|
|
34
|
+
<td><code>off</code></td>
|
|
35
|
+
<td>Switches all outputs off.</td>
|
|
36
|
+
</tr>
|
|
37
|
+
<tr>
|
|
38
|
+
<td><code>set</code></td>
|
|
39
|
+
<td>
|
|
40
|
+
Switches all outputs on when <code>msg.payload = true</code> and off when <code>msg.payload = false</code>.<br />
|
|
41
|
+
When changing from switched off to switched on, the time measurement is started for the stored or sent time, if available.
|
|
42
|
+
</td>
|
|
43
|
+
</tr>
|
|
44
|
+
<tr>
|
|
45
|
+
<td><code>set_permanent</code></td>
|
|
46
|
+
<td>
|
|
47
|
+
Switches all outputs permanently on when <code>msg.payload = true</code> and off when <code>msg.payload = false</code>.<br />
|
|
48
|
+
No time measurement is started.
|
|
49
|
+
</td>
|
|
50
|
+
</tr>
|
|
51
|
+
<tr>
|
|
52
|
+
<td><code>scene_x,y,z</code></td>
|
|
53
|
+
<td>
|
|
54
|
+
Switches the outputs on or off according to the specified scene numbers (x, y and z).<br />
|
|
55
|
+
When the message arrives, it is checked which scene is currently active. If the number appears in the list, the next specified scene is activated.<br />
|
|
56
|
+
If the scene does not appear in the list, the first scene listed is activated.<br />
|
|
57
|
+
If only one scene is specified, the block switches between the specified scene and off.<br />
|
|
58
|
+
If at least one output is switched on, the time measurement starts again.
|
|
59
|
+
</td>
|
|
60
|
+
</tr>
|
|
61
|
+
<tr>
|
|
62
|
+
<td><code>toggle</code> (default)</td>
|
|
63
|
+
<td>
|
|
64
|
+
Switches all outputs off if at least one is already switched on.<br />
|
|
65
|
+
If all outputs are already switched off, all are switched on.
|
|
66
|
+
</td>
|
|
67
|
+
</tr>
|
|
68
|
+
</tbody>
|
|
69
|
+
</table>
|
|
70
|
+
</p>
|
|
71
|
+
<p>
|
|
72
|
+
This node has an adjustable maximum runtime before all outputs are automatically switched off again.
|
|
73
|
+
This time measurement is used as in the table above.
|
|
74
|
+
The set time can be overwritten specifically.
|
|
75
|
+
Example: <code>msg = { "topic": "on", "time_on": 5000 }</code> or <code>msg = { "topic": "on", "time_on": "5s" }</code><br />
|
|
76
|
+
This message switches the light on for 5000 milliseconds / 5 seconds and then off again.
|
|
77
|
+
The next message without <code>time_on</code> specification uses the preset time again.
|
|
78
|
+
If the time is set to 0, the light will <b>not</b> be switched off automatically.<br />
|
|
79
|
+
The following values can be used as the unit for the time:
|
|
80
|
+
<table>
|
|
81
|
+
<thead>
|
|
82
|
+
<tr>
|
|
83
|
+
<th>Unit</th>
|
|
84
|
+
<th>Description</th>
|
|
85
|
+
</tr>
|
|
86
|
+
</thead>
|
|
87
|
+
<tbody>
|
|
88
|
+
<tr>
|
|
89
|
+
<td><code>ms</code> (default)</td>
|
|
90
|
+
<td>Milliseconds</td>
|
|
91
|
+
</tr>
|
|
92
|
+
<tr>
|
|
93
|
+
<td><code>s</code> or <code>sec</code></td>
|
|
94
|
+
<td>Seconds</td>
|
|
95
|
+
</tr>
|
|
96
|
+
<tr>
|
|
97
|
+
<td><code>m</code> or <code>min</code></td>
|
|
98
|
+
<td>Mintun.</td>
|
|
99
|
+
</tr>
|
|
100
|
+
<tr>
|
|
101
|
+
<td><code>h</code></td>
|
|
102
|
+
<td>Hours</td>
|
|
103
|
+
</tr>
|
|
104
|
+
</tbody>
|
|
105
|
+
</table>
|
|
106
|
+
</p>
|
|
107
|
+
</script>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"scene": {
|
|
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
|
+
"controlled_by_central": "This block is controlled by the following central blocks:",
|
|
9
|
+
|
|
10
|
+
"outputs": "Outputs",
|
|
11
|
+
"scenes": "Scenes",
|
|
12
|
+
"links": "Links",
|
|
13
|
+
|
|
14
|
+
"milliseconds": "Milliseconds",
|
|
15
|
+
"seconds": "Seconds",
|
|
16
|
+
"minutes": "Minutes",
|
|
17
|
+
"hours": "Hours"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -243,6 +243,7 @@
|
|
|
243
243
|
oneditprepare: function ()
|
|
244
244
|
{
|
|
245
245
|
let node = this;
|
|
246
|
+
|
|
246
247
|
onEditPrepare(this, ["smart_central-control"]);
|
|
247
248
|
initTreeList(node, ["smart_central-control"]);
|
|
248
249
|
|
|
@@ -269,7 +270,7 @@
|
|
|
269
270
|
.appendTo(row);
|
|
270
271
|
|
|
271
272
|
// Output name
|
|
272
|
-
var outputName = $("<input/>", { class: "node-input-prop-name", placeholder: "
|
|
273
|
+
var outputName = $("<input/>", { class: "node-input-prop-name", placeholder: node._("scene.ui.name"), type: "text" })
|
|
273
274
|
.css("width", "80%")
|
|
274
275
|
.appendTo(row);
|
|
275
276
|
|
|
@@ -313,7 +314,7 @@
|
|
|
313
314
|
.appendTo(row);
|
|
314
315
|
|
|
315
316
|
// Scene name
|
|
316
|
-
var sceneName = $("<input/>", { class: "node-input-prop-name", placeholder: "
|
|
317
|
+
var sceneName = $("<input/>", { class: "node-input-prop-name", placeholder: node._("scene.ui.name"), type: "text" })
|
|
317
318
|
.css("width", "30%")
|
|
318
319
|
.appendTo(row);
|
|
319
320
|
|
|
@@ -372,19 +373,19 @@
|
|
|
372
373
|
tabs.addTab({
|
|
373
374
|
id: "scene-tab-outputs",
|
|
374
375
|
iconClass: "fa fa-lightbulb-o",
|
|
375
|
-
label: "
|
|
376
|
+
label: node._("scene.ui.outputs")
|
|
376
377
|
});
|
|
377
378
|
|
|
378
379
|
tabs.addTab({
|
|
379
380
|
id: "scene-tab-scenes",
|
|
380
381
|
iconClass: "fa fa-list-ul",
|
|
381
|
-
label: "
|
|
382
|
+
label: node._("scene.ui.scenes")
|
|
382
383
|
});
|
|
383
384
|
|
|
384
385
|
tabs.addTab({
|
|
385
386
|
id: "scene-tab-links",
|
|
386
387
|
iconClass: "fa fa-links",
|
|
387
|
-
label: "
|
|
388
|
+
label: node._("scene.ui.links")
|
|
388
389
|
});
|
|
389
390
|
|
|
390
391
|
|
|
@@ -410,16 +411,18 @@
|
|
|
410
411
|
default: "s",
|
|
411
412
|
value: "max_time_on_unit",
|
|
412
413
|
options: [
|
|
413
|
-
{ value: "ms", label: "
|
|
414
|
-
{ value: "s", label: "
|
|
415
|
-
{ value: "min", label: "
|
|
416
|
-
{ value: "h", label: "
|
|
414
|
+
{ value: "ms", label: node._("scene.ui.milliseconds") },
|
|
415
|
+
{ value: "s", label: node._("scene.ui.seconds") },
|
|
416
|
+
{ value: "min", label: node._("scene.ui.minutes") },
|
|
417
|
+
{ value: "h", label: node._("scene.ui.hours") },
|
|
417
418
|
],
|
|
418
419
|
}],
|
|
419
420
|
});
|
|
420
421
|
},
|
|
421
422
|
oneditsave: function ()
|
|
422
423
|
{
|
|
424
|
+
let node = this;
|
|
425
|
+
|
|
423
426
|
// Set scenes
|
|
424
427
|
var items = $("#node-input-property-scenes").editableList("items");
|
|
425
428
|
var result = getScenes(items);
|
|
@@ -442,16 +445,16 @@
|
|
|
442
445
|
|
|
443
446
|
<script type="text/html" data-template-name="smart_scene-control">
|
|
444
447
|
<div class="form-row">
|
|
445
|
-
<label for="node-input-name"><i class="fa fa-tag"></i>
|
|
446
|
-
<input type="text" id="node-input-name"
|
|
448
|
+
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="scene.ui.name"></span></label>
|
|
449
|
+
<input type="text" id="node-input-name" data-i18n="[placeholder]scene.ui.name" />
|
|
447
450
|
</div>
|
|
448
451
|
<div class="form-row">
|
|
449
|
-
<label for="node-input-exec_text_names"><i class="fa fa-comments-o"></i>
|
|
452
|
+
<label for="node-input-exec_text_names"><i class="fa fa-comments-o"></i> <span data-i18n="scene.ui.text"></span></label>
|
|
450
453
|
<input id="node-input-exec_text_names" type="text" />
|
|
451
|
-
<div style="max-width: 450px;"
|
|
454
|
+
<div style="max-width: 450px;" data-i18n="scene.ui.controlled_by_words"></div>
|
|
452
455
|
</div>
|
|
453
456
|
<div class="form-row">
|
|
454
|
-
<label for="node-input-max_time_on"><i class="fa fa-clock-o"></i>
|
|
457
|
+
<label for="node-input-max_time_on"><i class="fa fa-clock-o"></i> <span data-i18n="scene.ui.time_on"></span></label>
|
|
455
458
|
<input id="node-input-max_time_on" value="0" />
|
|
456
459
|
<input id="node-input-max_time_on_unit" />
|
|
457
460
|
</div>
|
|
@@ -468,115 +471,9 @@
|
|
|
468
471
|
<ol id="node-input-property-scenes"></ol>
|
|
469
472
|
</div>
|
|
470
473
|
<div id="scene-tab-links" style="display: none;">
|
|
471
|
-
<span><i class="fa fa-link"></i>
|
|
474
|
+
<span><i class="fa fa-link"></i> <span data-i18n="scene.ui.controlled_by_central"></span></span>
|
|
472
475
|
<div class="form-row node-input-link-row node-input-link-rows"></div>
|
|
473
476
|
</div>
|
|
474
477
|
</div>
|
|
475
478
|
</div>
|
|
476
|
-
</script>
|
|
477
|
-
|
|
478
|
-
<script type="text/html" data-help-name="smart_scene-control">
|
|
479
|
-
<p>
|
|
480
|
-
Diese Node steuert mehrere Ausgänge die anhand einer definierten Szene ein- bzw. ausgeschaltet werden.
|
|
481
|
-
An jeden Ausgang wird immer <code>msg.payload = true</code> oder <code>msg.payload = false</code> gesendet um ihn ein-, bzw. auszuschalten.
|
|
482
|
-
</p>
|
|
483
|
-
<p>
|
|
484
|
-
<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/>
|
|
485
|
-
Diese Node verwendet sowohl den Teil <code>name</code> als auch <code>nummer</code>. Je nach Nachricht müssen evtl. beide Werte gesetzt sein.
|
|
486
|
-
</p>
|
|
487
|
-
<p>
|
|
488
|
-
Folgende topics werden akzeptiert:
|
|
489
|
-
<table>
|
|
490
|
-
<thead>
|
|
491
|
-
<tr>
|
|
492
|
-
<th>Topic</th>
|
|
493
|
-
<th>Beschreibung</th>
|
|
494
|
-
</tr>
|
|
495
|
-
</thead>
|
|
496
|
-
<tbody>
|
|
497
|
-
<tr>
|
|
498
|
-
<td><code>status#2</code></td>
|
|
499
|
-
<td>
|
|
500
|
-
Gibt über <code>msg.payload = true</code> oder <code>msg.payload = false</code> den aktuellen Status des Ausgangs <code>2</code> an.<br/>
|
|
501
|
-
Bei einem Wechsel eines Ausgangs wird die Zeitmessung für die hinterlegte, bzw. mitgesendete Zeit gestartet, sofern vorhanden.
|
|
502
|
-
</td>
|
|
503
|
-
</tr>
|
|
504
|
-
<tr>
|
|
505
|
-
<td><code>on</code></td>
|
|
506
|
-
<td>Schaltet alle Ausgänge ein und startet die Zeitmessung für die hinterlegte, bzw. mitgesendete Zeit gestartet, sofern vorhanden.</td>
|
|
507
|
-
</tr>
|
|
508
|
-
<tr>
|
|
509
|
-
<td><code>off</code></td>
|
|
510
|
-
<td>Schaltet alle Ausgänge aus.</td>
|
|
511
|
-
</tr>
|
|
512
|
-
<tr>
|
|
513
|
-
<td><code>set</code></td>
|
|
514
|
-
<td>
|
|
515
|
-
Schaltet alle Ausgänge bei <code>msg.payload = true</code> ein und bei <code>msg.payload = false</code> aus.<br/>
|
|
516
|
-
Bei einem Wechsel von ausgeschaltet nach eingeschaltet wird die Zeitmessung für die hinterlegte, bzw. mitgesendete Zeit gestartet, sofern vorhanden.
|
|
517
|
-
</td>
|
|
518
|
-
</tr>
|
|
519
|
-
<tr>
|
|
520
|
-
<td><code>set_permanent</code></td>
|
|
521
|
-
<td>
|
|
522
|
-
Schaltet alle Ausgänge bei <code>msg.payload = true</code>dauerhaft ein und bei <code>msg.payload = false</code> aus.<br/>
|
|
523
|
-
Es wird dabei keine Zeitmessung gestartet.
|
|
524
|
-
</td>
|
|
525
|
-
</tr>
|
|
526
|
-
<tr>
|
|
527
|
-
<td><code>scene_x,y,z</code></td>
|
|
528
|
-
<td>
|
|
529
|
-
Schaltet die Ausgänge entsprechend der mitgegebenen Szenennummern (x, y und z) an, bzw. aus.<br/>
|
|
530
|
-
Beim Eintreffen der Nachricht wird geschaut welche Szene aktuell aktiv ist. Taucht die Nummer in der Liste auf, wird die nächste angegebene Szene aktiviert.<br/>
|
|
531
|
-
Taucht die Szene nicht in der Liste auf, wird die erste aufgelistete Szene aktiviert.<br/>
|
|
532
|
-
Wenn nur eine Szene angegeben ist, wechselt der Baustein zwischen der angegebenen Szene und aus.<br/>
|
|
533
|
-
Sollte mindestens ein Ausgang eingeschaltet sein, startet die Zeitmessung erneut.
|
|
534
|
-
</td>
|
|
535
|
-
</tr>
|
|
536
|
-
<tr>
|
|
537
|
-
<td><code>toggle</code> (default)</td>
|
|
538
|
-
<td>
|
|
539
|
-
Schaltet alle Ausgänge aus, falls mindestens einer bereits eingeschaltet wahr.<br/>
|
|
540
|
-
Sollten bereits alle Ausgänge ausgeschaltet sein, werden alle eingeschalten.
|
|
541
|
-
</td>
|
|
542
|
-
</tr>
|
|
543
|
-
</tbody>
|
|
544
|
-
</table>
|
|
545
|
-
</p>
|
|
546
|
-
<p>
|
|
547
|
-
Diese Node hat eine einstellbare Maximallaufzeit, bevor alle Ausgänge automatisch wieder ausgeschalten werden.
|
|
548
|
-
Diese Zeitmessung wird wie in der Tabelle oben verwendet.
|
|
549
|
-
Die eingestellte Zeit kann gezielt überschrieben werden.
|
|
550
|
-
Beispiel: <code>msg = { "topic": "on", "time_on": 5000 }</code> oder <code>msg = { "topic": "on", "time_on": "5s" }</code><br/>
|
|
551
|
-
Diese Nachricht schaltet das Licht für 5000 Millisekunden / 5 Sekunden an und anschließend wieder aus.
|
|
552
|
-
Die nächste Nachricht ohne <code>time_on</code> Angabe verwendet wieder die voreingestellte Zeit.
|
|
553
|
-
Ist die Zeit auf 0 eingestellt, wird das Licht <b>nicht</b> automatisch ausgeschalten.<br/>
|
|
554
|
-
Als Einheit für die Zeit können folgende Werte verwendet werden:
|
|
555
|
-
<table>
|
|
556
|
-
<thead>
|
|
557
|
-
<tr>
|
|
558
|
-
<th>Einheit</th>
|
|
559
|
-
<th>Beschreibung</th>
|
|
560
|
-
</tr>
|
|
561
|
-
</thead>
|
|
562
|
-
<tbody>
|
|
563
|
-
<tr>
|
|
564
|
-
<td><code>ms</code> (default)</td>
|
|
565
|
-
<td>Millisekunden</td>
|
|
566
|
-
</tr>
|
|
567
|
-
<tr>
|
|
568
|
-
<td><code>s</code> oder <code>sec</code></td>
|
|
569
|
-
<td>Sekunden</td>
|
|
570
|
-
</tr>
|
|
571
|
-
<tr>
|
|
572
|
-
<td><code>m</code> oder <code>min</code></td>
|
|
573
|
-
<td>Mintun.</td>
|
|
574
|
-
</tr>
|
|
575
|
-
<tr>
|
|
576
|
-
<td><code>h</code></td>
|
|
577
|
-
<td>Stunden</td>
|
|
578
|
-
</tr>
|
|
579
|
-
</tbody>
|
|
580
|
-
</table>
|
|
581
|
-
</p>
|
|
582
479
|
</script>
|