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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "smart-nodes",
3
- "version": "0.3.37",
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-control": "light-control/light-control.js",
38
- "scene-control": "scene-control/scene-control.js",
39
- "shutter-control": "shutter-control/shutter-control.js",
40
- "shutter-complex-control": "shutter-complex-control/shutter-complex-control.js",
41
- "long-press-control": "long-press-control/long-press-control.js",
42
- "multi-press-control": "multi-press-control/multi-press-control.js",
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
@@ -66,6 +66,7 @@ module.exports = function (_RED)
66
66
 
67
67
  function del(id)
68
68
  {
69
+ hasChanges = true;
69
70
  delete globalData["id" + id];
70
71
  }
71
72
 
@@ -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: "Name", type: "text" })
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: "Name", type: "text" })
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: "Ausgänge"
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: "Szenen"
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: "Links"
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: "Millisekunden" },
414
- { value: "s", label: "Sekunden" },
415
- { value: "min", label: "Minuten" },
416
- { value: "h", label: "Stunden" },
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> Name</label>
446
- <input type="text" id="node-input-name" placeholder="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> Text</label>
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;">Diese Node kann über die eingegebenen Wörter gesteuert werden. Mehrere Wörter werden durch ein Komma getrennt.</div>
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> Zeit Ein</label>
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> Dieser Baustein wird von folgenden Zentralbausteinen gesteuert:</span>
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>