node-red-contrib-ccu 4.4.5 → 4.5.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 +150 -0
- package/README.md +22 -0
- package/nodes/ccu-alexa.html +12 -14
- package/nodes/ccu-connection.html +63 -95
- package/nodes/ccu-connection.js +812 -115
- package/nodes/ccu-get-value.html +18 -15
- package/nodes/ccu-get-value.js +16 -0
- package/nodes/ccu-homeassistant.html +0 -48
- package/nodes/ccu-mqtt.html +0 -8
- package/nodes/ccu-poll.html +0 -17
- package/nodes/ccu-program.html +0 -53
- package/nodes/ccu-rpc-event.html +0 -34
- package/nodes/ccu-rpc.html +0 -64
- package/nodes/ccu-script.html +0 -8
- package/nodes/ccu-set-value.html +0 -62
- package/nodes/ccu-set-value.js +6 -11
- package/nodes/ccu-signal.html +0 -64
- package/nodes/ccu-switch.html +12 -24
- package/nodes/ccu-sysvar.html +0 -64
- package/nodes/ccu-value.html +23 -95
- package/nodes/ccu-value.js +8 -2
- package/nodes/lib/initretry.js +11 -0
- package/nodes/lib/metaprovider.js +47 -19
- package/nodes/lib/party.js +103 -0
- package/nodes/lib/topic.js +22 -1
- package/nodes/lib/transport.js +80 -0
- package/nodes/locales/de/ccu-alexa.html +4 -0
- package/nodes/locales/de/ccu-connection.html +103 -0
- package/nodes/locales/de/ccu-get-value.html +16 -0
- package/nodes/locales/de/ccu-homeassistant.html +23 -0
- package/nodes/locales/de/ccu-mqtt.html +21 -0
- package/nodes/locales/de/ccu-poll.html +8 -0
- package/nodes/locales/de/ccu-program.html +26 -0
- package/nodes/locales/de/ccu-rpc-event.html +32 -0
- package/nodes/locales/de/ccu-rpc.html +31 -0
- package/nodes/locales/de/ccu-script.html +13 -0
- package/nodes/locales/de/ccu-set-value.html +46 -0
- package/nodes/locales/de/ccu-signal.html +29 -0
- package/nodes/locales/de/ccu-switch.html +18 -0
- package/nodes/locales/de/ccu-sysvar.html +43 -0
- package/nodes/locales/de/ccu-value.html +98 -0
- package/nodes/locales/de/ccu-value.json +1 -0
- package/nodes/locales/en-US/ccu-alexa.html +4 -0
- package/nodes/locales/en-US/ccu-connection.html +41 -0
- package/nodes/locales/en-US/ccu-get-value.html +13 -0
- package/nodes/locales/en-US/ccu-homeassistant.html +23 -0
- package/nodes/locales/en-US/ccu-mqtt.html +21 -0
- package/nodes/locales/en-US/ccu-poll.html +7 -0
- package/nodes/locales/en-US/ccu-program.html +25 -0
- package/nodes/locales/en-US/ccu-rpc-event.html +31 -0
- package/nodes/locales/en-US/ccu-rpc.html +30 -0
- package/nodes/locales/en-US/ccu-script.html +13 -0
- package/nodes/locales/en-US/ccu-set-value.html +45 -0
- package/nodes/locales/en-US/ccu-signal.html +29 -0
- package/nodes/locales/en-US/ccu-switch.html +6 -0
- package/nodes/locales/en-US/ccu-sysvar.html +42 -0
- package/nodes/locales/en-US/ccu-value.html +81 -0
- package/nodes/locales/en-US/ccu-value.json +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="ccu-connection">
|
|
2
|
+
<p>Im Connection Node wird die Verbindung zu den CCU Schnittstellenprozessen und zur Logikschicht verwaltet.</p>
|
|
3
|
+
<h3>Konfiguration</h3>
|
|
4
|
+
<ul>
|
|
5
|
+
<li><b>Name</b>: Frei wählbarer Name für die aktuelle CCU-Konfiguration. Er dient zur Unterscheidung falls mehrere CCUs an RedMatic angebunden werden und erscheint in allen anderen CCU Nodes.</li>
|
|
6
|
+
</ul>
|
|
7
|
+
<ul>
|
|
8
|
+
<li><b>CCU Address</b>: Die IP-Adresse oder der Hostname der CCU. Wird das CCU-Addon RedMatic genutzt, läuft Node-RED auf dem selben Server weshalb die Loopback-Adresse <code>localhost</code> bzw. <code>127.0.0.1</code> gewählt werden kann.</li>
|
|
9
|
+
</ul>
|
|
10
|
+
<ul>
|
|
11
|
+
<li><b>Listen Address</b>: Die IP-Adresse des Netzwerk-Interfaces auf welchem die RedMatic RPC Server "lauschen" sollen. Läuft RedMatic auf der CCU wird hier ebenfalls <code>localhost</code> bzw. <code>127.0.0.1</code> verwendet. Um auf allen Interfaces zu lauschen kann <code>0.0.0.0</code> verwendet werden.</li>
|
|
12
|
+
</ul>
|
|
13
|
+
<ul>
|
|
14
|
+
<li><b>Init Address</b>: entspricht normalerweise <i>Listen address</i>, Die Adresse unter der Node-RED von der
|
|
15
|
+
CCU aus erreichbar ist. Das Eingabefeld kann leer gelassen werden.</p>
|
|
16
|
+
<p>Für fortgeschrittene User: Wenn auf allen Interfaces gelauscht wird (Adresse 0.0.0.0) oder wenn Node-RED in
|
|
17
|
+
einem Container (z.B. Docker) mit NAT-Netzwerk läuft oder in anderen spezielleren Netzwerkumgebungen kann es
|
|
18
|
+
notwendig sein <i>Init address</i> und <i>Listen Address</i> auf unterschiedliche Werte zu setzen.</li>
|
|
19
|
+
</ul>
|
|
20
|
+
<ul>
|
|
21
|
+
<li><b>BinRPC Port</b>: Der Port des RedMatic BinRPC Dienstes an den die CCU Events schickt. Werden Verbindungen zu mehreren CCUs hergestellt (mehrere instanzen des ccu-configuration Node) braucht jede Verbindung einen exklusiven Port.</li>
|
|
22
|
+
</ul>
|
|
23
|
+
<ul>
|
|
24
|
+
<li><b>XMLRPC Port</b>: Der Port des RedMatic XMLRPC Dienstes an den die CCU Events schickt. Werden Verbindungen zu mehreren CCUs hergestellt braucht jede Verbindung einen exklusiven Port.</li>
|
|
25
|
+
</ul>
|
|
26
|
+
<ul>
|
|
27
|
+
<li><b>Interfaces</b>: Hier können die zu verwendenden Schnittstellen angegeben werden. Nutzt man Beispielsweise keinen CUxD oder HmIP Geräte, kann der Haken entfernt werden was die entsprechenden ungenutzten Komponenten deaktiviert.
|
|
28
|
+
<ul>
|
|
29
|
+
<li>ReGaHSS: Die Logikschicht der CCU, verwaltet CCU-Programme und CCU-Systemvariablen</li>
|
|
30
|
+
<li>BidCos-RF: Homematic Funk</li>
|
|
31
|
+
<li>BidCos-Wired: Homematic Wired</li>
|
|
32
|
+
<li>HmIP-RF: Homematic-IP Funk</li>
|
|
33
|
+
<li>VirtualDevices: Heizungsgruppen, in CCU eingebundene Systeme wie Osram Lightify</li>
|
|
34
|
+
<li>CUxD</li>
|
|
35
|
+
<li>CCU-Jack: XMLRPC-Schnittstelle des <a href="https://github.com/mdzio/ccu-jack" target="_blank">CCU-Jack</a> Addons (Port konfigurierbar, Standard 2121 bzw. 2122 mit TLS)</li>
|
|
36
|
+
</ul>
|
|
37
|
+
|
|
38
|
+
</li>
|
|
39
|
+
</ul>
|
|
40
|
+
<ul>
|
|
41
|
+
<li><b>RPC Ping-Timeout</b>: Zeitinterval in Sekunden in dem die Verbindung zu den Schnittstellenprozessen geprüft wird.</li>
|
|
42
|
+
</ul>
|
|
43
|
+
<ul>
|
|
44
|
+
<li><b>ReGaHSS Polling</b>: Änderungen von CCU-Systemvariablen werden nicht automatisch an RedMatic übermittelt. Mit aktiviertem Polling fragt RedMatic die Variablen und deren Werte in den per Poll-Interval eingestellten Zeitintervallen ab.</li>
|
|
45
|
+
</ul>
|
|
46
|
+
<ul>
|
|
47
|
+
<li><b>ReGaHSS Poll-Interval</b>:
|
|
48
|
+
Das Zeitintervall in Sekunden in dem Systemvariablen von der CCU abgefragt werden.</li>
|
|
49
|
+
</ul>
|
|
50
|
+
<ul>
|
|
51
|
+
<li><b>Context-Store</b>: Hier wird der Node-RED Context-Store festgelegt in dem RedMatic die Zustände aller Geräte/Variablen vorhält.
|
|
52
|
+
|
|
53
|
+
Weiteres unter <a target="_blank" href="https://nodered.org/docs/user-guide/context">Working</a> with context in der Node-RED Dokumentation.</li>
|
|
54
|
+
</ul>
|
|
55
|
+
<ul>
|
|
56
|
+
<li><b>openccu-lite Token</b>: Nur für <a href="https://github.com/hobbyquaker/openccu-lite" target="_blank">openccu-lite</a>,
|
|
57
|
+
eine CCU-Firmware ohne ReGaHSS. Namen, Räume und Gewerke kommen dort aus der Metadaten-API des Systems;
|
|
58
|
+
dafür wird ein Token benötigt, das dort unter <i>Benutzer</i> erzeugt wird. Läuft Node-RED
|
|
59
|
+
auf dem System selbst (RedMatic), bleibt das Feld leer – das lokale Token wird dann automatisch gelesen.
|
|
60
|
+
Das Token wird wie das Passwort in den Node-RED-Credentials gespeichert (verschlüsselt in
|
|
61
|
+
<code>flows_cred.json</code>, nie im Flow und nie im Export).
|
|
62
|
+
Eine CCU/RaspberryMatic/OpenCCU ignoriert das Feld vollständig. Systemvariablen, Programme und
|
|
63
|
+
HM-Scripte gibt es auf openccu-lite nicht; die entsprechenden Nodes bleiben im Flow, melden aber pro
|
|
64
|
+
Nachricht einen Fehler.</li>
|
|
65
|
+
</ul>
|
|
66
|
+
<ul>
|
|
67
|
+
<li><b>openccu-lite Port</b>: Nur nötig, wenn der Webserver des Systems nicht auf Port 80 bzw. 443 (TLS) läuft.</li>
|
|
68
|
+
</ul>
|
|
69
|
+
<ul>
|
|
70
|
+
<li><b>Device data / Re-read device data</b>: Liest die Geräteliste jeder verbundenen Schnittstelle neu ein.
|
|
71
|
+
Neue und geänderte Geräte (z. B. ein Kanal, dessen Typ sich geändert hat) bekommen ihre Datenpunkte neu
|
|
72
|
+
geholt, entfernte verschwinden aus der Tabelle. Ein Gerät, das die CCU mit geändertem Typ oder geänderter Version
|
|
73
|
+
meldet, wird auch ohne Klick automatisch neu eingelesen. Der Knopf setzt eine deployte Verbindung voraus.</li>
|
|
74
|
+
</ul>
|
|
75
|
+
<ul>
|
|
76
|
+
<li><b>Authentication</b>: Verschlüsselung und Anmeldung für eine CCU im Netzwerk (Node-RED läuft nicht auf der CCU).
|
|
77
|
+
Beides gehört zum Webserver der CCU, der die Schnittstellenprozesse nach außen vertritt: auf einer CCU3 werden
|
|
78
|
+
TLS und Authentifizierung in den Firewall-Einstellungen eingeschaltet, auf openccu-lite unter <i>Fernzugriff</i>
|
|
79
|
+
(klassisches RPC). Läuft Node-RED auf dem System selbst (RedMatic; Adresse <code>localhost</code> bzw.
|
|
80
|
+
<code>127.0.0.1</code>), werden die Prozesse direkt über den Loopback erreicht, BidCos per BIN-RPC – ohne TLS und
|
|
81
|
+
ohne Anmeldung; die Einstellungen werden dann nicht verwendet.
|
|
82
|
+
<ul>
|
|
83
|
+
<li>Enabled: Benutzer und Passwort werden bei jedem Aufruf mitgeschickt (HTTP Basic Auth) – an alle
|
|
84
|
+
XML-RPC-Schnittstellen (BidCos-RF, BidCos-Wired, HmIP-RF, VirtualDevices, CCU-Jack) und an die ReGaHSS. BIN-RPC
|
|
85
|
+
(CUxD, die versteckte BIN-RPC-Option für BidCos-RF) kennt keine Anmeldung. Ohne TLS gehen die Zugangsdaten im
|
|
86
|
+
Klartext über das Netz; der Dialog schaltet TLS deshalb mit ein.</li>
|
|
87
|
+
<li>TLS/SSL: Transportverschlüsselung. Die Schnittstellen werden über die TLS-Ports der CCU erreicht (42000, 42001,
|
|
88
|
+
42010, 49292, ReGaHSS 48181, CCU-Jack 2122), die Metadaten-API von openccu-lite über Port 443. BIN-RPC kennt kein
|
|
89
|
+
TLS: mit TLS geht BidCos-RF immer über XML-RPC.</li>
|
|
90
|
+
<li>Ignore invalid TLS Certificates: Node-RED akzeptiert auch ein nicht vertrauenswürdiges Zertifikat. Nötig,
|
|
91
|
+
solange die CCU ihr selbst ausgestelltes Zertifikat verwendet.</li>
|
|
92
|
+
<li>Username: Ein Benutzer der sich an der CCU anmelden darf.</li>
|
|
93
|
+
<li>Password: Das Passwort des Benutzers. Es wird in den Node-RED-Credentials gespeichert
|
|
94
|
+
(verschlüsselt in <code>flows_cred.json</code>), nicht im Flow. Ein Flow aus einer Version vor 4.4.6,
|
|
95
|
+
der es noch im Klartext enthält, wird beim ersten Start übernommen; der nächste Deploy entfernt es aus
|
|
96
|
+
<code>flows.json</code>.</li>
|
|
97
|
+
</ul>
|
|
98
|
+
Die Gegenrichtung bleibt unverschlüsselt: Die CCU schickt ihre Ereignisse an den XML-RPC- bzw. BIN-RPC-Server, den
|
|
99
|
+
Node-RED dafür öffnet (<i>Listen Address</i>, <i>BinRPC Port</i>, <i>XMLRPC Port</i>), ohne TLS und ohne Anmeldung –
|
|
100
|
+
sie kann sich dort nicht anmelden und unser Zertifikat nicht prüfen. Diese Ports sollten in der Firewall des
|
|
101
|
+
Node-RED-Hosts nur für die CCU offen sein.</li>
|
|
102
|
+
</ul>
|
|
103
|
+
</script>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="ccu-get-value">
|
|
2
|
+
<p>Dieser Node gibt bei jeder eingehenden Message den aktuellen zwischengespeicherten Zustand eines Datenpunktes oder einer CCU Systemvariable aus.</p>
|
|
3
|
+
<h3>Konfiguration</h3>
|
|
4
|
+
Um über die eingehende Message die Attribute <code>iface</code>, <code>channel</code>, <code>datapoint</code> und <code>sysvar</code> setzen zu können müssen die entsprechenden Konfigurationsoptionen leer gelassen werden.
|
|
5
|
+
<ul>
|
|
6
|
+
<li><b>Topic</b>: <code>msg.topic</code> der ausgehenden Nachricht, dieselbe Vorlage wie in den anderen Nodes
|
|
7
|
+
(<code>${CCU}</code>, <code>${Interface}</code>, <code>${device}</code>, <code>${deviceName}</code>,
|
|
8
|
+
<code>${channel}</code>, <code>${channelName}</code>, <code>${channelType}</code>, <code>${channelIndex}</code>,
|
|
9
|
+
<code>${datapoint}</code>; bei einer Systemvariable <code>${Name}</code>), z. B.
|
|
10
|
+
<code>${CCU}/${Interface}/${channel}/${datapoint}</code>. Leer (Voreinstellung): <code>msg.topic</code> bleibt
|
|
11
|
+
wie es hereinkam.</li>
|
|
12
|
+
</ul>
|
|
13
|
+
<h3>Input</h3>
|
|
14
|
+
<h3>Output</h3>
|
|
15
|
+
<p>Was ein Datenpunkt bedeutet, sein Wertebereich und seine Einheit: die <a href="https://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/HmIP_Device_Documentation.pdf" target="_blank">eQ-3 HmIP-Gerätedokumentation (PDF)</a>.</p>
|
|
16
|
+
</script>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="ccu-homeassistant">
|
|
2
|
+
<p>Veröffentlicht Home-Assistant-MQTT-Discovery-Konfigurationen für ausgewählte Geräte.</p>
|
|
3
|
+
<p>Der Node ist ein Begleiter zum <b>ccu-mqtt</b>-Node: er übernimmt dessen Topic-Vorlagen und
|
|
4
|
+
Payload-Format, so dass die Discovery-Konfigurationen auf die Topics zeigen, die ccu-mqtt bereits
|
|
5
|
+
veröffentlicht bzw. entgegennimmt. Status und Befehle laufen weiterhin über ccu-mqtt.</p>
|
|
6
|
+
<h3>Verkabelung</h3>
|
|
7
|
+
<p>Den Ausgang mit demselben <b>mqtt out</b>-Node verbinden wie den ccu-mqtt-Node. Der Node sendet
|
|
8
|
+
<code>msg.topic</code>, <code>msg.payload</code> und <code>msg.retain</code>.</p>
|
|
9
|
+
<h3>Geräteauswahl</h3>
|
|
10
|
+
<p>Nur angehakte Geräte werden an Home Assistant gemeldet (ein HA-Gerät pro Homematic-Gerät).
|
|
11
|
+
Wird ein zuvor angehaktes Gerät abgehakt, sendet der Node beim nächsten Deploy eine leere
|
|
12
|
+
Konfiguration, die das Gerät in Home Assistant entfernt.</p>
|
|
13
|
+
<h3>Entitäten</h3>
|
|
14
|
+
<p>Schalter, Dimmer (light), Rollladen/Jalousie (cover), Thermostate (climate), Kontakte/Bewegung/
|
|
15
|
+
Rauch/Wasser (binary_sensor), Tasten (event), KeyMatic (lock), Energie/Wetter (sensor). Mit der
|
|
16
|
+
Option <i>weitere Datenpunkte</i> werden alle übrigen Datenpunkte als standardmäßig deaktivierte
|
|
17
|
+
Entitäten mitgeliefert.</p>
|
|
18
|
+
<h3>Eingang</h3>
|
|
19
|
+
<p>Jede eingehende Nachricht veröffentlicht die Discovery-Konfigurationen erneut.</p>
|
|
20
|
+
<h3>Voraussetzungen</h3>
|
|
21
|
+
<p>Home Assistant ≥ 2024.11 (gerätebasierte Discovery). Die Verfügbarkeit der Geräte wird aus dem
|
|
22
|
+
UNREACH-Datenpunkt des Wartungskanals abgeleitet.</p>
|
|
23
|
+
</script>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="ccu-mqtt">
|
|
2
|
+
<p>Die CCU an MQTT anbinden: Events der Geräte und Änderungen der Systemvariablen gehen als Nachrichten mit fertigem Topic heraus, eingehende Nachrichten schalten, lesen oder rufen RPC-Methoden auf. Verdrahtet wird der Node zwischen einem <i>mqtt in</i>- und einem <i>mqtt out</i>-Node.</p>
|
|
3
|
+
<h3>Konfiguration</h3>
|
|
4
|
+
<ul>
|
|
5
|
+
<li><b>CCU</b>: Die zu verwendende CCU-Konfiguration.</li>
|
|
6
|
+
<li><b>Cache</b>: Beim Start werden die zwischengespeicherten Werte aller Datenpunkte einmal ausgegeben.</li>
|
|
7
|
+
<li><b>Topics</b>, jeweils eine Vorlage mit Platzhaltern (<code>${channelName}</code>, <code>${channelNameOrAddress}</code>, <code>${datapoint}</code>, <code>${name}</code>, <code>${iface}</code>, <code>${paramset}</code>, <code>${param}</code>, <code>${method}</code>, <code>${callid}</code>, <code>${rxtx}</code>):
|
|
8
|
+
<ul>
|
|
9
|
+
<li><b>Event</b>: ausgehende Geräte-Events, Standard <code>hm/status/${channelName}/${datapoint}</code>.</li>
|
|
10
|
+
<li><b>setValue</b>: eingehend, schreibt <code>payload</code> in den Datenpunkt; <code>${channelNameOrAddress}</code> nimmt den Kanalnamen oder die Adresse.</li>
|
|
11
|
+
<li><b>get</b>: eingehend, gibt den zwischengespeicherten Wert des Datenpunkts auf dem Event-Topic aus.</li>
|
|
12
|
+
<li><b>Sysvar/Program Change</b>: ausgehend, Änderungen von Systemvariablen und Programmen; <b>Sysvar/Program Set</b>: eingehend, setzt eine Variable bzw. startet ein Programm.</li>
|
|
13
|
+
<li><b>putParam</b>, <b>putParamset</b>: eingehend, schreibt einen Parameter bzw. einen ganzen Parametersatz (<code>MASTER</code>, <code>VALUES</code>) als JSON.</li>
|
|
14
|
+
<li><b>RPC</b>: eingehend, ruft eine RPC-Methode der Schnittstelle auf (<code>payload</code>: die Parameter als JSON-Array); die Antwort geht auf dem <b>RPC Response</b>-Topic mit derselben <code>${callid}</code> heraus.</li>
|
|
15
|
+
<li><b>Message Counters</b>: ausgehend, die Zähler empfangener und gesendeter Nachrichten je Schnittstelle (<code>${rxtx}</code> = <code>rx</code>/<code>tx</code>).</li>
|
|
16
|
+
</ul>
|
|
17
|
+
</li>
|
|
18
|
+
<li><b>Output Payload</b>: <i>Plain</i> (nur der Wert), <i>MQTT-Smarthome JSON Basic</i> (<code>{"val", "ts", "lc"}</code>) oder <i>MQTT-Smarthome JSON Extended</i> (zusätzlich die Homematic-Eigenschaften der Nachricht: <code>hm.iface</code>, <code>hm.channel</code>, <code>hm.datapoint</code> usw.). Eingehend werden ein nackter Wert und ein Objekt mit <code>val</code> gleichermaßen verstanden.</li>
|
|
19
|
+
</ul>
|
|
20
|
+
<p>Für Home Assistant gibt es den <i>ccu-homeassistant</i>-Node, der die Discovery-Konfigurationen zu diesen Topics erzeugt.</p>
|
|
21
|
+
</script>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="ccu-poll">
|
|
2
|
+
<p>Führt einen sofortigen Poll von ReGaHSS Systemvariablen durch.</p>
|
|
3
|
+
<p>Dieser Node ist dazu vorgesehen die Änderung von Systemvariablen mit möglichst geringer Verzögerung zu empfangen.
|
|
4
|
+
Hierzu kann man ein Programm auf der CCU anlegen dass bei Änderung von Variablen einen virtuellen Taster betätigt.
|
|
5
|
+
In Node-RED wird dann ein <i>rpc event</i> oder <i>value</i> Node so konfiguriert dass er diese
|
|
6
|
+
"Tastenbetätigungen" empfängt und über den <i>ccu poll</i> Node eine Aktualisierung der Variablenwerte auslöst.
|
|
7
|
+
</p>
|
|
8
|
+
</script>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="ccu-program">
|
|
2
|
+
<p>Führt ein ReGaHSS Programm aus.</p>
|
|
3
|
+
<h3>Inputs</h3>
|
|
4
|
+
<dl class="message-properties">
|
|
5
|
+
<dt>payload
|
|
6
|
+
<span class="property-type">*</span>
|
|
7
|
+
</dt>
|
|
8
|
+
<dd>
|
|
9
|
+
Ist der Payload vom Typ boolean wird das Programm bei <code>true</code> aktiviert und ausgeführt und bei
|
|
10
|
+
<code>false</code> deaktiviert. In allen anderen Fällen (Payload ist z.B. ein leerer String) wird das
|
|
11
|
+
Programm ausgeführt.
|
|
12
|
+
</dd>
|
|
13
|
+
</dl>
|
|
14
|
+
<h3>Outputs</h3>
|
|
15
|
+
<ol class="node-ports">
|
|
16
|
+
<li>Output
|
|
17
|
+
<dl class="message-properties">
|
|
18
|
+
<dt>payload <span class="property-type">string</span></dt>
|
|
19
|
+
<dd>
|
|
20
|
+
Im Payload ist der Zeitstempel der letzten Programmausführung (Attribut <code>ts</code>) sowie
|
|
21
|
+
die Information ob ein Programm aktiv oder inaktiv ist (Attribut <code>active</code>) enthalten.
|
|
22
|
+
</dd>
|
|
23
|
+
</dl>
|
|
24
|
+
</li>
|
|
25
|
+
</ol>
|
|
26
|
+
</script>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="ccu-rpc-event">
|
|
2
|
+
<p>Gibt RPC Events aus.</p>
|
|
3
|
+
<h3>Konfiguration</h3>
|
|
4
|
+
<ul>
|
|
5
|
+
<li><b>CCU</b>: Die zu verwendende CCU-Konfiguration.</li>
|
|
6
|
+
<li><b>topic</b>: <code>msg.topic</code> ausgehender Nachrichten, mit Platzhaltern: <code>${CCU}</code>,
|
|
7
|
+
<code>${Interface}</code>, <code>${device}</code>, <code>${deviceName}</code>, <code>${deviceType}</code>,
|
|
8
|
+
<code>${channel}</code>, <code>${channelName}</code>, <code>${channelType}</code>, <code>${channelIndex}</code>,
|
|
9
|
+
<code>${datapoint}</code>, <code>${datapointName}</code>. Dieselbe Vorlage gibt es in jedem Node, der Nachrichten
|
|
10
|
+
ausgibt (value, get value, sysvar, program, rpc, script).</li>
|
|
11
|
+
<li><b>interface</b>: Die Schnittstelle über welche die gewüschten Geräte angebunden sind. <code>*</code> erlaubt Events aller verbundenen Schnittstellen.</li>
|
|
12
|
+
<li><b>room</b>: Raum Filter. Beispiel: <code>Wohnzimmer</code>.</li>
|
|
13
|
+
<li><b>function</b>: Gewerk Filter. Beispiel: <code>Taster</code></li>
|
|
14
|
+
<li><b>device</b>: Die Seriennummer der Homematic Komponente. Beispiel: <code>OEQ1662328</code></li>
|
|
15
|
+
<li><b>deviceName</b>: Der in der CCU vergebene Name der Homematic Komponente. Beispiel: <code>Rauchmelder Arbeitszimmer</code>; alle Rauchemelder über RegEx: <code>Rauchmelder.*</code></li>
|
|
16
|
+
<li><b>deviceType</b>: Die Typen-Bezeichnung der Homematic Komponente. Beispiel: <code>HM-Sec-SD-2</code></li>
|
|
17
|
+
<li><b>channel</b>: Die Kanaladresse bestehend aus Serien- und Kanalnummer. Beispiel: <code>OEQ1245312:4</code></li>
|
|
18
|
+
<li><b>channelName</b>: Der in der CCU vergebene Kanalname. Beispiel: <code>Bad Lichte Decke PIR</code></li>
|
|
19
|
+
<li><b>channelType</b>: Der Typ des Kanals. Beispiel: <code>VIRTUAL_KEY</code> oder <code>DIMMER</code></li>
|
|
20
|
+
<li><b>channelIndex</b>: Der Index des Kanals. Beispiel: <code>2</code>
|
|
21
|
+
<li><b>datapoint</b>: Der Datenpunkt des Kanals. Beispiel: <code>PRESS_SHORT</code> oder <code>ACTUAL_TEMPERATURE</code>. Was ein Datenpunkt bedeutet:
|
|
22
|
+
die <a href="https://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/HmIP_Device_Documentation.pdf" target="_blank">eQ-3 HmIP-Gerätedokumentation (PDF)</a>.</li>
|
|
23
|
+
<li><b>Nur geänderte Werte ausgeben</b> - Ein Event wird nur dann erzeugt, wenn sich der Wert seit dem letztn Event verändert hat.</li>
|
|
24
|
+
<li><b>Während WORKING keine Werte ausgeben</b> - Es gibt Aktoren, z.B. Dimmer oder Rolladen, die während einer Rampe (Öffnen/Schließen eines Rollladen, Dimmen einer Lampe) fortwährend den aktuellen Zustand ausgeben. Um nur den End-Status auszugeben kann diese Option benutzt werden. Gebräuchlich auch bei Verwendung mit Dashboard-Nodes um "springende" Slider zu verhindern.</li>
|
|
25
|
+
<li><b>Beim Start letzten bekannten Wert ausgeben</b> - Wenn Node-RED gestartet wird, dann wird der letzte Wert (sofern in der ReGaHSS bekannt) ausgegeben. Z.B. um beim Start einen korrekten Wert an das Dashboard zu übergeben. <b>Achtung:</b> Wird durch die ausgegebene Nachricht im weiteren Verlauf des Flows ein Homematic Wert gesetzt wirkt sich jedes (Full-)Deployment negativ auf den DutyCycle aus.</li>
|
|
26
|
+
</ul>
|
|
27
|
+
|
|
28
|
+
<p>Jeder Filter ist ein Text oder, mit dem Wahlschalter daneben, ein regulärer Ausdruck; ein leerer Filter passt auf alles. Eine Nachricht muss alle gesetzten Filter passieren.</p>
|
|
29
|
+
|
|
30
|
+
<h3>Output</h3>
|
|
31
|
+
<p>Eine Nachricht pro Event. Neben <code>payload</code> (dem Wert) trägt sie den Kontext des Datenpunkts: <code>ccu</code>, <code>iface</code>, <code>device</code>, <code>deviceName</code>, <code>deviceType</code>, <code>channel</code>, <code>channelName</code>, <code>channelType</code>, <code>channelIndex</code>, <code>datapoint</code>, <code>datapointName</code>, <code>datapointType</code>, <code>datapointMin</code>, <code>datapointMax</code>, <code>datapointEnum</code>, <code>datapointDefault</code>, <code>datapointControl</code>, <code>value</code>, <code>valuePrevious</code>, <code>valueEnum</code>, <code>valueStable</code>, <code>rooms</code>/<code>room</code>, <code>functions</code>/<code>function</code>, <code>ts</code>, <code>tsPrevious</code> und <code>lc</code> (Zeitpunkt des Events, des vorigen Events, der letzten Änderung), <code>change</code>, <code>cache</code> (true für einen beim Start ausgegebenen Wert), <code>working</code>, <code>direction</code>, <code>uncertain</code> sowie <code>topic</code> wie konfiguriert.</p>
|
|
32
|
+
</script>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="ccu-rpc">
|
|
2
|
+
<p>Führt eine RPC Methode aus und gibt das Ergebnis zurück.</p>
|
|
3
|
+
<h3>Inputs</h3>
|
|
4
|
+
<dl class="message-properties">
|
|
5
|
+
<dt>topic
|
|
6
|
+
<span class="property-type">String</span>
|
|
7
|
+
</dt>
|
|
8
|
+
<dd>
|
|
9
|
+
Die Methode die aufgerufen werden soll. Siehe <a href="https://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/HM_XmlRpc_API.pdf">XMLRPC API Dokumentation</a>
|
|
10
|
+
</dd>
|
|
11
|
+
<dt>payload
|
|
12
|
+
<span class="property-type">Array|String</span>
|
|
13
|
+
</dt>
|
|
14
|
+
<dd>
|
|
15
|
+
Ein Array oder ein in einem JSON-string enthaltenes Array von Parametern die für den RPC Methodenaufruf
|
|
16
|
+
genutzt werden.
|
|
17
|
+
</dd>
|
|
18
|
+
|
|
19
|
+
</dl>
|
|
20
|
+
<h3>Outputs</h3>
|
|
21
|
+
<ol class="node-ports">
|
|
22
|
+
<li>Output
|
|
23
|
+
<dl class="message-properties">
|
|
24
|
+
<dt>payload <span class="property-type">array</span></dt>
|
|
25
|
+
<dd>
|
|
26
|
+
Die Rückgabe des RPC Methodenaufrufs.
|
|
27
|
+
</dd>
|
|
28
|
+
</dl>
|
|
29
|
+
</li>
|
|
30
|
+
</ol>
|
|
31
|
+
</script>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="ccu-script">
|
|
2
|
+
<p>Führt ein HM-Script (ReGaHSS) auf der CCU aus und gibt das Ergebnis aus.</p>
|
|
3
|
+
<h3>Konfiguration</h3>
|
|
4
|
+
<ul>
|
|
5
|
+
<li><b>CCU</b>: Die zu verwendende CCU-Konfiguration.</li>
|
|
6
|
+
<li><b>Topic</b>: <code>msg.topic</code> der ausgehenden Nachricht, Vorlage mit Platzhaltern (<code>${CCU}</code>, <code>${Interface}</code>), Standard <code>${CCU}/${Interface}</code>.</li>
|
|
7
|
+
<li><b>Script</b>: Das Script. Bleibt das Feld leer, wird <code>msg.payload</code> der eingehenden Nachricht als Script ausgeführt.</li>
|
|
8
|
+
</ul>
|
|
9
|
+
<h3>Input</h3>
|
|
10
|
+
<p>Jede eingehende Nachricht startet das Script; ohne konfiguriertes Script ist <code>msg.payload</code> das Script.</p>
|
|
11
|
+
<h3>Output</h3>
|
|
12
|
+
<p><code>msg.payload</code> ist die Ausgabe des Scripts (was es mit <code>WriteLine</code> schreibt), <code>msg.objects</code> die Werte der Variablen, die das Script gesetzt hat, dazu <code>iface</code> (<code>ReGaHSS</code>) und <code>ccu</code>. Ein Script, das nicht bis zum Ende läuft, meldet <i>Script call failed</i>. Auf openccu-lite gibt es keine ReGaHSS; der Node meldet dort pro Nachricht einen Fehler.</p>
|
|
13
|
+
</script>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="ccu-set-value">
|
|
2
|
+
<p>Einen Wert in mehrere Geräte auf einmal schreiben: alle Kanäle, auf die die Filter passen, bekommen <code>msg.payload</code> in den gewählten Datenpunkt.</p>
|
|
3
|
+
<h3>Konfiguration</h3>
|
|
4
|
+
<ul>
|
|
5
|
+
<li><b>CCU</b>: Die zu verwendende CCU-Konfiguration.</li>
|
|
6
|
+
<li><b>Interface</b>: Die Schnittstelle, deren Geräte angesprochen werden; <code>*</code> für alle verbundenen Schnittstellen.</li>
|
|
7
|
+
<li><b>room</b>, <b>function</b>: Raum- und Gewerke-Filter, z. B. <code>Wohnzimmer</code>, <code>Licht</code>.</li>
|
|
8
|
+
<li><b>device</b>, <b>deviceName</b>, <b>deviceType</b>: Filter auf Seriennummer, CCU-Name und Typ des Geräts, z. B. <code>OEQ1662328</code>, <code>Deckenlampe.*</code>, <code>HM-LC-Sw1-FM</code>.</li>
|
|
9
|
+
<li><b>channel</b>, <b>channelName</b>, <b>channelType</b>, <b>channelIndex</b>: Filter auf Kanaladresse (<code>OEQ1245312:4</code>), Kanalname, Kanaltyp (<code>SWITCH</code>, <code>DIMMER</code>) und Kanalindex.</li>
|
|
10
|
+
<li><b>datapoint</b>: Der Datenpunkt, in den geschrieben wird, z. B. <code>STATE</code> oder <code>LEVEL</code>. Was ein Datenpunkt bedeutet, sein Wertebereich und seine Einheit:
|
|
11
|
+
die <a href="https://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/HmIP_Device_Documentation.pdf" target="_blank">eQ-3 HmIP-Gerätedokumentation (PDF)</a>.</li>
|
|
12
|
+
<li><b>force</b>: Schreibt auch dann, wenn der Cache den Wert schon kennt (siehe <i>Queue und Erzwingen</i> beim value Node).</li>
|
|
13
|
+
</ul>
|
|
14
|
+
<p>Jeder Filter ist ein Text oder, mit dem Wahlschalter daneben, ein regulärer Ausdruck; ein leerer Filter passt auf alles. Geschrieben wird in jeden Kanal, der alle gesetzten Filter passiert und den Datenpunkt hat.</p>
|
|
15
|
+
|
|
16
|
+
<h3>Input</h3>
|
|
17
|
+
<p><code>msg.payload</code> ist der Wert, der geschrieben wird. Leer gelassene Filter füllen gleichnamige Eigenschaften der Nachricht (<code>msg.iface</code>, <code>msg.rooms</code>, <code>msg.channel</code>, <code>msg.datapoint</code> usw.); <code>msg.config</code> überschreibt die Konfiguration für genau diese Nachricht (siehe unten).</p>
|
|
18
|
+
|
|
19
|
+
<h3>Party-/Urlaubsmodus (HmIP)</h3>
|
|
20
|
+
<p>Ein HmIP-Thermostat (eTRV, WTH) nimmt <code>PARTY_TIME_START</code>, <code>PARTY_TIME_END</code> und
|
|
21
|
+
<code>PARTY_SET_POINT_TEMPERATURE</code> nur gemeinsam an; einzeln geschrieben setzt er die anderen beiden zurück. Ein
|
|
22
|
+
Schreiben auf einen der drei Datenpunkte geht deshalb als ein <code>putParamset</code> mit allen dreien hinaus – die
|
|
23
|
+
beiden anderen aus dem letzten eigenen Schreiben, dem Wertecache oder einem Lesen vom Gerät. Die Zeiten können als
|
|
24
|
+
Gerätestring <code>YYYY_MM_DD HH:MM</code>, als JavaScript-Date, ISO-String oder Millisekunden angegeben werden; sie
|
|
25
|
+
werden in lokaler Zeit für das Gerät formatiert. Ältere HM-Thermostate (<code>PARTY_MODE_SUBMIT</code>) sind nicht
|
|
26
|
+
abgedeckt.</p>
|
|
27
|
+
|
|
28
|
+
<h3>Dynamische Konfiguration</h3>
|
|
29
|
+
<p><code>msg.config</code> ist ein Objekt, dessen Eigenschaften die Konfiguration dieses Nodes für genau diese Nachricht überschreiben. Die gespeicherte Konfiguration bleibt unverändert.</p>
|
|
30
|
+
<ul>
|
|
31
|
+
<li><code>iface</code></li>
|
|
32
|
+
<li><code>rooms</code></li>
|
|
33
|
+
<li><code>functions</code></li>
|
|
34
|
+
<li><code>device</code></li>
|
|
35
|
+
<li><code>deviceType</code></li>
|
|
36
|
+
<li><code>deviceName</code></li>
|
|
37
|
+
<li><code>channel</code></li>
|
|
38
|
+
<li><code>channelType</code></li>
|
|
39
|
+
<li><code>channelIndex</code></li>
|
|
40
|
+
<li><code>channelName</code></li>
|
|
41
|
+
<li><code>datapoint</code></li>
|
|
42
|
+
<li><code>force</code></li>
|
|
43
|
+
<li>sowie die zugehörigen <code>...Rx</code>-Selektoren</li>
|
|
44
|
+
</ul>
|
|
45
|
+
<p>Zusätzlich füllen gleichnamige Eigenschaften der Nachricht selbst (<code>msg.rooms</code> usw.) leer gelassene Felder — so war es schon immer.</p>
|
|
46
|
+
</script>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="ccu-signal">
|
|
2
|
+
<p>Senden von LED- und Tonsignalen an Displaytaster und Funk-Gongs.</p>
|
|
3
|
+
|
|
4
|
+
<h3>Dynamische Konfiguration</h3>
|
|
5
|
+
<p><code>msg.config</code> ist ein Objekt, dessen Eigenschaften die Konfiguration dieses Nodes für genau diese Nachricht überschreiben. Die gespeicherte Konfiguration bleibt unverändert.</p>
|
|
6
|
+
<ul>
|
|
7
|
+
<li><code>iface</code></li>
|
|
8
|
+
<li><code>channel</code></li>
|
|
9
|
+
<li><code>channelType</code></li>
|
|
10
|
+
<li><code>chime</code></li>
|
|
11
|
+
<li><code>led</code></li>
|
|
12
|
+
<li><code>signal</code></li>
|
|
13
|
+
<li><code>volume</code></li>
|
|
14
|
+
<li><code>repeat</code></li>
|
|
15
|
+
<li><code>repetitions</code></li>
|
|
16
|
+
<li><code>durationUnit</code></li>
|
|
17
|
+
<li><code>durationValue</code></li>
|
|
18
|
+
<li><code>rampTimeUnit</code></li>
|
|
19
|
+
<li><code>rampTimeValue</code></li>
|
|
20
|
+
<li><code>acousticAlarmSelection</code></li>
|
|
21
|
+
<li><code>opticalAlarmSelection</code></li>
|
|
22
|
+
<li><code>dimmerLevel</code></li>
|
|
23
|
+
<li><code>dimmerColor</code></li>
|
|
24
|
+
<li><code>dimmerList</code></li>
|
|
25
|
+
<li><code>soundLevel</code></li>
|
|
26
|
+
<li><code>soundList</code></li>
|
|
27
|
+
</ul>
|
|
28
|
+
<p><code>soundList</code> und <code>dimmerList</code> akzeptieren auch ein einfaches Array von Werten, z.B. <code>msg.config.soundList = [1, 2]</code>.</p>
|
|
29
|
+
</script>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="ccu-switch">
|
|
2
|
+
<p>Nachricht abhängig von einem Zustand eines Aktors oder einer Systemvariablen weiterleiten.</p>
|
|
3
|
+
<h3>Details</h3>
|
|
4
|
+
<p>Der ccu switch Node verhält sich ähnlich wie der switch Node von Node-RED. Er leitet eine Nachricht abhängig von einem Zustand eines Aktors oder einer Systemvariablen weiter, wahlweise auch je nach Zustand an unterschiedliche Ausgänge.</p>
|
|
5
|
+
<h4>Dokumentation</h4>
|
|
6
|
+
<a target="_blank" href="https://github.com/rdmtc/RedMatic/wiki/CCU-Nodes#ccu-switch-node">ccu switch node im RedMatic Wiki</a>
|
|
7
|
+
|
|
8
|
+
<h3>Dynamische Konfiguration</h3>
|
|
9
|
+
<p><code>msg.config</code> ist ein Objekt, dessen Eigenschaften die Konfiguration dieses Nodes für genau diese Nachricht überschreiben. Die gespeicherte Konfiguration bleibt unverändert.</p>
|
|
10
|
+
<ul>
|
|
11
|
+
<li><code>iface</code></li>
|
|
12
|
+
<li><code>channel</code></li>
|
|
13
|
+
<li><code>datapoint</code></li>
|
|
14
|
+
<li><code>datapointProperty</code></li>
|
|
15
|
+
<li><code>sysvar</code></li>
|
|
16
|
+
<li><code>sysvarProperty</code></li>
|
|
17
|
+
</ul>
|
|
18
|
+
</script>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="ccu-sysvar">
|
|
2
|
+
<p>Setzen und lesen von ReGaHSS Systemvariablen.</p>
|
|
3
|
+
<h3>Inputs</h3>
|
|
4
|
+
<dl class="message-properties">
|
|
5
|
+
<dt>payload
|
|
6
|
+
<span class="property-type">*</span>
|
|
7
|
+
</dt>
|
|
8
|
+
<dd>
|
|
9
|
+
Der Wert der der Systemvariablen zugewiesen werden soll.
|
|
10
|
+
</dd>
|
|
11
|
+
</dl>
|
|
12
|
+
<h3>Outputs</h3>
|
|
13
|
+
<ol class="node-ports">
|
|
14
|
+
<li>Output
|
|
15
|
+
|
|
16
|
+
<code>msg</code> Beispiel:<br>
|
|
17
|
+
<pre><code>
|
|
18
|
+
{
|
|
19
|
+
"ccu": "localhost",
|
|
20
|
+
"iface": "ReGaHSS",
|
|
21
|
+
"type": "SYSVAR",
|
|
22
|
+
"name": "Anwesenheit",
|
|
23
|
+
"payload": false,
|
|
24
|
+
"value": false,
|
|
25
|
+
"valueType": "boolean",
|
|
26
|
+
"valueEnum": "nicht anwesend",
|
|
27
|
+
"ts": 1525197999611,
|
|
28
|
+
"lc": 1525197999611,
|
|
29
|
+
"enum": ["nicht anwesend", "anwesend"],
|
|
30
|
+
"id": 950,
|
|
31
|
+
"topic": "ReGaHSS/Anwesenheit"
|
|
32
|
+
}
|
|
33
|
+
</code></pre>
|
|
34
|
+
</li>
|
|
35
|
+
</ol>
|
|
36
|
+
|
|
37
|
+
<h3>Dynamische Konfiguration</h3>
|
|
38
|
+
<p><code>msg.config</code> ist ein Objekt, dessen Eigenschaften die Konfiguration dieses Nodes für genau diese Nachricht überschreiben. Die gespeicherte Konfiguration bleibt unverändert.</p>
|
|
39
|
+
<ul>
|
|
40
|
+
<li><code>name</code></li>
|
|
41
|
+
</ul>
|
|
42
|
+
<p>Woher der zu schreibende Wert kommt, stellt das Feld <em>Wert aus</em> ein (msg/flow/global/env) — er muss nicht mehr in <code>msg.payload</code> stehen.</p>
|
|
43
|
+
</script>
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="ccu-value">
|
|
2
|
+
<p>Geräte steuern und/oder Events von einem Gerät empfangen.</p>
|
|
3
|
+
<h3>Konfiguration</h3>
|
|
4
|
+
<ul>
|
|
5
|
+
<li><b>CCU:</b> Die zu verwendende CCU-Konfiguration.</li>
|
|
6
|
+
<li><b>Topic:</b> <code>msg.topic</code> ausgehender Nachrichten, mit Platzhaltern: <code>${CCU}</code>,
|
|
7
|
+
<code>${Interface}</code>, <code>${device}</code>, <code>${deviceName}</code>, <code>${deviceType}</code>,
|
|
8
|
+
<code>${channel}</code>, <code>${channelName}</code>, <code>${channelType}</code>, <code>${channelIndex}</code>,
|
|
9
|
+
<code>${datapoint}</code>, <code>${datapointName}</code>. Dieselbe Vorlage gibt es in jedem Node, der Nachrichten
|
|
10
|
+
ausgibt; wer überall z. B. <code>hm/${Interface}/${channel}/${datapoint}</code> einträgt, bekommt überall
|
|
11
|
+
dasselbe Topic-Schema.</li>
|
|
12
|
+
<li><b>Interface</b>: Hier wird das Interface gewählt, über welches das gewüschnte Geräte angebunden ist.</li>
|
|
13
|
+
<li><b>Channel</b>: Der Kanal dessen Datenpunkte verwendet werden sollen. Er besteht aus der Serien- sowie der Kanalnummer. Eine Autovervollständigung hilft bei der Auswahl anhand der Klarnamen.</li>
|
|
14
|
+
<li><b>Datapoint</b>: Der Datenpunkt des Kanals, auch hier wird über eine Autovervollständigung die Auswahl vereinfacht. Was ein Datenpunkt bedeutet, sein Wertebereich und seine Einheit:
|
|
15
|
+
die <a href="https://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/HmIP_Device_Documentation.pdf" target="_blank">eQ-3 HmIP-Gerätedokumentation (PDF)</a>.</li>
|
|
16
|
+
<li><b>ON_TIME</b>:
|
|
17
|
+
Zeit in Sekunden nach der ein Schaltaktor/Dimmer nach dem anschalten wieder ausgeschaltet werden soll.<br>
|
|
18
|
+
Dabei ist:
|
|
19
|
+
<ul>
|
|
20
|
+
<li><code>undefined</code> Keine automatische Ausschaltung</li>
|
|
21
|
+
<li><code>number</code> Eine feste Verzögerung in Sekunden</li>
|
|
22
|
+
<li><code>global</code>, <code>flow</code> Die Verzögerung in Sekunden wird aus einer Context-Variablen übernommen</li>
|
|
23
|
+
<li><code>msg</code> Die Verzögerung in Sekunden wird kann über eine msg property übergeben werden</li>
|
|
24
|
+
</ul>
|
|
25
|
+
|
|
26
|
+
</li>
|
|
27
|
+
<li><b>set Mode</b>:
|
|
28
|
+
Eine Erweiterung für Geräte, die sowohl den rx_mode BURST als auch WAKEUP unterstützen wie z.B.:
|
|
29
|
+
Batterie-Schaltaktoren oder Rauchmelder mit Sirenenfunktion. Mit dem Parameter kann in diesem Fall angegeben
|
|
30
|
+
werden, ob der übergebene Wert über BURST oder WAKEUP übertragen werden soll.
|
|
31
|
+
<ul>
|
|
32
|
+
<li><b>WAKEUP</b> - Überträgt den Wert sobald sich der entsprechende Empfänger bei der Zentrale meldet.</li>
|
|
33
|
+
<li><b>BURST</b> - Versucht alle BURST-Empfänger für die Übertragung aufzuwecken was sich negativ auf den DutyCycle und die Batterielaufzeit aller Burst-Empfänger auswirkt.</li>
|
|
34
|
+
</ul>
|
|
35
|
+
</li>
|
|
36
|
+
<li><b>Flags</b>:
|
|
37
|
+
<ul>
|
|
38
|
+
<li><b>Nur geänderte Werte ausgeben</b> - Ein Event wird nur dann erzeugt, wenn sich der Wert seit dem letztn Event verändert hat.</li>
|
|
39
|
+
<li><b>Während WORKING keine Werte ausgeben</b> - Es gibt Aktoren, z.B. Dimmer oder Rolladen, die während einer Rampe (Öffnen/Schließen eines Rollladen, Dimmen einer Lampe) fortwährend den aktuellen Zustand ausgeben. Um nur den End-Status auszugeben kann diese Option benutzt werden. Gebräuchlich auch bei Verwendung mit Dashboard-Nodes um "springende" Slider zu verhindern.</li>
|
|
40
|
+
<li><b>Beim Start letzten bekannten Wert ausgeben</b> - Wenn Node-RED gestartet wird, dann wird der letzte Wert (sofern in der ReGaHSS bekannt) ausgegeben. Z.B. um beim Start einen korrekten Wert an das Dashboard zu übergeben. <b>Achtung:</b> </li>
|
|
41
|
+
</ul>
|
|
42
|
+
|
|
43
|
+
</li>
|
|
44
|
+
</ul>
|
|
45
|
+
|
|
46
|
+
<h3>Input</h3>
|
|
47
|
+
<p>
|
|
48
|
+
Für den Input des Value Node wird <code>msg.payload</code> als der Wert verwendet der in den Datenpunkt geschrieben wird.
|
|
49
|
+
|
|
50
|
+
Die Bestimmung des Datenpunkts sowie des Kanals und der Schnittstellen können hier dynamisch sein. Dazu werden die Eingabefelder leer gelassen und über die eingehende <code>msg</code> gesetzt.
|
|
51
|
+
</p>
|
|
52
|
+
<b>Option 1</b>: Interface, Channel und Datapoint können in der msg als Properties angegeben werden:
|
|
53
|
+
<code>
|
|
54
|
+
<pre>{
|
|
55
|
+
"interface": "BidCos-RF",
|
|
56
|
+
"channel": "OEQ1868878:1",
|
|
57
|
+
"datapoint": "STATE",
|
|
58
|
+
"payload": true
|
|
59
|
+
}</pre>
|
|
60
|
+
</code>
|
|
61
|
+
|
|
62
|
+
<b>Option 2</b>: Der Datenpunkt kann über <code>msg.topic</code> angegeben werden wobei Interface, Channel und Datapoint mit Punkt getrennt werden:
|
|
63
|
+
<code>
|
|
64
|
+
<pre>{
|
|
65
|
+
"topic": "BidCos-RF.OEQ1868878:1.STATE",
|
|
66
|
+
"payload": true
|
|
67
|
+
}</pre>
|
|
68
|
+
</code>
|
|
69
|
+
Oder in der Form, in der die Nodes ihre Topics ausgeben – mit Schrägstrichen, die letzten drei Teile zählen
|
|
70
|
+
(<code>ccu3/BidCos-RF/OEQ1868878:1/STATE</code>, <code>hm/BidCos-RF/OEQ1868878:1/STATE</code> und
|
|
71
|
+
<code>BidCos-RF/OEQ1868878:1/STATE</code> meinen denselben Datenpunkt), so dass das Topic eines Events unverändert
|
|
72
|
+
zurückgeschickt werden kann.
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
<h3>Output</h3>
|
|
76
|
+
<p>Der Value Node gibt nur Events aus, wenn Interface, Channel und Datapoint gesetzt sind. Die Nachricht ist die beim rpc-event Node beschriebene.</p>
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
<h3>Dynamische Konfiguration</h3>
|
|
80
|
+
<p><code>msg.config</code> ist ein Objekt, dessen Eigenschaften die Konfiguration dieses Nodes für genau diese Nachricht überschreiben. Die gespeicherte Konfiguration bleibt unverändert.</p>
|
|
81
|
+
<ul>
|
|
82
|
+
<li><code>iface</code></li>
|
|
83
|
+
<li><code>channel</code></li>
|
|
84
|
+
<li><code>datapoint</code></li>
|
|
85
|
+
<li><code>force</code></li>
|
|
86
|
+
</ul>
|
|
87
|
+
<p>Eine Nachricht ohne <code>payload</code> schreibt nichts, richtet aber die Ausgabe-Seite des Nodes neu aus.</p>
|
|
88
|
+
<h3>Party-/Urlaubsmodus (HmIP)</h3>
|
|
89
|
+
<p>Ein HmIP-Thermostat (eTRV, WTH) nimmt <code>PARTY_TIME_START</code>, <code>PARTY_TIME_END</code> und
|
|
90
|
+
<code>PARTY_SET_POINT_TEMPERATURE</code> nur gemeinsam an; einzeln geschrieben setzt er die anderen beiden zurück. Ein
|
|
91
|
+
Schreiben auf einen der drei Datenpunkte geht deshalb als ein <code>putParamset</code> mit allen dreien hinaus – die
|
|
92
|
+
beiden anderen aus dem letzten eigenen Schreiben, dem Wertecache oder einem Lesen vom Gerät. Die Zeiten können als
|
|
93
|
+
Gerätestring <code>YYYY_MM_DD HH:MM</code>, als JavaScript-Date, ISO-String oder Millisekunden angegeben werden; sie
|
|
94
|
+
werden in lokaler Zeit für das Gerät formatiert. Ältere HM-Thermostate (<code>PARTY_MODE_SUBMIT</code>) sind nicht
|
|
95
|
+
abgedeckt.</p>
|
|
96
|
+
<h3>Queue und Erzwingen</h3>
|
|
97
|
+
<p>Mit <i>Queue</i> werden Schreibbefehle nacheinander gesendet, und ein Wert, den der Cache schon von einer anderen Quelle kennt, wird nicht noch einmal gesendet. Ein Wert, den dieser Node selbst zuletzt geschrieben hat, wird immer gesendet: ein von Hand bewegter Rollladen meldet auf seinem Steuerkanal keinen neuen Sollwert. <i>Erzwingen</i> (auch <code>msg.config.force</code>) sendet in jedem Fall.</p>
|
|
98
|
+
</script>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<script type="text/html" data-help-name="ccu-connection">
|
|
2
|
+
<p>The connection node manages the connection to the CCU's interface processes and to its logic layer.</p>
|
|
3
|
+
<h3>Configuration</h3>
|
|
4
|
+
<ul>
|
|
5
|
+
<li><b>Name</b>: A name of your choice for this CCU configuration. It tells several CCUs apart and appears in every other CCU node.</li>
|
|
6
|
+
<li><b>CCU Address</b>: The IP address or host name of the CCU. With the RedMatic addon Node-RED runs on the CCU itself, so the loopback address <code>localhost</code> or <code>127.0.0.1</code> is the right one.</li>
|
|
7
|
+
<li><b>Listen Address</b>: The address of the network interface the RPC servers listen on for the CCU's events. On the CCU itself (RedMatic) this is <code>localhost</code> / <code>127.0.0.1</code> as well; <code>0.0.0.0</code> listens on every interface.</li>
|
|
8
|
+
<li><b>Init Address</b>: Normally the same as <i>Listen Address</i>: the address under which the CCU reaches Node-RED. It may stay empty.
|
|
9
|
+
<p>For advanced setups: when listening on every interface (<code>0.0.0.0</code>), when Node-RED runs in a container (Docker) behind NAT, or in other special networks, <i>Init Address</i> and <i>Listen Address</i> may have to differ.</p></li>
|
|
10
|
+
<li><b>BINRPC listening port</b>: The port of the BIN-RPC server the CCU sends its events to. Several connections (several connection nodes) each need a port of their own.</li>
|
|
11
|
+
<li><b>XMLRPC listening port</b>: The port of the XML-RPC server the CCU sends its events to. Several connections each need a port of their own.</li>
|
|
12
|
+
<li><b>Interfaces</b>: The interfaces to use. Untick what you do not have (no CUxD, no HmIP devices, say) to switch the unused parts off.
|
|
13
|
+
<ul>
|
|
14
|
+
<li>ReGaHSS: the CCU's logic layer, which holds the programs and system variables</li>
|
|
15
|
+
<li>BidCos-RF: Homematic radio</li>
|
|
16
|
+
<li>BidCos-Wired: Homematic wired</li>
|
|
17
|
+
<li>HmIP-RF: Homematic IP radio</li>
|
|
18
|
+
<li>VirtualDevices: heating groups and systems the CCU integrates, such as Osram Lightify</li>
|
|
19
|
+
<li>CUxD</li>
|
|
20
|
+
<li>CCU-Jack: the XML-RPC interface of the <a href="https://github.com/mdzio/ccu-jack" target="_blank">CCU-Jack</a> addon (port configurable, 2121 by default, 2122 with TLS)</li>
|
|
21
|
+
</ul>
|
|
22
|
+
</li>
|
|
23
|
+
<li><b>RPC ping</b> and <b>RPC ping timeout (s)</b>: How often the connection to the interface processes is checked with a ping, and after how many seconds without an answer it subscribes again. Off means no pings and no timeout-triggered re-init for this connection.</li>
|
|
24
|
+
<li><b>Rega poll</b>: Changes of system variables are not pushed by the CCU. With polling on, the variables and their values are read every <i>Rega poll interval</i> seconds.</li>
|
|
25
|
+
<li><b>Names/rooms refresh (min)</b>: How often channel names, rooms and functions are re-read; 0 never.</li>
|
|
26
|
+
<li><b>Queue timeout (ms)</b>, <b>Queue pause (ms)</b>: The write queue's timeout per write and the pause between two writes.</li>
|
|
27
|
+
<li><b>Context Store</b>: The Node-RED context store the states of all devices and variables are kept in. See <a target="_blank" href="https://nodered.org/docs/user-guide/context">Working with context</a> in the Node-RED documentation.</li>
|
|
28
|
+
<li><b>openccu-lite token</b>: Only for <a href="https://github.com/hobbyquaker/openccu-lite" target="_blank">openccu-lite</a>, a CCU firmware without ReGaHSS. Names, rooms and functions come from the system's metadata API there, which needs a token made under <i>Users</i> on the system. When Node-RED runs on the system itself (RedMatic) the field stays empty: the local token is read automatically. The token is kept, like the password, in Node-RED's credentials (encrypted in <code>flows_cred.json</code>, never in the flow, never in an export). A CCU, RaspberryMatic or OpenCCU ignores the field. openccu-lite has no system variables, programs or HM-Script; those nodes stay in the flow and report an error per message.</li>
|
|
29
|
+
<li><b>openccu-lite port</b>: Only needed when the system's web server is not on port 80 (443 with TLS).</li>
|
|
30
|
+
<li><b>Device data / Re-read device data</b>: Reads the device list of every connected interface again. New and changed devices (a channel whose type changed, say) get their datapoints fetched anew, removed ones leave the table. A device the CCU reports with a changed type or version is re-read without the button as well. The button needs a deployed connection.</li>
|
|
31
|
+
<li><b>Authentication</b>: Encryption and login for a CCU on the network (Node-RED not on the CCU). Both belong to the CCU's web server, which fronts the interface processes: on a CCU3 TLS and authentication are switched on in the firewall settings, on openccu-lite under <i>Remote access</i> (classic RPC). When Node-RED runs on the system itself (RedMatic; address <code>localhost</code> / <code>127.0.0.1</code>) the processes are reached directly on the loopback, BidCos over BIN-RPC, without TLS and without a login; these settings are then not used.
|
|
32
|
+
<ul>
|
|
33
|
+
<li>Enabled: The username and password are sent with every call (HTTP basic auth) to every XML-RPC interface (BidCos-RF, BidCos-Wired, HmIP-RF, VirtualDevices, CCU-Jack) and to the ReGaHSS. BIN-RPC (CUxD, the hidden BIN-RPC option for BidCos-RF) has no login. Without TLS the credentials travel in plain text, so the dialog switches TLS on with it.</li>
|
|
34
|
+
<li>TLS/SSL: Transport encryption. The interfaces are reached over the CCU's TLS ports (42000, 42001, 42010, 49292, ReGaHSS 48181, CCU-Jack 2122), openccu-lite's metadata API over 443. BIN-RPC has no TLS: with TLS on, BidCos-RF always goes over XML-RPC.</li>
|
|
35
|
+
<li>Ignore invalid TLS Certificates: Node-RED accepts an untrusted certificate too. Needed as long as the CCU uses its self-signed certificate.</li>
|
|
36
|
+
<li>Username: A user allowed to log in to the CCU.</li>
|
|
37
|
+
<li>Password: The user's password. It is kept in Node-RED's credentials (encrypted in <code>flows_cred.json</code>), not in the flow. A flow from a version before 4.4.6 that still carries it in plain text is taken over at the first start; the next deploy removes it from <code>flows.json</code>.</li>
|
|
38
|
+
</ul>
|
|
39
|
+
The other direction stays unencrypted: the CCU sends its events to the XML-RPC or BIN-RPC server Node-RED opens for it (<i>Listen Address</i>, <i>BINRPC</i> and <i>XMLRPC listening port</i>) without TLS and without a login - it cannot log in there or verify our certificate. Those ports should be open in the Node-RED host's firewall for the CCU only.</li>
|
|
40
|
+
</ul>
|
|
41
|
+
</script>
|