Skip to content

NSPanel ‐ cardThermo ‐ Klimaanlage

Armilar edited this page Oct 20, 2024 · 29 revisions

Die Dokumentation erfolgt auf Basis von Test-Datenpunkten unter 0_userdata.0. , da kein physisches Testgerät via Adapter zur Verfügung stand.

cardThermo als "Klimaanlage" im Live-Betrieb

Nextion_Editor_y0GuTvMgd0

Test-Datenpunkte unter 0_userdata.0...

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.

image

Alias vom Channel Typ "Klimaanlage"

image

  • ACTUAL ist die aktuelle IST-Raumtemperatur und kann auf den internen Temperatur-Sensor-Datenpunkt des NSPanels, oder auf einen externen Temperatur-Sensor Datenpunkt zeigen.
    image

  • SET ist die SOLL-Temperatur
    image

  • ACTUAL2 (Definition weiter unten beschrieben) ist ein optionaler 2. Setpoint
    image
    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:
image 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.

Funktionalität der Icon-Leiste

image

Im Gerätemanager wird im Alias der Datenpunkt "MODE" über das Stift-Symbol definiert.

image

Sollte der Adapter des Klimagerätes über einen "Mode"-Datenpunkt verfügen, so kann dieser hier mit den verfügbaren Funktionen synchronisiert werden.

image

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.

Beispiel:

image

wäre somit:
image

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.

Die cardThermo Definition im NSPanel-Script

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 image

Popup:
image

  • 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

Separates Script zum Steuern spezieller Datenpunkte

Beispiel Blockly:
image

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:

image

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;
  }
});
Clone this wiki locally