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

      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
                                        • B
                                          Bhenyamin last edited by Bhenyamin

                                          Hello Hello...
                                          Seit langer Zeit betreibe ich zwei Panels im Haus ziemlich zufrieden. Was mir allerdings seit Anbeginn aufgefallen ist und jetzt mal wieder zum (Akzeptanz-) Problem bei meiner Frau führte:
                                          Wenn man nicht exakt auf den Blätterpfeil rechts oben tippt, sondern leicht daneben/darüber bekommt stattdessen der Blätterpfeil nach links einen Aufruf. Ich dachte immer, dass ich da etwas falsch konfiguriert habe, oder ein MQTT-Hänger die Ursache ist. Nun fiel mir aber tatsächlich auf, dass man unbemerkt, anstatt nach rechts, zurück nach links blättert, wenn man blöd drückt. Erwartbar wäre ja, dass die Seite gar nicht wechselt, aber zurück Blättern ist natürlich völlig verwirrend. Interessanterweise gilt das nur für den Pfeil nach rechts, der linke Pfeil blättert entweder, oder es passiert nichts, wenn man leicht darüber trifft... Ist das bei euch auch der Fall? (Hoffe, ich konnte das begreiflich machen)

                                          YouCut_20250303_072034106.mp4

                                          Beste Grüße

                                          T Armilar M 3 Replies Last reply Reply Quote 0
                                          • T
                                            ticaki Developer @Bhenyamin last edited by

                                            @bhenyamin

                                            TFT Version? @Armilar da müsstest du doch was zu sagen können. 🙂

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            739
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            lovelace ui nspanel sonoff
                                            263
                                            7240
                                            4966863
                                            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