-
-
Notifications
You must be signed in to change notification settings - Fork 190
NSPanel ‐ cardThermo ‐ Klimaanlage
Die Dokumentation erfolgt auf Basis von Test-Datenpunkten unter 0_userdata.0. , da kein physisches Testgerät via Adapter zur Verfügung stand.
Diese Dokumentation der Klimaanlage bezieht sich auf den vollen Funktionsumfang der cardThermo im Zusammenspiel mit einem Alias-Channel vom Typ Klimaanlage. In der Realität sind wahrscheinlich nicht alle Datenpunkte erforderlich, da das physische Klima-Gerät ggfs. nicht alle Funktionalitäten bereitstellt. Im Alias werden somit die Original-Datenpunkte des jeweiligen Klima-Adapters zugeordnet.
-
ACTUAL ist die aktuelle IST-Raumtemperatur und kann auf den internen Temperatur-Sensor-Datenpunkt des NSPanels, oder auf einen externen Temperatur-Sensor Datenpunkt zeigen.
-
SET ist die SOLL-Temperatur
-
ACTUAL2 (Definition weiter unten beschrieben) ist ein optionaler 2. Setpoint
Wenn ACTUAL2 in der Variable definiert wurde, dann wird der 2. Setpoint ebenfalls in der cardThermo angezeigt
Die "numerischen" Datenpunkte für das Popup können über das "+" Symbol im Gerätemanager erzeugt werden:
Beim Klick auf einen Wert wird der Wert des Array,s 0, 1, 2, 3, 4, etc. an den Datenpunkt übergeben
Außerdem kann bei Bedarf eine weitere Setpoint-Temperatur definiert werden. Hierzu ist dann ebenfalls ein optionaler Datenpunkt mit dem "+" Symbol anzulegen. Dieser muss als ACTUAL2 benannt werden.
Im Gerätemanager wird im Alias der Datenpunkt "MODE" über das Stift-Symbol definiert.
Sollte der Adapter des Klimagerätes über einen "Mode"-Datenpunkt verfügen, so kann dieser hier mit den verfügbaren Funktionen synchronisiert werden.
Auch wenn der Adapter keinen Mode-Datenpunkt bereitstellt, so kann ein manuell angelegter Datenpunkt unter 0_userdata.0... genutzt werden und mit einem separaten Blockly/Javascript entsprechende Datenpunkte des Adapters steuern.
Important
Es sind nur die Bezeichner OFF, AUTO, COOL, HEAT, ECO, FAN_ONLY und DRY erlaubt!
Icons können entsprechend verschoben und nicht vorhandene Funktionen entfernt werden. Eine Umbenennung von z.B. COOL in **COLD **wird keine Funktionaltät für das Icon haben.
wäre somit:
Der Datenpunkt erhält den numerischen Wert der Aufzählung, Daher ist der korrekte Name wie COLD nicht relevant. Das Script benötigt jedoch den Namen COOL zur Darstellung des Icons.
Minimale Definition
let Test_Klimaanlage: PageType =
{
'type': 'cardThermo',
'heading': 'Test Klimaanlage',
'items': [{
id: 'alias.0.NSPanel_1.TestKlimaanlage',
minValue: 50,
maxValue: 250,
stepValue: 5,
}]
};
Maximale Definition
let Test_Klimaanlage: PageType =
{
'type': 'cardThermo',
'heading': 'Test Klimaanlage',
'items': [{
id: 'alias.0.NSPanel_1.TestKlimaanlage',
minValue: 50,
maxValue: 250,
stepValue: 5,
iconArray: ['power-standby','air-conditioner','snowflake','fire','alpha-e-circle-outline','fan','water-percent','swap-vertical-bold'],
popupThermoMode1: ['Auto','0','1','2','3'],
popupThermoMode2: ['Auto','0','1','2','3','4','5'],
popupThermoMode3: ['Auto','Manual','Boost',],
popUpThermoName: ['Schwenk-Modus', 'Speed', 'Temperatur'],
icon: 'fan',
setThermoAlias: ['popupKlima_Mode_1','popupKlima_Mode_2','popupKlima_Mode_3'],
//setThermoDestTemp2: 'ACTUAL2'
}]
};
type: muss 'cardThermo' sein heading: frei definierbare Überschrift items
Standard-Items:
- id: der im Gerätemenager erstellt Alias vom Channel-Typ "Klimaanlage"
- minValue: die minimal zu schaltende Soll-Temperatur der Klimatisierung (multipliziert mit 10 --> 5°C = 50)
- maxValue: die maximal zu schaltende Soll-Temperatur der Klimatisierung (multipliziert mit 10 --> 25°C = 250)
- stepValue: die Schrittfolge in der die Soll-Temperatur gesteuert wird (multipliziert mit 10 --> 0,5°C = 5)
- iconArray: (optional) in diesem Array können abweichende Icons definiert werden
Popup:
- popupThermoMode1: (optional) falls verwendet, werden unter der Solltemperatur 3 Punkte visualisiert über die ein Popup aufgeschaltet wird. Innerhalb dieses Arrays werden die möglichen Zustände definiert.
- popupThermoMode2: (optional) falls verwendet, werden unter der Solltemperatur 3 Punkte visualisiert über die ein Popup aufgeschaltet wird. Innerhalb dieses Arrays werden die möglichen Zustände definiert.
- popupThermoMode3: (optional) falls verwendet, werden unter der Solltemperatur 3 Punkte visualisiert über die ein Popup aufgeschaltet wird. Innerhalb dieses Arrays werden die möglichen Zustände definiert.
- popUpThermoName: Überschriften der 3 möglichen Zeilen im Popup der cardThermo
- icon: Das icon, welches im Popup erscheint
- setThermoAlias: Die "numerischen" Datenpunkte, welche im Alias optional definiert wurden
Optionaler Setpoint
- setThermoDestTemp2: (optional) falls definiert, werden 2 Soll-Temperaturen visualisiert
Beispiel Blockly:
Beispiel JS:
// Z.B. für die Mode's aus der Iconleiste
on({ id: [].concat(['0_userdata.0.Test.Klimaanlage.Mode']), change: 'ne' }, async (obj) => {
switch ((obj.state ? obj.state.val : '')) {
case 0:
// mache etwas wenn das 1. Icon gedrückt wurde
// setze z.B. DatenpunktXY auf true oder schreibe eine abweichende Zahl in einen Datenpunkt...
break;
case 1:
// mache etwas wenn das 2. Icon gedrückt wurde
break;
case 2:
// mache etwas wenn das 3. Icon gedrückt wurde
// schreibe z.B. "cold" in einen Datenpunkt
break;
case 3:
// usw.
break;
}
});
oder in Kombination mit dem Popup:
Blockly:
JS:
// Z.B. für die Mode's aus der Iconleiste
on({ id: [].concat(['0_userdata.0.Test.Klimaanlage.Mode']), change: 'ne' }, async (obj) => {
switch ((obj.state ? obj.state.val : '')) {
case 0:
// mache etwas wenn das 1. Icon gedrückt wurde
break;
case 1:
// mache etwas wenn das 2. Icon gedrückt wurde
break;
case 2:
// mache etwas wenn das 3. Icon gedrückt wurde
break;
case 3:
// usw.
break;
}
});
// Auswerten des ersten Popup Wertes in der obersten
// Popup-Zeile
on({ id: [].concat(['0_userdata.0.Test.Klimaanlage.popupKlima_Mode_1']), change: 'ne' }, async (obj) => {
switch ((obj.state ? obj.state.val : '')) {
case 0:
// mache etwas wenn der 1. Wert gewählt wurde
break;
case 1:
// mache etwas wenn der 2. Wert gewählt wurde
break;
case 2:
// mache etwas wenn der 3. Wert gewählt wurde
break;
case 3:
// usw.
break;
}
});