Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. SONOFF NSPanel mit Lovelace UI

NEWS

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

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

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

SONOFF NSPanel mit Lovelace UI

Scheduled Pinned Locked Moved Hardware
lovelace uinspanelsonoff
7.7k Posts 271 Posters 6.7m Views 253 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Basti GeppB Basti Gepp

    Wunderschönen guten Sonntag euch allen,
    da ich Anfangs ja Schwierigkeiten hatte das NS-Panel zum laufen zu bringen, bzw die Kommunikation mit iobroker und den Scripten geht es jetzt und ich fange an mir selber Seiten an zu legen.
    Das funktioniert semi gut, aber das soll hier nicht Thema sein.
    Ich versuche jetzt seit ein paar Stunden mir eine CardMedia für Alexa an zu legen, aber das will nicht funktionieren, ich denke der Fehler liegt hier im Detail, aber ich finde es nicht, oder verstehe hier die Anleitung(en) falsch.

    Aktuell sieht es bei mir so aus:
    Ich habe mir im Alias-Manager einen Alias angelegt:
    9ed0a8d1-4b19-42dc-b980-b1cb53d1f5e8-grafik.png

    Ich habe es auf mehreren Wegen Versucht:

    1. Versuch, Echo ID eingefügt:
    'type': 'cardMedia',
        'heading': 'Alexa',
        'useColor': true,
        'items': [<PageItem>{   
                    id: AliasPath + 'Media.PlayerAlexa', 
                    adapterPlayerInstance: 'alexa2.0.',
                    mediaDevice: 'G2A0XL07033502V7', //mein Echo den ich ansteuern möchte
    
    1. Versuch, Alias eingetragen:
    'type': 'cardMedia',
        'heading': 'Alexa',
        'useColor': true,
        'items': [<PageItem>{   
                    id: AliasPath + 'Media.PlayerAlexa', 
                    adapterPlayerInstance: 'alexa2.0.',
                    mediaDevice: 'alias.0.Wohnzimmer', //Alias statt der DeviceID
    

    Ich habe auch die Page in der Übersicht angelegt, das sollte also eigentlich funktionieren:

    pages: [
    
                NSPanel_Service,         	//Auto-Alias Service Page
                Jalousien,                  //Rolladensteuerung
                Wetterdaten,                //Wetterdaten, allgemein
                Alexa                       //Alexa
        ],
    

    Ich bekomme auch einen Haufen Warnungen, aber ich denke die haben damit nichts zu tun:
    db142c92-4278-4108-bed1-71cde51930af-grafik.png

    Ich denke wie gesagt, der Teufel liegt im Detail und einer von euch schlägt die Hände über dem Kopf zusammen und sagt "ist doch klar...mann oh mann", dann bitte raus damit 🙂

    €dit: die Seite ist auf dem NS-Panel auch nicht vorhanden, nach der Card "Wetterdaten" kommt nichts mehr

    **basti

    ArmilarA Offline
    ArmilarA Offline
    Armilar
    Most Active Forum Testing
    wrote on last edited by
    #2653

    @basti-gepp sagte in SONOFF NSPanel mit Lovelace UI:

    mediaDevice: 'alias.0.Wohnzimmer', //Alias statt der DeviceID

    mediaDevice: 'alias.0.Wohnzimmer', //Alias statt der DeviceID
    

    wird auch nicht funktionieren, da kein Datenpunkt importiert wird, sondern lediglich ein String verwendet wird.

    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 Reply Last reply
    0
    • Basti GeppB Basti Gepp

      Wunderschönen guten Sonntag euch allen,
      da ich Anfangs ja Schwierigkeiten hatte das NS-Panel zum laufen zu bringen, bzw die Kommunikation mit iobroker und den Scripten geht es jetzt und ich fange an mir selber Seiten an zu legen.
      Das funktioniert semi gut, aber das soll hier nicht Thema sein.
      Ich versuche jetzt seit ein paar Stunden mir eine CardMedia für Alexa an zu legen, aber das will nicht funktionieren, ich denke der Fehler liegt hier im Detail, aber ich finde es nicht, oder verstehe hier die Anleitung(en) falsch.

      Aktuell sieht es bei mir so aus:
      Ich habe mir im Alias-Manager einen Alias angelegt:
      9ed0a8d1-4b19-42dc-b980-b1cb53d1f5e8-grafik.png

      Ich habe es auf mehreren Wegen Versucht:

      1. Versuch, Echo ID eingefügt:
      'type': 'cardMedia',
          'heading': 'Alexa',
          'useColor': true,
          'items': [<PageItem>{   
                      id: AliasPath + 'Media.PlayerAlexa', 
                      adapterPlayerInstance: 'alexa2.0.',
                      mediaDevice: 'G2A0XL07033502V7', //mein Echo den ich ansteuern möchte
      
      1. Versuch, Alias eingetragen:
      'type': 'cardMedia',
          'heading': 'Alexa',
          'useColor': true,
          'items': [<PageItem>{   
                      id: AliasPath + 'Media.PlayerAlexa', 
                      adapterPlayerInstance: 'alexa2.0.',
                      mediaDevice: 'alias.0.Wohnzimmer', //Alias statt der DeviceID
      

      Ich habe auch die Page in der Übersicht angelegt, das sollte also eigentlich funktionieren:

      pages: [
      
                  NSPanel_Service,         	//Auto-Alias Service Page
                  Jalousien,                  //Rolladensteuerung
                  Wetterdaten,                //Wetterdaten, allgemein
                  Alexa                       //Alexa
          ],
      

      Ich bekomme auch einen Haufen Warnungen, aber ich denke die haben damit nichts zu tun:
      db142c92-4278-4108-bed1-71cde51930af-grafik.png

      Ich denke wie gesagt, der Teufel liegt im Detail und einer von euch schlägt die Hände über dem Kopf zusammen und sagt "ist doch klar...mann oh mann", dann bitte raus damit 🙂

      €dit: die Seite ist auf dem NS-Panel auch nicht vorhanden, nach der Card "Wetterdaten" kommt nichts mehr

      **basti

      ArmilarA Offline
      ArmilarA Offline
      Armilar
      Most Active Forum Testing
      wrote on last edited by Armilar
      #2654

      @basti-gepp sagte in SONOFF NSPanel mit Lovelace UI:

      Ich bekomme auch einen Haufen Warnungen, aber ich denke die haben damit nichts zu tun:
      643fefca-abec-42b1-abb2-7a38c627e149-image.png

      Nein, das liegt daran, dass mindestens einer der beiden mrIconXScreensaverEntity in der Config falsch konfiguriert ist und kein existierender Datenpunkt verwendet wird.

      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.

      Basti GeppB 1 Reply Last reply
      0
      • ArmilarA Armilar

        @basti-gepp

        Lösche den Media-Alias für Alexa mal, der legt sich von selbst an.

        Seitendefinition Beispiel:

        let Alexa = <PageMedia> 
        {
            'type': 'cardMedia',
            'heading': 'Alexa',
            'useColor': true,
            'items': [<PageItem>{   
                        id: AliasPath + 'Media.PlayerAlexa', 
                        adapterPlayerInstance: 'alexa2.0.',
                        mediaDevice: 'G0XXXXXXXXXXXXXX', 
                        speakerList: ['Überall','Gartenhaus','Esszimmer','Heimkino','Echo Dot Küche','Echo Spot Buero'],
                        //analog alexa2 Music-Provider
                        playList: ['Spotify-Playlist.PartyPlaylist',
                                   'Amazon-Music-Playlist.Mein Discovery Mix',
                                   'My-Library-Playlist.2020',
                                   'My-Library-Playlist.2021',
                                   'TuneIn.Radio Bob Rock',
                                   'TuneIn.NDR2',
                                   'Spotify-Playlist.Sabaton Radio',
                                   'Spotify-Playlist.Rock Party',
                                   'Spotify-Playlist.This Is Nightwish',
                                   'Spotify-Playlist.Metal Christmas'],
                        equalizerList: ['Bassboost','Klassik','Dance', 'Deep', 'Electronic', 'Flat', 'Hip-Hop', 'Rock', 
                                        'Metal', 'Jazz', 'Latin', 'Tonstärke', 'Lounge', 'Piano'],
                        colorMediaIcon: colorAlexa,
                        colorMediaArtist: Yellow,
                        colorMediaTitle: Yellow,
                        autoCreateALias : true
                     }]
        };
        

        Danach einfach die Seite aufrufen (ist beim ersten mal schwarz, da der Alias erzeugt wird). Wenn der Screensaver da war, ist auch die cardMedia zu sehen.

        Basti GeppB Offline
        Basti GeppB Offline
        Basti Gepp
        wrote on last edited by
        #2655

        @armilar vielen dank, wie fast immer saß der Fehler 60cm vor dem Bildschirm.
        Hab ich wohl falsch gelesen, oder falsch verstanden oder wie auch immer.

        Jetzt funktioniert es auf jeden Fall. Ich habe noch viel zu lernen 😄

        **basti

        ArmilarA 1 Reply Last reply
        0
        • Basti GeppB Basti Gepp

          @armilar vielen dank, wie fast immer saß der Fehler 60cm vor dem Bildschirm.
          Hab ich wohl falsch gelesen, oder falsch verstanden oder wie auch immer.

          Jetzt funktioniert es auf jeden Fall. Ich habe noch viel zu lernen 😄

          **basti

          ArmilarA Offline
          ArmilarA Offline
          Armilar
          Most Active Forum Testing
          wrote on last edited by Armilar
          #2656

          @basti-gepp

          Perfekt, ja der Fehler sitzt meistens zwischen einem Schreibtischstuhl und einem Bildschirm 😉

          Den Rest bekommst du auch noch hin. Viel Spaß mit dem Media-Player... 😊

          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 Reply Last reply
          0
          • ArmilarA Armilar

            @basti-gepp sagte in SONOFF NSPanel mit Lovelace UI:

            Ich bekomme auch einen Haufen Warnungen, aber ich denke die haben damit nichts zu tun:
            643fefca-abec-42b1-abb2-7a38c627e149-image.png

            Nein, das liegt daran, dass mindestens einer der beiden mrIconXScreensaverEntity in der Config falsch konfiguriert ist und kein existierender Datenpunkt verwendet wird.

            Basti GeppB Offline
            Basti GeppB Offline
            Basti Gepp
            wrote on last edited by
            #2657

            @armilar mrIconXScreensaverEntity damit sind die zwei "Symbole" oben links/rechts im BIldschirmschoner gemeint oder?
            Wenn ja muss ich mir da noch was überlegen, soviele "Smarte" Geräte habe ich noch garnicht da ich ja noch in der Testphase bin 🙂

            **basti

            ArmilarA 1 Reply Last reply
            0
            • Basti GeppB Basti Gepp

              @armilar mrIconXScreensaverEntity damit sind die zwei "Symbole" oben links/rechts im BIldschirmschoner gemeint oder?
              Wenn ja muss ich mir da noch was überlegen, soviele "Smarte" Geräte habe ich noch garnicht da ich ja noch in der Testphase bin 🙂

              **basti

              ArmilarA Offline
              ArmilarA Offline
              Armilar
              Most Active Forum Testing
              wrote on last edited by Armilar
              #2658

              @basti-gepp

              Das Panel hat ja selbst auch Relay's

              Einfach die verwenden, wenn sonst nichts verwendet werden kann!

                  mrIcon1ScreensaverEntity: 
                      { 
                          ScreensaverEntity: NSPanel_Path + 'Relay.1', 
                          ScreensaverEntityIconOn: 'lightbulb',                           //Rename
                          ScreensaverEntityIconOff: null, 
                          ScreensaverEntityValue: null,                                   //New
                          ScreensaverEntityValueDecimalPlace : 0,                         //New
                          ScreensaverEntityValueUnit: null,                               //New
                          ScreensaverEntityOnColor: On, 
                          ScreensaverEntityOffColor: HMIOff 
                      },
              
                  mrIcon2ScreensaverEntity:
                      { 
                          ScreensaverEntity: NSPanel_Path + 'Relay.2', 
                          ScreensaverEntityIconOn: 'lightbulb',                           //Rename
                          ScreensaverEntityIconOff: null, 
                          ScreensaverEntityValue: null,                                   //New
                          ScreensaverEntityValueDecimalPlace : 0,                         //New
                          ScreensaverEntityValueUnit: null,                               //New
                          ScreensaverEntityOnColor: On, 
                          ScreensaverEntityOffColor: HMIOff 
                      },
              

              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.

              Basti GeppB 1 Reply Last reply
              0
              • J joBr99

                @marc_d0810 said in SONOFF NSPanel mit Lovelace UI:

                hast du mit @joBr99 Kontakt oder meinst du es kommt noch ein Hinweis?

                Bin gerade am Reisen, wenn da 55BB im Log steht, ist schon Lovelace drauf, dann sollte eigentlich auch das flashen ganz normal funktionieren ... Ich würde mal probieren das NSPanel auseinanderzubauen und das Kabel vom Display neu zu stecken, eventuell gibts da nen Kontaktproblem zwischen ESP und Nextion display auf dem TX Kontakt. (Solltest du sonst auch nicht über Waiting for content hinauskommen)

                Ansonsten, könntest du über die Testpunkte auf dem board auch direkt mit dem nextion editor flashen (da muss dann aber rx an rx und tx an tx von deinem serial adapter, da die beschriftung aus sicht des ESP ist)

                M Offline
                M Offline
                marc_d0810
                wrote on last edited by
                #2659

                @jobr99 said in SONOFF NSPanel mit Lovelace UI:

                @marc_d0810 said in SONOFF NSPanel mit Lovelace UI:

                hast du mit @joBr99 Kontakt oder meinst du es kommt noch ein Hinweis?

                Bin gerade am Reisen, wenn da 55BB im Log steht, ist schon Lovelace drauf, dann sollte eigentlich auch das flashen ganz normal funktionieren ... Ich würde mal probieren das NSPanel auseinanderzubauen und das Kabel vom Display neu zu stecken, eventuell gibts da nen Kontaktproblem zwischen ESP und Nextion display auf dem TX Kontakt. (Solltest du sonst auch nicht über Waiting for content hinauskommen)

                Ansonsten, könntest du über die Testpunkte auf dem board auch direkt mit dem nextion editor flashen (da muss dann aber rx an rx und tx an tx von deinem serial adapter, da die beschriftung aus sicht des ESP ist)

                Es ist vollbracht, mit den Testpunkten vom Board konnte ich die aktuellste TFT auf das Display flashen und nun läuft die Sache wieder. 🙂

                Danke nochmal an @joBr99 @TT-Tom und @Armilar für die tolle Unterstützung. 🙂

                1 Reply Last reply
                1
                • ArmilarA Armilar

                  @basti-gepp

                  Das Panel hat ja selbst auch Relay's

                  Einfach die verwenden, wenn sonst nichts verwendet werden kann!

                      mrIcon1ScreensaverEntity: 
                          { 
                              ScreensaverEntity: NSPanel_Path + 'Relay.1', 
                              ScreensaverEntityIconOn: 'lightbulb',                           //Rename
                              ScreensaverEntityIconOff: null, 
                              ScreensaverEntityValue: null,                                   //New
                              ScreensaverEntityValueDecimalPlace : 0,                         //New
                              ScreensaverEntityValueUnit: null,                               //New
                              ScreensaverEntityOnColor: On, 
                              ScreensaverEntityOffColor: HMIOff 
                          },
                  
                      mrIcon2ScreensaverEntity:
                          { 
                              ScreensaverEntity: NSPanel_Path + 'Relay.2', 
                              ScreensaverEntityIconOn: 'lightbulb',                           //Rename
                              ScreensaverEntityIconOff: null, 
                              ScreensaverEntityValue: null,                                   //New
                              ScreensaverEntityValueDecimalPlace : 0,                         //New
                              ScreensaverEntityValueUnit: null,                               //New
                              ScreensaverEntityOnColor: On, 
                              ScreensaverEntityOffColor: HMIOff 
                          },
                  
                  Basti GeppB Offline
                  Basti GeppB Offline
                  Basti Gepp
                  wrote on last edited by Basti Gepp
                  #2660

                  @armilar
                  Also die Warnungen sind "fast" weg, warum auch immer ich musste das +'Relay.1' entfernen, anders wäre die Warnung nicht weggegangen. Ob das so richtig und gewollt ist weiß ich nicht ^^
                  Jeden Falls zeigt er mir den richtigen State des Relais jetzt an (in meinem Fall dient er als ordinärer Lichtschalter)

                  Geblieben ist das hier:
                  d78218d6-1119-4550-a616-8bef83967ae3-image.png
                  Ich denke das hängt mit dem Weather.Forecast zu zusammen.

                  Und noch was fällt mir auf. Ich wollte die Luftfeuchtigkeit außen auf dem Screensaver anzeigen lassen. Als Wert steht hier aber "0°"
                  048b0c86-a4e1-431d-ac05-ef1217fe9fd9-image.png

                  Hier der Codeblock dazu:

                  // bottomScreensaverEntity 4
                              {
                                  ScreensaverEntity: 'accuweather.0.Current.RelativeHumidity',
                                  ScreensaverEntityFactor: 0,
                                  ScreensaverEntityDecimalPlaces: 0,
                                  ScreensaverEntityIconOn: 'opacity',
                                  ScreensaverEntityIconOff: null,
                                  ScreensaverEntityText: 'Feuchte',
                                  ScreensaverEntityUnitText: '%',
                                  ScreensaverEntityIconColor: White
                  

                  Wo sind hier die Fehler zu suchen?

                  Grüße und danke
                  **basti

                  T 1 Reply Last reply
                  0
                  • Basti GeppB Basti Gepp

                    @armilar
                    Also die Warnungen sind "fast" weg, warum auch immer ich musste das +'Relay.1' entfernen, anders wäre die Warnung nicht weggegangen. Ob das so richtig und gewollt ist weiß ich nicht ^^
                    Jeden Falls zeigt er mir den richtigen State des Relais jetzt an (in meinem Fall dient er als ordinärer Lichtschalter)

                    Geblieben ist das hier:
                    d78218d6-1119-4550-a616-8bef83967ae3-image.png
                    Ich denke das hängt mit dem Weather.Forecast zu zusammen.

                    Und noch was fällt mir auf. Ich wollte die Luftfeuchtigkeit außen auf dem Screensaver anzeigen lassen. Als Wert steht hier aber "0°"
                    048b0c86-a4e1-431d-ac05-ef1217fe9fd9-image.png

                    Hier der Codeblock dazu:

                    // bottomScreensaverEntity 4
                                {
                                    ScreensaverEntity: 'accuweather.0.Current.RelativeHumidity',
                                    ScreensaverEntityFactor: 0,
                                    ScreensaverEntityDecimalPlaces: 0,
                                    ScreensaverEntityIconOn: 'opacity',
                                    ScreensaverEntityIconOff: null,
                                    ScreensaverEntityText: 'Feuchte',
                                    ScreensaverEntityUnitText: '%',
                                    ScreensaverEntityIconColor: White
                    

                    Wo sind hier die Fehler zu suchen?

                    Grüße und danke
                    **basti

                    T Offline
                    T Offline
                    TT-Tom
                    wrote on last edited by TT-Tom
                    #2661

                    @basti-gepp
                    Mensch basti Faktor 0. das kleine 1x1 😉 😬

                    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

                    Basti GeppB 1 Reply Last reply
                    1
                    • T Offline
                      T Offline
                      tklein
                      wrote on last edited by
                      #2662

                      Hallo,

                      wie kann ich am besten einen Temperaturslider ähnlich der Lautstärke auf einen View neben zusatzlichen Werten bekommen? Der Tempbereich geht von 10-40 Grad. Ein Thermostatview ist dafür zu "viel".

                      Gruß
                      Thomas

                      T 1 Reply Last reply
                      0
                      • T tklein

                        Hallo,

                        wie kann ich am besten einen Temperaturslider ähnlich der Lautstärke auf einen View neben zusatzlichen Werten bekommen? Der Tempbereich geht von 10-40 Grad. Ein Thermostatview ist dafür zu "viel".

                        Gruß
                        Thomas

                        T Offline
                        T Offline
                        TT-Tom
                        wrote on last edited by
                        #2663

                        @tklein

                        Ein Alias vom Typ Slider würde ich spontan sagen. Benötigt Actual und Set. Schau mal ins Wiki

                        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

                        T 1 Reply Last reply
                        0
                        • T TT-Tom

                          @tklein

                          Ein Alias vom Typ Slider würde ich spontan sagen. Benötigt Actual und Set. Schau mal ins Wiki

                          T Offline
                          T Offline
                          tklein
                          wrote on last edited by
                          #2664

                          @tt-tom thx. oh man, dazu gab es sogar schon beispiele.....

                          1 Reply Last reply
                          1
                          • ArmilarA Armilar

                            @bean

                            Ich würde auch gerne einen String in der untersten Zeile anzeigen lassen, die 10 Zeichen reichen mir auch leicht, aber ich verstehe die Änderungen (markiert mit //gargano) nicht ganz, bzw. hat sich das Originalscript inzwischen verändert, sodass ich die Änderungen nicht ganz nachvollziehen kann.
                            Ob mann diese Möglichkeit vielleicht im Originalscript einbauen könnte?

                            Das Script hat sich an dieser Stelle nicht wirklich verändert. Es ist aber ein "Quick and Dirty" hack mit zwei Fehlern und 2 unschärfen:

                            • Zunächst ist in der Definition oben ein Komma in der 2. Zeile zuviel.
                            • Dann wird nach != null abgefragt. Hier werden Nachkommazahlen berechnet. Das wird dann ohne numerischen Wert auf auf einen toFixed-Fehler laufen, daher wurde die Zeile unkommentiert entfernt. Korrekter wäre, damit andere User auch weiter Freude an ihren Funktionen haben, eine weitere Abfrage einzufügen, ob der Stringwert eine Nummer repräsentiert oder nicht.
                            • In boolschen oder numerischen Datenpunkten braucht keine Value-Auswertung ausgeführt werden

                            Da das Prinzip aber funktioniert, könnte ich eine Änderung einbauen. Könntest du hierzu einen Issue aufmachen?

                            B Offline
                            B Offline
                            bean
                            wrote on last edited by
                            #2665

                            @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                            @bean

                            Ich würde auch gerne einen String in der untersten Zeile anzeigen lassen, die 10 Zeichen reichen mir auch leicht, aber ich verstehe die Änderungen (markiert mit //gargano) nicht ganz, bzw. hat sich das Originalscript inzwischen verändert, sodass ich die Änderungen nicht ganz nachvollziehen kann.
                            Ob mann diese Möglichkeit vielleicht im Originalscript einbauen könnte?

                            Das Script hat sich an dieser Stelle nicht wirklich verändert. Es ist aber ein "Quick and Dirty" hack mit zwei Fehlern und 2 unschärfen:

                            • Zunächst ist in der Definition oben ein Komma in der 2. Zeile zuviel.
                            • Dann wird nach != null abgefragt. Hier werden Nachkommazahlen berechnet. Das wird dann ohne numerischen Wert auf auf einen toFixed-Fehler laufen, daher wurde die Zeile unkommentiert entfernt. Korrekter wäre, damit andere User auch weiter Freude an ihren Funktionen haben, eine weitere Abfrage einzufügen, ob der Stringwert eine Nummer repräsentiert oder nicht.
                            • In boolschen oder numerischen Datenpunkten braucht keine Value-Auswertung ausgeführt werden

                            Da das Prinzip aber funktioniert, könnte ich eine Änderung einbauen. Könntest du hierzu einen Issue aufmachen?

                            Hab jetzt die neue 4.0.5 Version installiert:
                            Wenn die ScreensaverEntityValue für in meinem Fall mrIcon2ScreensaverEntity auf einen String verweist (der mit dem Quick&Dirty-Hack funktioniert hatte), kommt ein Fehler:

                            error at function HandleScreensaverStatusIcons: getState(...).val.toFixed is not a function
                            
                            ArmilarA 1 Reply Last reply
                            0
                            • B bean

                              @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                              @bean

                              Ich würde auch gerne einen String in der untersten Zeile anzeigen lassen, die 10 Zeichen reichen mir auch leicht, aber ich verstehe die Änderungen (markiert mit //gargano) nicht ganz, bzw. hat sich das Originalscript inzwischen verändert, sodass ich die Änderungen nicht ganz nachvollziehen kann.
                              Ob mann diese Möglichkeit vielleicht im Originalscript einbauen könnte?

                              Das Script hat sich an dieser Stelle nicht wirklich verändert. Es ist aber ein "Quick and Dirty" hack mit zwei Fehlern und 2 unschärfen:

                              • Zunächst ist in der Definition oben ein Komma in der 2. Zeile zuviel.
                              • Dann wird nach != null abgefragt. Hier werden Nachkommazahlen berechnet. Das wird dann ohne numerischen Wert auf auf einen toFixed-Fehler laufen, daher wurde die Zeile unkommentiert entfernt. Korrekter wäre, damit andere User auch weiter Freude an ihren Funktionen haben, eine weitere Abfrage einzufügen, ob der Stringwert eine Nummer repräsentiert oder nicht.
                              • In boolschen oder numerischen Datenpunkten braucht keine Value-Auswertung ausgeführt werden

                              Da das Prinzip aber funktioniert, könnte ich eine Änderung einbauen. Könntest du hierzu einen Issue aufmachen?

                              Hab jetzt die neue 4.0.5 Version installiert:
                              Wenn die ScreensaverEntityValue für in meinem Fall mrIcon2ScreensaverEntity auf einen String verweist (der mit dem Quick&Dirty-Hack funktioniert hatte), kommt ein Fehler:

                              error at function HandleScreensaverStatusIcons: getState(...).val.toFixed is not a function
                              
                              ArmilarA Offline
                              ArmilarA Offline
                              Armilar
                              Most Active Forum Testing
                              wrote on last edited by Armilar
                              #2666

                              @bean

                              Hast du den unteren Teil des Scriptes 4.0.5 ausgetauscht? Ich habe die Funktion umgeschrieben.

                              Wenn du die 16 Zeichen haben möchtest, dann ist das aktuell nur in der DEV so:

                              FlashNextion http://nspanel.pky.eu/lui.tft
                              

                              function HandleScreensaverStatusIcons() austauschen müsste reichen.

                              Ansonsten kurz die Definition senden...

                              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.

                              B 1 Reply Last reply
                              0
                              • T TT-Tom

                                @basti-gepp
                                Mensch basti Faktor 0. das kleine 1x1 😉 😬

                                Basti GeppB Offline
                                Basti GeppB Offline
                                Basti Gepp
                                wrote on last edited by
                                #2667

                                @tt-tom
                                ja...klar...jetzt geht es 🙂
                                Ich sehe schon ich muss noch viel lernen 🙂

                                Aber macht schon auch Spaß das ganze und raubt mir meine Abende 😄
                                Aber hey, es wird schon, zumindest habe ich selber raus gefunden wie ich in einem Alias die Werte runden kann 😉

                                Danke für eure unermüdliche Hilfe, ich habe wirklich tiefsten Respekt davor wie gut Ihr euch auskennt!!

                                basti

                                1 Reply Last reply
                                0
                                • ArmilarA Armilar

                                  @bean

                                  Hast du den unteren Teil des Scriptes 4.0.5 ausgetauscht? Ich habe die Funktion umgeschrieben.

                                  Wenn du die 16 Zeichen haben möchtest, dann ist das aktuell nur in der DEV so:

                                  FlashNextion http://nspanel.pky.eu/lui.tft
                                  

                                  function HandleScreensaverStatusIcons() austauschen müsste reichen.

                                  Ansonsten kurz die Definition senden...

                                  B Offline
                                  B Offline
                                  bean
                                  wrote on last edited by
                                  #2668

                                  @armilar Habe den kompletten unteren Teil ausgetauscht...

                                  die Definition:

                                      mrIcon2ScreensaverEntity: 
                                          { 
                                              ScreensaverEntity: '0_userdata.0.Global.NextSunEvent', 
                                              ScreensaverEntityIconOn: 'weather-sunset-up',
                                              ScreensaverEntityIconOff: 'weather-sunset-down', 
                                              ScreensaverEntityValue: '0_userdata.0.Global.NextSunEventTime',
                                              ScreensaverEntityValueDecimalPlace : 0,
                                              ScreensaverEntityValueUnit: '',
                                              ScreensaverEntityOnColor: Yellow, 
                                              ScreensaverEntityOffColor: Yellow 
                                          },
                                  
                                  
                                  ArmilarA 1 Reply Last reply
                                  0
                                  • B bean

                                    @armilar Habe den kompletten unteren Teil ausgetauscht...

                                    die Definition:

                                        mrIcon2ScreensaverEntity: 
                                            { 
                                                ScreensaverEntity: '0_userdata.0.Global.NextSunEvent', 
                                                ScreensaverEntityIconOn: 'weather-sunset-up',
                                                ScreensaverEntityIconOff: 'weather-sunset-down', 
                                                ScreensaverEntityValue: '0_userdata.0.Global.NextSunEventTime',
                                                ScreensaverEntityValueDecimalPlace : 0,
                                                ScreensaverEntityValueUnit: '',
                                                ScreensaverEntityOnColor: Yellow, 
                                                ScreensaverEntityOffColor: Yellow 
                                            },
                                    
                                    
                                    ArmilarA Offline
                                    ArmilarA Offline
                                    Armilar
                                    Most Active Forum Testing
                                    wrote on last edited by
                                    #2669

                                    @bean sagte in SONOFF NSPanel mit Lovelace UI:

                                    NextSunEvent

                                    Ist das boolean --> true/false?

                                    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.

                                    B 1 Reply Last reply
                                    0
                                    • ArmilarA Armilar

                                      @bean sagte in SONOFF NSPanel mit Lovelace UI:

                                      NextSunEvent

                                      Ist das boolean --> true/false?

                                      B Offline
                                      B Offline
                                      bean
                                      wrote on last edited by bean
                                      #2670

                                      @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                                      @bean sagte in SONOFF NSPanel mit Lovelace UI:

                                      NextSunEvent

                                      Ist das boolean --> true/false?

                                      Ja genau, das sorgt für das richtige Icon.
                                      NextSunEventTime ist dann ein String, in etwas "18:12"

                                      ArmilarA 1 Reply Last reply
                                      0
                                      • B bean

                                        @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                                        @bean sagte in SONOFF NSPanel mit Lovelace UI:

                                        NextSunEvent

                                        Ist das boolean --> true/false?

                                        Ja genau, das sorgt für das richtige Icon.
                                        NextSunEventTime ist dann ein String, in etwas "18:12"

                                        ArmilarA Offline
                                        ArmilarA Offline
                                        Armilar
                                        Most Active Forum Testing
                                        wrote on last edited by Armilar
                                        #2671

                                        @bean

                                        Tausch die mal aus:

                                        function HandleScreensaverStatusIcons() : void {
                                            try {
                                                let payloadString = '';
                                                let hwBtn1Col: any = config.mrIcon1ScreensaverEntity.ScreensaverEntityOffColor;
                                                if (config.mrIcon1ScreensaverEntity.ScreensaverEntity != null) {
                                                    if (typeof (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) == 'string') {
                                                        let hwBtn1: string = getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val;
                                                        if (hwBtn1 == 'ON') {
                                                            hwBtn1Col = config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor;
                                                        }
                                                        if (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) {
                                                            payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
                                                        } else {
                                                            if (config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff != null) {
                                                                payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff);
                                                            } else {
                                                                payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
                                                            }
                                                        } 
                                                        if (config.mrIcon1ScreensaverEntity.ScreensaverEntityValue != null) {
                                                            if (isNaN(getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val) == false) {
                                                                payloadString += (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon1ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
                                                                payloadString += config.mrIcon1ScreensaverEntity.ScreensaverEntityValueUnit;
                                                            } else {
                                                                payloadString += getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val
                                                            }                        
                                                        }
                                                        payloadString += '~' + rgb_dec565(hwBtn1Col) + '~';
                                                    } else if (typeof (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) == 'boolean') {
                                                        let hwBtn1: boolean = getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val;
                                                        if (hwBtn1) {
                                                            hwBtn1Col = config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor;
                                                        }
                                                        if (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) {
                                                            payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
                                                        } else {
                                                            if (config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff != null) {
                                                                payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff);
                                                            } else {
                                                                payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
                                                            }
                                                        } 
                                                        if (config.mrIcon1ScreensaverEntity.ScreensaverEntityValue != null) {
                                                            if (isNaN(getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val) == false) {
                                                                payloadString += (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon1ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
                                                                payloadString += config.mrIcon1ScreensaverEntity.ScreensaverEntityValueUnit;
                                                            } else {
                                                                payloadString += getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val
                                                            }                      
                                                        }
                                                        payloadString += '~' + rgb_dec565(hwBtn1Col) + '~';
                                                    }
                                                } else if (config.mrIcon1ScreensaverEntity.ScreensaverEntity == null && config.mrIcon1ScreensaverEntity.ScreensaverEntityValue != null){
                                                    
                                                    if(config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor != null){
                                                        hwBtn1Col = config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor;
                                                    }
                                                    if(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn != null){
                                                        payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
                                                    }
                                                    
                                                    if (config.mrIcon1ScreensaverEntity.ScreensaverEntityValue != null) {
                                                        if (isNaN(getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val) == false) {
                                                            payloadString += (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon1ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
                                                            payloadString += config.mrIcon1ScreensaverEntity.ScreensaverEntityValueUnit;
                                                        } else {
                                                            payloadString += getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val
                                                        }                        
                                                    }
                                                    payloadString += '~' + rgb_dec565(hwBtn1Col) + '~';
                                                }
                                                else {
                                                    hwBtn1Col = Black;
                                                    payloadString += '~~';
                                                }
                                        
                                                let hwBtn2Col: any = config.mrIcon2ScreensaverEntity.ScreensaverEntityOffColor;
                                                if (config.mrIcon2ScreensaverEntity.ScreensaverEntity != null) {
                                                    if (typeof (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) == 'string') {
                                                        let hwBtn2: string = getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val;
                                                        if (hwBtn2 == 'ON') {
                                                            hwBtn2Col = config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor;
                                                        }
                                                        if (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) {
                                                            payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
                                                        } else {
                                                            if (config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff != null) {
                                                                payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff);
                                                            } else {
                                                                payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
                                                            }
                                                        } 
                                                        if (config.mrIcon2ScreensaverEntity.ScreensaverEntityValue != null) {
                                                            console.log()
                                                            if (isNaN(getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val) == false) {
                                                                payloadString += (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon2ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
                                                                payloadString += config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit;
                                                            } else {
                                                                payloadString += getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val
                                                            }                        
                                                        }
                                                        payloadString += '~' + rgb_dec565(hwBtn2Col) + '~';
                                                    } else if (typeof (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) == 'boolean') {
                                                        let hwBtn2: boolean = getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val;
                                                        if (hwBtn2) {
                                                            hwBtn2Col = config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor;
                                                        }
                                                        if (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) {
                                                            payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
                                                        } else {
                                                            if (config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff != null) {
                                                                payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff);
                                                            } else {
                                                                payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
                                                            }
                                                        } 
                                                        if (config.mrIcon2ScreensaverEntity.ScreensaverEntityValue != null) {
                                                            if (isNaN(getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val) == false) {
                                                                payloadString += (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon2ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
                                                                payloadString += config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit;
                                                            } else {
                                                                payloadString += getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val
                                                            }                        
                                                        }
                                                        payloadString += '~' + rgb_dec565(hwBtn2Col) + '~';
                                                    }
                                                } else if (config.mrIcon2ScreensaverEntity.ScreensaverEntity == null && config.mrIcon2ScreensaverEntity.ScreensaverEntityValue != null){
                                                    
                                                    if(config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor != null){
                                                        hwBtn2Col = config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor;
                                                    }
                                        
                                                    if(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn != null){
                                                        payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
                                                    }
                                                    
                                                    if (config.mrIcon2ScreensaverEntity.ScreensaverEntityValue != null) {
                                                        if (isNaN(getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val) == false) {
                                                            payloadString += (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon2ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
                                                            payloadString += config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit;
                                                        } else {
                                                            payloadString += getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val
                                                        }                                            
                                                    }
                                                    payloadString += '~' + rgb_dec565(hwBtn2Col) + '~';
                                                } else {
                                                    hwBtn2Col = Black;
                                                    payloadString += '~~';
                                                }
                                        
                                                let alternateScreensaverMFRIcon1Size = getState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.1').val
                                                let alternateScreensaverMFRIcon2Size = getState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.2').val
                                                //Alternate MRIcon Size
                                                if (alternateScreensaverMFRIcon1Size) {
                                                    payloadString += '1~';
                                                } else {
                                                    payloadString += '~';
                                                }
                                                if (alternateScreensaverMFRIcon2Size) {
                                                    payloadString += '1~';
                                                } else {
                                                    payloadString += '~';
                                                }
                                        
                                                SendToPanel(<Payload>{ payload: 'statusUpdate~' + payloadString });
                                        
                                            } catch (err) {
                                                console.warn('error at function HandleScreensaverStatusIcons: ' + err.message);
                                            }
                                        }
                                        

                                        Ist jetzt auch auf Bool erweitert

                                        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.

                                        B 1 Reply Last reply
                                        2
                                        • ArmilarA Armilar

                                          @bean

                                          Tausch die mal aus:

                                          function HandleScreensaverStatusIcons() : void {
                                              try {
                                                  let payloadString = '';
                                                  let hwBtn1Col: any = config.mrIcon1ScreensaverEntity.ScreensaverEntityOffColor;
                                                  if (config.mrIcon1ScreensaverEntity.ScreensaverEntity != null) {
                                                      if (typeof (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) == 'string') {
                                                          let hwBtn1: string = getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val;
                                                          if (hwBtn1 == 'ON') {
                                                              hwBtn1Col = config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor;
                                                          }
                                                          if (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) {
                                                              payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
                                                          } else {
                                                              if (config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff != null) {
                                                                  payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff);
                                                              } else {
                                                                  payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
                                                              }
                                                          } 
                                                          if (config.mrIcon1ScreensaverEntity.ScreensaverEntityValue != null) {
                                                              if (isNaN(getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val) == false) {
                                                                  payloadString += (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon1ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
                                                                  payloadString += config.mrIcon1ScreensaverEntity.ScreensaverEntityValueUnit;
                                                              } else {
                                                                  payloadString += getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val
                                                              }                        
                                                          }
                                                          payloadString += '~' + rgb_dec565(hwBtn1Col) + '~';
                                                      } else if (typeof (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) == 'boolean') {
                                                          let hwBtn1: boolean = getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val;
                                                          if (hwBtn1) {
                                                              hwBtn1Col = config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor;
                                                          }
                                                          if (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) {
                                                              payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
                                                          } else {
                                                              if (config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff != null) {
                                                                  payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOff);
                                                              } else {
                                                                  payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
                                                              }
                                                          } 
                                                          if (config.mrIcon1ScreensaverEntity.ScreensaverEntityValue != null) {
                                                              if (isNaN(getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val) == false) {
                                                                  payloadString += (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon1ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
                                                                  payloadString += config.mrIcon1ScreensaverEntity.ScreensaverEntityValueUnit;
                                                              } else {
                                                                  payloadString += getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val
                                                              }                      
                                                          }
                                                          payloadString += '~' + rgb_dec565(hwBtn1Col) + '~';
                                                      }
                                                  } else if (config.mrIcon1ScreensaverEntity.ScreensaverEntity == null && config.mrIcon1ScreensaverEntity.ScreensaverEntityValue != null){
                                                      
                                                      if(config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor != null){
                                                          hwBtn1Col = config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor;
                                                      }
                                                      if(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn != null){
                                                          payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIconOn);
                                                      }
                                                      
                                                      if (config.mrIcon1ScreensaverEntity.ScreensaverEntityValue != null) {
                                                          if (isNaN(getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val) == false) {
                                                              payloadString += (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon1ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
                                                              payloadString += config.mrIcon1ScreensaverEntity.ScreensaverEntityValueUnit;
                                                          } else {
                                                              payloadString += getState(config.mrIcon1ScreensaverEntity.ScreensaverEntityValue).val
                                                          }                        
                                                      }
                                                      payloadString += '~' + rgb_dec565(hwBtn1Col) + '~';
                                                  }
                                                  else {
                                                      hwBtn1Col = Black;
                                                      payloadString += '~~';
                                                  }
                                          
                                                  let hwBtn2Col: any = config.mrIcon2ScreensaverEntity.ScreensaverEntityOffColor;
                                                  if (config.mrIcon2ScreensaverEntity.ScreensaverEntity != null) {
                                                      if (typeof (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) == 'string') {
                                                          let hwBtn2: string = getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val;
                                                          if (hwBtn2 == 'ON') {
                                                              hwBtn2Col = config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor;
                                                          }
                                                          if (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) {
                                                              payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
                                                          } else {
                                                              if (config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff != null) {
                                                                  payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff);
                                                              } else {
                                                                  payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
                                                              }
                                                          } 
                                                          if (config.mrIcon2ScreensaverEntity.ScreensaverEntityValue != null) {
                                                              console.log()
                                                              if (isNaN(getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val) == false) {
                                                                  payloadString += (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon2ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
                                                                  payloadString += config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit;
                                                              } else {
                                                                  payloadString += getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val
                                                              }                        
                                                          }
                                                          payloadString += '~' + rgb_dec565(hwBtn2Col) + '~';
                                                      } else if (typeof (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) == 'boolean') {
                                                          let hwBtn2: boolean = getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val;
                                                          if (hwBtn2) {
                                                              hwBtn2Col = config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor;
                                                          }
                                                          if (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) {
                                                              payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
                                                          } else {
                                                              if (config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff != null) {
                                                                  payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOff);
                                                              } else {
                                                                  payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
                                                              }
                                                          } 
                                                          if (config.mrIcon2ScreensaverEntity.ScreensaverEntityValue != null) {
                                                              if (isNaN(getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val) == false) {
                                                                  payloadString += (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon2ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
                                                                  payloadString += config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit;
                                                              } else {
                                                                  payloadString += getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val
                                                              }                        
                                                          }
                                                          payloadString += '~' + rgb_dec565(hwBtn2Col) + '~';
                                                      }
                                                  } else if (config.mrIcon2ScreensaverEntity.ScreensaverEntity == null && config.mrIcon2ScreensaverEntity.ScreensaverEntityValue != null){
                                                      
                                                      if(config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor != null){
                                                          hwBtn2Col = config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor;
                                                      }
                                          
                                                      if(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn != null){
                                                          payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIconOn);
                                                      }
                                                      
                                                      if (config.mrIcon2ScreensaverEntity.ScreensaverEntityValue != null) {
                                                          if (isNaN(getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val) == false) {
                                                              payloadString += (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val).toFixed(config.mrIcon2ScreensaverEntity.ScreensaverEntityValueDecimalPlace);
                                                              payloadString += config.mrIcon2ScreensaverEntity.ScreensaverEntityValueUnit;
                                                          } else {
                                                              payloadString += getState(config.mrIcon2ScreensaverEntity.ScreensaverEntityValue).val
                                                          }                                            
                                                      }
                                                      payloadString += '~' + rgb_dec565(hwBtn2Col) + '~';
                                                  } else {
                                                      hwBtn2Col = Black;
                                                      payloadString += '~~';
                                                  }
                                          
                                                  let alternateScreensaverMFRIcon1Size = getState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.1').val
                                                  let alternateScreensaverMFRIcon2Size = getState(NSPanel_Path + 'Config.MRIcons.alternateMRIconSize.2').val
                                                  //Alternate MRIcon Size
                                                  if (alternateScreensaverMFRIcon1Size) {
                                                      payloadString += '1~';
                                                  } else {
                                                      payloadString += '~';
                                                  }
                                                  if (alternateScreensaverMFRIcon2Size) {
                                                      payloadString += '1~';
                                                  } else {
                                                      payloadString += '~';
                                                  }
                                          
                                                  SendToPanel(<Payload>{ payload: 'statusUpdate~' + payloadString });
                                          
                                              } catch (err) {
                                                  console.warn('error at function HandleScreensaverStatusIcons: ' + err.message);
                                              }
                                          }
                                          

                                          Ist jetzt auch auf Bool erweitert

                                          B Offline
                                          B Offline
                                          bean
                                          wrote on last edited by
                                          #2672

                                          @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                                          Tausch die mal aus:

                                          👍 Scheint zu funktionieren (Sehe das Panel gerade nicht, aber keine Fehler im Log) - Danke!

                                          ArmilarA 1 Reply Last reply
                                          1
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          458

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe