Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  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.2k

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

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

SONOFF NSPanel mit Lovelace UI

Geplant Angeheftet Gesperrt Verschoben Hardware
lovelace uinspanelsonoff
7.8k Beiträge 272 Kommentatoren 6.7m Aufrufe 254 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • 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
    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                  1
                  • T Offline
                    T Offline
                    tklein
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      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
                        schrieb am zuletzt editiert von
                        #2664

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

                        1 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          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
                            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                            0
                            • T TT-Tom

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

                              Basti GeppB Offline
                              Basti GeppB Offline
                              Basti Gepp
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              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
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  0
                                  • ArmilarA Armilar

                                    @bean sagte in SONOFF NSPanel mit Lovelace UI:

                                    NextSunEvent

                                    Ist das boolean --> true/false?

                                    B Offline
                                    B Offline
                                    bean
                                    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                    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
                                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                      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
                                        schrieb am zuletzt editiert von
                                        #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 Antwort Letzte Antwort
                                        1
                                        • B bean

                                          @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 Offline
                                          ArmilarA Offline
                                          Armilar
                                          Most Active Forum Testing
                                          schrieb am zuletzt editiert von
                                          #2673

                                          @bean

                                          Danke fürs testen. Übernehme ich mit ins Script 👍

                                          Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                          https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                          1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          736

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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