Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. SONOFF NSPanel mit Lovelace UI

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    SONOFF NSPanel mit Lovelace UI

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      ticaki Developer @Max_yeah last edited by ticaki

      @max_yeah
      Ja stimmt ist die Startseite, übersehen 😊

      Edit: also nach einem tasmota reboot wird die angezeigt, aber anschließend nur noch auf befehl

      1 Reply Last reply Reply Quote 0
      • M
        Max_yeah last edited by Max_yeah

        @ticaki
        ah guter Punkt, hatte gestern schon den Javascript Adapter neu gestartet, weil ich npm module hinzugefügt hab für WOL (node-wol, wake_on_lan).

        Ein Neustart des js Adpaters hat es gefixt, danke. Dann hat es wohl echt nichts mit der Firmware zu tun, weil oft starte ich den ja nicht neu.

        Kann es damit zu tun haben, in welcher Reihenfolge die Scripte gestartet werden? Könnte es sein das ein Hilfscript, das vielleicht vor dem eigentlichen Panel Script startet, da was blockiert?

        Wie definiert sich die Reihenfolge, in der die Scripte gestartet werden?

        T 1 Reply Last reply Reply Quote 0
        • T
          ticaki Developer @Max_yeah last edited by ticaki

          @max_yeah

          Ne doppelt laufende Skripte kommen, ohne ins Detail zu gehen, dann vor wenn man aufwändige Skripte im startup neustartet. Kann das gerne heute Abend weniger nebulöse beschreiben, hat was mit callbacks zu tun. Das mache ich aber net am Handy 😊

          1 Reply Last reply Reply Quote 1
          • T
            ticaki Developer last edited by ticaki

            Die etwas längere Version:

            Im groben dürfte es stimmen, im Detail mag ich falsche Annahmen habe - am ende machts aber keinen großen unterschied.

            Der Javascript Adapter verwirft beim beenden eines Skriptes alle registierten Trigger (intervalle, timeouts, abonnierte States, schedules usw.). Wenn das Skript eine Anfrage, die asychron externen code ausführt, aufruft, bekommt dieser code einen callback mit - der iobroker beendet das skript, der callback kommt zurück und das skript macht lustig weiter. Registriert vielleicht neue Datenpunkt und du hast 2 Versionen laufen - daher abschalten 10 Sekunden warten und wieder einschalten.

            Ich hab mal nicht aufgepasst und 5 websockets zur gleichen Quelle aufgebaut und mich über die unzähligen Logmeldungen gewundert 🙂 Ja was man erstellt muß man auch beenden 🙂

            M 1 Reply Last reply Reply Quote 1
            • T
              TT-Tom @Max_yeah last edited by

              @max_yeah sagte in SONOFF NSPanel mit Lovelace UI:

              Meine Frage dazu ist, wie stelle ich die Updatebenachrichtigung ab?

              in der Serviceseite unter Infos kannst du die Meldungen abschalten.

              1 Reply Last reply Reply Quote 1
              • T
                TT-Tom @Max_yeah last edited by

                @max_yeah
                ich habe nochmal nachgesehen, Anzahl der Striche an der X-Achse.

                1 Reply Last reply Reply Quote 1
                • M
                  Max_yeah @ticaki last edited by

                  @ticaki OK ja das macht Sin, danke für den tipp mit dem warten.

                  Callbacks ist eine gute überleitung zu meiner nächsten Frage.

                  Wann werden die cron jobs für das dimmen der pannels definiert?

                  Hintergrund ist folgender:
                  Ich habe ein Panel in unser Schlafzimmer installiert.
                  Jetzt gibt es ja den Dimmode für Helligkeit des Displays am Tag und Nacht, super Sache.
                  Damit es nachts dunkel ist im Schlafzimmer wird die brightness auf 0 runter geregelt. Und früh Früh dann zu den einstellten Zeiten wieder hoch.
                  Jedoch ist die HourDay meiner Frau am Wochenende zu früh.
                  Heist ich brauche fürs Wochenende andere Dimm Zeiten.
                  Dafür habe ich ein script geschrieben, das früh prüft welcher Tag gerade ist und demnach die Zeiten für wochentags oder fürs Wochenende in die entsprechenden Datenpunkte schreibt.

                  Jetzt kommen wir zum eigentlichen problem. An den Übergangstagen Samstag und Montag, sind zwar die richtigen Zeiten in die Datenpunkte geladen, jedoch schaltet das Display noch zu den Alten Zeiten um. Als würde noch der Timer/Trigger laufen.

                  Drum stellt sich die frage,

                  • wird der Trigger bei jedem schreiben der Dimmode datenpunkte neu erstellt,

                  • oder wird das nur einmal pro Tag gemacht, wenn ja, wann?

                  Hier mein script (entschuldigt die Formatierung, ist eigentlich ein Blockly):

                  schedule('{"time":{"exactTime":true,"start":"00:05"},"period":{"days":1},"valid":{"from":"16.02.2025","to":""}}', async () => {
                    if (String(formatDate(new Date(), 'WW', 'de')).includes('Samstag') || String(formatDate(new Date(), 'WW', 'de')).includes('Sonntag')) 
                    {
                      setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourDay.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Morgens.ACTUAL').val);
                      setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourNight.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Abends.ACTUAL').val);
                    } 
                    else 
                    {
                      setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourDay.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Morgens.ACTUAL').val);
                      setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourNight.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Abends.ACTUAL').val);
                    }
                  });
                  on({ id: [].concat(['alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Abends.ACTUAL']).concat(['alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Morgens.ACTUAL']).concat(['alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Abends.ACTUAL']).concat(['alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Morgens.ACTUAL']), change: 'ne' }, async (obj) => {
                    if (String(formatDate(new Date(), 'WW', 'de')).includes('Samstag') || String(formatDate(new Date(), 'WW', 'de')).includes('Sonntag')) 
                    {
                      setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourDay.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Morgens.ACTUAL').val);
                      setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourNight.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Abends.ACTUAL').val);
                    } 
                  else {
                      setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourDay.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Morgens.ACTUAL').val);
                      setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourNight.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Abends.ACTUAL').val);
                    }
                  });
                  
                  1 Reply Last reply Reply Quote 0
                  • M
                    Max_yeah last edited by Max_yeah

                    Doppelpost

                    1 Reply Last reply Reply Quote 0
                    • M
                      Max_yeah last edited by

                      Panel dreht sich wieder....
                      Log zeigt durchgehend diese zwei Meldungen

                      
                      javascript.0
                      2025-02-25 08:01:39.518	info	script.js.NSPanels.Eingang.Panel_Eingang: Installed TFT Firmware: 54 / v4.5.0
                      
                      javascript.0
                      2025-02-25 08:01:39.518	info	script.js.NSPanels.Eingang.Panel_Eingang: Desired TFT Firmware: 54 / v4.5.0
                      
                      javascript.0
                      2025-02-25 08:01:33.526	info	script.js.NSPanels.Eingang.Panel_Eingang: Installed TFT Firmware: 54 / v4.5.0
                      
                      javascript.0
                      2025-02-25 08:01:33.526	info	script.js.NSPanels.Eingang.Panel_Eingang: Desired TFT Firmware: 54 / v4.5.0
                      
                      javascript.0
                      2025-02-25 08:01:27.690	info	script.js.NSPanels.Eingang.Panel_Eingang: Installed TFT Firmware: 54 / v4.5.0
                      
                      javascript.0
                      2025-02-25 08:01:27.690	info	script.js.NSPanels.Eingang.Panel_Eingang: Desired TFT Firmware: 54 / v4.5.0
                      
                      javascript.0
                      2025-02-25 08:01:21.758	info	script.js.NSPanels.Eingang.Panel_Eingang: Installed TFT Firmware: 54 / v4.5.0
                      
                      javascript.0
                      2025-02-25 08:01:21.758	info	script.js.NSPanels.Eingang.Panel_Eingang: Desired TFT Firmware: 54 / v4.5.0
                      
                      javascript.0
                      2025-02-25 08:01:15.718	info	script.js.NSPanels.Eingang.Panel_Eingang: Installed TFT Firmware: 54 / v4.5.0
                      
                      javascript.0
                      2025-02-25 08:01:15.718	info	script.js.NSPanels.Eingang.Panel_Eingang: Desired TFT Firmware: 54 / v4.5.0
                      
                      javascript.0
                      2025-02-25 08:01:09.827	info	script.js.NSPanels.Eingang.Panel_Eingang: Installed TFT Firmware: 54 / v4.5.0
                      

                      Ein Neustart des js adapter hat das problem zwar wieder behoben, aber cool ist das nicht.

                      T 1 Reply Last reply Reply Quote 0
                      • T
                        ticaki Developer @Max_yeah last edited by

                        @max_yeah sagte in SONOFF NSPanel mit Lovelace UI:

                        Panel dreht sich wieder....

                        Diese 2 Meldungen bedeuten das das Panel die startuperwiderrung geschickt hat 🙂 und dann nochmal und nochmal und... Da hab ich keine Antwort zu - vielleicht @TT-Tom oder @Armilar

                        🙂

                        T 1 Reply Last reply Reply Quote 0
                        • T
                          TT-Tom @ticaki last edited by

                          @ticaki
                          @Max_yeah
                          Ich vermute mal ein MQTT. Hast du ein externen MQTT Server? Eventuell ist auf dem cmnd ein retain flag gesetzt.

                          1 Reply Last reply Reply Quote 0
                          • M
                            Max_yeah last edited by

                            @tt-tom Der MQTT Broker läuft im IOBroker in einer extra Instanz nur für die Panels mit eigenem Port.

                            1 Reply Last reply Reply Quote 0
                            • P
                              patricknitsch last edited by

                              Hallo @ticaki,

                              ich hab deinen Adapter in der aktuellen Version installiert. Ich komme aber nicht mit dem MQTT Topic klar. Der eindeutige Name sollte kein Thema sein, da mir dieser bei der Anmeldung angezeigt wird, aber ich habe schon alle Topics versucht.

                              Kannst du mir hierzu einen Tipp geben?

                              T 1 Reply Last reply Reply Quote 0
                              • T
                                ticaki Developer @patricknitsch last edited by ticaki

                                @patricknitsch
                                Klar - der Topic ist das hier:
                                Bildschirmfoto 2025-02-26 um 15.03.38.png

                                Unterhalb des Topics sind stat, tele, cmd
                                Bildschirmfoto 2025-02-26 um 14.58.39.png

                                hier wäre der Topic nspanel/ns_panel1

                                Wenn du im Admin den topic und einen namen eingibst und das Gerät aktualisiert - kommt eine MAC-Adresse ins ID Feld. Weiß gerade nicht ob ich was ins log schreibe wenn mqtt nicht geht - werde ich heute abend checken und gegebenenfalls nachtragen.

                                DISCLAIMER

                                Das ist noch frühe Beta - also nicht erwarten das alles so läuft wie es soll.

                                Mit der Skriptkonfiguration gehen sollten: cardGrid`s, cardEntities und cardThermo
                                Dabei schon viele Rollen, nachzusehen in der Readme.

                                **bei weiteren Fragen fragen 😄 **

                                Ach:
                                Der Adapter ist von Armilar, TT-Tom und mir ist mir wichtig 🙂

                                P 1 Reply Last reply Reply Quote 1
                                • P
                                  patricknitsch @ticaki last edited by

                                  @ticaki bin ich ein Schaf.... Ja mit dem richtigen Topic in Tasmota funktioniert es sofort.
                                  Danke für deine Hilfe.

                                  Ja, dass es Beta ist weiß ich, ich bin trotzdem neugierig 😊

                                  Sorry, du hast natürlich recht. Ihr habt alle drei eure Aktien daran und leistet bisher super Arbeit mit euren Verbesserungen 🎉

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    ticaki Developer @patricknitsch last edited by ticaki

                                    @patricknitsch

                                    Da ich nicht genau weiß was alles "freigeschaltet" ist, nur das was ich schon gesehen habe. (ich hab da ne menge eingebaut an das ich mich nicht mal mehr erinnere und selbst überrascht bin 😄 )

                                    1. guck dir mal die Serviceseiten an, da würden mich weitere Meinungen interessieren - die werden automatisch beim übertragen der Skriptkonfiguration eingehangen.
                                    2. du kannst bei allen cardgrid/entities mehr als 4,6,8 items angeben. Dann kann man da blättern
                                    3. Mal einen Blick auf die States werfen, ob was grundsätzliches fehlt

                                    Ist aber noch vieles in den States nicht ordentlich benannt, sondern stehen "tokens" drin.

                                    T 1 Reply Last reply Reply Quote 0
                                    • T
                                      TT-Tom @ticaki last edited by

                                      @ticaki
                                      Vielleicht sollten wir für den Adapter einen Thread im Tester Kanal auf machen, damit wir hier nicht mit dem Script durcheinander kommen.

                                      M 1 Reply Last reply Reply Quote 1
                                      • M
                                        Max_yeah @TT-Tom last edited by

                                        @tt-tom gute Idee, hab noch nicht so viel davon gehört und möchte gerne mehr wissen 👍🏼

                                        1 Reply Last reply Reply Quote 0
                                        • T
                                          ticaki Developer last edited by

                                          Hab mal einen Topic erstellt in dem man fragen kann. 🙂

                                          M 1 Reply Last reply Reply Quote 2
                                          • M
                                            Max_yeah @ticaki last edited by Max_yeah

                                            @ticaki @TT-Tom @Armilar

                                            Hey ihr drei, Sorry falls ich etwas penetrant bin. Ich habe immer noch ein paar fragen offen.

                                            Hat sich was zu dem ID Fehler ergeben?

                                            script.js.NSPanels.Eingang.Panel_Eingang: error at function HandleButtonEvent: Cannot read properties of undefined (reading 'id')
                                            

                                            Ich hatte ja noch mal alles gepostet, ist wohl in den anderen Posts untergegangen. Ich kann auch ein Github issue auch machen falls dann die Kommunikation einfacher ist.

                                            Als Zweiter Punkt Meine frage zu den Dimming Triggern.
                                            Wäre interessant zu wissen wie ich meine logic einsetzten muss damit ich die Zeiten rechtzeitig ändere damit das script sie bei nächsten durchlauf auch erfassen kann.

                                            Hier noch mal der Input dazu:


                                            Hintergrund ist folgender:
                                            Ich habe ein Panel in unser Schlafzimmer installiert.
                                            Jetzt gibt es ja den Dimmode für Helligkeit des Displays am Tag und Nacht, super Sache.
                                            Damit es nachts dunkel ist im Schlafzimmer wird die brightness auf 0 runter geregelt. Und früh Früh dann zu den einstellten Zeiten wieder hoch.
                                            Jedoch ist die HourDay meiner Frau am Wochenende zu früh.
                                            Heist ich brauche fürs Wochenende andere Dimm Zeiten.
                                            Dafür habe ich ein script geschrieben, das früh prüft welcher Tag gerade ist und demnach die Zeiten für wochentags oder fürs Wochenende in die entsprechenden Datenpunkte schreibt.

                                            Jetzt kommen wir zum eigentlichen problem. An den Übergangstagen Samstag und Montag, sind zwar die richtigen Zeiten in die Datenpunkte geladen, jedoch schaltet das Display noch zu den Alten Zeiten um. Als würde noch der Timer/Trigger laufen.

                                            Drum stellt sich die frage,

                                            wird der Trigger bei jedem schreiben der Dimmode datenpunkte neu erstellt,

                                            oder wird das nur einmal pro Tag gemacht, wenn ja, wann?

                                            Hier mein script (entschuldigt die Formatierung, ist eigentlich ein Blockly):

                                            schedule('{"time":{"exactTime":true,"start":"00:05"},"period":{"days":1},"valid":{"from":"16.02.2025","to":""}}', async () => {
                                              if (String(formatDate(new Date(), 'WW', 'de')).includes('Samstag') || String(formatDate(new Date(), 'WW', 'de')).includes('Sonntag')) 
                                              {
                                                setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourDay.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Morgens.ACTUAL').val);
                                                setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourNight.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Abends.ACTUAL').val);
                                              } 
                                              else 
                                              {
                                                setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourDay.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Morgens.ACTUAL').val);
                                                setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourNight.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Abends.ACTUAL').val);
                                              }
                                            });
                                            on({ id: [].concat(['alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Abends.ACTUAL']).concat(['alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Morgens.ACTUAL']).concat(['alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Abends.ACTUAL']).concat(['alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Morgens.ACTUAL']), change: 'ne' }, async (obj) => {
                                              if (String(formatDate(new Date(), 'WW', 'de')).includes('Samstag') || String(formatDate(new Date(), 'WW', 'de')).includes('Sonntag')) 
                                              {
                                                setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourDay.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Morgens.ACTUAL').val);
                                                setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourNight.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Wochenende.Umschaltzeit_Abends.ACTUAL').val);
                                              } 
                                            else {
                                                setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourDay.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Morgens.ACTUAL').val);
                                                setState('alias.0.NSPanel.Schlafzimmer.Dimmode.hourNight.SET' /* SET */, getState('alias.0.NSPanel.AdvancedDimming.Schlafzimmer.Werktags.Umschaltzeit_Abends.ACTUAL').val);
                                              }
                                            });
                                            
                                            

                                            Und zuletzt noch eine Frage zu den Charts:
                                            Ich habe jetzt 3 Charts, 2 Funktionieren gut, sie bewegen sich aber auch nur im Zahlenbereich bis 10 (kW)
                                            Das 3. geht bis 100 (%). Es Zeigt den Füllstand meines Hausspeichers an.

                                            Leider geht das Chart nicht sobald ein Wert die 197 erreicht.
                                            Zählt das schon als groß?


                                            Werte die gehen:

                                            73~76^12:00~90~133~90~75^16:00~60~60~60~60^20:00~60~60~60~60^0:00~60~60~60~60^4:00~60~60~60~75^8:00~21~196
                                            

                                            PXL_20250302_111100488~3.jpg

                                            Werte die nicht gehen:

                                            73~76^12:00~90~133~90~75^16:00~60~60~60~60^20:00~60~60~60~60^0:00~60~60~60~60^4:00~60~60~60~75^8:00~21~197
                                            

                                            PXL_20250302_111140345.jpg

                                            Hier die Page Config:

                                            let CardChartSpeicher: PageType =
                                            {
                                                "type": "cardChart",
                                                "heading": "Speicher",
                                                'subPage': true,
                                                'parent': Charts,
                                                'home': 'Charts',
                                                "items": [{ 
                                                            id: 'alias.0.NSPanel.Diagramme.DiagrammSpeicherPV', 
                                                            yAxis: 'Speicher [%]', 
                                                            yAxisTicks: [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000], // leave empty for automatic calculation of the y-axis
                                                            onColor: Green
                                                         }]
                                            };
                                            

                                            Experimente mit den yAxisTicks haben keine Veränderung gezeigt.

                                            Auffällig ist aber das auch die y-Skala die 20% Marke nicht anzeigt

                                            Armilar 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            827
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            lovelace ui nspanel sonoff
                                            263
                                            7240
                                            4966898
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo