Skip to content
  • Home
  • 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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Sonoff NSPanel

NEWS

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

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

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

Sonoff NSPanel

Geplant Angeheftet Gesperrt Verschoben Hardware
1.5k Beiträge 78 Kommentatoren 642.4k Aufrufe 80 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.
  • C carlos

    @armilar
    Ok, jetzt habe ich es verstanden.
    Das sind Indikatoren die ich einblenden muss.
    Sorry für das Misverständnis.

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

    @carlos sagte in Sonoff NSPanel:

    @armilar
    Ok, jetzt habe ich es verstanden.
    Das sind Indikatoren die ich einblenden muss.
    Sorry für das Misverständnis.

    Kein Problem ;-) :blush:

    Wäre nahezu ein Wunder, wenn es einen Thermostaten geben würde, der alle Modi und alle Indikatoren unterstützt. Insgesamt stehen 8 Icons zur Verfügung...

    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.

    ArmilarA 1 Antwort Letzte Antwort
    0
    • ArmilarA Armilar

      @carlos sagte in Sonoff NSPanel:

      @armilar
      Ok, jetzt habe ich es verstanden.
      Das sind Indikatoren die ich einblenden muss.
      Sorry für das Misverständnis.

      Kein Problem ;-) :blush:

      Wäre nahezu ein Wunder, wenn es einen Thermostaten geben würde, der alle Modi und alle Indikatoren unterstützt. Insgesamt stehen 8 Icons zur Verfügung...

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

      Hier geht es weiter...

      https://forum.iobroker.net/topic/58170/sonoff-nspanel-mit-lovelace-ui

      Nachdem wir den Thread von @saeft_2003 nun monatelang gecrashed ;-) haben und mittlerweile auch über 1500 Beiträge dazu beigetragen haben, dass es Einsteiger immer schwerer haben den Inhalten zu folgen, sollten wir das Thema hier fortsetzten. Ich werde noch eine entsprechende Einleitung formulieren und entsprechende Hinweise zur wachsenden Wiki und den vorhandenen Tutorials schreiben.

      VG
      Armilar

      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.

      S 1 Antwort Letzte Antwort
      0
      • ArmilarA Armilar

        Hier geht es weiter...

        https://forum.iobroker.net/topic/58170/sonoff-nspanel-mit-lovelace-ui

        Nachdem wir den Thread von @saeft_2003 nun monatelang gecrashed ;-) haben und mittlerweile auch über 1500 Beiträge dazu beigetragen haben, dass es Einsteiger immer schwerer haben den Inhalten zu folgen, sollten wir das Thema hier fortsetzten. Ich werde noch eine entsprechende Einleitung formulieren und entsprechende Hinweise zur wachsenden Wiki und den vorhandenen Tutorials schreiben.

        VG
        Armilar

        S Offline
        S Offline
        saeft_2003
        Most Active
        schrieb am zuletzt editiert von
        #1543

        @armilar

        Alles Gut momentan hab ich eh keine Zeit für das Thema NSPanel.

        1 Antwort Letzte Antwort
        0
        • ArmilarA Armilar

          @julez318 sagte in Sonoff NSPanel:

          @Armilar
          Bei mir funktioniert die Alias Erstellung mit dem Script nicht.
          Habe mir den code kopiert, angepasst und das script gestartet. Aber der Spotify Alias wird nicht erstellt.
          Muss ich hier für JavaScript noch etwas einstellen?

          Kleine Korrektur -

          7cf4ec80-c952-497c-bf7e-01c7c5e0c5bb-image.png

          J Offline
          J Offline
          Julez318
          schrieb am zuletzt editiert von
          #1544

          @armilar said in Sonoff NSPanel:

          @julez318 sagte in Sonoff NSPanel:

          @Armilar
          Bei mir funktioniert die Alias Erstellung mit dem Script nicht.
          Habe mir den code kopiert, angepasst und das script gestartet. Aber der Spotify Alias wird nicht erstellt.
          Muss ich hier für JavaScript noch etwas einstellen?

          Kleine Korrektur -

          7cf4ec80-c952-497c-bf7e-01c7c5e0c5bb-image.png

          Danke, das hat gefehlt, jetzt klappts :)

          1 Antwort Letzte Antwort
          0
          • T TT-Tom

            @Kuckuckmann @Armilar

            Hi,

            ich habe das Abfallscript jetzt soweit erweitert, das es die notwendigen Datenpunkte überprüft und ggf. erstellt. Im Kopf müssen die Werte/Parameter eingestellt werden. man kann auch die Prüfung deaktivieren. Bitte das Script mal testen, wenn es funktioniert kommt es dann in die FAQ.

            /*
            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 = 'NSPanel1'; //Name des 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 = true; // 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;
            //        setStateDelayed((['0_userdata.0.' + idUserdataAbfallVerzeichnis + '.', parseFloat(i) + 1, '.date'].join('')), getAttr(Muell_JSON, (String(i) + '.date')), false, parseInt(((0) || "").toString(), 10), false);
                   setState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.'+ parseFloat(i) + '.date', getAttr(Muell_JSON, (String(i-1) + '.date')));
                   Event2 = subsequenceFromStartLast(getAttr(Muell_JSON, (String(i-1) + '.event')), idZeichenLoeschen);
            //        setStateDelayed((['0_userdata.0.' + idUserdataAbfallVerzeichnis + '.', parseFloat(i) + 1, '.event'].join('')), Event2, false, parseInt(((0) || "").toString(), 10), false);
                   setState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.'+ parseFloat(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;
                   }
            //        setStateDelayed((['0_userdata.0.' + idUserdataAbfallVerzeichnis + '.', parseFloat(i) + 1, '.color'].join('')), Color, false, parseInt(((0) || "").toString(), 10), false);
                   setState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.'+ parseFloat(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();
               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 + '.' + parseFloat(i) + '.date')) {
                       log(i + '.date nicht vorhanden, wurde erstellt');
                       createState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + parseFloat(i) + '.date', '',
                           {
                               name: parseFloat(i) + '.date',
                               role: 'state',
                               type: 'string',
                               read: true,
                               write: true,
                               def: ''
                           });
                   };
                   if (!existsState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + parseFloat(i) + '.event')) {
                       log(i + '.event nicht vorhanden, wurde erstellt');
                       createState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + parseFloat(i) + '.event', '',
                           {
                               name: parseFloat(i) + '.event',
                               role: 'state',
                               type: 'string',
                               read: true,
                               write: true,
                               def: ''
                           });
                   };
                   if (!existsState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + parseFloat(i) + '.color')) {
                       log(i + '.color nicht vorhanden, wurde erstellt');
                       createState('0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + parseFloat(i) + '.color', '',
                           {
                               name: parseFloat(i) + '.color',
                               role: 'state',
                               type: 'number',
                               read: true,
                               write: true,
                               def: 0
                           });
                   };
               };
            };
            // 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');
                       createAliasState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.INFO', '0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + parseFloat(i) + '.date', 'string', 'INFO', 'weather.title');
                   }else{log('irgendwasgefunden')};
                   if (!existsState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.LEVEL')) {
                       log('Alias State event' + i + '.LEVEL nicht vorhanden')
                       createAliasState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.LEVEL', '0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + parseFloat(i) + '.color', 'number', 'LEVEL', 'value.warning');
                   };
                   if (!existsState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.TITLE')) {
                       log('Alias State event' + i + '.TITLE nicht vorhanden')
                       createAliasState('alias.0.' + idAliasPanelVerzeichnis + '.' + idAliasAbfallVerzeichnis + '.event' + i + '.TITLE', '0_userdata.0.' + idUserdataAbfallVerzeichnis + '.' + parseFloat(i) + '.event', 'string', 'TITLE', 'weather.title.short');
                   };
               };
            
            };
            // 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, function () {
                   setState(idSrc, getState(idSrc).val, true);
               });
            };
            // 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 ------------------------------------------------
            
            
            
            

            J Offline
            J Offline
            john5star
            schrieb am zuletzt editiert von
            #1545

            @tt-tom

            ich habe das Abfallskript mal getestet. Bei mir wurden lediglich vier alias-Ordner angelegt, keine Geräte. Des weiteren habe ich versucht andere Farben für die Tonnen zu vergeben. Dabei habe ich festgestellt, dass die Farbe Gelb der "Gelben Tonne" bei mir auch in den Datenpunkt für die Farbe der Restmülltonne mit übernommen wird.

            ArmilarA 1 Antwort Letzte Antwort
            0
            • J john5star

              @tt-tom

              ich habe das Abfallskript mal getestet. Bei mir wurden lediglich vier alias-Ordner angelegt, keine Geräte. Des weiteren habe ich versucht andere Farben für die Tonnen zu vergeben. Dabei habe ich festgestellt, dass die Farbe Gelb der "Gelben Tonne" bei mir auch in den Datenpunkt für die Farbe der Restmülltonne mit übernommen wird.

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

              @john5star

              https://forum.iobroker.net/topic/58170/sonoff-nspanel-mit-lovelace-ui

              Wir sind umgezogen...

              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.

              Berges01B 1 Antwort Letzte Antwort
              0
              • ArmilarA Armilar

                @john5star

                https://forum.iobroker.net/topic/58170/sonoff-nspanel-mit-lovelace-ui

                Wir sind umgezogen...

                Berges01B Offline
                Berges01B Offline
                Berges01
                schrieb am zuletzt editiert von
                #1547

                Ich habe mir auch so ein Panel zugelegt um damit mein Heizungsthermostat der Gastherme zu ersetzen.
                Mit Tasmota habe ich das auch geflascht bekommen (Nur Tasmota das Display ist noch Original).
                Dann habe ich versucht die Tasten von den Relais zu endkoppeln, habe ich wie auch immer hinbekommen.
                Die Tasten sollen von Hand oder Automatik anwählen.
                Das Blocklie dafür läuft auch.
                Raumtemperatur habe ich auch angepasst bekommen.

                Jetzt zu dem was ich nicht hinbekomme!
                Ich möchte den Reglerausgang im MQTT sehen.

                Die beiden Ausgänge :

                {
                  "Time": "2022-10-06T19:31:51",
                  "Switch1": "ON",
                  "Switch2": "ON",
                  "ANALOG": {
                    "Temperature1": 22.5
                  },
                  "ESP32": {
                    "Temperature": 80
                  },
                  "TempUnit": "C"
                }
                

                bleiben immer ON.
                Ich vermute das es an der Template liegt (Das habe ich noch nicht verstanden).
                So sieht die aus :
                Sorry kriege ich nur als Bild hin.
                45a10590-4970-46ac-978b-640df2b48c80-image.png
                Wo muss ich noch was drehen und konfigurieren ?

                F.B.

                ArmilarA 1 Antwort Letzte Antwort
                0
                • Berges01B Berges01

                  Ich habe mir auch so ein Panel zugelegt um damit mein Heizungsthermostat der Gastherme zu ersetzen.
                  Mit Tasmota habe ich das auch geflascht bekommen (Nur Tasmota das Display ist noch Original).
                  Dann habe ich versucht die Tasten von den Relais zu endkoppeln, habe ich wie auch immer hinbekommen.
                  Die Tasten sollen von Hand oder Automatik anwählen.
                  Das Blocklie dafür läuft auch.
                  Raumtemperatur habe ich auch angepasst bekommen.

                  Jetzt zu dem was ich nicht hinbekomme!
                  Ich möchte den Reglerausgang im MQTT sehen.

                  Die beiden Ausgänge :

                  {
                    "Time": "2022-10-06T19:31:51",
                    "Switch1": "ON",
                    "Switch2": "ON",
                    "ANALOG": {
                      "Temperature1": 22.5
                    },
                    "ESP32": {
                      "Temperature": 80
                    },
                    "TempUnit": "C"
                  }
                  

                  bleiben immer ON.
                  Ich vermute das es an der Template liegt (Das habe ich noch nicht verstanden).
                  So sieht die aus :
                  Sorry kriege ich nur als Bild hin.
                  45a10590-4970-46ac-978b-640df2b48c80-image.png
                  Wo muss ich noch was drehen und konfigurieren ?

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

                  Neuer Thread ist:

                  https://forum.iobroker.net/topic/58170/sonoff-nspanel-mit-lovelace-ui

                  bitte hier nichts mehr posten...

                  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

                  458

                  Online

                  32.4k

                  Benutzer

                  81.5k

                  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
                  • Home
                  • Aktuell
                  • Tags
                  • Ungelesen 0
                  • Kategorien
                  • Unreplied
                  • Beliebt
                  • GitHub
                  • Docu
                  • Hilfe