Skip to content
  • Home
  • 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

Community Forum

donate donate
  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.7k

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

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

SONOFF NSPanel mit Lovelace UI

Geplant Angeheftet Gesperrt Verschoben Hardware
lovelace uinspanelsonoff
7.8k Beiträge 274 Kommentatoren 6.8m Aufrufe 257 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.
  • D DaPeace

    @Armilar
    Moin Armilar,
    danke schonmal für deine Hilfe. Ein Problem hab ich noch. Das Scaling passt für meinen Zweck nicht.
    Dein Beispiel hat ja einen Wertebereich von 0 - 4.
    Ich möchte aber Werte zwischen 0 - 30 darstellen (Tagesverbrauch vom Haus) und auch bei der Einspeisung wird es ungefähr solche Werte geben.
    Mit dem aktuellen Skript und "yAxisTicks: [100,200,300]," zeigt er mir vorne keine Legende an und die Skalierung scheint mir immer noch die gleiche zu sein. Kann man das irgendwie anpassen?

    Ansonsten bin ich doch nicht doof. Es funktioniert so relativ einfach mit einem 5-Zeiler das in den Datenpunkt zu schreiben.

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

    @dapeace

    sende mal kurz die Seitenvariable und den String

    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.

    ArmilarA 1 Antwort Letzte Antwort
    0
    • ArmilarA Armilar

      @dapeace

      sende mal kurz die Seitenvariable und den String

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

      @DaPeace

      funktioniert bei mir auch nicht in dem Wertebereich in der cardChart... in der cardLChart allerdings wohl :thinking_face:

      https://github.com/joBr99/nspanel-lovelace-ui/issues/934
      https://github.com/joBr99/nspanel-lovelace-ui/issues/794

      Es gibt da noch 2 offene Issues im Github

      Denke mal das erste Issue dürfte sich auf deine Frage beziehen... Einfach an das Issue dran hängen... Versuche die Tage mal zu klären, ob die gelöst werden können.

      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.

      D 1 Antwort Letzte Antwort
      1
      • ArmilarA Armilar

        @DaPeace

        funktioniert bei mir auch nicht in dem Wertebereich in der cardChart... in der cardLChart allerdings wohl :thinking_face:

        https://github.com/joBr99/nspanel-lovelace-ui/issues/934
        https://github.com/joBr99/nspanel-lovelace-ui/issues/794

        Es gibt da noch 2 offene Issues im Github

        Denke mal das erste Issue dürfte sich auf deine Frage beziehen... Einfach an das Issue dran hängen... Versuche die Tage mal zu klären, ob die gelöst werden können.

        D Offline
        D Offline
        DaPeace
        schrieb am zuletzt editiert von
        #4104

        @armilar Ja genau das Phänomen hab ich auch. Danke für die Info. Ich schau mir das an und skaliere derweil die Werte erstmal / 10.

        1 Antwort Letzte Antwort
        0
        • O Offline
          O Offline
          OlliBy67
          schrieb am zuletzt editiert von
          #4105

          Erstmal herzlichen Dank für eure super Arbeit.
          Ich hab gerade meinen zweiten Panel installiert. Dieses mal die US Version.
          Bis jetzt komm ich mit allem klar. Jedoch wollte ich im Screensaver jetzt neben
          einem Symbol für das interne Relais zusätzlich die Raumtemperatur anzeigen lassen.
          Leider ist da aber wohl zu wenig Platz. Kann man irgendwo den waagrechten Strich
          etwas verkürzen, sodass die der Wert korrekt angezeigt wird? Oder wie könnte ich das
          sonst lösen.
          Vielen Dank schon mal für eure Vorschläge und den Support hier.

          Vg Olli
          20231105_111405.jpg

          ArmilarA 1 Antwort Letzte Antwort
          0
          • O OlliBy67

            Erstmal herzlichen Dank für eure super Arbeit.
            Ich hab gerade meinen zweiten Panel installiert. Dieses mal die US Version.
            Bis jetzt komm ich mit allem klar. Jedoch wollte ich im Screensaver jetzt neben
            einem Symbol für das interne Relais zusätzlich die Raumtemperatur anzeigen lassen.
            Leider ist da aber wohl zu wenig Platz. Kann man irgendwo den waagrechten Strich
            etwas verkürzen, sodass die der Wert korrekt angezeigt wird? Oder wie könnte ich das
            sonst lösen.
            Vielen Dank schon mal für eure Vorschläge und den Support hier.

            Vg Olli
            20231105_111405.jpg

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

            @olliby67

            nachfolgende 4 Möglichkeiten fallen mir da für die US Version des NSPanel ein:

            1. Variante: Advanced Screensaver US_P

              ab1da22b-6045-476a-b8c1-b7f982461518-image.png

            2. Variante: Das Icon weglassen

               mrIcon1ScreensaverEntity: 
                   { 
                       ScreensaverEntity: 'deconz.0.Sensors.3.open', 
                       ScreensaverEntityIconOn: null,
                       ScreensaverEntityIconOff: null, 
                       ScreensaverEntityValue: 'deconz.0.Sensors.5.temperature',
                       ScreensaverEntityValueDecimalPlace : 0,
                       ScreensaverEntityValueUnit: '°', 
                       ScreensaverEntityOnColor: MSRed, 
                       ScreensaverEntityOffColor: Yellow 
                   },
              

              91a15a7e-4420-454e-8df1-a2f425e0103e-image.png

            3. Variante: Temperatur in die bottomScreensaverEntity 1-4 bringen

            4. Variante: Alternativ Layout nutzen und statt der Luftfeuchte die Raumtemperatur konfigurieren

              925549e6-53e8-48b9-a1a0-249f703a3bbe-image.png

              Scheint es aber aktuell nicht im Service-Menü zu funktionieren und müsste bis zum nächsten Fix über :

              0_userdata.0.NSPanel.EMU.Config.Screensaver.alternativeScreensaverLayout --> true
              

              gesetzt werden

            EDIT: Variante 5 --> Issue im Github für HMI aufmachen

            Und herzlich willkommen bei den NSPanel'ern :blush:

            EDIT2: Variante 6 --> NSPanel um 90° drehen mit US_L TFT

            68317690-a0fd-411e-aced-0b7867fea03d-image.png

            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
            1
            • T Offline
              T Offline
              TT-Tom
              schrieb am zuletzt editiert von
              #4107

              @armilar sagte in SONOFF NSPanel mit Lovelace UI:

              Scheint es aber aktuell nicht im Service-Menü zu funktionieren und müsste bis zum nächsten Fix über :

              Was soll nicht funktionieren, das Umschalten auf alternativ Screensaver oder die Feuchte ändern??

              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

              ArmilarA 1 Antwort Letzte Antwort
              1
              • O Offline
                O Offline
                OlliBy67
                schrieb am zuletzt editiert von
                #4108

                @Armilar
                Vielen Dank für die schnelle Hilfe und Vorschläge.
                Ich hab mich vorerst für Variante 2 (ohne Icon) entschieden. :+1:
                Das mit dem Issue bei Github muss ich mir erst mal in ruhe durchlesen.
                Mein Englisch ist leider nicht so gut. :thinking_face:
                Einen schönen Sonntag noch
                Olli

                1 Antwort Letzte Antwort
                1
                • T TT-Tom

                  @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                  Scheint es aber aktuell nicht im Service-Menü zu funktionieren und müsste bis zum nächsten Fix über :

                  Was soll nicht funktionieren, das Umschalten auf alternativ Screensaver oder die Feuchte ändern??

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

                  @tt-tom

                  Was soll nicht funktionieren, das Umschalten auf alternativ Screensaver

                  Entwarnung: Hatte 3 x versucht das Layout auf Alternativ im Service-Menü zu drehen... Dann habe ich das Ding manuell umgebogen... Lässt sich aber jetzt auch wieder im Service-Menü umstellen... Keine Ahnung was da falsch war - muss aber dann bei mir gelegen haben...

                  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.

                  T 1 Antwort Letzte Antwort
                  1
                  • ArmilarA Armilar

                    @tt-tom

                    Was soll nicht funktionieren, das Umschalten auf alternativ Screensaver

                    Entwarnung: Hatte 3 x versucht das Layout auf Alternativ im Service-Menü zu drehen... Dann habe ich das Ding manuell umgebogen... Lässt sich aber jetzt auch wieder im Service-Menü umstellen... Keine Ahnung was da falsch war - muss aber dann bei mir gelegen haben...

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

                    @armilar
                    was ich fest gestellt habe ist, du musst Advanced abschalten / false setzen, sonst zieht Alternativ trotz ein / true nicht.
                    Hatte schon mal überlegt, dort eine eine Automatik hinter zu setzen, dass nur eine Variante aktiv sein kann.

                    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

                    ArmilarA 1 Antwort Letzte Antwort
                    1
                    • T TT-Tom

                      @armilar
                      was ich fest gestellt habe ist, du musst Advanced abschalten / false setzen, sonst zieht Alternativ trotz ein / true nicht.
                      Hatte schon mal überlegt, dort eine eine Automatik hinter zu setzen, dass nur eine Variante aktiv sein kann.

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

                      @tt-tom

                      Ja, die beiden aneinander binden... Advanced und Alternativ kann es zur gleichen Zeit nicht geben...

                      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.

                      T 1 Antwort Letzte Antwort
                      1
                      • ArmilarA Armilar

                        @tt-tom

                        Ja, die beiden aneinander binden... Advanced und Alternativ kann es zur gleichen Zeit nicht geben...

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

                        @armilar
                        ja so in der Art, entweder einer von beiden auf True oder beide auf False. Werde die Tage mal was basteln :wink:

                        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
                        • ArmilarA Armilar

                          @danny_v1

                          b5a0fc46-45c0-4a20-b7ab-74358856563d-Nextion_Editor_12mOYErUCZ.gif

                          Habe deine gepostete Menüstruktur (siehe Aufzeichnung) im Emulator getestet (allerdings mit der TFT 53/ 4.3.2) und kann soweit kein fehlerhaftes Verhalten feststellen...

                          Für den Test habe ich die habe ich alle Lampen-Aliase auf meine Schreibtischbeleuchtung umgestellt, daher auch das doppelte Schalten in der Emulation unter der cardEntities Deckenlampe. Habe später noch eine RGB-Lampe eingebaut...

                          Ich hatte auch nur einen Ausschnitt aus deinen Pages/Subpages in der Config (also nicht vollständig). Kann es sein, dass dort eine Seite sowohl unter pages als auch unter subpages aufgelistet ist?

                          Für denn direkten Vergleich könntest du noch auf die neueste TFT wechseln und das TS-Script im unteren Teil ersetzen?

                          siehe Update 4.3.2.1
                          https://forum.iobroker.net/post/1070661

                          Falls ich etwas abweichend, zu deiner Klick-Vorgehensweise gemacht haben sollte, dann bitte kurze zusätzliche Info

                          Diese Variable...

                          let Obergeschoss = <PageGrid>
                           
                          {
                              "type": "cardGrid",
                              "heading": "Obergeschoss",
                              "useColor": true,
                              "subPage": false,
                              "parent": undefined,
                              'prev': 'AlarmSeite',
                              'next': 'Untergeschoss',
                              'home': undefined,
                              'prevIcon': 'shield-alert',
                              'nextIcon': 'home-floor-0',
                              "items": [
                                      <PageItem>{ navigate: true, id: "Wohnzimmer1", icon: "sofa-outline", onColor: White, name: "Wohnzimmer"},
                                      <PageItem>{ navigate: true, id: "Kinderzimmer_Ede", icon: "human-child", onColor: White, name: "Ede"},
                                      <PageItem>{ navigate: true, id: "Kinderzimmer_Edda", icon: "human-child", onColor: White, name: "Edda"},
                                      <PageItem>{ navigate: true, id: "Balkon", icon: "balcony", onColor: White, name: "Balkon"},
                                      <PageItem>{ navigate: true, id: "Flur_OG", icon: "stairs", onColor: White, name: "Flur"}
                              ]
                           
                          };
                          

                          würde ich noch in:

                          let Obergeschoss = <PageGrid>
                           
                          {
                              "type": "cardGrid",
                              "heading": "Obergeschoss",
                              "useColor": true,
                              'prevIcon': 'shield-alert',
                              'nextIcon': 'home-floor-0',
                              "items": [
                                      <PageItem>{ navigate: true, id: "Wohnzimmer1", icon: "sofa-outline", onColor: White, name: "Wohnzimmer"},
                                      <PageItem>{ navigate: true, id: "Kinderzimmer_Ede", icon: "human-child", onColor: White, name: "Ede"},
                                      <PageItem>{ navigate: true, id: "Kinderzimmer_Edda", icon: "human-child", onColor: White, name: "Edda"},
                                      <PageItem>{ navigate: true, id: "Balkon", icon: "balcony", onColor: White, name: "Balkon"},
                                      <PageItem>{ navigate: true, id: "Flur_OG", icon: "stairs", onColor: White, name: "Flur"}
                              ]
                           
                          };
                          

                          ändern, da auf TopLevel nur die Reihenfolge der definierten Pages erfolgt, d.h. es gibt im TopLevel kein parent, prev, next und home. Das sind Eigenschaften der Subpages.

                          Hat aber, dadurch das die Reihenfolge unter Pages die gleiche war, auch nicht zu abweichenden Ergebnissen geführt...

                          Also auf jeden Fall vorher mal ein:

                          FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v4.3.2.tft
                          

                          in der Tasmota-Konsole durchführen...

                          EDIT: Ich kann allerdings auch nicht nachvollziehen, was diese nachfolgenden beiden Aliase bewirken sollen:

                          • alias.0.Wohnzimmer.Deckenlampe.Alle.Info.INFO --> denke es ist ein Info-Alias, der true/false zurück gibt und damit entsprechend die Farbe des Icons steuert, ob noch eine Lampe an ist oder alles aus
                          • alias.0.Wohnzimmer.HeizungWZ.SET --> den kann aktuell ich gar nicht nachvollziehen
                          • alias.0.Status.Test.ACTUAL --> der dürfte Fehler werfen, es sei denn du hast den wieder ACTUAL.ACTUAL genannt ;-)

                          Sollte der Fehler:

                          wenn ich auf einer Seite z.B. Wohnzimmer bin die als PageGrid definiert ist und dann eine Subpage z.B. Deckenlampen aufrufe welche als PageEntities definiert ist und dort über den Schalter eine Lampe schalte wird die Aktion ausgeführt und auf die vorhergehende Seite Wohnzimmer umgeschaltet, welche aber als PageEntities und nicht mehr als PageGrid dargestellt wird.
                          Woher könnte der Fehler kommen?

                          dann immer noch existieren, sollten wir uns die Aliase und Datenpunkte der entsprechenden Schalter, bei denen das passiert etwas detaillierter betrachten...

                          D Offline
                          D Offline
                          danny_v1
                          schrieb am zuletzt editiert von
                          #4113

                          @armilar said in SONOFF NSPanel mit Lovelace UI:
                          Erstma vielen Dank für die ausführliche Analyse und Hilfe!!!

                          @danny_v1

                          b5a0fc46-45c0-4a20-b7ab-74358856563d-Nextion_Editor_12mOYErUCZ.gif

                          Falls ich etwas abweichend, zu deiner Klick-Vorgehensweise gemacht haben sollte, dann bitte kurze zusätzliche Info

                          Ja wenn man es so schaltet funktioniert es problemlos. Der Effekt tritt auf wenn ich direkt hier schalte:
                          Lampe.png

                          EDIT: Ich kann allerdings auch nicht nachvollziehen, was diese nachfolgenden beiden Aliase bewirken sollen:

                          • alias.0.Wohnzimmer.Deckenlampe.Alle.Info.INFO --> denke es ist ein Info-Alias, der true/false zurück gibt und damit entsprechend die Farbe des Icons steuert, ob noch eine Lampe an ist oder alles aus

                          Ja genau dafür ist das gedacht.

                          • alias.0.Wohnzimmer.HeizungWZ.SET --> den kann aktuell ich gar nicht nachvollziehen

                          Das war noch ein Test ich wollte je nach Temperatur das Icon einfärben, weiß das ist so falsch, hatte ich vergessen anzupassen, bzw übersehen es wieder zu entfernten.

                          • alias.0.Status.Test.ACTUAL --> der dürfte Fehler werfen, es sei denn du hast den wieder ACTUAL.ACTUAL genannt ;-)

                          Ja bei dem ist es das gleiche, der ist noch nicht angepasst. :scream:

                          ArmilarA 1 Antwort Letzte Antwort
                          1
                          • K Kuckuckmann

                            @danny_v1

                            Hi @danny_v1 ,

                            was ich nicht verstehe ist, warum Du bei vielen Punkten ein navigate: true da drin hast. Die meisten der PageItems sind doch zum schalten und nicht noch um auf weitere Unterseiten zu navigieren, oder?

                            Vlt. hilft Dir das ja.

                            @Armilar man könnte meinen Du hast Langeweile? :-D

                            LG

                            D Offline
                            D Offline
                            danny_v1
                            schrieb am zuletzt editiert von
                            #4114

                            @kuckuckmann said in SONOFF NSPanel mit Lovelace UI:

                            @danny_v1

                            Hi @danny_v1 ,

                            was ich nicht verstehe ist, warum Du bei vielen Punkten ein navigate: true da drin hast. Die meisten der PageItems sind doch zum schalten und nicht noch um auf weitere Unterseiten zu navigieren, oder?

                            Vlt. hilft Dir das ja.

                            Hab noch mal drüber geschaut, das passt schon so, sind alles Punkt zum navigieren.

                            D 1 Antwort Letzte Antwort
                            0
                            • D danny_v1

                              @kuckuckmann said in SONOFF NSPanel mit Lovelace UI:

                              @danny_v1

                              Hi @danny_v1 ,

                              was ich nicht verstehe ist, warum Du bei vielen Punkten ein navigate: true da drin hast. Die meisten der PageItems sind doch zum schalten und nicht noch um auf weitere Unterseiten zu navigieren, oder?

                              Vlt. hilft Dir das ja.

                              Hab noch mal drüber geschaut, das passt schon so, sind alles Punkt zum navigieren.

                              D Offline
                              D Offline
                              DaPeace
                              schrieb am zuletzt editiert von
                              #4115

                              Hier nochmal ein kurzer Abriss wie ich mit NodeRed den normalen Balken-Chart befülle.
                              Benötigt wird in Nodered die Anbindung an die MySQL-DB (node-red-node-mysql), die Anbindung an ioBroker, wobei ich nodered aus dem iobroker raus installiert habe und die Nodes dann vorhanden waren und 2 Funktionsnodes.
                              nodered_nspanel_chart.jpg

                              Meine Tabelle in Mysql ist sehr simple. Sie besteht aus der ID, dem Wert (Stromverbrauch) und dem Datum. Geschrieben werden die Daten auch direkt aus NodeRed. In diesem Fall mit dem Query:

                              INSERT INTO `Stromverbrauch` (`stromverbrauch`,`date`) VALUES ({{payload}},NOW()) 
                              

                              Um es dann aufs Display zu zaubern benötigt man im ersten Funktionsnode den korrekten Query:

                              var A = "SELECT * FROM Stromverbrauch ORDER BY id DESC LIMIT 8";
                              msg.topic = A ;
                              return msg;
                              

                              Ich nehme hier einfach die letzten 8 Werte die geschrieben wurden.
                              Dieser Node wird mit mit dem DB-Node verknüpft. Der Ausgang vom DB-Node geht dann auf den nächsten Funktionsnode mit folgendem Code und aus dem Funktionsnode geht es dann direkt in ioBroker:

                              var resultArray = [];
                              var currentDate = "";
                              
                              for (var i = 0; i < msg.payload.length; i++) {
                                  var date = new Date(msg.payload[i].date);
                                  var day = date.getDate();
                                  var month = date.getMonth() + 1;
                                  var floatvalue = msg.payload[i].stromverbrauch;
                                  var intvalue = Math.round(floatvalue);
                              
                                  if (i % 4 === 0) {
                                      if (currentDate !== "") {
                                          resultArray.push("^"); 
                                      }
                                      currentDate = intvalue + "^" + (day < 10 ? "0" + day : day) + ":" + (month < 10 ? "0" + month : month); 
                                      resultArray.push(currentDate);
                                  } else {
                                      resultArray.push(intvalue); 
                                  }
                              }
                              msg.payload = resultArray.join("~"); 
                              msg.payload = msg.payload.replace(/~\^~/g, "~");
                              return msg; 
                              

                              Hier wird die Ausgabe zerlegt, 1 Wert wird mit Datum versehen und 3 Werte sind ohne Datum und es wird entsprechend mit den Tilden aufgefüllt.
                              Wenn man mehr Werte benötigt, dann einfach das Limit beim Mysql-Query erhöhen.
                              Das Panel formatiert sich das ja dann zurecht. Das Datum wird aus dem Timestamp extrahiert, sonst steht auf dem Panel ein ganzer Roman.
                              Die Uhrzeit brauche ich bei meinem Tagesverbrauch vom Haus nicht. Es ist aber ziemlich einfach jetzt aus dem Timestamp anstelle Monat und Tag einfach Stunde und Minute zu ziehen und an der richtigen Stelle einzubinden. Wie bereits von @Armilar bestätigt, kann das Panel momentan nur Werte von 0-5 anzeigen. Mein Hausverbrauch liegt je nach Jahreszeit zwischen 4kwh - 30kwh und entsprechend passt das noch nicht in die Skalierung. Ich hoffe das wird sich noch ändern. Bis jetzt nehm ich den Wert einfach / 10 das er im Panel ordentlich dargestellt wird.

                              ArmilarA 1 Antwort Letzte Antwort
                              1
                              • D DaPeace

                                Hier nochmal ein kurzer Abriss wie ich mit NodeRed den normalen Balken-Chart befülle.
                                Benötigt wird in Nodered die Anbindung an die MySQL-DB (node-red-node-mysql), die Anbindung an ioBroker, wobei ich nodered aus dem iobroker raus installiert habe und die Nodes dann vorhanden waren und 2 Funktionsnodes.
                                nodered_nspanel_chart.jpg

                                Meine Tabelle in Mysql ist sehr simple. Sie besteht aus der ID, dem Wert (Stromverbrauch) und dem Datum. Geschrieben werden die Daten auch direkt aus NodeRed. In diesem Fall mit dem Query:

                                INSERT INTO `Stromverbrauch` (`stromverbrauch`,`date`) VALUES ({{payload}},NOW()) 
                                

                                Um es dann aufs Display zu zaubern benötigt man im ersten Funktionsnode den korrekten Query:

                                var A = "SELECT * FROM Stromverbrauch ORDER BY id DESC LIMIT 8";
                                msg.topic = A ;
                                return msg;
                                

                                Ich nehme hier einfach die letzten 8 Werte die geschrieben wurden.
                                Dieser Node wird mit mit dem DB-Node verknüpft. Der Ausgang vom DB-Node geht dann auf den nächsten Funktionsnode mit folgendem Code und aus dem Funktionsnode geht es dann direkt in ioBroker:

                                var resultArray = [];
                                var currentDate = "";
                                
                                for (var i = 0; i < msg.payload.length; i++) {
                                    var date = new Date(msg.payload[i].date);
                                    var day = date.getDate();
                                    var month = date.getMonth() + 1;
                                    var floatvalue = msg.payload[i].stromverbrauch;
                                    var intvalue = Math.round(floatvalue);
                                
                                    if (i % 4 === 0) {
                                        if (currentDate !== "") {
                                            resultArray.push("^"); 
                                        }
                                        currentDate = intvalue + "^" + (day < 10 ? "0" + day : day) + ":" + (month < 10 ? "0" + month : month); 
                                        resultArray.push(currentDate);
                                    } else {
                                        resultArray.push(intvalue); 
                                    }
                                }
                                msg.payload = resultArray.join("~"); 
                                msg.payload = msg.payload.replace(/~\^~/g, "~");
                                return msg; 
                                

                                Hier wird die Ausgabe zerlegt, 1 Wert wird mit Datum versehen und 3 Werte sind ohne Datum und es wird entsprechend mit den Tilden aufgefüllt.
                                Wenn man mehr Werte benötigt, dann einfach das Limit beim Mysql-Query erhöhen.
                                Das Panel formatiert sich das ja dann zurecht. Das Datum wird aus dem Timestamp extrahiert, sonst steht auf dem Panel ein ganzer Roman.
                                Die Uhrzeit brauche ich bei meinem Tagesverbrauch vom Haus nicht. Es ist aber ziemlich einfach jetzt aus dem Timestamp anstelle Monat und Tag einfach Stunde und Minute zu ziehen und an der richtigen Stelle einzubinden. Wie bereits von @Armilar bestätigt, kann das Panel momentan nur Werte von 0-5 anzeigen. Mein Hausverbrauch liegt je nach Jahreszeit zwischen 4kwh - 30kwh und entsprechend passt das noch nicht in die Skalierung. Ich hoffe das wird sich noch ändern. Bis jetzt nehm ich den Wert einfach / 10 das er im Panel ordentlich dargestellt wird.

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

                                @dapeace

                                Ja cool :blush:

                                Das Thema cardChart und cardLChart nimmt wieder Fahrt auf. Aktuell gibt es ja noch folgende Fehler/Features:

                                cardChart

                                • Wenn ein Wert > 196 ist (entspricht 19,6), dann wird dieser negativ dargestellt
                                • Y-Achse zur Darstellung größerer Werte zu schmal

                                cardLChart

                                • Keine negativen Werte möglich

                                Fumanchi, der Entwickler der HMI-Charts bittet aus zeitlichen Gründen noch um etwas Geduld. Die Cards werden jedoch gefixt. Sollte jemand bereits einen Fix haben, so kann er den gerne auch bereitstellen.

                                Parallel dazu werden die cardChart und die cardLChart jetzt auch in Home Assistant (ioBroker ja bereits seit v3.9.0) mit aufgenommen.

                                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
                                0
                                • D danny_v1

                                  @armilar said in SONOFF NSPanel mit Lovelace UI:
                                  Erstma vielen Dank für die ausführliche Analyse und Hilfe!!!

                                  @danny_v1

                                  b5a0fc46-45c0-4a20-b7ab-74358856563d-Nextion_Editor_12mOYErUCZ.gif

                                  Falls ich etwas abweichend, zu deiner Klick-Vorgehensweise gemacht haben sollte, dann bitte kurze zusätzliche Info

                                  Ja wenn man es so schaltet funktioniert es problemlos. Der Effekt tritt auf wenn ich direkt hier schalte:
                                  Lampe.png

                                  EDIT: Ich kann allerdings auch nicht nachvollziehen, was diese nachfolgenden beiden Aliase bewirken sollen:

                                  • alias.0.Wohnzimmer.Deckenlampe.Alle.Info.INFO --> denke es ist ein Info-Alias, der true/false zurück gibt und damit entsprechend die Farbe des Icons steuert, ob noch eine Lampe an ist oder alles aus

                                  Ja genau dafür ist das gedacht.

                                  • alias.0.Wohnzimmer.HeizungWZ.SET --> den kann aktuell ich gar nicht nachvollziehen

                                  Das war noch ein Test ich wollte je nach Temperatur das Icon einfärben, weiß das ist so falsch, hatte ich vergessen anzupassen, bzw übersehen es wieder zu entfernten.

                                  • alias.0.Status.Test.ACTUAL --> der dürfte Fehler werfen, es sei denn du hast den wieder ACTUAL.ACTUAL genannt ;-)

                                  Ja bei dem ist es das gleiche, der ist noch nicht angepasst. :scream:

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

                                  @danny_v1 sagte in SONOFF NSPanel mit Lovelace UI:

                                  Ja wenn man es so schaltet funktioniert es problemlos. Der Effekt tritt auf wenn ich direkt hier schalte:

                                  Jedes mal oder nur sporadisch? Sind die betroffenen Lampen beim Schalten alle vom Typ "RGB" mit colormode: "xy"?

                                  Betrachten wir mal diesesPageItem:

                                  <PageItem>{ id: "alias.0.Wohnzimmer.Deckenlampe.SofaRGB.Gruppe", 
                                                        name: "Sofa RGB", 
                                                        icon: "ceiling-light-multiple", 
                                                        minValueBrightness: 0, 
                                                        maxValueBrightness: 100, 
                                                        minValueColorTemp: 150, 
                                                        maxValueColorTemp: 500, 
                                                        interpolateColor: true, 
                                                        colormode: "xy"},
                                  

                                  die

                                                        minValueBrightness: 0, 
                                                        maxValueBrightness: 100,
                                  

                                  kannst du schon mal entfernen, die der Standard-Slider sowieso von 0-100% arbeitet.

                                  Dann bitte noch einmal den Alias für den kompletten RGB senden.

                                  Es gibt auch den Geräte-Typen CIE-Farblicht:
                                  9baa0817-88ff-4f73-9a9d-77508f805701-image.png

                                  Könntest du mal diesen Alias-Typen testen? CIE wäre der XY-Wert der Lampe.

                                  Außerdem bitte noch mal einen Blick in den xy-Datenpunkt der Lampe(n-Gruppe)

                                  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.

                                  D 1 Antwort Letzte Antwort
                                  0
                                  • ArmilarA Armilar

                                    @danny_v1 sagte in SONOFF NSPanel mit Lovelace UI:

                                    Ja wenn man es so schaltet funktioniert es problemlos. Der Effekt tritt auf wenn ich direkt hier schalte:

                                    Jedes mal oder nur sporadisch? Sind die betroffenen Lampen beim Schalten alle vom Typ "RGB" mit colormode: "xy"?

                                    Betrachten wir mal diesesPageItem:

                                    <PageItem>{ id: "alias.0.Wohnzimmer.Deckenlampe.SofaRGB.Gruppe", 
                                                          name: "Sofa RGB", 
                                                          icon: "ceiling-light-multiple", 
                                                          minValueBrightness: 0, 
                                                          maxValueBrightness: 100, 
                                                          minValueColorTemp: 150, 
                                                          maxValueColorTemp: 500, 
                                                          interpolateColor: true, 
                                                          colormode: "xy"},
                                    

                                    die

                                                          minValueBrightness: 0, 
                                                          maxValueBrightness: 100,
                                    

                                    kannst du schon mal entfernen, die der Standard-Slider sowieso von 0-100% arbeitet.

                                    Dann bitte noch einmal den Alias für den kompletten RGB senden.

                                    Es gibt auch den Geräte-Typen CIE-Farblicht:
                                    9baa0817-88ff-4f73-9a9d-77508f805701-image.png

                                    Könntest du mal diesen Alias-Typen testen? CIE wäre der XY-Wert der Lampe.

                                    Außerdem bitte noch mal einen Blick in den xy-Datenpunkt der Lampe(n-Gruppe)

                                    D Offline
                                    D Offline
                                    danny_v1
                                    schrieb am zuletzt editiert von
                                    #4118

                                    @armilar Es ist jedes mal und es sind alle Lampen betroffen, also nicht nur farbige.
                                    Datenpunkte der Aliasse schick ich heute abend.

                                    ArmilarA 1 Antwort Letzte Antwort
                                    0
                                    • ArmilarA Armilar

                                      @dapeace sagte in SONOFF NSPanel mit Lovelace UI:

                                      Temperatur-Werte als Line

                                      Meine Temperatur-Sensoren schiebe ich durch ein einziges JS-Script. Kannste evtl auch für Node-Red mit mySQL adaptieren...

                                      const Debug = false;
                                      
                                      const NSPanel_Path = '0_userdata.0.NSPanel.';
                                      const Path = NSPanel_Path + 'Influx2NSPanel.cardLChart.';
                                      let   PathSensor = '';
                                      
                                      let SensorName = ['EG.Buero.Temperatur',
                                                        'EG.Gaeste_WC.Temperatur',
                                                        'EG.Wohnzimmer.Temperatur',
                                                        'EG.Hauswirtschaftsraum.Temperatur',
                                                        'EG.Flur_vorne.Temperatur',
                                                        'EG.Flur_hinten.Temperatur',
                                                        'EG.Esszimmer.Temperatur',
                                                        'EG.Kaminzimmer.Temperatur',
                                                        'EG.Badezimmer.Temperatur',
                                                        'EG.Kueche.Temperatur',
                                                        'OG.Schlafzimmer_1.Temperatur',
                                                        'OG.Gaestezimmer.Temperatur',
                                                        'OG.Hobbyraum.Temperatur',
                                                        'Gartenhaus.Temperatur'];
                                      
                                      const Sensor = [].concat('deconz.0.Sensors.5.temperature')  // EG.Buero.Temperatur
                                                       .concat('deconz.0.Sensors.12.temperature')  // EG.Gaeste_WC.Temperatur
                                                       .concat('deconz.0.Sensors.53.temperature')  // EG.Wohnzimmer.Temperatur
                                                       .concat('deconz.0.Sensors.19.temperature')  // EG.Hauswirtschaftsraum.Temperatur
                                                       .concat('deconz.0.Sensors.9.temperature')   // EG.Flur_vorne.Temperatur
                                                       .concat('deconz.0.Sensors.27.temperature')  // EG.Flur_hinten.Temperatur
                                                       .concat('deconz.0.Sensors.40.temperature')  // EG.Esszimmer.Temperatur
                                                       .concat('deconz.0.Sensors.37.temperature')  // EG.Kaminzimmer.Temperatur
                                                       .concat('deconz.0.Sensors.45.temperature')  // EG.Badezimmer.Temperatur
                                                       .concat('deconz.0.Sensors.25.temperature')  // EG.Kueche.Temperature
                                                       .concat('deconz.0.Sensors.57.temperature')  // OG.Schlafzimmer_1.Temperatur
                                                       .concat('deconz.0.Sensors.60.temperature')  // OG.Gaestezimmer.Temperatur
                                                       .concat('deconz.0.Sensors.63.temperature')  // OG.Hobbyraum.Temperatur
                                                       .concat('deconz.0.Sensors.30.temperature'); // Gartenhaus.Temperatur
                                                       
                                      let   triggeredSensor = 0;
                                      
                                      const numberOfHoursAgo = 24;
                                      const xAxisTicksEveryM = 60;
                                      const xAxisLabelEveryM = 240;
                                      
                                      const InfluxInstance = 'influxdb.1';
                                      
                                      // Ab hier keine Ändeungen
                                      
                                      let coordinates = ''; 
                                      
                                      on({ id: Sensor, change: 'any' }, async function (obj) {
                                          
                                          if (Debug) console.log(obj.id);
                                          if (Debug) console.log(Sensor.indexOf(obj.id));
                                          if (Debug) console.log(SensorName[Sensor.indexOf(obj.id)])
                                      
                                          PathSensor = Path + SensorName[Sensor.indexOf(obj.id)]
                                      
                                          if (existsObject(PathSensor) == false) {
                                              createState(PathSensor, 0, {
                                                  name: 'SensorGrid',
                                                  desc: 'Sensor Values [~<time>:<value>]*',
                                                  type: 'string',
                                                  role: 'value',
                                              });
                                          }
                                      
                                          let query =[
                                              'from(bucket: "iobroker")',
                                              '|> range(start: -' + numberOfHoursAgo + 'h)',
                                              '|> filter(fn: (r) => r["_measurement"] == "' + obj.id + '")',
                                              '|> filter(fn: (r) => r["_field"] == "value")',
                                              '|> drop(columns: ["from", "ack", "q"])',
                                              '|> aggregateWindow(every: 1h, fn: last, createEmpty: false)',
                                              '|> map(fn: (r) => ({ r with _rtime: int(v: r._time) - int(v: r._start)}))',
                                              '|> yield(name: "_result")'].join('');
                                      
                                          if (Debug) console.log('Query: ' + query);
                                      
                                          sendTo(InfluxInstance, 'query', query, function (result) {
                                              if (result.error) {
                                                  console.error(result.error);
                                              } else {
                                                  // show result
                                                  if (Debug) console.log(result);
                                                  let numResults = result.result.length;
                                                  for (let r = 0; r < numResults; r++) 
                                                  {
                                                      let list = []
                                                      let numValues = result.result[r].length;
                                      
                                                      for (let i = 0; i < numValues; i++) 
                                                      {
                                                          let time = Math.round(result.result[r][i]._rtime/1000/1000/1000/60);
                                                          let value = Math.round(result.result[r][i]._value * 10);
                                                          list.push(time + ":" + value);
                                                      }
                                      
                                                      coordinates = list.join("~");
                                      
                                                      if (Debug) console.log(coordinates);
                                                  }
                                              }
                                          });
                                      
                                          let timeOut = setTimeout (
                                              function () {
                                                  let ticksAndLabelsList = []
                                                  let date = new Date();
                                                  date.setMinutes(0, 0, 0);
                                                  let ts = Math.round(date.getTime() / 1000);
                                                  let tsYesterday = ts - (numberOfHoursAgo * 3600);
                                                  if (Debug) console.log('Iterate from ' + tsYesterday + ' to ' + ts + ' stepsize=' + (xAxisTicksEveryM * 60));
                                                  for (let x = tsYesterday, i = 0; x < ts; x += (xAxisTicksEveryM * 60), i += xAxisTicksEveryM)
                                                  {
                                                      if ((i % xAxisLabelEveryM))
                                                          ticksAndLabelsList.push(i);
                                                      else
                                                      {
                                                          let currentDate = new Date(x * 1000);
                                                          // Hours part from the timestamp
                                                          let hours = '0' + String(currentDate.getHours());
                                                          // Minutes part from the timestamp
                                                          let minutes = '0' + String(currentDate.getMinutes());
                                                          let formattedTime = hours.slice(-2) + ':' + minutes.slice(-2);
                                      
                                                          ticksAndLabelsList.push(String(i) + '^' + formattedTime);
                                                      }
                                                  }
                                                  if (Debug) console.log('Ticks & Label: ' + ticksAndLabelsList);
                                                  if (Debug) console.log('Coordinates: ' + coordinates);
                                                  setState(PathSensor, ticksAndLabelsList.join('+') + '~' + coordinates, true);
                                              }, 
                                          1500
                                          ) ;
                                      });
                                      

                                      5bb270b6-0966-4868-9967-48ee6bc6d93d-image.png

                                      Die cardLChart arbeitet allerdings mit Koordinaten:

                                      Der String weicht von der cardChart ab:
                                      0^16:00+60+120+180+240^20:00+300+360+420+480^00:00+540+600+660+720^04:00+780+840+900+960^08:00+1020+1080+1140+1200^12:00+1260+1320+1380~58:212~118:211~178:212~238:212~298:213~358:211~418:209~478:209~538:209~598:208~658:202~718:201~778:199~838:198~898:197~958:196~1018:198~1078:200~1138:201~1198:203~1258:208~1318:209~1378:208~1438:209

                                      im vorderen Teil (rot) wird die X-Achse konstruiert und mit "+" verknüpft. Im Anschluss werden dann die Koordinaten mit der Tilde "~" getrennt als "X:Y" angegeben...

                                      50e923c1-bb54-4599-aeba-047215d8e5f7-image.png

                                      EDIT: Falls das dann alles irgendwann im Node-Red funktioniert, könntest du es der Nachwelt für eine Wiki-Erweiterung zur Verfügung stellen? Bist sicherlich nicht der einzige mit Node-Red... :kissing_closed_eyes:

                                      D Offline
                                      D Offline
                                      DaPeace
                                      schrieb am zuletzt editiert von
                                      #4119

                                      @armilar
                                      Kannst du mir das mit dem LChart etwas genauer erklären? Bei dem folgenden String von dir ist quasi die 0 der Beginn des Charts, 16 wie gehabt die Uhrzeit. Was ist dann die +60+120+180+240? Die Position in X?
                                      Und wie ist das mit der Y-Achse? Was ist das z.B. als erster Wert für die Konstruktion "~58:212~"?

                                      0^16:00+60+120+180+240^20:00+300+360+420+480^00:00+540+600+660+720^04:00+780+840+900+960^08:00+1020+1080+1140+1200^12:00+1260+1320+1380~58:212~118:211~178:212~238:212~298:213~358:211~418:209~478:209~538:209~598:208~658:202~718:201~778:199~838:198~898:197~958:196~1018:198~1078:200~1138:201~1198:203~1258:208~1318:209~1378:208~1438:209
                                      
                                      T ArmilarA 2 Antworten Letzte Antwort
                                      0
                                      • D DaPeace

                                        @armilar
                                        Kannst du mir das mit dem LChart etwas genauer erklären? Bei dem folgenden String von dir ist quasi die 0 der Beginn des Charts, 16 wie gehabt die Uhrzeit. Was ist dann die +60+120+180+240? Die Position in X?
                                        Und wie ist das mit der Y-Achse? Was ist das z.B. als erster Wert für die Konstruktion "~58:212~"?

                                        0^16:00+60+120+180+240^20:00+300+360+420+480^00:00+540+600+660+720^04:00+780+840+900+960^08:00+1020+1080+1140+1200^12:00+1260+1320+1380~58:212~118:211~178:212~238:212~298:213~358:211~418:209~478:209~538:209~598:208~658:202~718:201~778:199~838:198~898:197~958:196~1018:198~1078:200~1138:201~1198:203~1258:208~1318:209~1378:208~1438:209
                                        
                                        T Offline
                                        T Offline
                                        TT-Tom
                                        schrieb am zuletzt editiert von
                                        #4120

                                        @dapeace

                                        Das ist x:y , also die Koordinaten im Chart

                                        Link Text

                                        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
                                        • D DaPeace

                                          @armilar
                                          Kannst du mir das mit dem LChart etwas genauer erklären? Bei dem folgenden String von dir ist quasi die 0 der Beginn des Charts, 16 wie gehabt die Uhrzeit. Was ist dann die +60+120+180+240? Die Position in X?
                                          Und wie ist das mit der Y-Achse? Was ist das z.B. als erster Wert für die Konstruktion "~58:212~"?

                                          0^16:00+60+120+180+240^20:00+300+360+420+480^00:00+540+600+660+720^04:00+780+840+900+960^08:00+1020+1080+1140+1200^12:00+1260+1320+1380~58:212~118:211~178:212~238:212~298:213~358:211~418:209~478:209~538:209~598:208~658:202~718:201~778:199~838:198~898:197~958:196~1018:198~1078:200~1138:201~1198:203~1258:208~1318:209~1378:208~1438:209
                                          
                                          ArmilarA Offline
                                          ArmilarA Offline
                                          Armilar
                                          Most Active Forum Testing
                                          schrieb am zuletzt editiert von Armilar
                                          #4121

                                          @dapeace sagte in SONOFF NSPanel mit Lovelace UI:

                                          Ah okay, die cardLChart

                                          0^16:00+60+120+180+240^20:00+300+360+420+480^00:00+540+600+660+720^04:00+780+840+900+960^08:00+1020+1080+1140+1200^12:00+1260+1320+1380~58:212~118:211~178:212~238:212~298:213~358:211~418:209~478:209~538:209~598:208~658:202~718:201~778:199~838:198~898:197~958:196~1018:198~1078:200~1138:201~1198:203~1258:208~1318:209~1378:208~1438:209
                                          

                                          Kurz zerlegt:

                                          In diesem Teil wird die X-Achse konstruiert ("+" getrennt):

                                          0^16:00+60+120+180+240^20:00+300+360+420+480^00:00+540+600+660+720^04:00+780+840+900+960^08:00+1020+1080+1140+1200^12:00+1260+1320+1380
                                          

                                          fängt bei 0 an und geht in diesem Beispiel in 60er Schritten bis 1380 (wäre der letzte Strich an der X-Achse). Alle 240 wird dort eine Uhrzeit an die X-Achse gesetzt.
                                          Die max. X-Position "in diesem Beispiel" wäre also 24h x 60 Min = max_x = 1440

                                          Du kannst natürlich auch eine andere Basis abbilden (Woche, Monat, What ever)

                                          wie hier:
                                          bei 0 die ^16:00
                                          bei 240 die ^20:00
                                          bei 480 die ^0:00
                                          etc.

                                          Im Anschluss kommen die Koordinaten des Graphen (wie @TT-Tom schon korrekt geschrieben hat --> X:Y - Koordinaten).

                                          ~58:212~118:211~178:212~238:212~298:213~358:211~418:209~478:209~538:209~598:208~658:202~718:201~778:199~838:198~898:197~958:196~1018:198~1078:200~1138:201~1198:203~1258:208~1318:209~1378:208~1438:209
                                          

                                          Erste Koordinate
                                          ~58:212

                                          X=58 (könntest also auch 58 Minute der letzten 24 Stunden sagen)
                                          Y=212 = z.B. 21,2°C

                                          EDIT: Habe gestern für die HA's erst eine Anleitung gebastelt (am Ende):
                                          https://github.com/joBr99/nspanel-lovelace-ui/issues/794

                                          Mein Hotel (Bin mal wieder unterwegs) hat Github geblockt :confounded:

                                          EDIT: Im Zweifel einfach unsere JavaScripte aus der Wiki nutzen

                                          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
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          951

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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