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.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

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.
  • ArmilarA Armilar

    @tt-tom sagte in SONOFF NSPanel mit Lovelace UI:

    der Umzug und das Alles hat doch länger gedauert als gedacht. Aber so langsam erwacht das Smarthome wieder

    Hauptsache ist, dass sich alle im neuen Zuhause wohlfühlen. Smart wird das - da bin ich mir sicher 😊

    Wer einmal Blut geleckt hat, der bleibt dabei. ioBroker macht süchtig...

    T Offline
    T Offline
    TT-Tom
    schrieb am zuletzt editiert von
    #836

    @armilar sagte in SONOFF NSPanel mit Lovelace UI:

    Wer einmal Blut geleckt hat, der bleibt dabei. ioBroker macht süchtig...

    Au ja, da sind noch viele Ideen. Muss es den Mädels nur schmackhaft machen 😊

    zum Panel habe ich ja mal das Script für den Abfallkalender angefangen und ins Wiki gestellt. Ich habe hier noch eine erweiterte Version, wo die Alias mit erstellt werden. Mit der JS-Adapter Version 6.1.3 hat sich die Prozedur ja verbessert.
    Könntest du mir helfen es anzupassen.

    Das ist der aktuelle Stand:

    /*
    Version 3.0 von TT-Tom
    das Script erstellt die Datenpunkte und Alias für den Abfallkalender im Sonoff NSPanel
    Es wird der iCal Adapter benötigt und eine URL mit Terminen vom Entsorger bzw. eine .ics-Datei mit den Terminen.
    gleichzeitig triggert das Script auf dem bereitgestellten JSON im iCal adapter und füllt die 0_userdata.0 Datenpunkte
    Weitere Informationen findest du in der FAQ auf Github https://github.com/joBr99/nspanel-lovelace-ui/wiki
    */
    
    
    const idAbfalliCal = 'ical.1'; // iCal Instanz zum Abfallkalender
    const idUserdataAbfallVerzeichnis = 'Abfallkalender'; // Name des Datenpunktverzeichnis unter 0_userdata.0 -> Strandard = Abfallkalender
    const idAliasPanelVerzeichnis = 'NSPanel.1'; //Name PanelVerzeichnis unter alias.0. Standard = NSPanel_1
    const idAliasAbfallVerzeichnis = 'Abfall'; //Name Verzeichnis unterhalb der idPanelverzeichnis  Standard = Abfall
    
    const idZeichenLoeschen = 14; // x Zeichen links vom String abziehen, wenn vor dem Eventname noch Text steht z.B. Strassenname; Standard = 0
    const idRestmuellName = 'Hausmüll'; // Schwarze Tonne
    const idWertstoffName = 'Gelber Sack'; // Gelbe Tonne / Sack
    const idPappePapierName = 'Papier';  // Blaue Tonne
    const idBioabfaelleName = 'Biomüll'; // Braune Tonne
    
    const idDPPruefung = false; // mit "false" wird die Prüfung der Datenpunkte in 0_userdata.0 und alias.0 ausgesetzt
    
    
    
    // ------------------------- Trigger zum füllen der 0_userdata Datenpunkte aus dem json vom ical Adapter -------------------------------
    var i, Muell_JSON, Event2, Color = 0;
    
    // Trigger auf iCal Instanz zur Json Tabelle
    on({ id: idAbfalliCal + '.data.table', change: 'ne' }, async function () {
    
        for (i = 1; i <= 4; i++) {
            Muell_JSON = getState(idAbfalliCal + '.data.table').val;
            setState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.date', getAttr(Muell_JSON, (String(i - 1) + '.date')));
            Event2 = subsequenceFromStartLast(getAttr(Muell_JSON, (String(i - 1) + '.event')), idZeichenLoeschen);
            setState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.event', Event2);
            if (Event2 == idRestmuellName) {
                Color = 33840;
            } else if (Event2 == idBioabfaelleName) {
                Color = 2016;
            } else if (Event2 == idPappePapierName) {
                Color = 31;
            } else if (Event2 == idWertstoffName) {
                Color = 65504;
            }
            setState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.color', Color);
        }
    });
    
    function subsequenceFromStartLast(sequence, at1) {
        var start = at1;
        var end = sequence.length;
        return sequence.slice(start, end);
    };
    // ------------------------------------- Ende Trigger ------------------------------------
    
    // ------------------------------------- Funktionen zur Prüfung und Erstellung der Datenpunkte in 0_userdata.0 und alias.0 -----------------------
    if (idDPPruefung) {
        checkUserdataState();
        await wait(2000);
        checkAliasFolder();
        checkAliasChannel();
        checkAliasState();
    };
    // Prüfung und ggf. Erstellung der Datenpunkte unter 0_userdata.0
    function checkUserdataState() {
        for (i = 1; i <= 4; i++) {
            if (!existsState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.date')) {
                log('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.date nicht vorhanden, wurde erstellt');
                createState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.date', '',
                    {
                        name: i + '.date',
                        role: 'state',
                        type: 'string',
                        read: true,
                        write: true
                    });
            };
            if (!existsState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.event')) {
                log('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.event nicht vorhanden, wurde erstellt');
                createState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.event', '',
                    {
                        name: i + '.event',
                        role: 'state',
                        type: 'string',
                        read: true,
                        write: true
                    });
            };
            if (!existsState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.color')) {
                log('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.color nicht vorhanden, wurde erstellt');
                createState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.color', 0,
                    {
                        name: i + '.color',
                        role: 'state',
                        type: 'number',
                        read: true,
                        write: true
                    });
            };
        };
    };
    // Prüfung das Alias states vorhanden sind ggf. anlegen
    function checkAliasState() {
        for (i = 1; i <= 4; i++) {
            if (!existsState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.INFO')) {
                log('Alias State event' + i + '.INFO nicht vorhanden, wird erstellt');
                createAliasState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.INFO', '0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.date', 'string', 'INFO', 'weather.title');
            } else { log('irgendwasgefunden .event' + i + '.INFO') };
            if (!existsState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.LEVEL')) {
                log('Alias State event' + i + '.LEVEL nicht vorhanden, wird erstellt')
                createAliasState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.LEVEL', '0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.color', 'number', 'LEVEL', 'value.warning');
            } else { log('irgendwasgefunden .event' + i + '.LEVEL') };
            if (!existsState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.TITLE')) {
                log('Alias State event' + i + '.TITLE nicht vorhanden, wird erstellt')
                createAliasState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.TITLE', '0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.event', 'string', 'TITLE', 'weather.title.short');
            } else { log('irgendwasgefunden .event' + i + '.TITLE') };
        };
    
    };
    // Erstellt ein State unter Alias.0
    function createAliasState(idDst, idSrc, typeAlias, nameAlias, role) {
        var obj = {};
        obj.type = 'state';
        obj.common = getObject(idSrc).common;
        obj.common.alias = {};
        obj.common.alias.id = idSrc;
        obj.common.type = typeAlias;
        obj.common.name = nameAlias;
        obj.common.role = role;
        obj.native = {};
        setObject(idDst, obj);
    };
    // Prüfung das Alias Channel vorhanden sind ggf. anlegen
    function checkAliasChannel() {
        for (i = 1; i <= 4; i++) {
            if (!existsObject('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i)) {
                log('Alias Channel ' + idAliasAbfallVerzeichnis + '.event' + i + ' nicht vorhanden');
                createAliasChannel('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i, idAliasAbfallVerzeichnis + '.event' + i, 'warning');
            }
        }
    };
    // Erstellt ein Channel unter Alias.0
    function createAliasChannel(idDst, nameAlias, role) {
        var obj = {};
        obj.type = 'channel';
        obj.common = {};
        obj.common.name = {};
        obj.common.name.de = nameAlias;
        obj.common.role = role;
        obj.native = {};
        setObject(idDst, obj);
    };
    // Prüfung das Alias Folder vorhanden sind ggf. anlegen
    function checkAliasFolder() {
        if (!existsObject('alias.0.' + idAliasPanelVerzeichnis)) {
            log('Alias Folder ' + idAliasPanelVerzeichnis + ' nicht vorhanden');
            createAliasFolder('alias.0.' + idAliasPanelVerzeichnis, idAliasPanelVerzeichnis);
        };
    }
    // erstellt ein Folder unter Alias.0
    function createAliasFolder(idDst, nameAlias) {
        var obj = {};
        obj.type = 'folder';
        obj.common = {};
        obj.common.name = nameAlias;
        obj.native = {};
        setObject(idDst, obj);
    };
    // --------------------------- Ende Funktionen Datenpunkte ------------------------------------------------
    
    

    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

    ArmilarA 1 Antwort Letzte Antwort
    1
    • T TT-Tom

      @armilar sagte in SONOFF NSPanel mit Lovelace UI:

      Wer einmal Blut geleckt hat, der bleibt dabei. ioBroker macht süchtig...

      Au ja, da sind noch viele Ideen. Muss es den Mädels nur schmackhaft machen 😊

      zum Panel habe ich ja mal das Script für den Abfallkalender angefangen und ins Wiki gestellt. Ich habe hier noch eine erweiterte Version, wo die Alias mit erstellt werden. Mit der JS-Adapter Version 6.1.3 hat sich die Prozedur ja verbessert.
      Könntest du mir helfen es anzupassen.

      Das ist der aktuelle Stand:

      /*
      Version 3.0 von TT-Tom
      das Script erstellt die Datenpunkte und Alias für den Abfallkalender im Sonoff NSPanel
      Es wird der iCal Adapter benötigt und eine URL mit Terminen vom Entsorger bzw. eine .ics-Datei mit den Terminen.
      gleichzeitig triggert das Script auf dem bereitgestellten JSON im iCal adapter und füllt die 0_userdata.0 Datenpunkte
      Weitere Informationen findest du in der FAQ auf Github https://github.com/joBr99/nspanel-lovelace-ui/wiki
      */
      
      
      const idAbfalliCal = 'ical.1'; // iCal Instanz zum Abfallkalender
      const idUserdataAbfallVerzeichnis = 'Abfallkalender'; // Name des Datenpunktverzeichnis unter 0_userdata.0 -> Strandard = Abfallkalender
      const idAliasPanelVerzeichnis = 'NSPanel.1'; //Name PanelVerzeichnis unter alias.0. Standard = NSPanel_1
      const idAliasAbfallVerzeichnis = 'Abfall'; //Name Verzeichnis unterhalb der idPanelverzeichnis  Standard = Abfall
      
      const idZeichenLoeschen = 14; // x Zeichen links vom String abziehen, wenn vor dem Eventname noch Text steht z.B. Strassenname; Standard = 0
      const idRestmuellName = 'Hausmüll'; // Schwarze Tonne
      const idWertstoffName = 'Gelber Sack'; // Gelbe Tonne / Sack
      const idPappePapierName = 'Papier';  // Blaue Tonne
      const idBioabfaelleName = 'Biomüll'; // Braune Tonne
      
      const idDPPruefung = false; // mit "false" wird die Prüfung der Datenpunkte in 0_userdata.0 und alias.0 ausgesetzt
      
      
      
      // ------------------------- Trigger zum füllen der 0_userdata Datenpunkte aus dem json vom ical Adapter -------------------------------
      var i, Muell_JSON, Event2, Color = 0;
      
      // Trigger auf iCal Instanz zur Json Tabelle
      on({ id: idAbfalliCal + '.data.table', change: 'ne' }, async function () {
      
          for (i = 1; i <= 4; i++) {
              Muell_JSON = getState(idAbfalliCal + '.data.table').val;
              setState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.date', getAttr(Muell_JSON, (String(i - 1) + '.date')));
              Event2 = subsequenceFromStartLast(getAttr(Muell_JSON, (String(i - 1) + '.event')), idZeichenLoeschen);
              setState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.event', Event2);
              if (Event2 == idRestmuellName) {
                  Color = 33840;
              } else if (Event2 == idBioabfaelleName) {
                  Color = 2016;
              } else if (Event2 == idPappePapierName) {
                  Color = 31;
              } else if (Event2 == idWertstoffName) {
                  Color = 65504;
              }
              setState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.color', Color);
          }
      });
      
      function subsequenceFromStartLast(sequence, at1) {
          var start = at1;
          var end = sequence.length;
          return sequence.slice(start, end);
      };
      // ------------------------------------- Ende Trigger ------------------------------------
      
      // ------------------------------------- Funktionen zur Prüfung und Erstellung der Datenpunkte in 0_userdata.0 und alias.0 -----------------------
      if (idDPPruefung) {
          checkUserdataState();
          await wait(2000);
          checkAliasFolder();
          checkAliasChannel();
          checkAliasState();
      };
      // Prüfung und ggf. Erstellung der Datenpunkte unter 0_userdata.0
      function checkUserdataState() {
          for (i = 1; i <= 4; i++) {
              if (!existsState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.date')) {
                  log('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.date nicht vorhanden, wurde erstellt');
                  createState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.date', '',
                      {
                          name: i + '.date',
                          role: 'state',
                          type: 'string',
                          read: true,
                          write: true
                      });
              };
              if (!existsState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.event')) {
                  log('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.event nicht vorhanden, wurde erstellt');
                  createState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.event', '',
                      {
                          name: i + '.event',
                          role: 'state',
                          type: 'string',
                          read: true,
                          write: true
                      });
              };
              if (!existsState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.color')) {
                  log('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.color nicht vorhanden, wurde erstellt');
                  createState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.color', 0,
                      {
                          name: i + '.color',
                          role: 'state',
                          type: 'number',
                          read: true,
                          write: true
                      });
              };
          };
      };
      // Prüfung das Alias states vorhanden sind ggf. anlegen
      function checkAliasState() {
          for (i = 1; i <= 4; i++) {
              if (!existsState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.INFO')) {
                  log('Alias State event' + i + '.INFO nicht vorhanden, wird erstellt');
                  createAliasState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.INFO', '0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.date', 'string', 'INFO', 'weather.title');
              } else { log('irgendwasgefunden .event' + i + '.INFO') };
              if (!existsState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.LEVEL')) {
                  log('Alias State event' + i + '.LEVEL nicht vorhanden, wird erstellt')
                  createAliasState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.LEVEL', '0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.color', 'number', 'LEVEL', 'value.warning');
              } else { log('irgendwasgefunden .event' + i + '.LEVEL') };
              if (!existsState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.TITLE')) {
                  log('Alias State event' + i + '.TITLE nicht vorhanden, wird erstellt')
                  createAliasState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.TITLE', '0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + i + '.event', 'string', 'TITLE', 'weather.title.short');
              } else { log('irgendwasgefunden .event' + i + '.TITLE') };
          };
      
      };
      // Erstellt ein State unter Alias.0
      function createAliasState(idDst, idSrc, typeAlias, nameAlias, role) {
          var obj = {};
          obj.type = 'state';
          obj.common = getObject(idSrc).common;
          obj.common.alias = {};
          obj.common.alias.id = idSrc;
          obj.common.type = typeAlias;
          obj.common.name = nameAlias;
          obj.common.role = role;
          obj.native = {};
          setObject(idDst, obj);
      };
      // Prüfung das Alias Channel vorhanden sind ggf. anlegen
      function checkAliasChannel() {
          for (i = 1; i <= 4; i++) {
              if (!existsObject('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i)) {
                  log('Alias Channel ' + idAliasAbfallVerzeichnis + '.event' + i + ' nicht vorhanden');
                  createAliasChannel('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i, idAliasAbfallVerzeichnis + '.event' + i, 'warning');
              }
          }
      };
      // Erstellt ein Channel unter Alias.0
      function createAliasChannel(idDst, nameAlias, role) {
          var obj = {};
          obj.type = 'channel';
          obj.common = {};
          obj.common.name = {};
          obj.common.name.de = nameAlias;
          obj.common.role = role;
          obj.native = {};
          setObject(idDst, obj);
      };
      // Prüfung das Alias Folder vorhanden sind ggf. anlegen
      function checkAliasFolder() {
          if (!existsObject('alias.0.' + idAliasPanelVerzeichnis)) {
              log('Alias Folder ' + idAliasPanelVerzeichnis + ' nicht vorhanden');
              createAliasFolder('alias.0.' + idAliasPanelVerzeichnis, idAliasPanelVerzeichnis);
          };
      }
      // erstellt ein Folder unter Alias.0
      function createAliasFolder(idDst, nameAlias) {
          var obj = {};
          obj.type = 'folder';
          obj.common = {};
          obj.common.name = nameAlias;
          obj.native = {};
          setObject(idDst, obj);
      };
      // --------------------------- Ende Funktionen Datenpunkte ------------------------------------------------
      
      
      ArmilarA Offline
      ArmilarA Offline
      Armilar
      Most Active Forum Testing
      schrieb am zuletzt editiert von
      #837

      @tt-tom

      mache ich gerne, aber mein ioBroker zieht grade auf ein neues NAS 😉 Kann auch morgen werden 😊

      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

        @vumer

        Ist es möglich bei cardMedia wenn spotify-premium.0.player.isPlaying true ist das Icon 'spotify' grün leuchtet?

        die colorSpotify habe ich vor Monaten mal angelegt. Damit starte ich Spotify-Playlists aus einer cardGrid 😉

        Es gab zu dem Zeitpunkt auch ein Alexa-Logo. Weiß der Geier warum das verschwunden ist. Dem trauere ich immer noch hinterher.

        Nun zur Frage. Nein, die Farbe für das Icon ist im Payload nicht enthalten.

        Lasse uns @joBr99 kurz fragen, ob man das in den nächsten Versionen noch einfärben könnte?

        J Offline
        J Offline
        joBr99
        schrieb am zuletzt editiert von joBr99
        #838

        @armilar said in SONOFF NSPanel mit Lovelace UI:

        Es gab zu dem Zeitpunkt auch ein Alexa-Logo. Weiß der Geier warum das verschwunden ist. Dem trauere ich immer noch hinterher.

        https://dev.materialdesignicons.com/roadmap/brand-icons
        https://github.com/Templarian/MaterialDesign/issues/5409

        @armilar said in SONOFF NSPanel mit Lovelace UI:

        Nun zur Frage. Nein, die Farbe für das Icon ist im Payload nicht enthalten.
        Lasse uns @joBr99 kurz fragen, ob man das in den nächsten Versionen noch einfärben könnte?

        done, ist aber noch nicht getestet, könnte jetzt auch ganz kaputt sein 🙂

        https://github.com/joBr99/nspanel-lovelace-ui/commit/05e3cf9efa20e26c46faade899573189509003ca

        ArmilarA 1 Antwort Letzte Antwort
        0
        • W Offline
          W Offline
          Wuschl
          schrieb am zuletzt editiert von Wuschl
          #839

          Ist es eigentlich auch möglich die Relais einzeln abzukoppeln? Der linke Taster funktioniert ganz normal mit Relais zum schalten für das Licht, der rechte Taster wird benutzt zum Rollos auf und zu fahren, das rechte Relais könnte ich dann frei schalten?

          K 1 Antwort Letzte Antwort
          0
          • ArmilarA Armilar

            @wuschl

            Die eigentlichen Fehler in der Config haben wir denke ich gefunden. 👀

            W Offline
            W Offline
            Wuschl
            schrieb am zuletzt editiert von
            #840

            @armilar Ich habe jetzt bei allen Panels die TFT-Firmware von deinem Wiki-Link nochmal geflasht, seit dem funktioniert alles, und die Warnmeldungen sind alle weg.👍

            1 Antwort Letzte Antwort
            0
            • W Wuschl

              Ist es eigentlich auch möglich die Relais einzeln abzukoppeln? Der linke Taster funktioniert ganz normal mit Relais zum schalten für das Licht, der rechte Taster wird benutzt zum Rollos auf und zu fahren, das rechte Relais könnte ich dann frei schalten?

              K Offline
              K Offline
              Kuckuckmann
              schrieb am zuletzt editiert von
              #841

              @wuschl
              Ja. schau dazu mal in die Wiki, ich habe es dort beschrieben.

              NSPanel Dokumentation im GitHub Wiki:

              https://github.com/joBr99/nspanel-lovelace-ui/wiki

              W 1 Antwort Letzte Antwort
              0
              • ArmilarA Armilar

                @meister-x

                ich muss es erstmal einbauen. Wird in die nächste Version kommen.

                Meister-xM Offline
                Meister-xM Offline
                Meister-x
                schrieb am zuletzt editiert von
                #842

                @armilar
                Hallo,
                war leider paar Tage nicht hier- es sind soviele Einträge dazischen... teils mit meinem Thema "Dimmmode mit Bewegungsmelder hell".
                Sorry , wenn ich so doof frage- kommt vielleicht eine Lösung mit der nächsten Version oder ist da unten schon was dabei ?
                Hab schon vieles versucht -leider ohne Erfolg.

                Vielen Dank und wirklich super was du so machst !

                ArmilarA 1 Antwort Letzte Antwort
                0
                • K Kuckuckmann

                  @wuschl
                  Ja. schau dazu mal in die Wiki, ich habe es dort beschrieben.

                  W Offline
                  W Offline
                  Wuschl
                  schrieb am zuletzt editiert von
                  #843

                  @kuckuckmann cool😎
                  war zwar jetzt eine lange Prozedur bis ich das gecheckt hab, aber es funktioniert. Ihr seid einfach klasse👋

                  K 1 Antwort Letzte Antwort
                  0
                  • W Wuschl

                    @kuckuckmann cool😎
                    war zwar jetzt eine lange Prozedur bis ich das gecheckt hab, aber es funktioniert. Ihr seid einfach klasse👋

                    K Offline
                    K Offline
                    Kuckuckmann
                    schrieb am zuletzt editiert von
                    #844

                    @wuschl
                    Das freut mich 🙂

                    NSPanel Dokumentation im GitHub Wiki:

                    https://github.com/joBr99/nspanel-lovelace-ui/wiki

                    1 Antwort Letzte Antwort
                    0
                    • Meister-xM Meister-x

                      @armilar
                      Hallo,
                      war leider paar Tage nicht hier- es sind soviele Einträge dazischen... teils mit meinem Thema "Dimmmode mit Bewegungsmelder hell".
                      Sorry , wenn ich so doof frage- kommt vielleicht eine Lösung mit der nächsten Version oder ist da unten schon was dabei ?
                      Hab schon vieles versucht -leider ohne Erfolg.

                      Vielen Dank und wirklich super was du so machst !

                      ArmilarA Offline
                      ArmilarA Offline
                      Armilar
                      Most Active Forum Testing
                      schrieb am zuletzt editiert von
                      #845

                      @meister-x sagte in SONOFF NSPanel mit Lovelace UI:

                      kommt vielleicht eine Lösung mit der nächsten Version

                      Ja, erst mit der nächsten Version

                      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
                      • J joBr99

                        @armilar said in SONOFF NSPanel mit Lovelace UI:

                        Es gab zu dem Zeitpunkt auch ein Alexa-Logo. Weiß der Geier warum das verschwunden ist. Dem trauere ich immer noch hinterher.

                        https://dev.materialdesignicons.com/roadmap/brand-icons
                        https://github.com/Templarian/MaterialDesign/issues/5409

                        @armilar said in SONOFF NSPanel mit Lovelace UI:

                        Nun zur Frage. Nein, die Farbe für das Icon ist im Payload nicht enthalten.
                        Lasse uns @joBr99 kurz fragen, ob man das in den nächsten Versionen noch einfärben könnte?

                        done, ist aber noch nicht getestet, könnte jetzt auch ganz kaputt sein 🙂

                        https://github.com/joBr99/nspanel-lovelace-ui/commit/05e3cf9efa20e26c46faade899573189509003ca

                        ArmilarA Offline
                        ArmilarA Offline
                        Armilar
                        Most Active Forum Testing
                        schrieb am zuletzt editiert von
                        #846

                        @jobr99 sagte in SONOFF NSPanel mit Lovelace UI:

                        ist aber noch nicht getestet, könnte jetzt auch ganz kaputt sein

                        Ich baue es mal ein und teste es durch...

                        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.

                        D 1 Antwort Letzte Antwort
                        0
                        • ravenst0neR Offline
                          ravenst0neR Offline
                          ravenst0ne
                          schrieb am zuletzt editiert von
                          #847

                          Würde mal gerne die Diskussion in den Raum stellen, die Konfiguration vom eigentlichen Skript zu trennen (eigene *.ts Dateien) 🙂 Bei Updates müsste man nur das komplette Skript austauschen, und nicht seine Konfig umständlich rumkopieren. Auch bei mehreren NSPanel im Einsatz würde man nur ein einzelnes Skript benötigen

                          HomoranH ArmilarA 2 Antworten Letzte Antwort
                          1
                          • ravenst0neR ravenst0ne

                            Würde mal gerne die Diskussion in den Raum stellen, die Konfiguration vom eigentlichen Skript zu trennen (eigene *.ts Dateien) 🙂 Bei Updates müsste man nur das komplette Skript austauschen, und nicht seine Konfig umständlich rumkopieren. Auch bei mehreren NSPanel im Einsatz würde man nur ein einzelnes Skript benötigen

                            HomoranH Nicht stören
                            HomoranH Nicht stören
                            Homoran
                            Global Moderator Administrators
                            schrieb am zuletzt editiert von
                            #848

                            @ravenst0ne Doppelpost?
                            dafür hattest du doch gerade einen eigenen Thread aufgemacht.

                            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

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

                            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                            1 Antwort Letzte Antwort
                            0
                            • ArmilarA Armilar

                              @jobr99 sagte in SONOFF NSPanel mit Lovelace UI:

                              ist aber noch nicht getestet, könnte jetzt auch ganz kaputt sein

                              Ich baue es mal ein und teste es durch...

                              D Offline
                              D Offline
                              DaPeace
                              schrieb am zuletzt editiert von
                              #849

                              @armilar Ich hab mal noch ein Problem festgestellt. Wenn ich ein Thermostat konfiguriert habe hab ich das Problem das ich den Wert zwar am Panel senken kann aber das Erhöhen geht nicht mehr. Das hab ich auch bei einem Kumpel der jetzt 15 von den Dingern installiert hat. Hast du einen Tip woran das liegen kann?

                              ArmilarA 1 Antwort Letzte Antwort
                              0
                              • D DaPeace

                                @armilar Ich hab mal noch ein Problem festgestellt. Wenn ich ein Thermostat konfiguriert habe hab ich das Problem das ich den Wert zwar am Panel senken kann aber das Erhöhen geht nicht mehr. Das hab ich auch bei einem Kumpel der jetzt 15 von den Dingern installiert hat. Hast du einen Tip woran das liegen kann?

                                ArmilarA Offline
                                ArmilarA Offline
                                Armilar
                                Most Active Forum Testing
                                schrieb am zuletzt editiert von
                                #850

                                @dapeace

                                aktuell (und ohne irgendeinen Anhaltspunkt zu deiner Variable zu haben 😉 ) gehe ich davon aus, dass die minValue: 50, maxValue: 315 im pageItem mit Komma versehen sind. Die Angabe muss ohne Komma erfolgen, da das NSPanel es sonst nicht verarbeiten kann.

                                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.

                                D 1 Antwort Letzte Antwort
                                0
                                • ravenst0neR ravenst0ne

                                  Würde mal gerne die Diskussion in den Raum stellen, die Konfiguration vom eigentlichen Skript zu trennen (eigene *.ts Dateien) 🙂 Bei Updates müsste man nur das komplette Skript austauschen, und nicht seine Konfig umständlich rumkopieren. Auch bei mehreren NSPanel im Einsatz würde man nur ein einzelnes Skript benötigen

                                  ArmilarA Offline
                                  ArmilarA Offline
                                  Armilar
                                  Most Active Forum Testing
                                  schrieb am zuletzt editiert von Armilar
                                  #851

                                  @ravenst0ne

                                  gibt da keine langen Diskussionen. Ist eine etwas aufwendigere Geschichte und auch schon des Öfteren erörtert.
                                  Daher

                                  • entweder selbst machen und "Pull Request" auf github einstellen
                                  • warten bis jemand einen Adapter schreibt
                                  • oder warten bis ich Zeit dafür finde...

                                  VG

                                  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.

                                  VumerV 1 Antwort Letzte Antwort
                                  0
                                  • W Offline
                                    W Offline
                                    wavemaster01
                                    schrieb am zuletzt editiert von
                                    #852

                                    Hallo, zuerst einmal möchte ich mich für das tolle Projekt bedanken. Das UI läuft prima auf meinem NSPanel. Nun habe ich aber eine weitergehende Frage.

                                    Da das NSPanel neben unserer Haustüre installiert werden soll, hätte ich gerne, dass der Screensaver je nachdem, ob Fenster zu, offen oder gekippt sind, eine andere Hintergrundfarbe bekommt.
                                    Per MQTT steht im IOBroker eine Variable zur Verfügung (Werte: 0= Fenster zu, 1 = Fenster = offen, 2 = Fenster gekippt).
                                    In Zeile 199 des Skripts habe ich folgende Konstante gefunden, mit der ich dauerhaft die Hintergrundfarbe ändern kann.

                                    //Screensaver Default Theme Colors
                                    const scbackground: RGB = { red: 0, green: 0, blue: 0}

                                    Wie schaffe ich es aber nun je nach oben genannten Stati die Hintergrundfarbe zu ändern. Es sollte wohl mit einer if-Bedingung klappen, aber alle meine rudimentären Versuche endeten mit einem defekten Skript 😉

                                    Vielleicht hat jmd. die Syntax zur Lösung des "Problems" für mich.

                                    Vielen Dank!!!!

                                    K 1 Antwort Letzte Antwort
                                    0
                                    • ArmilarA Offline
                                      ArmilarA Offline
                                      Armilar
                                      Most Active Forum Testing
                                      schrieb am zuletzt editiert von Armilar
                                      #853

                                      @wavemaster01 sagte in SONOFF NSPanel mit Lovelace UI:

                                      Es sollte wohl mit einer if-Bedingung klappen

                                      Die Antwort ist nein. Mit einer if-Bedingung wird es nicht klappen.

                                      Zunächst muss das Skript einen Trigger verarbeiten der den Zustand des/der Fenster verarbeitet. Dann muss der Screensaver neu gerendert werden und im Payload (aktuell nicht variabel für Background) muss dann die Farbe für den Screensaver mitgegeben werden. Hierbei können dann die Farbkonstanten benutzt werden und in rgb565-Konvertierung an das Panel gesendet werden. Das ist wiederum ein Update auf den Screensaver

                                      Aber ich bin mir sicher, dass mindestens eine if-Bedingung benötigt 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.

                                      W 2 Antworten Letzte Antwort
                                      0
                                      • ArmilarA Armilar

                                        @wavemaster01 sagte in SONOFF NSPanel mit Lovelace UI:

                                        Es sollte wohl mit einer if-Bedingung klappen

                                        Die Antwort ist nein. Mit einer if-Bedingung wird es nicht klappen.

                                        Zunächst muss das Skript einen Trigger verarbeiten der den Zustand des/der Fenster verarbeitet. Dann muss der Screensaver neu gerendert werden und im Payload (aktuell nicht variabel für Background) muss dann die Farbe für den Screensaver mitgegeben werden. Hierbei können dann die Farbkonstanten benutzt werden und in rgb565-Konvertierung an das Panel gesendet werden. Das ist wiederum ein Update auf den Screensaver

                                        Aber ich bin mir sicher, dass mindestens eine if-Bedingung benötigt wird 😉

                                        W Offline
                                        W Offline
                                        wavemaster01
                                        schrieb am zuletzt editiert von
                                        #854

                                        @armilar Vielen Dank für deine Antwort!! Da wird der Schalter wohl nicht so schnell den HMIP-BSL ersetzen können, aber einmal schauen, was sich mit der Zeit im Skript generell tut 👍 . Danke ebenfalls für deine technischen Ausführungen, da ist eine if-Bedingung gedanklich immerhin ein Anfang bei mir gewesen 😄 😉

                                        ArmilarA 1 Antwort Letzte Antwort
                                        0
                                        • W wavemaster01

                                          @armilar Vielen Dank für deine Antwort!! Da wird der Schalter wohl nicht so schnell den HMIP-BSL ersetzen können, aber einmal schauen, was sich mit der Zeit im Skript generell tut 👍 . Danke ebenfalls für deine technischen Ausführungen, da ist eine if-Bedingung gedanklich immerhin ein Anfang bei mir gewesen 😄 😉

                                          ArmilarA Offline
                                          ArmilarA Offline
                                          Armilar
                                          Most Active Forum Testing
                                          schrieb am zuletzt editiert von
                                          #855

                                          @wavemaster01

                                          Die Überlegung wäre nicht direkt "in Fenstern" zu denken, sondern einen Indikator über Datenpunkt zu triggern, der dann den die grundsätzliche Möglichkeit bietet die Hintergrundfarbe des Screensavers zu ändern. Gibt aber aktuell auch nur eine Hintergrundfarbe für alle Fenster. Mit bExit müsste die Farbe spätestens wieder zurückgedreht werden.

                                          Ich durchdenke das mal...

                                          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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          508

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          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