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.
    • theknut
      theknut last edited by theknut

      Ich versuche gerade vergeblich meine eigene Navigation aufzubauen. Leider kann ich nicht nachvollziehen wie die zustande kommt.
      Wie komme ich denn auf die Id für die Page, zu der navigiert werden soll?

      let NSPanel_Service_SubPage = <PageEntities>
      {
          ...
          'items': [
              <PageItem>{ navigate: true, id: 'NSPanel_Infos', icon: 'information-outline', offColor: Menu, onColor: Menu, name: findLocaleServMenu('infos'), buttonText: findLocaleServMenu('more')},
              ...
          ]
      };
      

      Die hier vergebene Id NSPanel_Infos kommt sonst nirgendwo mehr im ganzen Skript vor, außer als Variablenname, aber das kann es ja eigentlich auch nicht sein.

      Mit dem Variablennamen hatte ich es auch probiert, aber hatte auch keinen Erfolg. Am Ende wird nur der Reboot Button angezeigt.

      let wohnzimmerLicht = <PageGrid> 
      {
          'type': 'cardGrid',
          'heading': 'Licht',
          'useColor': true,
          'subPage': true,
          'parent': menuPage,
          'items': [
              ...
          ]
      };
      ...
      menuPage.items = [
              <PageItem>{ navigate: true, id: 'wohnzimmerLicht', icon: 'information-outline'},
              <PageItem>{ id: AliasPath + 'Config.rebootNSPanel', name: findLocaleServMenu('reboot') ,icon: 'refresh', offColor: MSRed, onColor: MSGreen, buttonText: findLocaleServMenu('start')}
          ];
      ...
      export const config = <Config> {
      
          // Seiteneinteilung / Page division
          // Hauptseiten / Mainpages
          pages: [
              menuPage,
              NSPanel_Service         	//Auto-Alias Service Page
      	    //Unlock_Service            //Auto-Alias Service Page (Service Pages used with cardUnlock)
          ],
      
          // Unterseiten / Subpages
          subPages: [
      	wohnzimmerLicht,
              wohnzimmerRollo,
              solarPage,
              spotifyPremium,
              wlanPage,
              technikraum,
                      NSPanel_Service_SubPage, 
      

      Dann erhalte ich dieses Warning

      script.js.NSPanel.Dev.Dev: Found Alias without channel: wohnzimmerLicht! Please correct the Alias
      
      T 1 Reply Last reply Reply Quote 0
      • T
        TT-Tom @theknut last edited by TT-Tom

        @theknut der Eintrag kommt zusätzlich in die servicepage nspanel_info

        Jetzt habe ich es erst erkannt. Dein Menu Aufbau ist komplett falsch. Siehe dir die Servicestellen an. Hast du eine Mainpage. Der Rest sind SubPage.

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

          @tt-tom also ich muss blind sein. Ich finde im ganzen Skript (bis auf die parent-Verweise) keine weitere Id NSPanel_Infos

          b5185ef8-255f-4bfd-b18f-b14eff647382-image.png

          Die Service Page sagt sie will zu NSPanel_Infos navigieren, aber keine weitere Page oder PageItem hat diese Id vergeben bekommen. Und wenn es über den Variablennamen geht, warum geht das dann bei mir nicht? (siehe Code oben)

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

            @tt-tom ok dann hab ich das falsch verstanden. Aber gut, alle Daten sind ja ohnehin in iobroker vorhanden. Dann muss ich dafür noch ein mini Blockly schreiben. Wenn IstTemp < SollTemp dann relais=true und andersrum. Dann sollte es das gewesen sein.
            7936d6ed-f2ca-43c8-9174-2c8c6f2315b4-image.png

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

              @theknut bei navigate :true gibt targetPage: die Page an, also NSPanel_Infos.

              ‹PageItem>‹ navigate: true, id: null, targetPage: 'Erdgeschoss', name: 'Haus'}
              

              Es geht auch über id:

              menuPage.items = [
                      <PageItem>{ navigate: true, id: 'wohnzimmerLicht', icon: 'information-outline'},
                      <PageItem>{ id: AliasPath + 'Config.rebootNSPanel', name: findLocaleServMenu('reboot') ,icon: 'refresh', offColor: MSRed, onColor: MSGreen, buttonText: findLocaleServMenu('start')}
                  ];
              

              der Teil der Page config ist falsch.
              Seitenpage fängt immer mit

              let name = <PageType>
              {
                  'type': 'cardType',
                  'heading': 'Seiten Überschrift',
                  'useColor': true,
                  'items': []
              };  
              

              hier kannst du noch mehr lesen

              hier ein Link zur Navigation

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

                @eierfeile

                es gibt da den PID Adapter, der einen Regler darstellt. Kann dir dazu aber kein Support geben.
                Oder wie du schon angemerkt hast, mit einem kleinen Script die Relais selber steuern.

                D 1 Reply Last reply Reply Quote 1
                • D
                  docf last edited by

                  @tt-tom
                  Hi ich versuche gerade den Countdown Timer auf die Reihe zu bekommen.
                  Leider habe ich da ein Problem.

                  Ich habe gesehen, dass in den Aliasen zwei Ordner erstellt wurden.
                  Countdown und Coutown?

                  Im Skript wird auf diesen Ordner verwiesen.

                    setObject(dp_alias + '.Coundown', { type: 'channel', common: { role: 'level.timer', name: 'Countdown' }, native: {} });
                  
                  

                  Ich habe den PageItem dann dahingehend angepasst und kann nun meinen Countdown Test sehen.

                         <PageItem>{ id: "alias.0.NSPanel.Countown" , name: "ContdownTimer" , interpolateColor:true },
                  

                  Ich kann die Zeit einstellen jedoch funktioniert der Countdown nicht.

                  Mache ich da etwas falsch oder muss ich da noch etwas ändern?
                  Danke dir

                  vg

                  Armilar 1 Reply Last reply Reply Quote 0
                  • D
                    docf @TT-Tom last edited by

                    @tt-tom
                    Ich habs jetzt hinbekommen ; )
                    Nicht elegant aber es funktioniert.

                    Beim erstellten Alias Countown habe ich die Objekte State und Actual angelegt und gepasst
                    lediglich im Journal bekomme ich noch eine Warnung.

                    16.12.2023, 10:44:58.978	[warn ]: javascript.0 (3804)     at script.js.common.Countdown4NsPanel:65:29
                    16.12.2023, 10:44:58.978	[warn ]: javascript.0 (3804)     at step (script.js.common.Countdown4NsPanel:33:23)
                    16.12.2023, 10:44:58.978	[warn ]: javascript.0 (3804)     at Object.next (script.js.common.Countdown4NsPanel:14:53)
                    16.12.2023, 10:44:58.979	[warn ]: javascript.0 (3804)     at script.js.common.Countdown4NsPanel:8:71
                    16.12.2023, 10:44:58.979	[warn ]: javascript.0 (3804)     at __awaiter (script.js.common.Countdown4NsPanel:4:12)
                    16.12.2023, 10:44:58.979	[warn ]: javascript.0 (3804)     at Object.<anonymous> (script.js.common.Countdown4NsPanel:55:69)
                    
                    1 Reply Last reply Reply Quote 0
                    • Armilar
                      Armilar Most Active Forum Testing @docf last edited by Armilar

                      @docf

                      Sorry - mein Fehler - das externe Countdown-Script war durchgängig mit "Countown" (copy/paste) angelegt. Habe daraus dann "Countdown" gemacht (on the fly) und tatsächlich eine Stelle vergessen...

                      aus

                      setObject(dp_alias + '.Countown', { type: 'channel', common: { role: 'level.timer', name: 'Countdown' }, native: {} });
                      

                      muss

                      setObject(dp_alias + '.Countdown', { type: 'channel', common: { role: 'level.timer', name: 'Countdown' }, native: {} });
                      

                      werden.

                      Lösche mal den Alias und lasse es so erneut anlegen.

                      Habe das Countdown-Script auf github ebenfalls angepasst

                      1 Reply Last reply Reply Quote 1
                      • X
                        xelarep last edited by

                        Hallo zusammen,

                        ich hoffe ich hab das nicht irgendwo übersehen/überlesen: wie unterdrücke ich denn die Update Anzeige von Tasmota?
                        Eigentlich(tm) sind AutoUpdates deaktiviert. Seit ein paar Tagen poppt aber gefühlt täglich die Aufforderung Tasmota FW Update 13.2.0 auf 13.3.0 hoch, was ich bisher auf meinen beiden Geräten dann immer für einen Tag mit "NEIN" unterdrückt bekomme...

                        Alexander

                        1 Reply Last reply Reply Quote 0
                        • Armilar
                          Armilar Most Active Forum Testing last edited by Armilar

                          @xelarep

                          nur mit dem Fix aus der 4.3.3.22

                          siehe Post von gestern:
                          https://forum.iobroker.net/post/1095383

                          Das hat mit Auto-Updates nichts zu tun. Die werden, wenn eingeschaltet ohne Popup durchgeführt.

                          Wenn das Popup ausgeschaltet werden soll, dann nur mit der 4.3.3.22

                          X 1 Reply Last reply Reply Quote 2
                          • X
                            xelarep @Armilar last edited by

                            @armilar ups, nicht weit genug geblättert. Lese nicht so regelmässig mit... Danke!

                            Armilar 1 Reply Last reply Reply Quote 1
                            • Armilar
                              Armilar Most Active Forum Testing @xelarep last edited by Armilar

                              Übrigens schaut gerne mal im Nachbar-Thread unter:
                              https://forum.iobroker.net/post/1075497
                              von @Kuckuckmann vorbei

                              Soll eigentlich eine Sammlung von Beispielen werden, was sich alles mit dem NSPanel machen lässt und kann für den einen oder anderen auch Mal als Anregung dienen...

                              Würde mich freuen, wenn mal jemand ein Bildchen (geht ja auch ein Foto und muss nicht mit dem Emulator sein) von einer interessant gestalteten Card hinterlässt.

                              VG
                              Armilar 😊

                              1 Reply Last reply Reply Quote 2
                              • Armilar
                                Armilar Most Active Forum Testing last edited by

                                Update v4.3.3.23

                                bb1e417a-5ad9-490a-aa45-2f89a80fabd0-image.png

                                7a9a2b19-7fb2-4d82-a831-957426345884-Nextion_Editor_uzGTP8LMhY.gif

                                Mit diesem Update wird die Steuerung der Jalousien-Icons optimiert

                                PageItem-Beispiel an einem Fyrtur-Rollo über den Deconz-Adapter:

                                <PageItem>{ 
                                            id: 'alias.0.Haus.Erdgeschoss.Buero.Aktoren.Fyrtur', 
                                            minValueLevel: 1,       /* Minimale Position beim hochfahren */
                                            maxValueLevel: 79,      /* Maximale Position beim runterfahren */
                                            icon: "blinds-horizontal", 
                                            offColor: HMIOff, 
                                            onColor: HMIOn, 
                                            name: 'IKEA Fyrtur' , 
                                            secondRow: 'Büro Fenster'  /* Zusätzliche Zeile im Popup */ 
                                          },
                                

                                Für die Steuerung werden in diesem Beispiel übrigens lediglich zwei Original-Datenpunkte benutzt (keine Steuerung über externe Skripte und ganz ohne Datenpunkte in 0_userdata). Desweiteren wird in diesem Beispiel die minimale Position des Rollos mit 1% und die maximale Position des Rollos auf 79% definiert:

                                • deconz.0.Lights.27.lift
                                • deconz.0.Lights.27.stop (sollte vorher mindestens einmal auf "true" oder "false" gesetzt werden, da der Datenpunkt default mit null durch den Adapter initialisiert wird)

                                dfeab31c-89de-4829-8ec2-e5b8dd1c9166-image.png

                                Der Alias .OPEN bekommt zusätzlich noch eine Konvertierung für die minimale Position:
                                500751ec-5d63-4da3-9752-d41b57440979-image.png

                                Der Alias .CLOSE bekommt zusätzlich noch eine Konvertierung für die maximale Position:
                                3b8ed7f1-8e9f-4f32-bf84-4054e424c40a-image.png

                                Wie kann ich das Update durchführen?

                                Wenn aktuelle Version ab v4.3.3.10, dann unteren Teil des NSPanelTs.ts ab:
                                f2ca4f3b-1f5c-4312-b3c3-47d90c6a6410-image.png austauschen

                                https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts

                                Wenn aktuelle Version bis v4.3.3.9, dann Updateaneitung befolgen:
                                https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Starthilfe-FAQ#hilfe-bei-update--upgrade

                                VG
                                @TT-Tom & Armilar 😊

                                M 1 Reply Last reply Reply Quote 1
                                • M
                                  murki @Armilar last edited by

                                  Ich habe mein NSPAnbel mit iobroker/Lovelace soweit am Laufen und vieles sieht auch schon so aus, wie ich mir das vorstelle.
                                  Allerdings stehe ich etwas auf dem Schlauch, wie ich über den Aliasmanager und einem CardGrid einen "Szenenwähler" implementiere.
                                  Ich habe einen netshenden Datenpunkt mit den Werten 1 bis 6 die für jeweils eine Szene (z.B. aus, Kino, nur Licht, Party, etc.) stehen. Ich will das jetzt als einfaches Grid zum Auswählen auf dem NSPanel haben, wobei das Icon der aktiven Szene natürlich eine andere Farbe haben soll.

                                  ich habe jetzt versucht, sechs Aliase als Sockets anzulegen und bei "ACTUAL" den entsprechenden Datenpunkt und als Funktion (val==2) und entsprechend bei "SET" val=2 - allerdings setzt / liest er da nichts?!

                                  Vielleicht kann mich jemand mal in die richtige Richtung schubsen, wie man sowas umsetzen könnte, oder hat sogar ein Beispiel.

                                  BTW. @admin Dieser Thread sollte eigentlich ein eigenes Unterforum sein; so ist das Ganze recht unübersichtlich.

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

                                    @murki

                                    mit welcher Version arbeitest du?

                                    zeig doch mal was du schon gemacht hast. Von den Datenpunkten die Objektdaten, aus dem Script, die Pageconfig der Seite.

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

                                      Aktuell verwende ich noch V4.3.1.5 bei der letzten V4.3.3.9 bekomme ich beim Kompilieren diverse "Error: Cannot find module 'dayjs/locale/xx-xx'" Fehler.

                                      Die Seite ist so definiert:

                                      let NSPanel_Main = <PageGrid2>
                                      {
                                          'type': 'cardGrid2',
                                          'heading': 'Szene',
                                          'useColor': true,
                                          'items': [
                                              <PageItem>{ id: 'alias.0.KG-Kino.Mode.Off', name: 'Aus' ,icon: 'lightbulb-off-outline', onColor: MSRed, offColor:MSYellow },
                                              <PageItem>{ id: 'alias.0.KG-Kino.Mode.Light', name: 'Licht' ,icon: 'lightbulb-on-outline', onColor: MSRed, offColor:MSYellow },
                                              <PageItem>{ id: 'alias.0.KG-Kino.Mode.PC', name: 'PC' ,icon: 'microsoft-windows', onColor: MSRed, offColor:MSYellow },
                                              <PageItem>{ id: 'alias.0.KG-Kino.Mode.Cinema', name: 'Kino' ,icon: 'blinds', onColor: MSRed, offColor:MSYellow },
                                              <PageItem>{ id: 'alias.0.KG-Kino.Mode.Wii', name: 'Wii' ,icon: 'nintendo-wii', onColor: MSRed, offColor:MSYellow },
                                              <PageItem>{ id: 'alias.0.KG-Kino.Mode.Party', name: 'Party' ,icon: 'party-popper', onColor: MSRed, offColor:MSYellow },
                                          ]
                                      };
                                      

                                      Die Aliase sind wie folgt eingerichtet:

                                      alias.png

                                      Merkwürdig ist auch, dass er meckert, wenn ON_SET nicht existiert, obwohl hier steht, das für Socket eigentlich nur SET und ACTUAL relevant sind.
                                      Jedenfalls wird 0_userdata.0.Kinomode.val niemals gesetzt.

                                      Vermutlich ist mein Hauptproblem, dass ich den Alias-Manager noch nicht richtig verstanden habe...

                                      Armilar 1 Reply Last reply Reply Quote 0
                                      • Armilar
                                        Armilar Most Active Forum Testing @murki last edited by Armilar

                                        @murki

                                        ja - deshalb nutze ich auch den Gerätemanager...

                                        a1cc8217-4659-4a25-9b79-6c1aabd35ed5-image.png

                                        Der hat nur SET und ACTUAL und würde anschließend auch funktionieren...

                                        Du benötigst aber dann noch ein Script, welches die restlichen Schalter ausschaltet.

                                        04630222-4e81-4866-af51-46ab89fbfccd-Nextion_Editor_uqcnU7hgNo.gif

                                        könnte so aussehen

                                        Aktuell verwende ich noch V4.3.1.5 bei der letzten V4.3.3.9 bekomme ich beim Kompilieren diverse "Error: Cannot find module 'dayjs/locale/xx-xx'" Fehler.

                                        die letzte ist die v4.3.3.23 und die Beschreibung für einen Wechsel unter v4.3.3.10 steht immer unter den Versionsankündigungen

                                        EDIT:
                                        Das eigentliche Problem ist, das eigentlich ein Trigger auf die Schalter nie enden würde. Es sei denn, die sind komplett voneinander entkoppelt.

                                        Also schreibe ich über den Alias einen separaten Datenpunkt (Triggerpunkt) an, der dann numerisch 1-6 auswertet.

                                        71b2e73b-e329-48e5-b751-d115eea14282-image.png

                                        ein kleines Blockly setzt dann die Zustände entsprechend und könnte im weiteren Verlauf auch die Szenen steuern
                                        8b020c56-0062-4337-a30b-8d1e99704f5d-image.png

                                        f9840c5c-7caa-47a8-98b6-24f5efdcd534-image.png

                                        Unter Objekte habe ich den Alias so verändert, dass er unterschiedliche Datenpunkte bedient
                                        827a4bae-9839-4fcd-ac72-559c126cbdf7-image.png

                                        Also Schreiben (number) von 1-6 in den Szenentrigger und lesend (boolean) über Szene_1 - Szene_6

                                        EDIT2: Evtl. gibt es ja auch noch andere Ansätze?

                                        EDIT3: Dürfte mit deinen Datenpunkten dann so aussehen:
                                        f549ce30-d041-49b3-9315-934c1a0ddda6-Nextion_Editor_UrMZWUpXWg.gif

                                        M 1 Reply Last reply Reply Quote 2
                                        • M
                                          murki @Armilar last edited by

                                          Hi,

                                          ich habe oben was falsches geschrieben, ich habe die letzte, also 4.3.3.23 probiert, aber schon bei Schritt 5 der Updateanleitung kommt besagter Fehler.

                                          Ich werde nochmal versuchen, über den Gerätemanager zu gehen, vielleicht komme ich damit weiter. Dass ich beim Setzen eines bools die anderen dann deaktivieren muss, ist mir im Prinzip klar, ich hatte gehofft das über einen int umgehen zu können. Das wäre von der Programmlogik sinnvoller, es darf / kann ja nie zwei aktive Szenenen zur gleichen zeit geben undmomentan ist es so in einem Homematic-Skript mit einem Sechsfach-Wandtaster implementiert und ich muss dann wieder schauen, das dieses zwei "Welten" synchron bleiben.

                                          Danke,

                                          murki

                                          M Armilar 2 Replies Last reply Reply Quote 0
                                          • M
                                            murki @murki last edited by

                                            Ich habe die Aliase jetzt nochmal über "Geräte" angelegt und bei "ACTUAL" entsprechend "(val==3)" udn bei "SET" 3 hinterlegt, sodass es mit der Originalvariable direkt auch funktioniert und ich kein zusätzliches Skript benötige. Jetzt habe ich nur noch das Problem, dass die aktive Szene noch die offColor-Farbe hat, obwohl der entsprechende ACTUAL-Datenpunkt korrekt auf true ist.

                                            Bin aber auf jeden fall schon mal viel weiter!

                                            Danke!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            876
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            lovelace ui nspanel sonoff
                                            265
                                            7324
                                            5079954
                                            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