NSPanel ‐ cardThermo2 ‐ Der komplette Leitfaden
Armilar edited this page 2025-08-14 23:38:47 +02:00

In Bearbeitung/Erstellung


Einleitung

Sie cardThermo2 steht ab TFT/Skript 58/v4.9.5 zur Verfügung

Nextion_Editor_c0ug0wsghN

Die cardThermo2 ist die Alternative zur cardThermo mit erweiterter Funktionalität und "echten" Entitäten. Die cardThermo2 ist eine Mischung aus einer vollwertigen cardGrid mit "9 Entitäten" und hat im Zentrum die Funktionalität zur Steuerung eines Thermostaten, einer Klimaanlage oder Wärmepumpe. Die Temperatursteuerung besteht aus:

  • einem Circular Slider zur Einstellung der Zieltemperatur (Setpoint)
    • lässt sich über den kompletten Screen per Touch steuern
  • 2 Buttons (-/+)
    • ShortPress: Einzelsteps zur Steuerung der Zieltemperatur (Setpoint). Jeder Klick inkrementiert (+) oder dekrementiert (-) den Zieltemperatur-Wert (Setpoint) um den definierten Temperatur-Step (z.B. 0,5°C)
    • LongPress: Der Slider inkrementiert (+) oder dekrementiert (-) den Zieltemperatur-Wert (Setpoint) automatisch und erhöht dabei die Einstell-Geschwindigkeit

Des Weiteren sind 3 zusätzliche Entitäten vorhanden, die vorzugsweise für:

  • Aktuelle Raumtemperatur. Es können folgende Eigenschaften verwendet werden:
    • Icon
    • Id via Alias (z.B. aktuelle Raumtemperatur)
    • Unit (z.B. °C)
    • Farbe
  • Aktuelle Raum-Luftfeuchte
    • Icon
    • Id via Alias (z.B. aktuelle Raumtemperatur)
    • Unit (z.B. °C)
    • Farbe
  • Aktueller Status/Betriebsmodus des Gerätes
    • Id via Alias (z.B. aktuelle Raumtemperatur)
    • Farbe

genutzt werden können.

Die 9 Entitäten (auf Icons oder Werte reduziert, d.h. keine Untertitel wie in der cardGrid) verhalten sich analog der cardGrid, cardGrid2 oder cardGrid3 und können z.B. folgende Eigenschaften darstellen

  • Subpage Navigation
  • Schalter oder Steckdose
  • Press-Button
  • Licht (alle Typen) mit Popup
  • InSel (Auswahl)
  • Ventilator mit Popup
  • Schieberegler oder Volume -Regler mit Popup
  • Info (Icon oder per useValue mit Suffix)
  • Fenster
  • Tür
  • Gate
  • Divider (id: "delete"): lässt den definierten Bereich für das Icon leer und blendet es aus.
  • etc. (Also alle Entitäten, die in einer cardGrid oder cardEntities abbildbar sind.
image

Beispiel: Variablendefinition für die cardThermo2:

Achtung: im Beispiel wird die Konstante "Orange" verwendet. Falls nicht vorhanden, dann in das Script aufnehmen oder ersetzen!

const Orange:           RGB = { red: 255, green: 130, blue:   0 };

Erläuterung der Base-Items:

  • type: 'cardThermo2' - Der Seitentyp für die cardThermo2

  • heading: die Überschrift zwischen den Navigationspfeilen

  • thermoItems: Steuerung der Steuerelemente im Zentrum der cardThermo2

    1. Set-Temp: numerisch, Format (NNN.N). Somit sind neben °C auch Werte im Temeperaturbereich Kelvin oder höhere Werte im Bereich °F (Fahrenheit) möglich.
    2. Actual Temp: numerisch, Format (NNN,N). kann auch anderweitig verwendet werden, sofern der Platz hierfür ausreicht. Somit sind auch Werte im Temeperaturbereich Kelvin oder höhere Werte im BEreich °F (Fahrenheit) möglich
    3. Actual Humidity: Kann auch anderweitig verwendet werden, sofern der Platz hierfür ausreicht (NN,N).
    4. Status Zeile. Wenn der übergebene Wert 0=Aus ist, wird der Slider deaktiviert dargestellt
  • items: Definition der 9 optionalen Entitäten

    • Die Entitäten sind getriggert und ändern ihre Zustände auch wenn AOD true ist.
    • In der Regel werden hier Zustände (Infos) und Schalter mit Zuständen in separaten Aliassen definiert. Denkbare Entitäten wären z.B. (Der Fantasie sind hier keine Grenzen gesetzt):
      • Power On/Off
      • Kühlen On/Off
      • Heizen On/Off
      • Ventilator On/Off (ggfs weitere Einstellmöglichkeiten über Popup
      • Position der Lüftungsschlitze
      • RSSI Bei WLAN oder Funk-Komponenten
      • Batterie-Status
      • Fenster geöffnet
      • Party Modus On/Off
      • etc.

    Durch die unterstützte Subpage-Navigation, wäre auch Denkbar das komplette Device bis hin zu allen Eigenschaften oder Verbräuchen mit Charts abzubilden!

  • alwaysOnDisplay - AOD (optional):

    • true: Die cardThermo2 schaltet bei true nicht in den Screensaver-Mode. Es muss manuell eine Seite aufgeschaltet werden.
    • false: Die cardThermo2 schaltet regulär in den Dimm-Modus und somit den Screensaver nach erreichen der definierten Zeit auf.

Der Alias (Thermostat oder Klimaanlage)

  • Beschreibung folgt

Seitenvariable

let CardThermo2Test: PageType =
{
    type: 'cardThermo2',
    heading: 'cardThermo2',
    thermoItems: [
        /* Center-Area of cardThermo2 */
        /* SET-Temp        */ { id: 'alias.0.NSPanel_EMU.TestKlimaVirtual', minValue: 5.0, maxValue:30.0, stepValue: 0.5, unit: "°C" },
        /* Actual Temp     */ { id: 'alias.0.NSPanel_EMU.TestKlimaVirtual.ACTUAL', icon: 'thermometer', onColor: Orange, unit: "°C" },
        /* Actual Humidity */ { id: 'alias.0.NSPanel_EMU.TestKlimaVirtual.HUMIDITY', icon: 'water-percent', onColor: HMIOn, unit: "%" },
        /* Text State      */ { id: 'alias.0.NSPanel_EMU.TestKlimaVirtual.MODE', onColor: Orange }
    ],
    items: [
        /* Max 9 Entities in cardThermo2 */
        { 
            id: 'alias.0.Haus.Obergeschoss.Bad.Licht.Emu_GU10_1', 
            name: 'HUE (CT=Kelvin)', // HUE Channel - Philips WiZ GU10 über matter.0 - Color-Temperature in Kelvin
            icon: 'lightbulb-on',
            icon2: 'lightbulb-outline',
            offColor: Off,
            minValueColorTemp: 2203, // Kelvin = Warmweiß
            maxValueColorTemp: 6536, // Kelvin = Kaltweiß
            interpolateColor: true, 
            modeList: ["Color", "Ocean", "Romantik", "Sonnenuntergang", "Party", "Kamin", "Gemütlich", "Wald", "Pastellfarben", "Aufwachen", "Schlafenszeit", "Warmweiß", "Tageslicht", 
                       "Kaltweiß", "Nachtlicht", "Fokus", "Entspannen", "Echte Farben", "Fernsehzeit", "Pflanzenwachstum", "Frühling", "Sommer", "Herbst", "Tieftauchgang", "Dschungel", 
                       "Mojito", "Club", "Weihnachten", "Halloween", "Kerzenlicht", "Goldenes Weiß", "Impuls", "Steampunk"], 
            inSel_ChoiceState: true,
            popupVersion: 2 
        },
        { id: 'alias.0.Test.BuerofensterInfoAlias', name: 'Bürofenster', icon: 'window-open-variant', icon2: 'window-closed-variant', onColor: MSRed, offColor: MSGreen},
        { id: 'alias.0.NSPanel_1.TestLautstärke', name: 'Volume', onColor: HMIOn, offColor: HMIOff, minValue: 0, maxValue: 100},
        { navigate: true, id: null, targetPage: 'Abfall', onColor: White, name: 'Abfallkalender', icon: 'trash-can'},
        //{ id: 'alias.0.Test.Gerät_1', offColor: MSRed, onColor: MSGreen, name: 'Gießdauer Minuten', minValue: 1, maxValue: 180, colorScale: {'val_min': 1, 'val_max': 180}},
        //{ id: 'alias.0.NSPanel_1.Abfall.event1',icon: 'trash-can'},
        { id: 'alias.0.NSPanel_1.Ventilator.Fan_1',name: 'Ventilator', icon: 'fan', onColor: On, offColor: HMIOff, modeList: ['Low', 'Medium', 'High', 'Move', 'Sleep', 'Auto', 'Manual']},
        { id: 'alias.0.NSPanel_1.TestTemperatur', name: 'Außentemperatur', offColor: White , onColor: White, useValue: true, suffixName: ' °C', fontSize: 1, colorScale: { 'val_min': -20, 'val_max': 40, 'val_best': 20 } },
        { id: 'alias.0.NSPanel_1.Radio.Bob', icon: 'radio', name: 'Radio BOB', onColor: colorRadio, offColor: colorRadio},
        //{ id: 'alias.0.NSPanel_1.Haustuer', offColor: MSGreen, onColor: MSRed, name: 'Haustür'},
        { id: 'delete'},
        { id: 'alias.0.NSPanel_EMU.TestKlimaVirtualModeList', icon: 'dots-horizontal-circle-outline', onColor: White, offColor: White, name: 'Betriebsmodus', modeList: ['Aus','Kühlen auf', 'Heizen auf']}
    ],
    alwaysOnDisplay: true
};

Step by Step Erstellung

Text folgt


Nur für Developer

HMI Definition cardThermo2

cardThermo2 HMI