Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. SONOFF NSPanel mit Lovelace UI

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

SONOFF NSPanel mit Lovelace UI

Geplant Angeheftet Gesperrt Verschoben Hardware
lovelace uinspanelsonoff
7.8k Beiträge 272 Kommentatoren 6.7m Aufrufe 254 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T TT-Tom

    @foradh-0 sagte in SONOFF NSPanel mit Lovelace UI:

    @tt-tom
    Hi Tom,
    anbei die Einstellungen und Objektdaten des Alias

    nein diese meine ich nicht. klick mal auf den Stift hinter diesem Datenpunkt

    alias.0.NSPanel.Wohnzimmer.Thermostat.SET
    

    dann bekommst du ein Fenster, sowie dieses hier. von dort die Objektdaten posten.
    Bildschirmfoto 2023-10-13 um 19.28.53.png

    Ist hier dann der Weg über Aliase oder userdata vorzuziehen?

    Wenn es ein Alias gibt, sollte man den nehmen, denn der Alias bleibt mit seinem Datenpunkt auch wenn sich die Verknüpfung mal ändert. Damit musst du nicht überlegen, wo du den Original Datenpunkt alles nutzt. Besonders hilfreich, wenn du von Geräten Alias-Datenpunkte erstellst. Fällt das Gerät mal aus, bindest du einfach ein Neues auf die Datenpunkte ohne alle Scripts und Verknüpfungen neu zu schreiben, denn der Alias bleibt gleich.

    F Offline
    F Offline
    Foradh 0
    schrieb am zuletzt editiert von
    #3931

    @tt-tom
    Hi Tom, hier nochmal die korrekten Objektdaten.

    {
      "_id": "alias.0.NSPanel.Wohnzimmer.Thermostat.SET",
      "common": {
        "name": "SET",
        "role": "level.temperature",
        "type": "number",
        "read": true,
        "write": true,
        "alias": {
          "id": "javascript.0.Datenpunkte.Thermostat_Wohnzimmer_soll"
        },
        "unit": "°C"
      },
      "native": {},
      "type": "state",
      "acl": {
        "object": 1636,
        "state": 1636,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator"
      },
      "from": "system.adapter.admin.0",
      "user": "system.user.admin",
      "ts": 1697209273726
    }
    
    T 1 Antwort Letzte Antwort
    0
    • F Foradh 0

      @tt-tom
      Hi Tom, hier nochmal die korrekten Objektdaten.

      {
        "_id": "alias.0.NSPanel.Wohnzimmer.Thermostat.SET",
        "common": {
          "name": "SET",
          "role": "level.temperature",
          "type": "number",
          "read": true,
          "write": true,
          "alias": {
            "id": "javascript.0.Datenpunkte.Thermostat_Wohnzimmer_soll"
          },
          "unit": "°C"
        },
        "native": {},
        "type": "state",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        },
        "from": "system.adapter.admin.0",
        "user": "system.user.admin",
        "ts": 1697209273726
      }
      
      T Offline
      T Offline
      TT-Tom
      schrieb am zuletzt editiert von
      #3932

      @foradh-0
      sieht richtig aus. Kommt den die Fehlermeldung immer noch, wenn du auf den Alias zugreifst?

      Des Weiteren würde ich dir empfehlen, Datenpunkte die du selber anlegst, ob per Script oder manuell, immer unter 0_userdata.0 anzulegen. Dort ist meiner Meinung nach der richtige Platz. Ja, es gibt die Möglichkeit unter Javascript.0 Datenpunkte anzulegen, aber du verlierst irgendwann den Überblick wo deine Datenpunkte liegen.

      Gruß Tom
      https://github.com/tt-tom17
      Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

      NSPanel Script Wiki
      https://github.com/joBr99/nspanel-lovelace-ui/wiki

      NSPanel Adapter Wiki
      https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

      1 Antwort Letzte Antwort
      1
      • F Offline
        F Offline
        Foradh 0
        schrieb am zuletzt editiert von Foradh 0
        #3933

        Hi Tom,
        der Fehler kommt nur beim Erstellen des Alias. Dabei bleibt auch das Fenster zum Erstellen des Gerätes hängen und bleibt mit dem Ladebalken stehen.
        Gerade habe ich versucht den Thermostat Alias erneut zu erstellen, bleibt wieder mit Fehlermeldung stehen, allerdings werden nun auch keine Datenpunkte mehr in Objekte unter Alias erzeugt. Sämtliche Adapter sind auf dem aktuellen Stand und auch ein Neustart hat das Problem nicht behoben.
        Update:
        Das mit dem hängenbleibenden Ladebalken habe lösen können, tritt nur auf wenn ich bei dem AliasGerät einen Zustand von einem anderen Aliasgerät auswählen möchte. In meinem Fall war das die Temperatur vom NSPanel, sobald ich diese vom Objektbaum userdata beziehe, wird das Speichern abgeschlossen und die Objekte entsprechend angelegt. Die Fehlermeldung mit "has not target" erscheint trotzdem noch im log.

        Das mit den Datenpunkten habe ich leider schon zu Beginn von iobroker "falsch" angelegt. Nun möchte ich ungern sämtliche Datenpunkte und deren Verknüpfung in Blockly in einer andere Struktur überführen. 😬

        T 1 Antwort Letzte Antwort
        0
        • F Foradh 0

          Hi Tom,
          der Fehler kommt nur beim Erstellen des Alias. Dabei bleibt auch das Fenster zum Erstellen des Gerätes hängen und bleibt mit dem Ladebalken stehen.
          Gerade habe ich versucht den Thermostat Alias erneut zu erstellen, bleibt wieder mit Fehlermeldung stehen, allerdings werden nun auch keine Datenpunkte mehr in Objekte unter Alias erzeugt. Sämtliche Adapter sind auf dem aktuellen Stand und auch ein Neustart hat das Problem nicht behoben.
          Update:
          Das mit dem hängenbleibenden Ladebalken habe lösen können, tritt nur auf wenn ich bei dem AliasGerät einen Zustand von einem anderen Aliasgerät auswählen möchte. In meinem Fall war das die Temperatur vom NSPanel, sobald ich diese vom Objektbaum userdata beziehe, wird das Speichern abgeschlossen und die Objekte entsprechend angelegt. Die Fehlermeldung mit "has not target" erscheint trotzdem noch im log.

          Das mit den Datenpunkten habe ich leider schon zu Beginn von iobroker "falsch" angelegt. Nun möchte ich ungern sämtliche Datenpunkte und deren Verknüpfung in Blockly in einer andere Struktur überführen. 😬

          T Offline
          T Offline
          TT-Tom
          schrieb am zuletzt editiert von TT-Tom
          #3934

          @foradh-0
          War auch nur ein Hinweis.

          Ich kann mich dunkel daran erinnern, das der Geräte Adapter beim erstellen dieses Verhalten aufweist. Ich nutze diesen Adapter schon lange nicht mehr, bin auf AliasManager umgestiegen bzw. lege ich sie auch mal schnell von Hand an. Die Rollen für die Channel findest du auch im Wiki unter der AliasTabelle

          Alias von Alias passt auch nicht.

          Gruß Tom
          https://github.com/tt-tom17
          Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

          NSPanel Script Wiki
          https://github.com/joBr99/nspanel-lovelace-ui/wiki

          NSPanel Adapter Wiki
          https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

          F 1 Antwort Letzte Antwort
          1
          • T TT-Tom

            @foradh-0
            War auch nur ein Hinweis.

            Ich kann mich dunkel daran erinnern, das der Geräte Adapter beim erstellen dieses Verhalten aufweist. Ich nutze diesen Adapter schon lange nicht mehr, bin auf AliasManager umgestiegen bzw. lege ich sie auch mal schnell von Hand an. Die Rollen für die Channel findest du auch im Wiki unter der AliasTabelle

            Alias von Alias passt auch nicht.

            F Offline
            F Offline
            Foradh 0
            schrieb am zuletzt editiert von Foradh 0
            #3935

            @tt-tom
            Nochmal Danke für deine super schnelle Unterstützung!

            Ich hätte noch eine weiter Frage. Wie kann man sich auf einer Seite verschiedene beliebige Werte anzeigen lassen?
            In meinem Fall wollte ich eine Übersicht der Waschmaschine erstellen.
            Erste Zeile Status (Aus / Waschen / Spülen / Schleudern)
            Zweite Zeile Restzeit (01:30)
            Dafür habe ich dieses Menü im Typescript angelegt:

                let NSPanel_Waschmaschine = <PageEntities>
                {
                'type': 'cardEntities',
                'heading': 'Waschmaschine',
                'useColor': true,
                'subPage': true,
                'parent': NSPanel_Seite1,
                'home': 'NSPanel_Seite1',
                'items': [
                    <PageItem>{ id: 'alias.0.NSPanel.Geräte.Waschmaschine.STATUS', icon: 'washing-machine', name: 'Status'},
                    <PageItem>{ id: 'alias.0.NSPanel.Geräte.Waschmaschine.RESTZEIT', icon: 'timer', name: 'Restzeit'},
                ]
                };
            

            Als Alias habe ich den Typ Info gewählt und die Objekte entsprechen zugeordnet.
            Die Werte werden allerdings nicht korrekt dargestellt. Bei Status erscheint z.B. eine 0 obwohl im Objekt "POWEROFF" hinterlegt ist.

            ArmilarA 1 Antwort Letzte Antwort
            0
            • F Foradh 0

              @tt-tom
              Nochmal Danke für deine super schnelle Unterstützung!

              Ich hätte noch eine weiter Frage. Wie kann man sich auf einer Seite verschiedene beliebige Werte anzeigen lassen?
              In meinem Fall wollte ich eine Übersicht der Waschmaschine erstellen.
              Erste Zeile Status (Aus / Waschen / Spülen / Schleudern)
              Zweite Zeile Restzeit (01:30)
              Dafür habe ich dieses Menü im Typescript angelegt:

                  let NSPanel_Waschmaschine = <PageEntities>
                  {
                  'type': 'cardEntities',
                  'heading': 'Waschmaschine',
                  'useColor': true,
                  'subPage': true,
                  'parent': NSPanel_Seite1,
                  'home': 'NSPanel_Seite1',
                  'items': [
                      <PageItem>{ id: 'alias.0.NSPanel.Geräte.Waschmaschine.STATUS', icon: 'washing-machine', name: 'Status'},
                      <PageItem>{ id: 'alias.0.NSPanel.Geräte.Waschmaschine.RESTZEIT', icon: 'timer', name: 'Restzeit'},
                  ]
                  };
              

              Als Alias habe ich den Typ Info gewählt und die Objekte entsprechen zugeordnet.
              Die Werte werden allerdings nicht korrekt dargestellt. Bei Status erscheint z.B. eine 0 obwohl im Objekt "POWEROFF" hinterlegt ist.

              ArmilarA Offline
              ArmilarA Offline
              Armilar
              Most Active Forum Testing
              schrieb am zuletzt editiert von Armilar
              #3936

              @foradh-0

              Ich verstehe deine ALIASE nicht. Sind die selbstgebastelt?

              Ein "Info" ALIAS hat immer folgende Eigenschaften:

              a68ac694-838e-4c6f-8c80-ee39cfe2d8e7-image.png

              Also immer vom channel "info" und immer ein state "ACTUAL"

              Den benötigt das Script auch in dieser Form, da die Channels geprüft werden...

              Ich bevorzuge in der Tat immer noch den Gerätemanager, da der wesentlich einfacher ist und am Ende einen perfekten Alias erstellt. Für den Alias-Magager oder für den Selbstbau benötigt man sehr viel Erfahrung mit den Rollen.

              Fakt ist, ein STATUS und eine RESTZEIT wird vom TS-Script nicht für einen Info-Alias akzeptiert.

              926c6a0c-a164-47e0-9327-99cd9ae47ff5-image.png

              Der Info ist so ziemlich der einfachste ALIAS:

              https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#info-channel-info

              VG

              Armilar

              EDIT: Ach ja, das ACTUAL benötigt das pageItem nicht, da diese aus dem "Channel" extrahiert wird.

              Demnach wäre der Aufruf alias.0.NSPanel.Geräte.Waschmaschine

              Der holt sich, wenn vorhanden, einen .ACTUAL. Wenn kein .ACTUAL im ALIAS vorhanden ist, wird nichts angezeigt...

              EDIT2: Weitere Beispiele:

              https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Page-‐-Typen_How-2_Beispiele#page-beispiele
              (siehe "Sonstige Aliase") --> In diesem Fall "Infos"

              EDIT3: Die meisten Aussagen im Forum über Selbstbau Aliase und Scripte zum Anlegen dieser Aliase sind schlicht und ergreifend falsch, da den meisten Usern und leider auch Profis der eigentliche Sinn der Aliase nicht geläufig ist...

              Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
              https://github.com/joBr99/nspanel-lovelace-ui/wiki

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              1 Antwort Letzte Antwort
              2
              • F Offline
                F Offline
                Foradh 0
                schrieb am zuletzt editiert von
                #3937

                @armilar
                Ich habe die Aliase mit dem Gerätemanager erstellt. Mein Fehler war es, dass ich einen zusammengefassten Alias mit allen Informationen der Waschmaschine erstellen wollte. Dafür habe ich im Gerätemanager zusätzliche Zustände hinzugefügt und diese z.B. als Text angegeben. Dank deiner Ausführung konnte ich aber verstehen, dass ich für jede Infozeile im NSPanel einen eigenen Alias erstellen muss und als ID dann den Pfad des Channels hinterlege.
                Damit klappt die Anzeige nun wie erhofft.
                Ich bedanke mich recht herzlich und wünsche ein schönes Wochenende!

                Gruß
                Foradh

                1 Antwort Letzte Antwort
                0
                • F Offline
                  F Offline
                  Foradh 0
                  schrieb am zuletzt editiert von Foradh 0
                  #3938

                  Ich schon wieder 😓

                  Kann man eigentlich im normalen Screensaver für die beiden Icons (mrIcon1/2ScreensaverEntity - die eigentlich zur Statusüberwachung der Relais gedacht waren) z.b. den Wert vom Temperatursensor anzeigen lassen?
                  Udpate: Sorry gerade gesehen, dass es ja im Wiki schon beschrieben ist
                  25af1581-d7c0-4dc3-9281-9c7b81791e7e-image.png

                  K 1 Antwort Letzte Antwort
                  1
                  • F Foradh 0

                    Ich schon wieder 😓

                    Kann man eigentlich im normalen Screensaver für die beiden Icons (mrIcon1/2ScreensaverEntity - die eigentlich zur Statusüberwachung der Relais gedacht waren) z.b. den Wert vom Temperatursensor anzeigen lassen?
                    Udpate: Sorry gerade gesehen, dass es ja im Wiki schon beschrieben ist
                    25af1581-d7c0-4dc3-9281-9c7b81791e7e-image.png

                    K Offline
                    K Offline
                    Kuckuckmann
                    schrieb am zuletzt editiert von
                    #3939

                    @foradh-0

                    Hi,

                    erstmal, willkommen in unserem NSPanel Thread 🙂

                    Unsere Wiki ist schon ziemlich mächtig geworden und es gibt super viele Infos aus den beiden großen Threads, die wird dort versuchen zusammenzufassen.
                    Grade neulich haben wir die Beispiele, die im es im TS-Skript gab in die Wiki ausgelagert und in dem Zuge mal alles mögliche rund um die Seitengestaltung neu zusammengefasst. Schau Dir das doch einfach mal an, vlt. ist es für Dich als Einsteiger hilfreich.
                    Auch in all den anderen Wiki-Abschnitten gibt es tolle Infos. Im FAQ Bereich haben wir auch viele fertige Praxisbeispiele, so wie nützliche Einstellungen.

                    LG

                    NSPanel Dokumentation im GitHub Wiki:

                    https://github.com/joBr99/nspanel-lovelace-ui/wiki

                    F 1 Antwort Letzte Antwort
                    3
                    • K Kuckuckmann

                      @foradh-0

                      Hi,

                      erstmal, willkommen in unserem NSPanel Thread 🙂

                      Unsere Wiki ist schon ziemlich mächtig geworden und es gibt super viele Infos aus den beiden großen Threads, die wird dort versuchen zusammenzufassen.
                      Grade neulich haben wir die Beispiele, die im es im TS-Skript gab in die Wiki ausgelagert und in dem Zuge mal alles mögliche rund um die Seitengestaltung neu zusammengefasst. Schau Dir das doch einfach mal an, vlt. ist es für Dich als Einsteiger hilfreich.
                      Auch in all den anderen Wiki-Abschnitten gibt es tolle Infos. Im FAQ Bereich haben wir auch viele fertige Praxisbeispiele, so wie nützliche Einstellungen.

                      LG

                      F Offline
                      F Offline
                      Foradh 0
                      schrieb am zuletzt editiert von
                      #3940

                      @kuckuckmann
                      😉 Genau das habe ich ausgiebig gemacht. Ich bin bloß Anfangs daran gescheitert die Pages Seite oben rechts auszuklappen und dadurch immer direkt auf den Link zur Dokumentation des NSPanel.
                      Das Wiki ist wirklich klasse und gerade durch die Beispiele kann man es sehr einfach auf sein eigenes Projekt übertragen.
                      3ade87ce-ca8c-40c2-a0f0-1c979e03f468-image.png

                      1 Antwort Letzte Antwort
                      0
                      • F Offline
                        F Offline
                        Foradh 0
                        schrieb am zuletzt editiert von
                        #3941

                        So mittlerweile habe ich das Panel mit allem wichtigem eingerichtet und bin super zufrieden!

                        Was momentan noch nicht funktioniert ist die Energieanzeige via "cardpower"
                        Das Problem ist, dass das in der Anleitung aufgeführte Javascript von @l4rs im JSON-String eine falsche Struktur aufweist.

                        Beispiel für id1 soll:

                          {
                            "id": 1,
                            "value": 3,
                            "unit": "kW",
                            "icon": "battery-charging-60",
                            "iconColor": 10,
                            "speed": 30
                          },
                        

                        Beispiel für id1 ist:

                            {
                              "id": 1
                            },
                            {
                              "value": 0
                            },
                            {
                              "unit": "W"
                            },
                            {
                              "icon": "battery-charging-60"
                            },
                            {
                              "iconColor": 0
                            },
                            {}
                        

                        Es werden zu viele {} verwendet. Allerdings verstehe ich leider nicht wie ich das im Javascript ändern muss.

                        1 Antwort Letzte Antwort
                        0
                        • T Offline
                          T Offline
                          TT-Tom
                          schrieb am zuletzt editiert von
                          #3942

                          @foradh-0
                          zeige mal dein Script. läuft bei mir ohne Probleme.

                          Gruß Tom
                          https://github.com/tt-tom17
                          Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                          NSPanel Script Wiki
                          https://github.com/joBr99/nspanel-lovelace-ui/wiki

                          NSPanel Adapter Wiki
                          https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                          F 1 Antwort Letzte Antwort
                          0
                          • T TT-Tom

                            @foradh-0
                            zeige mal dein Script. läuft bei mir ohne Probleme.

                            F Offline
                            F Offline
                            Foradh 0
                            schrieb am zuletzt editiert von
                            #3943

                            @tt-tom
                            Hier das Javascript mit meinen Werten

                            /**
                            * generate an JSON for display Power-Card on NSPanel
                            * Source: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Card-Definitionen-(Seiten)#cardpower-ab-ts-script-v341
                            * Version: 0.1 - L4rs
                            */
                            schedule("* * * * *", function () {
                             
                                // Definition der Datenpunkte für das JSON der POWER-Card und der anzuzeigenden Leistungswerte
                                var powerCardJson = "0_userdata.0.Datenpunkte.CardPower_json",
                                  pwr1 = Math.round(getState("modbus.1.holdingRegisters.57716_Battery_1_Instantaneous_Power").val), // Batterie
                                  pwr2 = Math.round(getState("javascript.0.Solar.Wechselrichter.PVLeistungAktuell").val),    // Solar
                                  pwr3 = "",    // Wind
                                  pwr4 = Math.round(getState("javascript.0.Solar.Wechselrichter.Hausverbrauch").val),   // Verbraucher
                                  pwr5 = Math.round(getState("modbus.1.holdingRegisters.40206_M_AC_Power").val),    // Stromnetz
                                  pwr6 = "", // Auto
                                  pwrHome = Math.round(pwr5 - pwr2);    // Berechnung des Energiefluss anstelle eines Datenpunktes
                                
                                // Definition der Keys im JSON
                                var keys = ["id", "value", "unit", "icon", "iconColor", "speed"];
                                
                                // Definition der "Kacheln", inkl. StandardIcon. Es können alle Icon aus dem Iconmapping genutzt werden.
                                // Kacheln die nicht genutzt werden sollen, müssen wie z.b. item1 formatiert sein
                                var home = [0, pwrHome, "W", "home-lightning-bolt-outline", 0]; // Icon home
                                var item1 = [1, pwr1, "W", "battery-charging-60", 0];   // Icon battery-charging-60
                                var item2 = [2, pwr2, "W", "solar-power-variant-outline", 3, pwr2 > 0 ? -2 : 0]; // Icon solar-power-variant
                                var item3 = [3, pwr3, "", "", "", ""];   // Icon wind-turbine
                                var item4 = [4, pwr4, "W", "shape", 0];   // Icon shape
                                var item5 = [5, pwr5, "W", "transmission-tower", 10, 10];   // Icon transmission-tower
                                var item6 = [3, pwr6, "", "", "", ""];  // Icon car
                                
                                /**
                                 * JSON generieren und in den Datenpunkt schreiben,
                                 *
                                 *  --- ab hier keine Änderungen mehr ---
                                 */
                                function func(tags, values) {
                                  return Object.assign(
                                    ...tags.map((element, index) => ({ [element]: values[index] }))
                                  );
                                }
                                
                                setState(
                                  powerCardJson,
                                  JSON.stringify([
                                    func(keys, home),
                                    func(keys, item1),
                                    func(keys, item2),
                                    func(keys, item3),
                                    func(keys, item4),
                                    func(keys, item5),
                                    func(keys, item6),
                                  ])
                                );
                               });
                            
                            T 1 Antwort Letzte Antwort
                            0
                            • F Foradh 0

                              @tt-tom
                              Hier das Javascript mit meinen Werten

                              /**
                              * generate an JSON for display Power-Card on NSPanel
                              * Source: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Card-Definitionen-(Seiten)#cardpower-ab-ts-script-v341
                              * Version: 0.1 - L4rs
                              */
                              schedule("* * * * *", function () {
                               
                                  // Definition der Datenpunkte für das JSON der POWER-Card und der anzuzeigenden Leistungswerte
                                  var powerCardJson = "0_userdata.0.Datenpunkte.CardPower_json",
                                    pwr1 = Math.round(getState("modbus.1.holdingRegisters.57716_Battery_1_Instantaneous_Power").val), // Batterie
                                    pwr2 = Math.round(getState("javascript.0.Solar.Wechselrichter.PVLeistungAktuell").val),    // Solar
                                    pwr3 = "",    // Wind
                                    pwr4 = Math.round(getState("javascript.0.Solar.Wechselrichter.Hausverbrauch").val),   // Verbraucher
                                    pwr5 = Math.round(getState("modbus.1.holdingRegisters.40206_M_AC_Power").val),    // Stromnetz
                                    pwr6 = "", // Auto
                                    pwrHome = Math.round(pwr5 - pwr2);    // Berechnung des Energiefluss anstelle eines Datenpunktes
                                  
                                  // Definition der Keys im JSON
                                  var keys = ["id", "value", "unit", "icon", "iconColor", "speed"];
                                  
                                  // Definition der "Kacheln", inkl. StandardIcon. Es können alle Icon aus dem Iconmapping genutzt werden.
                                  // Kacheln die nicht genutzt werden sollen, müssen wie z.b. item1 formatiert sein
                                  var home = [0, pwrHome, "W", "home-lightning-bolt-outline", 0]; // Icon home
                                  var item1 = [1, pwr1, "W", "battery-charging-60", 0];   // Icon battery-charging-60
                                  var item2 = [2, pwr2, "W", "solar-power-variant-outline", 3, pwr2 > 0 ? -2 : 0]; // Icon solar-power-variant
                                  var item3 = [3, pwr3, "", "", "", ""];   // Icon wind-turbine
                                  var item4 = [4, pwr4, "W", "shape", 0];   // Icon shape
                                  var item5 = [5, pwr5, "W", "transmission-tower", 10, 10];   // Icon transmission-tower
                                  var item6 = [3, pwr6, "", "", "", ""];  // Icon car
                                  
                                  /**
                                   * JSON generieren und in den Datenpunkt schreiben,
                                   *
                                   *  --- ab hier keine Änderungen mehr ---
                                   */
                                  function func(tags, values) {
                                    return Object.assign(
                                      ...tags.map((element, index) => ({ [element]: values[index] }))
                                    );
                                  }
                                  
                                  setState(
                                    powerCardJson,
                                    JSON.stringify([
                                      func(keys, home),
                                      func(keys, item1),
                                      func(keys, item2),
                                      func(keys, item3),
                                      func(keys, item4),
                                      func(keys, item5),
                                      func(keys, item6),
                                    ])
                                  );
                                 });
                              
                              T Offline
                              T Offline
                              TT-Tom
                              schrieb am zuletzt editiert von TT-Tom
                              #3944

                              @foradh-0
                              Probiere mal die Parameter. Bei den „item“ müssen 6 Werte übergeben werden.

                              
                                  var item1 = [1, pwr1, "W", "battery-charging-60", 0, ""];   // Icon battery-charging-60
                                  var item2 = [2, pwr2, "W", "solar-power-variant-outline", 3, pwr2 > 0 ? -2 : 0]; // Icon solar-power-variant
                                  var item3 = [3, pwr3, "", "", 0, ""];   // Icon wind-turbine
                                  var item4 = [4, pwr4, "W", "shape", 0, ""];   // Icon shape
                                  var item5 = [5, pwr5, "W", "transmission-tower", 10, 10];   // Icon transmission-tower
                                  var item6 = [6, pwr6, "", "", 0, "" ];  // Icon car
                              
                              

                              Gruß Tom
                              https://github.com/tt-tom17
                              Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                              NSPanel Script Wiki
                              https://github.com/joBr99/nspanel-lovelace-ui/wiki

                              NSPanel Adapter Wiki
                              https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                              F 1 Antwort Letzte Antwort
                              1
                              • T TT-Tom

                                @foradh-0
                                Probiere mal die Parameter. Bei den „item“ müssen 6 Werte übergeben werden.

                                
                                    var item1 = [1, pwr1, "W", "battery-charging-60", 0, ""];   // Icon battery-charging-60
                                    var item2 = [2, pwr2, "W", "solar-power-variant-outline", 3, pwr2 > 0 ? -2 : 0]; // Icon solar-power-variant
                                    var item3 = [3, pwr3, "", "", 0, ""];   // Icon wind-turbine
                                    var item4 = [4, pwr4, "W", "shape", 0, ""];   // Icon shape
                                    var item5 = [5, pwr5, "W", "transmission-tower", 10, 10];   // Icon transmission-tower
                                    var item6 = [6, pwr6, "", "", 0, "" ];  // Icon car
                                
                                
                                F Offline
                                F Offline
                                Foradh 0
                                schrieb am zuletzt editiert von
                                #3945

                                @tt-tom
                                👍 Super, damit funktioniert es

                                Beste Grüße
                                Foradh

                                1 Antwort Letzte Antwort
                                0
                                • N Offline
                                  N Offline
                                  Nev
                                  schrieb am zuletzt editiert von Nev
                                  #3946

                                  Hallo,

                                  jetzt hab ich doch einen Einsatzzweck für meine beiden Displays gefunden.
                                  Also nochmal alle Firmware und Tasmota nach Anleitung geupdated. (auch alte nspanel.be etc. gelöscht)

                                  Das Display kringelt nun vor sich hin und wartet auf Daten....

                                  Ich stecke nun hier im TS script fest mit der Fehlermeldung :
                                  6ea130fe-68cd-4f7f-8dd2-404efe269186-image.png

                                  Ich hab keinen Plan was bei Zeile 32 falsch sein sollte, geschweige denn welche das ist. Kommentare sind es vermutlich nicht ... bzw. werden nicht mitgezählt...

                                  Vielleicht hat jemand eine Idee?

                                  Danke! Nev

                                  ArmilarA 1 Antwort Letzte Antwort
                                  0
                                  • N Nev

                                    Hallo,

                                    jetzt hab ich doch einen Einsatzzweck für meine beiden Displays gefunden.
                                    Also nochmal alle Firmware und Tasmota nach Anleitung geupdated. (auch alte nspanel.be etc. gelöscht)

                                    Das Display kringelt nun vor sich hin und wartet auf Daten....

                                    Ich stecke nun hier im TS script fest mit der Fehlermeldung :
                                    6ea130fe-68cd-4f7f-8dd2-404efe269186-image.png

                                    Ich hab keinen Plan was bei Zeile 32 falsch sein sollte, geschweige denn welche das ist. Kommentare sind es vermutlich nicht ... bzw. werden nicht mitgezählt...

                                    Vielleicht hat jemand eine Idee?

                                    Danke! Nev

                                    ArmilarA Offline
                                    ArmilarA Offline
                                    Armilar
                                    Most Active Forum Testing
                                    schrieb am zuletzt editiert von Armilar
                                    #3947

                                    @nev

                                    bei Zeile 32 ist sicherlich nicht der Fehler 😉 Die Zeillennummerierung kannst du im ioBroker knicken.

                                    Ich vermute mal eher auf ein fehlendes Icon-Script (unter Schripte im global-Verzeichnis)

                                    also das blaue:

                                    2a092c6d-592a-47d3-9296-584f16447554-image.png

                                    https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker---Basisinstallation#8--icon-typescript-anlegen

                                    Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                    https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                    N 1 Antwort Letzte Antwort
                                    0
                                    • ArmilarA Armilar

                                      @nev

                                      bei Zeile 32 ist sicherlich nicht der Fehler 😉 Die Zeillennummerierung kannst du im ioBroker knicken.

                                      Ich vermute mal eher auf ein fehlendes Icon-Script (unter Schripte im global-Verzeichnis)

                                      also das blaue:

                                      2a092c6d-592a-47d3-9296-584f16447554-image.png

                                      https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker---Basisinstallation#8--icon-typescript-anlegen

                                      N Offline
                                      N Offline
                                      Nev
                                      schrieb am zuletzt editiert von
                                      #3948

                                      @armilar

                                      Ne das ist es nicht.

                                      Das Script hatte ich auch schon vermutet und 2 mal neu eingespielt und alles neu gestartet.

                                      cb368110-9d5b-40c1-a726-608d61304f23-image.png

                                      Bin offen für andere Vorschläge.

                                      ArmilarA 1 Antwort Letzte Antwort
                                      0
                                      • N Nev

                                        @armilar

                                        Ne das ist es nicht.

                                        Das Script hatte ich auch schon vermutet und 2 mal neu eingespielt und alles neu gestartet.

                                        cb368110-9d5b-40c1-a726-608d61304f23-image.png

                                        Bin offen für andere Vorschläge.

                                        ArmilarA Offline
                                        ArmilarA Offline
                                        Armilar
                                        Most Active Forum Testing
                                        schrieb am zuletzt editiert von Armilar
                                        #3949

                                        @nev

                                        Zeige mal was du alles verändert hast im NSPanelTS.ts?

                                        Ist eigentlich ohne weitere Anpassungen als:

                                        const NSPanel_Path = '0_userdata.0.NSPanel.1.';       // Anpassen an das jeweilige NSPanel
                                        const NSPanel_Alarm_Path = '0_userdata.0.NSPanel.';     // Pfad für gemeinsame Nutzung durch mehrere Panels (bei Nutzung der cardAlarm)
                                        
                                        
                                        export const config = <Config> {
                                             panelRecvTopic: 'mqtt.0.SmartHome.NSPanel_1.tele.RESULT',       // Bitte anpassen
                                             panelSendTopic: 'mqtt.0.SmartHome.NSPanel_1.cmnd.CustomSend',   // Bitte anpassen
                                        

                                        bereits lauffähig...

                                        Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                        https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                        N 1 Antwort Letzte Antwort
                                        0
                                        • ArmilarA Armilar

                                          @nev

                                          Zeige mal was du alles verändert hast im NSPanelTS.ts?

                                          Ist eigentlich ohne weitere Anpassungen als:

                                          const NSPanel_Path = '0_userdata.0.NSPanel.1.';       // Anpassen an das jeweilige NSPanel
                                          const NSPanel_Alarm_Path = '0_userdata.0.NSPanel.';     // Pfad für gemeinsame Nutzung durch mehrere Panels (bei Nutzung der cardAlarm)
                                          
                                          
                                          export const config = <Config> {
                                               panelRecvTopic: 'mqtt.0.SmartHome.NSPanel_1.tele.RESULT',       // Bitte anpassen
                                               panelSendTopic: 'mqtt.0.SmartHome.NSPanel_1.cmnd.CustomSend',   // Bitte anpassen
                                          

                                          bereits lauffähig...

                                          N Offline
                                          N Offline
                                          Nev
                                          schrieb am zuletzt editiert von Nev
                                          #3950

                                          @armilar

                                          Davon war ich ausgegangen ich hab lediglich die Pfade angepasst.

                                          e8287713-4667-45fc-a351-b36080db6418-image.png

                                          Das sind schon ordner oder?
                                          96c6fca9-7977-417a-9982-892c8832a6b4-image.png

                                          und dann noch die mqtt:
                                          d5ebb89e-dc66-44f7-ae7e-157296cf9ec6-image.png

                                          und hier die Objekte:
                                          59852774-a561-4ba8-b044-57a289b41d97-image.png

                                          Jetzt hoffe ich nur ich hab mich nirgendwo vertippt, das wäre peinlich..

                                          Ich habs jetzt nochmal plain reingeladen, gleicher Fehler...ohne irgendwelche Änderungen.

                                          ArmilarA 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          335

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe