• RE: Betatest NSPanel-lovelace-ui v0.2.x

    Update auf Github für cardThermo2 freigegeben

    Beschreibung wurde angepasst an die jetzigen Gegebenheiten!
    Wenn ich Skript schreibe meine ich immer das Adapter-Skript - nicht das andere 😄

    Konfiguration der cardThermo2 im Adapter

    Diese unterscheitet sich von der Skriptkonfiguration, daher eine komplette Beschreibung.
    Struktur:

    • Aussehen
    • Feature
    • Probleme
    • Konfiguration
      • Alias
      • Direkt über Datenpunkte
      • Gemeinsame Optionen
    • PageItemerweiterung

    Aussehen:

    image.jpg

    Feature:

    • bis zu 8 Heizkreise möglich (z.B. Heizung/Klimaanlage oder Küche/Wohnzimmer/...)
    • unendliche Anzahl an Pageitems (mit Blätterfunktion), das sind die 8 aussen rum und Nr. 9 zwischen dem + und -
    • Pageitems können einem Heizkreis zu geordnet werden (automatisch erzeugt werden bei mehreren Heizkreisen immer einem zugewiesen)
    • Überschriften sind per Heizkreis
    • Die Zeilen ober und unterhalb der Einstelltemperatur sind frei definierbar mit icon, wert, unit

    Bekannte Probleme

    • leichtes Flackern auf Grund der hübschen Optik - das wird bleiben
    • Mode und Modeset könnten noch inkonsequent sein - in arbeit

    Konfiguration

    Eine komplette Seite sieht im Skript z.B. so aus

    Alias

    Wie gewohnt kann man Aliase (siehe Tabelle) verwenden. Die Role airCondition erzeugt 2 Heizkreise. Die wird eingestellt durch name2, iconHeatCycle2, iconHeatCycleOnColor2 und iconHeatCycleOffColor2. Viele der optionalen Datenpunkte sind drin und werden Heizkreis bezogen als Pageitems hinzugefügt. Fehlende bitte reklamieren.

        const Thermo2New: PageType = {
            type: 'cardThermo2',
            uniqueName:'Seitenname für interne Verwendung - Pflicht',
            heading: 'egal wird eh nicht angezeigt',
            thermoItems:[
                {
                    name: 'Das hier ist die Überschrift', 
                    id:'0_userdata.0.Einzelne_Geräte.Thermostat', // das hier ist der Channel, Device oder Folder
                },
            ],
            items:[],
        }
    
    • thermoItems enthält Objekte ('{}') die die Heizkreise beschreiben minimum 1 (Liste bzw. Array)
      • id ist der Channel. (Zeichenkette)
      • name ist die Überschrift die angezeigt wird. (Zeichenkette) Ohne dieses wird geschaut ob was im common.name des Channel steht.
      • name2 ist die Überschrift die für eine airCondition verwendet wird.
      • iconHeatCycle2: Überschreibt das Zahlenicon in den PageItems (außen herum) ausschließlich für airCondition
      • iconHeatCycleOnColor2: Überschreibt die Farbe für aktiviert in den PageItems (außen herum) ausschließlich für airCondition
      • iconHeatCycleOffColor2: Überschreibt die Farbe für deaktiviert in den PageItems (außen herum) ausschließlich für airCondition

    Der Datenpunkt MODE hat sich verändert, daher bitte unten bei modeList lesen

    Direkt über Datenpunkte

    Das ist mit Alias nicht mischbar, darf aber natürlich auf die Datenpunkte eines angelegten Channels verweisen.

    const Thermo2New: PageType = {
            type: 'cardThermo2',
            uniqueName:'Seitenname für interne Verwendung - Pflicht',
            heading: 'egal wird eh nicht angezeigt',
            thermoItems:[
                {
                    name: 'Das hier ist die Überschrift', 
                    set:'0_userdata.0.Einzelne_Geräte.Thermostat.SET', // Der Einstellwert der Heizung
                    thermoId1:'0_userdata.0.Einzelne_Geräte.Thermostat.ACTUAL', // Aktuelle Raumtemperatur (oberer Wert in der Anzeige)
                    thermoId2:'0_userdata.0.Einzelne_Geräte.Thermostat.HUMIDITY', // Aktuelle Luftfeuchtigkeit (unterer Wert in der Anzeige)
                    modeId:'0_userdata.0.Einzelne_Geräte.Thermostat.MODE', // Textfeld unterhalb der Wert - kein Zeichenkettendatenpunkt 
                }
            ],
            items:[],
        }
    
    • thermoItems enthält Objekte ('{}') die die Heizkreise beschreiben minimum 1 (Liste bzw. Array)
      • name ist die Überschrift die angezeigt wird. (Zeichenkette)
      • set ist der Einstellwert der Heizung - aktuell keine Unterteilung in read/write
      • thermoId1 Aktuelle Raumtemperatur (oberer Wert in der Anzeige)
      • thermoid2 Aktuelle Luftfeuchtigkeit (unterer Wert in der Anzeige)
      • modeId Siehe beschreibung unten zu modeList

    Gemeinsame Eigenschaften

    Hier sind die Eigenschaften beschrieben die zusätzlich zu name, id bzw. name, set angegeben werden können und was sie bedeuten:

    icon: Überschreibt das Standardicon in der 1. Textzeile (Temperatur)
    onColor: Überschreibt die Farbe der 1. Textzeile (Temperatur)
    unit: Überschreibt die Einheit der 1. Textzeile unnd 2. Textzeile (Temperatur)

    icon2: wie oben für Zeile 3 (Luftfeuchtigkeit)
    onColor2: wie oben für Zeile 3 (Luftfeuchtigkeit)
    unit2: Überschreibt die Einheit der 3. Textzeile (Luftfeuchtigkeit)

    iconHeatCycle: Überschreibt das Zahlenicon in den PageItems (außen herum)
    iconHeatCycleOnColor: Überschreibt die Farbe für aktiviert in den PageItems (außen herum)
    iconHeatCycleOffColor: Überschreibt die Farbe für deaktiviert in den PageItems (außen herum)

    minValue: minimale Einstellbare Temperatur (Default: 15) im Admin einstellbar ob 10 = 1 °C oder 10 = 10 °C
    maxValue: maximal einstellbare Temperatur (Default: 28) im Admin einstellbar
    stepValue: Schritte für +/-. Eine eingetragene 0.1 bedeutet Schritte von 0.1 (Default: 0.5) im Admin einstellbar

    power: Das ist wohl noch nicht im TFT, daher keine Beschreibung

    im Admin einstellbar: Da gibts auf der 2ten Seite ganz unten eine Option ob man es kompatible zum Skript haben möchte oder natürlich.

    modeList: Das denke ich ist noch nicht final und braucht deutlich mehr Text 🙂
    modeId bzw. MODESET arbeiten auf die dieselbe Weise. Der Datenpunkt sollte vom Type number sein und kann im Object common.states verwenden - dann arbeiten das common.states für modeList.
    modeList überschreibt common.states und diese überschreibt die Standardmodelist, die im Adapter hinterlegt ist:
    Standard Modelist

    ['OFF', 'AUTO', 'COOL', 'HEAT', 'ECO', 'FAN', 'DRY']
    

    Im Datenpunkt steht z.B. eine 0 dann wird OFF angezeigt, steht dort eine 3 wird HEAT angezeigt (die werden übersetzt).
    Wenn das in den common.states des Datenpunktes genauso steht gilt dort das gleich. Ebenso in der modeList.
    Im Skript sieht dass dann etwas regional angepasst so aus:

    modeList: ["Aus'm", "Automat", "Kühl'n", "Heiz'n", "Sparn", "Puste", "Trockn"],
    

    Ergänzend wurde TargetMode und CurrentMode aufgeteilt - siehe Alias Tabelle - das ist noch nicht final - Da muß am nächsten WE noch etwas rumdiskutiert werden - ich würde gerne den CurrentMode unterhalb der Temperatur anzeigen mit inaktiv, idle, heizen, kühlen wenn nicht vorhanden wirds ersetzt durch TargetMode - aber das ist so noch nicht eingebaut

    PageItemerweiterung

    Für die Pageitems gibt es eine neue Eigenschaft die aktuell aber nur für die cardThermo2 von belang ist:

    items:[
        {id: 'alias.0.Licht.lights.Gerät_1', filter: 0},
    ],
    

    filter: Ist es definiert wird das Pageitem nur angezeigt, wenn der entsprechende Heizkreis aktiv ist. Zählung beginnt bei 0 (number).
    Wenn eine airCondition per 'id' hinzugefügt wird erhöht sich der index nach der airCondition um 1.

    Der Adapter unterstützt jetzt auch Platzhalter PageItems - durch id:'delete' oder id:'empty' werden diese definiert.

    Das ist noch nicht in der aktuellen Branch. Wenn ihr trotzdem testen wollt der Installationslink wäre dieser Alpha-Test

    Schlußanmerkung - die rollen für aircondition können sich noch ändern - die scheinen sich von thermostat zu unterscheiden also besser da nachgucken.

    Dank an @Armilar, @TT-Tom

    posted in Tester
  • RE: SONOFF NSPanel mit Lovelace UI

    @armilar

    Also jetzt bin ich wieder auf die JS 9.0.11. Dann Berry update, danach war die autoexec.be leer. Die habe ich wieder eingespielt. Dann tft Update das startet jetzt auch, bleibt aber hängen.

    22:35:57.216 BRY: Exception> 'type_error' - unsupported operand type(s) for <: 'nil' and 'int'
    

    ganz komisch.

    Hier der Weblog 3 Output

    22:01:34.975 CMD: FlashNextionAdv0 http://nspanel.de/nspanel-v4.9.5.tft
    22:01:34.991 MQT: SmartHome/NS_Panel/stat/RESULT = {"FlashNextionAdv":"Done"}
    22:01:35.042 FLH: host: nspanel.de, port: 80, get: /nspanel-v4.9.5.tft
    22:01:36.282 FLH: Send (High Speed) flash start
    22:01:36.671 BRY: Exception> 'type_error' - unsupported operand type(s) for <: 'nil' and 'int'
    22:01:43.018 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:01:43.087 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:01:43.202 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:01:59.933 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:02:00.060 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:02:00.121 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:02:00.222 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:02:27.904 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:02:27.984 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:02:28.079 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:02:28.223 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:02:28.298 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:02:28.404 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:02:43.013 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:02:43.077 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:02:43.191 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:02:59.934 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:03:00.060 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:03:00.125 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:03:00.224 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:03:43.066 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:03:43.142 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:03:43.235 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:46:59.142 CMD: Grp 0, Cmd 'FLASHNEXTION', Idx 1, Len 36, Pld -99, Data 'http://nspanel.de/nspanel-v4.9.5.tft'
    22:46:59.151 MQT: SmartHome/NS_Panel/stat/RESULT = {"FlashNextion":"Done"}
    22:46:59.209 SRC: MQTT
    22:46:59.211 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 24, Pld -99, Data 'dimmode~1~100~6371~65535'
    22:46:59.231 NXP: skipped command becuase still flashing
    22:46:59.239 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:46:59.251 FLH: host: nspanel.de, port: 80, get: /nspanel-v4.9.5.tft
    22:46:59.253 WIF: DNS failed for nspanel.de after 1 ms
    22:46:59.254 FLH: Connected:false
    22:46:59.356 FLH: Retry 2
    22:46:59.557 FLH: Retry 3
    22:46:59.858 FLH: Retry 4
    22:47:00.259 FLH: Retry 5
    22:47:00.259 FLH: Nothing available to read!
    22:47:00.263 NXP: Nextion command sent = bytes('4452414B4A485355594447424E434A48474A4B534842444EFFFFFF')
    22:47:00.266 NXP: Nextion command sent = bytes('7265636D6F643D30FFFFFF')
    22:47:00.268 NXP: Nextion command sent = bytes('7265636D6F643D30FFFFFF')
    22:47:00.272 NXP: Nextion command sent = bytes('636F6E6E656374FFFFFF')
    22:47:00.311 SRC: MQTT
    22:47:00.312 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 10, Pld -99, Data 'time~23:46'
    22:47:00.335 NXP: skipped command becuase still flashing
    22:47:00.345 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:47:00.367 SRC: MQTT
    22:47:00.368 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 30, Pld -99, Data 'date~Dienstag, 26. August 2025'
    22:47:00.390 NXP: skipped command becuase still flashing
    22:47:00.397 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:47:00.429 SRC: MQTT
    22:47:00.430 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 20, Pld -99, Data 'pageType~pageStartup'
    22:47:00.454 NXP: skipped command becuase still flashing
    22:47:00.466 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:47:00.484 HTP: Command
    22:47:00.491 SRC: WebCommand from 192.168.7.75
    22:47:00.493 CMD: Grp 0, Cmd 'GETDRIVERVERSION', Idx 1, Len 0, Pld -99, Data ''
    22:47:00.505 MQT: SmartHome/NS_Panel/tele/RESULT = {"nlui_driver_version":"9"}
    22:47:00.562 SRC: MQTT
    22:47:00.563 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 10, Pld -99, Data 'time~23:47'
    22:47:00.578 NXP: skipped command becuase still flashing
    22:47:00.586 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:47:59.814 SRC: MQTT
    22:47:59.815 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 10, Pld -99, Data 'time~23:48'
    22:47:59.829 NXP: skipped command becuase still flashing
    22:47:59.836 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    22:48:59.812 SRC: MQTT
    22:48:59.813 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 10, Pld -99, Data 'time~23:49'
    22:48:59.836 NXP: skipped command becuase still flashing
    22:48:59.845 MQT: SmartHome/NS_Panel/stat/RESULT = {"CustomSend":"Done"}
    
    posted in Hardware
  • RE: neue Visualisierung "webui" (alternative zu vis & vis-2)

    @jogibear9988 hi ja jezt geht wieder alles was ich zumindest so auf den ersten blick sehe vielen danke vorab

    posted in Visualisierung
  • RE: neue Visualisierung "webui" (alternative zu vis & vis-2)

    @smilie108

    denke geht wieder...

    posted in Visualisierung
  • RE: Sungrow WR SGH10RT erfolgreich mit MODBUS eingebunden

    @gombersiob Hallo, das war ein guter Tipp, mit dem Vaga komme ich jetzt schon mal auf den WR und kann einzelne Register auslesen. Ich specke jetzt die bei den Eingang und Holding Register ab...👍

    posted in ioBroker Allgemein
  • RE: neue Visualisierung "webui" (alternative zu vis & vis-2)

    @jogibear9988 ok dann test ich wieder 👍🙂🍺🍷☕

    posted in Visualisierung
  • RE: neue Visualisierung "webui" (alternative zu vis & vis-2)

    @smilie108

    Denke ich hab was gefunden... Ein NaN check war falsch...
    Updte wird gerade von github gebaut, sollte in 10-15 min online sein

    posted in Visualisierung
  • RE: SONOFF NSPanel mit Lovelace UI

    Och man was ist das denn? Die ist wirklich leer.....Läuft jetzt erst mal in der alten Version. Morgen dann zweiter Anlauf. Danke euch

    Ciwa

    posted in Hardware
  • RE: neue Visualisierung "webui" (alternative zu vis & vis-2)

    @jogibear9988 mhm der sieht so aus
    <webui-simple_table_css bind-prop:data='{"signal":"0_userdata.0.PVanlage.Archiv.Vortageswerte_Elektrisch","expression":"JSON.parse(__0)"}' id="table1" style="position:absolute;left:0px;top:750px;width:1419px;height:171.017px;"></webui-simple_table_css>

    zb auf der startseite habe dir eine übersichtseite unter screens smilie108 reinkopiert die daten sind in einem iobrocker objekt drin . sehen so aus :

    0_userdata.0.PVanlage.Archiv.Gesammtwerte_Elektrisch

    [{"Zeit":"26-08-2025","Tage in DB":180,"PV Erzeugt<br>kW/h":14217.82,"Hausverbrauch<br>kW/h":4688.01,"kW/h<br>pro Tag":26.04,"kW/h<br>Pro H":1.09,"Bezogen<br>(Gekauft)":550.38,"Geliefert<br>(Verkauft)":8543.18,"Batterie<br>Laden kW/h":2960.83,"Batterie<br>Entladen kW/h":2199.48,"Batterie<br>Cosphi":0.74,"Differenz<br>kW/h":7992.8,"Kosten<br>€":89.61,"Verdient<br>€":601.51,"Differenz<br>€":511.9,"Gespart<br>€":1160,"Gesammt<br>€":1671.9}]

    0_userdata.0.PVanlage.Archiv.Vortageswerte_Elektrisch
    [{"Datum":"25-08-2025","PV_Azzurro":111,"PV_Kostal":7.73,"PV_Solax":0,"PV Gesamt":118.73,"Haus- verbrauch Gesamt":20.33,"kW/h pro h":0.85,"Zugekauft":0.32,"Verkauft":82.16,"Batterie Laden":16.34,"Batterie Entladen":10.71,"Bat. Cosphi ":0.66,"Autark<br>%":99.13,"Differenz":81.84,"Kosten €":0.07,"Verdient €":4.93,"Diff_€":4.86,"Gespart_€":7.01,"Ges_€":13.27},{"Datum":"24-08-2025","PV_Azzurro":98.2,"PV_Kostal":7.01,"PV_Solax":0,"PV Gesamt":105.21,"Haus- verbrauch Gesamt":36.09,"kW/h pro h":1.5,"Zugekauft":0.53,"Verkauft":57.21,"Batterie Laden":13.55,"Batterie Entladen":11.52,"Bat. Cosphi ":0.85,"Autark<br>%":98.93,"Differenz":56.68,"Kosten €":0.12,"Verdient €":3.43,"Diff_€":3.31,"Gespart_€":9.2,"Ges_€":14.35}]

    posted in Visualisierung
  • RE: neue Visualisierung "webui" (alternative zu vis & vis-2)

    @smilie108

    der aufruf ist auch drin?

    posted in Visualisierung