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 mit Lovelace UI

NEWS

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

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

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

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.
  • T TT-Tom

    @wendy2702

    so wir haben eine Lösung gefunden, bitte als Hotfix die Funktion HandleButtonEvent komplett austauschen mit folgendem Code im Spoiler

    function HandleButtonEvent(words: any): void {
       try {
           let tempid = words[2].split('?');
           let id = tempid[0];
           let buttonAction = words[3];
    
           if (Debug) {
               console.log(words[0] + ' - ' + words[1] + ' - ' + words[2] + ' - ' + words[3] + ' - ' + words[4] + ' - PageId: ' + pageId);
           }
    
           if ((words[2]).substring(0, 8) == 'navigate') {
               GeneratePage(eval((words[2]).substring(9, (words[2]).length)));
               return;
           }
    
           if (words[2] == 'bNext' || words[2] == 'bPrev' || words[2] == 'bUp' || words[2] == 'bHome' || words[2] == 'bSubNext' || words[2] == 'bSubPrev' ) {
               buttonAction = words[2];
           }
    
           if (Debug) {
               console.log(buttonAction);
           }
    
           let pageNum:number = 0;
    
           if (buttonAction.startsWith('swipe')) {
               buttonAction = 'bExit';
           }
           switch (buttonAction) {
    
               case 'bUp':
                   if (pageId < 0) { // Prüfen, ob button1page oder button2page
                       pageId = 0;
                       UnsubscribeWatcher();
                       GeneratePage(config.pages[pageId]);
                   } else {
                       pageNum = (((pageId - 1) % config.pages.length) + config.pages.length) % config.pages.length;
                       pageId = pageNum;
                       UnsubscribeWatcher();
                       if (activePage != undefined && activePage.parent != undefined) {
                           //update pageID
                           for (let i = 0; i < config.pages.length; i++) {
                               if (config.pages[i] == activePage.parent) {
                                   pageId = i;
                                   break;
                               }
                           }
                           GeneratePage(activePage.parent);
                       }
                       else {
                           GeneratePage(config.pages[pageId]);
                       }
                       break;
                   }
                   break;
               case 'bNext':
                   pageNum = (((pageId + 1) % config.pages.length) + config.pages.length) % config.pages.length;
                   pageId = pageNum;
                   UnsubscribeWatcher();
                   GeneratePage(config.pages[pageId]);
                   break;
               case 'bSubNext':
                   UnsubscribeWatcher();
                   GeneratePage(eval(activePage.next));
                   break;
               case 'bPrev':
                   pageNum = (((pageId - 1) % config.pages.length) + config.pages.length) % config.pages.length;
                   pageId = pageNum;
                   UnsubscribeWatcher();
                   if (activePage != undefined && activePage.parent != undefined) {
                       //update pageID
                       for (let i = 0; i < config.pages.length; i++) {
                           if (config.pages[i] == activePage.parent) {
                               pageId = i;
                               break;
                           }
                       }
                       GeneratePage(activePage.parent);
                   }
                   else {
                       GeneratePage(config.pages[pageId]);
                   }
                   break;
               case 'bSubPrev':          
                   UnsubscribeWatcher();
                   GeneratePage(eval(activePage.prev));
                   break;
               case 'bExit':
                   if (getState(NSPanel_Path + 'Config.Screensaver.screenSaverDoubleClick').val && words[2] == 'screensaver') {
                       if (words[4] >= 2) {
                           setIfExists(NSPanel_Path + 'ScreensaverInfo.popupNotifyHeading', '');
                           setIfExists(NSPanel_Path + 'ScreensaverInfo.popupNotifyText', '');
                           if (existsObject(NSPanel_Path + 'ScreensaverInfo.bExitPage') && getState(NSPanel_Path + 'ScreensaverInfo.bExitPage').val != null) {
                               pageId = getState(NSPanel_Path + 'ScreensaverInfo.bExitPage').val;
                               activePage = config.pages[pageId];
                               GeneratePage(activePage);
                           } else {
                               GeneratePage(activePage);
                           }
                       } else {
                           setIfExists(NSPanel_Path + 'ScreensaverInfo.popupNotifyHeading', '');
                           setIfExists(NSPanel_Path + 'ScreensaverInfo.popupNotifyText', '');
                           screensaverEnabled = true;
                           break;
                       }
                   } else {
                       if (Debug) {
                           console.log('bExit: ' + words[4] + ' - ' + pageId);
                       }
                       setIfExists(NSPanel_Path + 'ScreensaverInfo.popupNotifyHeading', '');
                       setIfExists(NSPanel_Path + 'ScreensaverInfo.popupNotifyText', '');
                       if (existsObject(NSPanel_Path + 'ScreensaverInfo.bExitPage') && getState(NSPanel_Path + 'ScreensaverInfo.bExitPage').val != null) {
                           pageId = getState(NSPanel_Path + 'ScreensaverInfo.bExitPage').val
                           activePage = config.pages[pageId];
                           GeneratePage(activePage);
                       } else {
                           GeneratePage(activePage);
                       }    
                   }
                   break;
               case 'bHome':
                   if (Debug) {
                       console.log('bExit: ' + words[4] + ' - ' + pageId);
                   }
                   UnsubscribeWatcher();
                   if (activePage.home != undefined) {
                       GeneratePage(eval(activePage.home));
                   } else {
                       GeneratePage(config.pages[0]);
                   }
                   break;
               case 'notifyAction':
                   if (words[4] == 'yes') {
                       setState(popupNotifyInternalName, <iobJS.State>{ val: words[2], ack: true });
                       setState(popupNotifyAction, <iobJS.State>{ val: true, ack: true });
                   } else if (words[4] == 'no') {
                       setState(popupNotifyInternalName, <iobJS.State>{ val: words[2], ack: true });
                       setState(popupNotifyAction, <iobJS.State>{ val: false, ack: true });
                   }
    
                   setIfExists(config.panelSendTopic, 'exitPopup');
    
                   break;
               case 'OnOff':
                   if (existsObject(id)) {
                       let action = false;
                       if (words[4] == '1')
                           action = true;
                       let o = getObject(id);
                       switch (o.common.role) {
                           case 'level.mode.fan':
                           case 'socket':
                           case 'light':
                               let pageItem = findPageItem(id);	
       						if(pageItem.monobutton != undefined && pageItem.monobutton == true){	
       							triggerButton(id + ".SET");
       						}	
       						else {	
       							setIfExists(id + '.SET', action);
       						}		
       						break;
                           case 'dimmer':
                               setIfExists(id + '.ON_SET', action) ? true : setIfExists(id + '.ON_ACTUAL', action);
                               break;
                           case 'ct':
                               setIfExists(id + '.ON', action);
                               break;
                           case 'rgb':
                           case 'rgbSingle':
                           case 'hue':
                               setIfExists(id + '.ON_ACTUAL', action);
                       }
                   }
                   break;
               case 'button':
                   if (existsObject(id)) {
                       let action = false;
                       if (words[4] == '1')
                           action = true;
                       let o = getObject(id);
                       switch (o.common.role) {
                           case 'lock':
                           case 'button':
                               toggleState(id + '.SET') ? true : toggleState(id + '.ON_SET');
                               break; 
                           case 'buttonSensor':
                               if (existsObject(id + '.ACTUAL')) {
                                   toggleState(id + '.ACTUAL');
                               }
                               break;
                           case 'socket':
                           case 'light':
                               // Änderung für Monobutton	
                               let pageItem = findPageItem(id);	
       						if(pageItem.monobutton != undefined && pageItem.monobutton == true){	
       							triggerButton(id + ".SET");
       						}	
       						else {	
       							toggleState(id + ".SET") ? true : toggleState(id + ".ON_SET");
       						}	
       						break;	
                           case 'dimmer':
                               toggleState(id + '.ON_SET') ? true : toggleState(id + '.ON_ACTUAL');
                               break;
                           case 'ct':
                               toggleState(id + '.ON');
                               break;
                           case 'rgb':
                           case 'rgbSingle':
                           case 'hue': // Armilar
                               toggleState(id + '.ON_ACTUAL');
                           case 'media':
                               if (tempid[1] == 'repeat') {
                                   let pageItemRepeat = findPageItem(id);
                                   let adapterInstanceRepeat = pageItemRepeat.adapterPlayerInstance;
                                   let adapterRepeat = adapterInstanceRepeat.split('.');
                                   let deviceAdapterRP = adapterRepeat[0];
    
                                   switch (deviceAdapterRP) {
                                       case 'spotify-premium':
                                           let stateSpotifyRepeat = getState(id + '.REPEAT').val
                                           if (stateSpotifyRepeat == 'off') {
                                               setIfExists(id + '.REPEAT', 'context');
                                           } else if (stateSpotifyRepeat == 'context') {
                                               setIfExists(id + '.REPEAT', 'track');
                                           } else if (stateSpotifyRepeat == 'track') {
                                               setIfExists(id + '.REPEAT', 'off');
                                           }
                                           break;
                                       case 'alexa2':
                                           try {
                                               if (getState(id + '.REPEAT').val == 'false') {
                                                   setIfExists(id + '.REPEAT', true);
                                               } else {
                                                   setIfExists(id + '.REPEAT', false);
                                               }
                                           } catch (err) {
                                               console.log('Repeat kann nicht verändert werden');
                                           }
                                           break;
                                       case 'volumio':
                                           request({ url:`${getState(adapterInstanceRepeat+'info.host').val}/api/commands/?cmd=repeat`, headers: {'User-Agent': 'ioBroker'} }, 
                                               async (error, response, result)=>{}); /* nothing todo @ error */
                                           break;
                                   }
                               }
                       }
                   }
                   break;
               case 'up':
                   setIfExists(id + '.OPEN', true);
                   break;
               case 'stop':
                   setIfExists(id + '.STOP', true);
                   break;
               case 'down':
                   setIfExists(id + '.CLOSE', true);
                   break;
               case 'positionSlider':
                   (function () { if (timeoutSlider) { clearTimeout(timeoutSlider); timeoutSlider = null; } })();
                   timeoutSlider = setTimeout(async function () {
                       setIfExists(id + '.SET', parseInt(words[4])) ? true : setIfExists(id + '.ACTUAL', parseInt(words[4]));
                   }, 250);
                   break;
               case 'tiltOpen':
                   setIfExists(id + '.TILT_OPEN', true);
                   break;
               case 'tiltStop':
                   setIfExists(id + '.TILT_STOP', true);
                   break;
               case 'tiltClose':
                   setIfExists(id + '.TILT_CLOSE', true);
                   break;
               case 'tiltSlider':
                   (function () { if (timeoutSlider) { clearTimeout(timeoutSlider); timeoutSlider = null; } })();
                   timeoutSlider = setTimeout(async function () {
                       setIfExists(id + '.TILT_SET', parseInt(words[4])) ? true : setIfExists(id + '.TILT_ACTUAL', parseInt(words[4]));
                   }, 250);
                   break;
               case 'brightnessSlider':
                   (function () { if (timeoutSlider) { clearTimeout(timeoutSlider); timeoutSlider = null; } })();
                   timeoutSlider = setTimeout(async function () {
                       if (existsObject(id)) {
                           let o = getObject(id);
                           let pageItem = findPageItem(id);
    
                           switch (o.common.role) {
                               case 'dimmer':
                                   if (pageItem.minValueBrightness != undefined && pageItem.maxValueBrightness != undefined) {
                                       let sliderPos = Math.trunc(scale(parseInt(words[4]), 0, 100, pageItem.maxValueBrightness, pageItem.minValueBrightness));
                                       setIfExists(id + '.SET', sliderPos) ? true : setIfExists(id + '.ACTUAL', sliderPos);
                                   } else {
                                       setIfExists(id + '.SET', parseInt(words[4])) ? true : setIfExists(id + '.ACTUAL', parseInt(words[4]));
                                   }
                                   break;
                               case 'rgb':
                               case 'ct':
                               case 'rgbSingle':
                               case 'hue':
                                   if (pageItem.minValueBrightness != undefined && pageItem.maxValueBrightness != undefined) {
                                       let sliderPos = Math.trunc(scale(parseInt(words[4]), 0, 100, pageItem.maxValueBrightness, pageItem.minValueBrightness));
                                       setIfExists(id + '.DIMMER', sliderPos);
                                   } else {
                                       setIfExists(id + '.DIMMER', parseInt(words[4]));
                                   }
                                   break;
                           }
                       }
                   }, 250);
                   break;
               case 'colorTempSlider': // Armilar - Slider tickt verkehrt - Hell = 0 / Dunkel = 100 -> Korrektur
                   (function () { if (timeoutSlider) { clearTimeout(timeoutSlider); timeoutSlider = null; } })();
                   timeoutSlider = setTimeout(async function () {
                       let pageItem = findPageItem(id);
                       if (pageItem.minValueColorTemp !== undefined && pageItem.maxValueColorTemp !== undefined) {
                           let colorTempK = Math.trunc(scale(parseInt(words[4]), 0, 100, pageItem.minValueColorTemp, pageItem.maxValueColorTemp));
                           setIfExists(id + '.TEMPERATURE', (colorTempK));
                       } else {
                           setIfExists(id + '.TEMPERATURE', 100 - words[4]);
                       }
                   }, 250);
                   break;
               case 'colorWheel':
                   let colorCoordinates = words[4].split('|');
                   let rgb = pos_to_color(colorCoordinates[0], colorCoordinates[1]);
                   if (Debug) {
                       console.log(rgb);
                   }
                   if (Debug) {
                       console.log(getHue(rgb.red, rgb.green, rgb.blue));
                   }
                   let o = getObject(id);
                   switch (o.common.role) {
                       case 'hue':
                           setIfExists(id + '.HUE', getHue(rgb.red, rgb.green, rgb.blue));
                           break;
                       case 'rgb':
                           setIfExists(id + '.RED', rgb.red);
                           setIfExists(id + '.GREEN', rgb.green);
                           setIfExists(id + '.BLUE', rgb.blue);
                           break;
                       case 'rgbSingle':
                           let pageItem = findPageItem(id);
                           if (pageItem.colormode == "xy") {
                               //Für z.B. Deconz XY
                               setIfExists(id + ".RGB", rgb_to_cie(rgb.red, rgb.green, rgb.blue));
                               if (Debug) {
                                   console.log(rgb_to_cie(rgb.red, rgb.green, rgb.blue));
                               }
                           }
                           else {
                               //Für RGB
                               setIfExists(id + ".RGB", ConvertRGBtoHex(rgb.red, rgb.green, rgb.blue));
                           }
                           break;
                   }
                   break;
               case 'tempUpd':
                   setIfExists(id + '.SET', parseInt(words[4]) / 10);
                   break;
               case 'media-back':
                   setIfExists(id + '.PREV', true);
                   break;
               case 'media-pause':
                   let pageItemTemp = findPageItem(id);
                   let adaInstanceSplit = pageItemTemp.adapterPlayerInstance.split('.');
                   if (adaInstanceSplit[0] == 'squeezeboxrpc') {
                       let stateVal = getState(pageItemTemp.adapterPlayerInstance + 'state').val;
                       if (stateVal == 0) {
                           setState(pageItemTemp.adapterPlayerInstance + 'state', 1);
                       } else if (stateVal == 1) {
                           setState(pageItemTemp.adapterPlayerInstance + 'state', 0);
                       } else if (stateVal == null) {
                           setState(pageItemTemp.adapterPlayerInstance + 'state', 1);
                       }
                   } else {
                       if (getState(id + '.STATE').val === true) {
                           setIfExists(id + '.PAUSE', true);
                       } else {
                           setIfExists(id + '.PLAY', true);
                       }
                   }
                   break;
               case 'media-next':
                   setIfExists(id + '.NEXT', true);
                   break;
               case 'media-shuffle':
                   if ((findPageItem(id).adapterPlayerInstance).startsWith("volumio")) { findPageItem(id).playList = []; break; } //Volumio: empty playlist $uha-20230103
                   if (getState(id + '.SHUFFLE').val == 'off') {
                       setIfExists(id + '.SHUFFLE', 'on');
                   } else {
                       setIfExists(id + '.SHUFFLE', 'off');
                   }
                   break;
               case 'volumeSlider':
                   setIfExists(id + '.VOLUME', parseInt(words[4]))
                   break;
               case 'mode-speakerlist':
                   let pageItem = findPageItem(id);
                   let adapterInstance = pageItem.adapterPlayerInstance;
                   let adapter = adapterInstance.split('.');
                   let deviceAdapter = adapter[0];
    
                   switch (deviceAdapter) {
                       case 'spotify-premium':
                           let strDevicePI = pageItem.speakerList[words[4]];
                           let strDeviceID = spotifyGetDeviceID(strDevicePI);
                           setState(adapterInstance + 'devices.' + strDeviceID + ".useForPlayback", true);
                           break;
                       case 'alexa2':
                           let i_list = Array.prototype.slice.apply($('[state.id="' + adapterInstance + 'Echo-Devices.*.Info.name"]'));
                           for (let i_index in i_list) {
                               let i = i_list[i_index];
                               if ((getState(i).val) === pageItem.speakerList[words[4]]) {
                                   console.log(getState(i).val + ' - ' + pageItem.speakerList[words[4]]);
                                   let deviceId = i;
                                   deviceId = deviceId.split('.');
                                   setIfExists(adapterInstance + 'Echo-Devices.' + pageItem.mediaDevice + '.Commands.textCommand', 'Schiebe meine Musik auf ' + pageItem.speakerList[words[4]]);
                                   pageItem.mediaDevice = deviceId[3];
                               } 
                           }
                           break;
                       case 'sonos':
                           break;
                       case 'chromecast':
                           break;
                   }
                   break;
               case 'mode-playlist':
                   let pageItemPL = findPageItem(id);
                   let adapterInstancePL = pageItemPL.adapterPlayerInstance;
                   let adapterPL = adapterInstancePL.split('.');
                   let deviceAdapterPL = adapterPL[0];
    
                   switch (deviceAdapterPL) {
                       case 'spotify-premium':
                           let strDevicePI = pageItemPL.playList[words[4]];
                           console.log(strDevicePI);
                           let playlistListString = (getState(adapterInstancePL + 'playlists.playlistListString').val).split(';');
                           let playlistListIds = (getState(adapterInstancePL + 'playlists.playlistListIds').val).split(';');
                           let playlistIndex = playlistListString.indexOf(strDevicePI);
                           setState(adapterInstancePL + 'playlists.playlistList', playlistListIds[playlistIndex]);
                           setTimeout(async function () {
                               globalTracklist = (function () { try {return JSON.parse(getState(adapterInstancePL + 'player.playlist.trackListArray').val);} catch(e) {return {};}})();
                           }, 2000);
                           break;
                       case 'alexa2':
                           let tempListItem = pageItemPL.playList[words[4]].split('.');
                           setState(adapterInstancePL + 'Echo-Devices.' + pageItemPL.mediaDevice + '.Music-Provider.' + tempListItem[0], tempListItem[1]);
                           break;
                       case 'volumio':
                           let strDevicePL = pageItemPL.playList[words[4]];
                           request({ url:`${getState(adapterInstancePL+'info.host').val}/api/commands/?cmd=playplaylist&name=${strDevicePL}`, headers: {'User-Agent': 'ioBroker'} }, 
                                     async (error, response, result)=>{}); /* nothing todo @ error */
                           break;
                   }
                   break;
               case 'mode-tracklist':
                   let pageItemTL = findPageItem(id);
                   let adapterInstanceTL = pageItemTL.adapterPlayerInstance;
                   let adapterTL = adapterInstanceTL.split('.')
                   let deviceAdapterTL = adapterTL[0];
    
                   switch (deviceAdapterTL) {
                       case 'spotify-premium':
                           let trackArray = (function () { try {return JSON.parse(getState(pageItemTL.adapterPlayerInstance + 'player.playlist.trackListArray').val);} catch(e) {return {};}})();
                           setState(adapterInstanceTL + 'player.trackId', getAttr(trackArray, words[4] + '.id'));
                           break;
                       case 'alexa2':
                           if (Debug) console.log('Aktuell hat alexa2 keine Tracklist');
                           break;
                       case 'volumio':
                           request({ url:`${getState(adapterInstanceTL+'info.host').val}/api/commands/?cmd=play&N=${words[4]}`, headers: {'User-Agent': 'ioBroker'} }, 
                               async (error, response, result)=>{}); /* nothing todo @ error */
                           break;
                   }
                   break;
               case 'mode-repeat':
                   let pageItemRP = findPageItem(id);
                   let adapterInstanceRP = pageItemRP.adapterPlayerInstance;
                   let adapterRP = adapterInstanceRP.split('.');
                   let deviceAdapterRP = adapterRP[0];
    
                   switch (deviceAdapterRP) {
                       case 'spotify-premium':
                           setIfExists(id + '.REPEAT', pageItemRP.repeatList[words[4]]);
                           break;
                       case 'alexa2':
                           break;
                   }
                   break;
               case 'mode-equalizer':
                   let pageItemEQ = findPageItem(id);
                   if (Debug) console.log(id);
                   let lastIndex = (id.split('.')).pop();
                   setState(NSPanel_Path + 'Media.Player.' + lastIndex + '.EQ.activeMode', pageItemEQ.equalizerList[words[4]]);
                   setTimeout(async function () {
                       GenerateDetailPage('popupInSel','equalizer', pageItemEQ);
                   }, 2000);
                   break;
               case 'mode-insel':
                   setIfExists(id + '.VALUE', parseInt(words[4]));
                   break;
               case 'media-OnOff':
                   let pageItemTem = findPageItem(id);
                   let adaInstanceSpli = pageItemTem.adapterPlayerInstance.split('.');
                   if (adaInstanceSpli[0] == 'squeezeboxrpc') {
                       let stateVal = getState(pageItemTem.adapterPlayerInstance + 'Power').val;
                       if (stateVal === 0) {
                           setState(pageItemTem.adapterPlayerInstance + 'Power', 1);
                           setIfExists(id + '.STOP', false);
                           setIfExists(id + '.STATE', 1);
                       } else {
                           setState(pageItemTem.adapterPlayerInstance + 'Power', 0);
                           setIfExists(id + '.STOP', true);
                           setIfExists(id + '.STATE', 0);
                       }
                   } else {
                       setIfExists(id + '.STOP', true);
                   }
                   break;
               case 'timer-start':
                   if (words[4] != undefined) {
                       let timer_panel = words[4].split(':');
                       setIfExists(id + '.ACTUAL', (parseInt(timer_panel[1]) * 60) + parseInt(timer_panel[2]));
                   }
                   setIfExists(id + '.STATE', 'active');
                   break;
               case 'timer-pause':
                   setIfExists(id + '.STATE', 'paused');
                   break;
               case 'timer-cancle':
                   setIfExists(id + '.STATE', 'idle');
                   setIfExists(id + '.ACTUAL', 0);
                   break;
               case 'timer-finish':
                   setIfExists(id + '.STATE', 'idle');
                   setIfExists(id + '.ACTUAL', 0);
                   break;
               case 'hvac_action':
                   if (words[4] == 'BOOT' || words[4] == 'PART' || words[4] == 'AUTT' || words[4] == 'MANT' || words[4] == 'VACT') {
    
                       switch (words[4]) {
                           case 'BOOT':
                               setIfExists(words[2] + '.' + 'BOOST', !getState(words[2] + '.' + 'BOOST').val);
                               break;
                           case 'PART':
                               setIfExists(words[2] + '.' + 'PARTY', !getState(words[2] + '.' + 'PARTY').val);
                               break;
                           case 'AUTT':
                               setIfExists(words[2] + '.' + 'AUTOMATIC', !getState(words[2] + '.' + 'AUTOMATIC').val);
                               break;
                           case 'MANT':
                               setIfExists(words[2] + '.' + 'MANUAL', !getState(words[2] + '.' + 'MANUAL').val);
                               break;
                           case 'VACT':
                               setIfExists(words[2] + '.' + 'VACATION', !getState(words[2] + '.' + 'VACATION').val);
                               break;
                       }
                       let modes = ['BOOT', 'PART', 'AUTT', 'MANT', 'VACT'];
                       let modesDP = ['BOOST', 'PARTY', 'AUTOMATIC', 'MANUAL', 'VACATION'];
                       for (let mode=0; mode < 5; mode++) {
                           if (words[4] != modes[mode]) {
                               setIfExists(words[2] + '.' + modesDP[mode], false);
                           }
                       }
                       GeneratePage(config.pages[pageId]);
                   } else {
                       let HVACMode = 0;
                       switch (words[4]) {
                           case 'POWER':
                               HVACMode = 0;
                               setIfExists(words[2] + '.' + words[4], !getState(words[2] + '.' + words[4]).val);
                               if (getState(words[2] + '.' + words[4]).val) {
                                   HVACMode = 1;
                               }
                               break;
                           case 'AUTO':
                               HVACMode = 1;
                               break;
                           case 'COOL':
                               HVACMode = 2;
                               break;
                           case 'HEAT':
                               HVACMode = 3;
                               break;
                           case 'ECO':
                               HVACMode = 4;
                               break;
                           case 'FAN':
                               HVACMode = 5;
                               break;
                           case 'DRY':
                               HVACMode = 6;
                               break;
                           case 'SWING':
                               HVACMode = getState(words[2] + '.MODE').val;
                               if (getState(words[2] + '.SWING').val == 0) {
                                   setIfExists(words[2] + '.SWING', 1);
                               } else {
                                   setIfExists(words[2] + '.' + 'SWING', 0);
                               }
                               break;
                       }
                       setIfExists(words[2] + '.' + 'MODE', HVACMode);
                       GeneratePage(config.pages[pageId]);
                   }
                   break;
               case 'mode-modus1':
                   let pageItemT1 = findPageItem(id);
                   setIfExists(id + '.' + pageItemT1.setThermoAlias[0], pageItemT1.popupThermoMode1[parseInt(words[4])]);
                   break;
               case 'mode-modus2':
                   let pageItemT2 = findPageItem(id);
                   setIfExists(id + '.' + pageItemT2.setThermoAlias[1], pageItemT2.popupThermoMode2[parseInt(words[4])]);
                   break;
               case 'mode-modus3':
                   let pageItemT3 = findPageItem(id);
                   setIfExists(id + '.' + pageItemT3.setThermoAlias[2], pageItemT3.popupThermoMode3[parseInt(words[4])]);
                   break;
               case 'number-set':
                   let nobj = getObject(id);
                   switch (nobj.common.role) {
                       case 'level.mode.fan':
                           (function () { if (timeoutSlider) { clearTimeout(timeoutSlider); timeoutSlider = null; } })();
                           timeoutSlider = setTimeout(async function () {
                               setIfExists(id + '.SPEED', parseInt(words[4]));
                           }, 250);
                           break;
                       default:    
                           (function () { if (timeoutSlider) { clearTimeout(timeoutSlider); timeoutSlider = null; } })();
                           timeoutSlider = setTimeout(async function () {
                               setIfExists(id + '.SET', parseInt(words[4])) ? true : setIfExists(id + '.ACTUAL', parseInt(words[4]));
                           }, 250);
                           break;
                   }
                   break;
               case 'mode-preset_modes':
                   setIfExists(id + '.MODE', parseInt(words[4]));
                   break; 
               case 'A1': // Alarm-Page Alarm 1 aktivieren
                   if (words[4] != '') {
                       setIfExists(id + '.TYPE', 'A1');
                       setIfExists(id + '.PIN', words[4]);
                       setIfExists(id + '.ACTUAL', 'arming');
                       setIfExists(id + '.PANEL', NSPanel_Path);
                   }
                   setTimeout(function(){
                       GeneratePage(activePage);
                   },250);
                   break;
               case 'A2': // Alarm-Page Alarm 2 aktivieren
                   if (words[4] != '') {
                       setIfExists(id + '.TYPE', 'A2');
                       setIfExists(id + '.PIN', words[4]);
                       setIfExists(id + '.ACTUAL', 'arming');
                       setIfExists(id + '.PANEL', NSPanel_Path);
                   }
                   setTimeout(function(){
                       GeneratePage(activePage);
                   },250);
                   break;
               case 'A3': // Alarm-Page Alarm 3 aktivieren
                   if (words[4] != '') {
                       setIfExists(id + '.TYPE', 'A3');
                       setIfExists(id + '.PIN', words[4]);
                       setIfExists(id + '.ACTUAL', 'arming');
                       setIfExists(id + '.PANEL', NSPanel_Path);
                   }
                   setTimeout(function(){
                       GeneratePage(activePage);
                   },250);
                   break;
               case 'A4': // Alarm-Page Alarm 4 aktivieren
                   if (words[4] != '') {
                       setIfExists(id + '.TYPE', 'A4');
                       setIfExists(id + '.PIN', words[4]);
                       setIfExists(id + '.ACTUAL', 'arming');
                       setIfExists(id + '.PANEL', NSPanel_Path);
                   }
                   setTimeout(function(){
                       GeneratePage(activePage);
                   },250);
                   break;
               case 'D1': // Alarm-Page Alarm Deaktivieren
                   if (Debug) {
                       console.log('D1: ' + getState(id + '.PIN').val);
                   }
                   if (Debug) {
                       console.log(words[4]);
                   }
                   if (words[4] != '') {
                       if (getState(id + '.PIN').val == words[4]) {
                           setIfExists(id + '.PIN', '0000');
                           setIfExists(id + '.TYPE', 'D1');
                           setIfExists(id + '.ACTUAL', 'pending');
                           setIfExists(id + '.PIN_Failed', 0);
                       } else {
                           setIfExists(id + '.PIN_Failed', getState(id + '.PIN_Failed').val + 1);
                           setIfExists(id + '.ACTUAL', 'triggered');
                       }
                       setIfExists(id + '.PANEL', NSPanel_Path);
                       setTimeout(function(){
                           GeneratePage(activePage);
                       },500);
                   }
                   break;
               default:
                   break;
           }
       } catch (err) {
           console.log('function HandleButtonEvent: ' + err.message);
       }
    }
    

    EDIT: Hotfix ist jetzt auch auf Github verfügbar v3.9.0.2

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

    @tt-tom @wendy2702

    Es gab tatsächlich 2 Lücken, die den Screensaver zum anhalten gebracht haben.

    1. Unbekannte Befehle, die in der HMI ausgelöst wurden, jedoch im Script nicht behandelt wurden
    2. Ein Event hat den Screensaver angehalten, für den Fall, das eine Notify aufgeschaltet wird und die Screensaver-Updates die Notify nicht überschreiben. Das passiert auch immer noch, jedoch wird das bei einem einfachen Druck auf den Screensaver jetzt verhindert.

    Sollte jetzt funktionieren...

    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.

    wendy2702W 1 Antwort Letzte Antwort
    0
    • ArmilarA Armilar

      @tt-tom @wendy2702

      Es gab tatsächlich 2 Lücken, die den Screensaver zum anhalten gebracht haben.

      1. Unbekannte Befehle, die in der HMI ausgelöst wurden, jedoch im Script nicht behandelt wurden
      2. Ein Event hat den Screensaver angehalten, für den Fall, das eine Notify aufgeschaltet wird und die Screensaver-Updates die Notify nicht überschreiben. Das passiert auch immer noch, jedoch wird das bei einem einfachen Druck auf den Screensaver jetzt verhindert.

      Sollte jetzt funktionieren...

      wendy2702W Online
      wendy2702W Online
      wendy2702
      schrieb am zuletzt editiert von wendy2702
      #2063

      @armilar @TT-Tom

      Danke.

      Werde ich morgen testen

      EDIT: Der Hotfix funktioniert. Danke für die schnelle Lösung

      Bitte keine Fragen per PN, die gehören ins Forum!

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

      1 Antwort Letzte Antwort
      0
      • D Offline
        D Offline
        Dieter Kurz
        schrieb am zuletzt editiert von
        #2064

        Hallo zusammen,
        ich habe ein Panel mit 3.6.0 erfolgreich am laufen, zumindest mit dem was ich brauche ;-)
        Nun habe ich ein zweites Panel und möchte dies mit der aktuellen Version installieren.
        Können dann beide parallel betrieben werden, oder bringt das alles durcheinander?
        Welche Vorgehensweise würdet ihr mir empfehlen?
        Freue mich auf Tipps und Anregungen ....

        Dieter

        ArmilarA T 2 Antworten Letzte Antwort
        0
        • D Dieter Kurz

          Hallo zusammen,
          ich habe ein Panel mit 3.6.0 erfolgreich am laufen, zumindest mit dem was ich brauche ;-)
          Nun habe ich ein zweites Panel und möchte dies mit der aktuellen Version installieren.
          Können dann beide parallel betrieben werden, oder bringt das alles durcheinander?
          Welche Vorgehensweise würdet ihr mir empfehlen?
          Freue mich auf Tipps und Anregungen ....

          Dieter

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

          @dieter-kurz

          Im Script gibt es einen Pfad für jedes Panel:

          const NSPanel_Path = '0_userdata.0.NSPanel.2.'; // Anpassen an das jeweilige NSPanel

          Die MQTT-Parameter müssen natürlich auch auf das neue Panel angepasst werden.

          panelRecvTopic: 'mqtt.0.SmartHome.NSPanel_2.tele.RESULT',       // anpassen
          panelSendTopic: 'mqtt.0.SmartHome.NSPanel_2.cmnd.CustomSend',   // anpassen
          

          Das wäre alles...

          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
          • D Dieter Kurz

            Hallo zusammen,
            ich habe ein Panel mit 3.6.0 erfolgreich am laufen, zumindest mit dem was ich brauche ;-)
            Nun habe ich ein zweites Panel und möchte dies mit der aktuellen Version installieren.
            Können dann beide parallel betrieben werden, oder bringt das alles durcheinander?
            Welche Vorgehensweise würdet ihr mir empfehlen?
            Freue mich auf Tipps und Anregungen ....

            Dieter

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

            @dieter-kurz

            Es gibt schon Unterschiede bei den Parameter zwischen 3.6.0 und 3.9.0. im Script.

            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

            1 Antwort Letzte Antwort
            0
            • D Offline
              D Offline
              Dieter Kurz
              schrieb am zuletzt editiert von
              #2067

              Danke für die Info, läuft so weit mit einer cardEntities Licht1 und Sonos, hab aber jede Menge Warnhinweise
              Und noch eine Frage, wir haben insgesamt 4 Sonos Play1 am laufen und ich würde wenigstens zwei davon integrieren, geht das?

              ArmilarA 1 Antwort Letzte Antwort
              0
              • D Dieter Kurz

                Danke für die Info, läuft so weit mit einer cardEntities Licht1 und Sonos, hab aber jede Menge Warnhinweise
                Und noch eine Frage, wir haben insgesamt 4 Sonos Play1 am laufen und ich würde wenigstens zwei davon integrieren, geht das?

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

                @dieter-kurz

                sofern diese im Sonosadapter eine IP haben, ja

                Zu den Warnungen im Log kann ich erst etwas sagen, wenn du es sendest ;-)

                Kleiner Hinweis, in den MRIcons (Script-Config) sind auch Relays mit MQTT-Parametern

                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
                • GarganoG Offline
                  GarganoG Offline
                  Gargano
                  schrieb am zuletzt editiert von
                  #2069

                  @Armilar
                  Johannes hat freundlicherweise meine Anregung für einen alternativen Screensaver mit mehr Infos umgesetzt.
                  Machst Du da noch die Erweiterungen im NSPanelsTS.ts für IObroker ?

                  VG Werner

                  ArmilarA 1 Antwort Letzte Antwort
                  0
                  • ArmilarA Armilar

                    @dieter-kurz

                    sofern diese im Sonosadapter eine IP haben, ja

                    Zu den Warnungen im Log kann ich erst etwas sagen, wenn du es sendest ;-)

                    Kleiner Hinweis, in den MRIcons (Script-Config) sind auch Relays mit MQTT-Parametern

                    D Offline
                    D Offline
                    Dieter Kurz
                    schrieb am zuletzt editiert von
                    #2070

                    @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                    @dieter-kurz

                    sofern diese im Sonosadapter eine IP haben, ja

                    Zu den Warnungen im Log kann ich erst etwas sagen, wenn du es sendest ;-)

                    Kleiner Hinweis, in den MRIcons (Script-Config) sind auch Relays mit MQTT-Parametern

                    Hier mein Log

                    2023-02-04 15:56:00.476 - info: javascript.0 (327597) Stop script script.js.NSPanels.NSPanel_1_3_9_0
                    2023-02-04 15:56:00.579 - info: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: compiling TypeScript source...
                    2023-02-04 15:56:01.888 - info: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: source code did not change, using cached compilation result...
                    2023-02-04 15:56:02.006 - info: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: Wetter-Alias für accuweather.0. existiert bereits
                    2023-02-04 15:56:02.097 - warn: javascript.0 (327597) getState "mqtt.0.SmartHome.tele.NSPanel_1.INFO2" not found (3)
                    2023-02-04 15:56:02.101 - warn: javascript.0 (327597) at get_current_tasmota_ip_address (script.js.NSPanels.NSPanel_1_3_9_0:2792:34)
                    2023-02-04 15:56:02.101 - warn: javascript.0 (327597) at get_tasmota_status0 (script.js.NSPanels.NSPanel_1_3_9_0:2899:42)
                    2023-02-04 15:56:02.101 - warn: javascript.0 (327597) at script.js.NSPanels.NSPanel_1_3_9_0:2480:1
                    2023-02-04 15:56:02.101 - warn: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: function get_current_tasmota_ip_address: Cannot read properties of null (reading 'Info2')
                    2023-02-04 15:56:02.105 - warn: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: function check_updates: Cannot read properties of null (reading 'split')
                    2023-02-04 15:56:02.106 - info: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: registered 31 subscriptions, 7 schedules, 0 messages, 0 logs and 0 file subscriptions
                    2023-02-04 15:56:02.137 - error: javascript.0 (327597) Request error: Error: getaddrinfo ENOTFOUND undefined
                    2023-02-04 15:56:02.514 - info: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: Desired TFT Firmware: 49 / v3.9.0
                    2023-02-04 15:56:02.515 - info: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: Installed TFT Firmware: 49 / v3.9.0
                    2023-02-04 15:56:02.602 - warn: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: get_tasmota_status0Unexpected token u in JSON at position 0
                    2023-02-04 15:56:02.632 - warn: javascript.0 (327597) getState "mqtt.0.SmartHome.tele.NSPanel_1.INFO2" not found (3)
                    2023-02-04 15:56:02.633 - warn: javascript.0 (327597) at get_current_tasmota_ip_address (script.js.NSPanels.NSPanel_1_3_9_0:2792:34)
                    2023-02-04 15:56:02.634 - warn: javascript.0 (327597) at script.js.NSPanels.NSPanel_1_3_9_0:2764:99
                    2023-02-04 15:56:02.634 - warn: javascript.0 (327597) at step (script.js.NSPanels.NSPanel_1_3_9_0:33:23)
                    2023-02-04 15:56:02.635 - warn: javascript.0 (327597) at Object.next (script.js.NSPanels.NSPanel_1_3_9_0:14:53)
                    2023-02-04 15:56:02.636 - warn: javascript.0 (327597) at fulfilled (script.js.NSPanels.NSPanel_1_3_9_0:5:58)
                    2023-02-04 15:56:02.636 - warn: javascript.0 (327597) at runMicrotasks ()
                    2023-02-04 15:56:02.636 - warn: javascript.0 (327597) at runNextTicks (node:internal/process/task_queues:61:5)
                    2023-02-04 15:56:02.637 - warn: javascript.0 (327597) at processImmediate (node:internal/timers:437:9)
                    2023-02-04 15:56:02.637 - warn: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: function get_current_tasmota_ip_address: Cannot read properties of null (reading 'Info2')
                    2023-02-04 15:56:02.756 - info: javascript.0 (327597) State value to set for "0_userdata.0.NSPanel.NSPanel_1.NSPanel_ipAddress" has to be type "string" but received type "object"
                    2023-02-04 15:56:03.065 - warn: javascript.0 (327597) getState "mqtt.0.SmartHome.tele.NSPanel_1.INFO2" not found (3)
                    2023-02-04 15:56:03.066 - warn: javascript.0 (327597) at get_current_tasmota_ip_address (script.js.NSPanels.NSPanel_1_3_9_0:2792:34)
                    2023-02-04 15:56:03.067 - warn: javascript.0 (327597) at get_current_berry_driver_version (script.js.NSPanels.NSPanel_1_3_9_0:2852:42)
                    2023-02-04 15:56:03.067 - warn: javascript.0 (327597) at script.js.NSPanels.NSPanel_1_3_9_0:2775:21
                    2023-02-04 15:56:03.067 - warn: javascript.0 (327597) at step (script.js.NSPanels.NSPanel_1_3_9_0:33:23)
                    2023-02-04 15:56:03.067 - warn: javascript.0 (327597) at Object.next (script.js.NSPanels.NSPanel_1_3_9_0:14:53)
                    2023-02-04 15:56:03.067 - warn: javascript.0 (327597) at fulfilled (script.js.NSPanels.NSPanel_1_3_9_0:5:58)
                    2023-02-04 15:56:03.067 - warn: javascript.0 (327597) at runMicrotasks ()
                    2023-02-04 15:56:03.067 - warn: javascript.0 (327597) at processTicksAndRejections (node:internal/process/task_queues:96:5)
                    2023-02-04 15:56:03.068 - warn: javascript.0 (327597) at runNextTicks (node:internal/process/task_queues:65:3)
                    2023-02-04 15:56:03.068 - warn: javascript.0 (327597) at processImmediate (node:internal/timers:437:9)
                    2023-02-04 15:56:03.068 - warn: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: function get_current_tasmota_ip_address: Cannot read properties of null (reading 'Info2')
                    2023-02-04 15:56:03.094 - error: javascript.0 (327597) Request error: Error: getaddrinfo ENOTFOUND undefined
                    2023-02-04 15:56:03.101 - warn: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: get_current_berry_driver_version: Unexpected token u in JSON at position 0
                    
                    
                    T 1 Antwort Letzte Antwort
                    0
                    • D Dieter Kurz

                      @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                      @dieter-kurz

                      sofern diese im Sonosadapter eine IP haben, ja

                      Zu den Warnungen im Log kann ich erst etwas sagen, wenn du es sendest ;-)

                      Kleiner Hinweis, in den MRIcons (Script-Config) sind auch Relays mit MQTT-Parametern

                      Hier mein Log

                      2023-02-04 15:56:00.476 - info: javascript.0 (327597) Stop script script.js.NSPanels.NSPanel_1_3_9_0
                      2023-02-04 15:56:00.579 - info: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: compiling TypeScript source...
                      2023-02-04 15:56:01.888 - info: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: source code did not change, using cached compilation result...
                      2023-02-04 15:56:02.006 - info: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: Wetter-Alias für accuweather.0. existiert bereits
                      2023-02-04 15:56:02.097 - warn: javascript.0 (327597) getState "mqtt.0.SmartHome.tele.NSPanel_1.INFO2" not found (3)
                      2023-02-04 15:56:02.101 - warn: javascript.0 (327597) at get_current_tasmota_ip_address (script.js.NSPanels.NSPanel_1_3_9_0:2792:34)
                      2023-02-04 15:56:02.101 - warn: javascript.0 (327597) at get_tasmota_status0 (script.js.NSPanels.NSPanel_1_3_9_0:2899:42)
                      2023-02-04 15:56:02.101 - warn: javascript.0 (327597) at script.js.NSPanels.NSPanel_1_3_9_0:2480:1
                      2023-02-04 15:56:02.101 - warn: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: function get_current_tasmota_ip_address: Cannot read properties of null (reading 'Info2')
                      2023-02-04 15:56:02.105 - warn: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: function check_updates: Cannot read properties of null (reading 'split')
                      2023-02-04 15:56:02.106 - info: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: registered 31 subscriptions, 7 schedules, 0 messages, 0 logs and 0 file subscriptions
                      2023-02-04 15:56:02.137 - error: javascript.0 (327597) Request error: Error: getaddrinfo ENOTFOUND undefined
                      2023-02-04 15:56:02.514 - info: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: Desired TFT Firmware: 49 / v3.9.0
                      2023-02-04 15:56:02.515 - info: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: Installed TFT Firmware: 49 / v3.9.0
                      2023-02-04 15:56:02.602 - warn: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: get_tasmota_status0Unexpected token u in JSON at position 0
                      2023-02-04 15:56:02.632 - warn: javascript.0 (327597) getState "mqtt.0.SmartHome.tele.NSPanel_1.INFO2" not found (3)
                      2023-02-04 15:56:02.633 - warn: javascript.0 (327597) at get_current_tasmota_ip_address (script.js.NSPanels.NSPanel_1_3_9_0:2792:34)
                      2023-02-04 15:56:02.634 - warn: javascript.0 (327597) at script.js.NSPanels.NSPanel_1_3_9_0:2764:99
                      2023-02-04 15:56:02.634 - warn: javascript.0 (327597) at step (script.js.NSPanels.NSPanel_1_3_9_0:33:23)
                      2023-02-04 15:56:02.635 - warn: javascript.0 (327597) at Object.next (script.js.NSPanels.NSPanel_1_3_9_0:14:53)
                      2023-02-04 15:56:02.636 - warn: javascript.0 (327597) at fulfilled (script.js.NSPanels.NSPanel_1_3_9_0:5:58)
                      2023-02-04 15:56:02.636 - warn: javascript.0 (327597) at runMicrotasks ()
                      2023-02-04 15:56:02.636 - warn: javascript.0 (327597) at runNextTicks (node:internal/process/task_queues:61:5)
                      2023-02-04 15:56:02.637 - warn: javascript.0 (327597) at processImmediate (node:internal/timers:437:9)
                      2023-02-04 15:56:02.637 - warn: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: function get_current_tasmota_ip_address: Cannot read properties of null (reading 'Info2')
                      2023-02-04 15:56:02.756 - info: javascript.0 (327597) State value to set for "0_userdata.0.NSPanel.NSPanel_1.NSPanel_ipAddress" has to be type "string" but received type "object"
                      2023-02-04 15:56:03.065 - warn: javascript.0 (327597) getState "mqtt.0.SmartHome.tele.NSPanel_1.INFO2" not found (3)
                      2023-02-04 15:56:03.066 - warn: javascript.0 (327597) at get_current_tasmota_ip_address (script.js.NSPanels.NSPanel_1_3_9_0:2792:34)
                      2023-02-04 15:56:03.067 - warn: javascript.0 (327597) at get_current_berry_driver_version (script.js.NSPanels.NSPanel_1_3_9_0:2852:42)
                      2023-02-04 15:56:03.067 - warn: javascript.0 (327597) at script.js.NSPanels.NSPanel_1_3_9_0:2775:21
                      2023-02-04 15:56:03.067 - warn: javascript.0 (327597) at step (script.js.NSPanels.NSPanel_1_3_9_0:33:23)
                      2023-02-04 15:56:03.067 - warn: javascript.0 (327597) at Object.next (script.js.NSPanels.NSPanel_1_3_9_0:14:53)
                      2023-02-04 15:56:03.067 - warn: javascript.0 (327597) at fulfilled (script.js.NSPanels.NSPanel_1_3_9_0:5:58)
                      2023-02-04 15:56:03.067 - warn: javascript.0 (327597) at runMicrotasks ()
                      2023-02-04 15:56:03.067 - warn: javascript.0 (327597) at processTicksAndRejections (node:internal/process/task_queues:96:5)
                      2023-02-04 15:56:03.068 - warn: javascript.0 (327597) at runNextTicks (node:internal/process/task_queues:65:3)
                      2023-02-04 15:56:03.068 - warn: javascript.0 (327597) at processImmediate (node:internal/timers:437:9)
                      2023-02-04 15:56:03.068 - warn: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: function get_current_tasmota_ip_address: Cannot read properties of null (reading 'Info2')
                      2023-02-04 15:56:03.094 - error: javascript.0 (327597) Request error: Error: getaddrinfo ENOTFOUND undefined
                      2023-02-04 15:56:03.101 - warn: javascript.0 (327597) script.js.NSPanels.NSPanel_1_3_9_0: get_current_berry_driver_version: Unexpected token u in JSON at position 0
                      
                      
                      T Offline
                      T Offline
                      TT-Tom
                      schrieb am zuletzt editiert von TT-Tom
                      #2071

                      @dieter-kurz

                      Du hast noch Fehler in der Config. Der MQTT Pfad stimmt eventuell nicht. Welche Version vom Script nutz du den jetzt für das Panel. Zeige bitte mal auch den Teil der Config aus dem Script. We.che Tasmota Version läuft auf dem Panel?

                      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

                      D 1 Antwort Letzte Antwort
                      0
                      • T TT-Tom

                        @dieter-kurz

                        Du hast noch Fehler in der Config. Der MQTT Pfad stimmt eventuell nicht. Welche Version vom Script nutz du den jetzt für das Panel. Zeige bitte mal auch den Teil der Config aus dem Script. We.che Tasmota Version läuft auf dem Panel?

                        D Offline
                        D Offline
                        Dieter Kurz
                        schrieb am zuletzt editiert von
                        #2072

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

                        @dieter-kurz

                        Du hast noch Fehler in der Config. Den MQTT Pfad stimmt nicht. Welche Version vom Script nutz du den jetzt für das Panel. Zeige bitte mal auch den Teil der Config aus dem Script

                        Erstmal DANKE für Deine Hilfe!
                        Hier meine Config:

                        export const config: Config = {
                        panelRecvTopic: 'mqtt.0.SmartHome.tele.NSPanel_1.RESULT', // Bitte anpassen
                        panelSendTopic: 'mqtt.0.SmartHome.cmnd.NSPanel_1.CustomSend', // Bitte anpassen

                        // 4 kleine Icons im Screensaver
                        // Mit 3.9.0 neue Parameter - Bitte anpassen - siehe auch Wiki
                        firstScreensaverEntity:   { ScreensaverEntity: 'accuweather.0.Hourly.h0.PrecipitationProbability',
                                                    ScreensaverEntityFactor: 1,                                 //New
                                                    ScreensaverEntityDecimalPlaces: 0,                          //New 
                                                    ScreensaverEntityIcon: 'weather-pouring', 
                                                    ScreensaverEntityText: 'Regen', 
                                                    ScreensaverEntityUnitText: '%', 
                                                    ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100} 
                                                  },
                        secondScreensaverEntity:  { ScreensaverEntity: 'parser.0.windSpeed', 
                                                    ScreensaverEntityFactor: (1000/1000),                       //New
                                                    ScreensaverEntityDecimalPlaces: 1,                          //New 
                                                    ScreensaverEntityIcon: 'weather-windy', 
                                                    ScreensaverEntityText: "Wind", 
                                                    ScreensaverEntityUnitText: 'km/h', 
                                                    ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 120} 
                                                  },
                        thirdScreensaverEntity:   { ScreensaverEntity: 'hm-rpc.0.LEQ0227831.1.TEMPERATURE',
                                                    ScreensaverEntityFactor: 1,                                 //New
                                                    ScreensaverEntityDecimalPlaces: 0,                          //New  
                                                    ScreensaverEntityIcon: 'home-thermometer-outline', 
                                                    ScreensaverEntityText: 'Innen', 
                                                    ScreensaverEntityUnitText: '°C', 
                                                    ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 40, 'val_best': 22 } 
                                                  },
                        fourthScreensaverEntity:  { ScreensaverEntity: 'parser.0.outHumidity', 
                                                    ScreensaverEntityFactor: 1,                                 //New
                                                    ScreensaverEntityDecimalPlaces: 0,                          //New 
                                                    ScreensaverEntityIcon: 'water-percent', 
                                                    ScreensaverEntityText: 'Luft', 
                                                    ScreensaverEntityUnitText: '%', 
                                                    ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100, 'val_best': 65} 
                                                  },
                        
                        // Indikator Icons im oberen Teil des Screensavers
                        // Mit 3.9.0 neue Parameter - Bitte anpassen - siehe auch Wiki
                        mrIcon1ScreensaverEntity: { ScreensaverEntity: 'mqtt.0.SmartHome.stat.NSPanel_1.POWER1', 
                                                    ScreensaverEntityIconOn: 'lightbulb',                           //Rename
                                                    ScreensaverEntityIconOff: null, 
                                                    ScreensaverEntityValue: null,                                   //New
                                                    ScreensaverEntityValueDecimalPlace : 0,                         //New
                                                    ScreensaverEntityValueUnit: null,                               //New
                                                    ScreensaverEntityOnColor: On, 
                                                    ScreensaverEntityOffColor: HMIOff },
                        mrIcon2ScreensaverEntity: { ScreensaverEntity: 'mqtt.0.SmartHome.stat.NSPanel_1.POWER2', 
                                                    ScreensaverEntityIconOn: 'heat-wave',
                                                    ScreensaverEntityIconOff: null, 
                                                    ScreensaverEntityValue: NSPanel_Path + 'Sensor.ANALOG.Temperature',
                                                    ScreensaverEntityValueDecimalPlace : 1,
                                                    ScreensaverEntityValueUnit: '°', 
                                                    ScreensaverEntityOnColor: MSRed, 
                                                    ScreensaverEntityOffColor: Yellow },
                        
                        weatherEntity: 'alias.0.Wetter.Pliezhausen',    // Dieser Alias wird automatisch für den gewählten Wetter erstellt und kann entsprechend angepasst werden
                        defaultOffColor: Off,               // Default-Farbe für Off-Zustände
                        defaultOnColor: On,                 // Default-Farbe für On-Zustände
                        defaultColor: Off,
                        defaultBackgroundColor: HMIDark,    // Default-Hintergrundfarbe HMIDark oder Black
                        
                        // Mit 3.9.0 in Datenpunkte verschoben. Auch über Service Pages konfigurierbar
                            //alternativeScreensaverLayout: false,
                            //autoWeatherColorScreensaverLayout: true,
                            //timeoutScreensaver: 10,
                            //screenSaverDoubleClick: true,
                            //temperatureUnit: '°C',
                            //locale: 'de-DE',                    
                        
                        pages: [
                        
                                Licht1,
                                Sonos,
                                NSPanel_Service         //Auto-Alias Service Page
                                
                        ],
                        subPages: [
                                    
                                    NSPanel_Infos,                          //Auto-Alias Service Page
                                        NSPanel_Wifi_Info_1,                //Auto-Alias Service Page
                                        NSPanel_Wifi_Info_2,                //Auto-Alias Service Page
                                        NSPanel_Sensoren,                   //Auto-Alias Service Page
                                        NSPanel_Hardware,                   //Auto-Alias Service Page
                                    NSPanel_Einstellungen,                  //Auto-Alias Service Page
                                        NSPanel_Screensaver,                //Auto-Alias Service Page
                                            NSPanel_ScreensaverDimmode,     //Auto-Alias Service Page
                                            NSPanel_ScreensaverOther,       //Auto-Alias Service Page
                                            NSPanel_Weather,                //Auto-Alias Service Page
                                            NSPanel_Dateformat,             //Auto-Alias Service Page
                                            NSPanel_Indicators,             //Auto-Alias Service Page
                                            NSPanel_Relays,                 //Auto-Alias Service Page
                                    NSPanel_Firmware,                       //Auto-Alias Service Page
                                        NSPanel_FirmwareTasmota,            //Auto-Alias Service Page
                                        NSPanel_FirmwareBerry,              //Auto-Alias Service Page
                                        NSPanel_FirmwareNextion,            //Auto-Alias Service Page
                        ],
                        button1Page: null,   //Beispiel-Seite auf Button 1, wenn Rule2 definiert - Wenn nicht definiert --> button1Page: null, 
                        button2Page: null    //Beispiel-Seite auf Button 2, wenn Rule2 definiert - Wenn nicht definiert --> button1Page: null,
                        

                        };

                        :

                        T ArmilarA 2 Antworten Letzte Antwort
                        0
                        • GarganoG Gargano

                          @Armilar
                          Johannes hat freundlicherweise meine Anregung für einen alternativen Screensaver mit mehr Infos umgesetzt.
                          Machst Du da noch die Erweiterungen im NSPanelsTS.ts für IObroker ?

                          VG Werner

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

                          @gargano

                          ist schon fertig... kommt mit der 4.0.0

                          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.

                          GarganoG 1 Antwort Letzte Antwort
                          0
                          • D Dieter Kurz

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

                            @dieter-kurz

                            Du hast noch Fehler in der Config. Den MQTT Pfad stimmt nicht. Welche Version vom Script nutz du den jetzt für das Panel. Zeige bitte mal auch den Teil der Config aus dem Script

                            Erstmal DANKE für Deine Hilfe!
                            Hier meine Config:

                            export const config: Config = {
                            panelRecvTopic: 'mqtt.0.SmartHome.tele.NSPanel_1.RESULT', // Bitte anpassen
                            panelSendTopic: 'mqtt.0.SmartHome.cmnd.NSPanel_1.CustomSend', // Bitte anpassen

                            // 4 kleine Icons im Screensaver
                            // Mit 3.9.0 neue Parameter - Bitte anpassen - siehe auch Wiki
                            firstScreensaverEntity:   { ScreensaverEntity: 'accuweather.0.Hourly.h0.PrecipitationProbability',
                                                        ScreensaverEntityFactor: 1,                                 //New
                                                        ScreensaverEntityDecimalPlaces: 0,                          //New 
                                                        ScreensaverEntityIcon: 'weather-pouring', 
                                                        ScreensaverEntityText: 'Regen', 
                                                        ScreensaverEntityUnitText: '%', 
                                                        ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100} 
                                                      },
                            secondScreensaverEntity:  { ScreensaverEntity: 'parser.0.windSpeed', 
                                                        ScreensaverEntityFactor: (1000/1000),                       //New
                                                        ScreensaverEntityDecimalPlaces: 1,                          //New 
                                                        ScreensaverEntityIcon: 'weather-windy', 
                                                        ScreensaverEntityText: "Wind", 
                                                        ScreensaverEntityUnitText: 'km/h', 
                                                        ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 120} 
                                                      },
                            thirdScreensaverEntity:   { ScreensaverEntity: 'hm-rpc.0.LEQ0227831.1.TEMPERATURE',
                                                        ScreensaverEntityFactor: 1,                                 //New
                                                        ScreensaverEntityDecimalPlaces: 0,                          //New  
                                                        ScreensaverEntityIcon: 'home-thermometer-outline', 
                                                        ScreensaverEntityText: 'Innen', 
                                                        ScreensaverEntityUnitText: '°C', 
                                                        ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 40, 'val_best': 22 } 
                                                      },
                            fourthScreensaverEntity:  { ScreensaverEntity: 'parser.0.outHumidity', 
                                                        ScreensaverEntityFactor: 1,                                 //New
                                                        ScreensaverEntityDecimalPlaces: 0,                          //New 
                                                        ScreensaverEntityIcon: 'water-percent', 
                                                        ScreensaverEntityText: 'Luft', 
                                                        ScreensaverEntityUnitText: '%', 
                                                        ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100, 'val_best': 65} 
                                                      },
                            
                            // Indikator Icons im oberen Teil des Screensavers
                            // Mit 3.9.0 neue Parameter - Bitte anpassen - siehe auch Wiki
                            mrIcon1ScreensaverEntity: { ScreensaverEntity: 'mqtt.0.SmartHome.stat.NSPanel_1.POWER1', 
                                                        ScreensaverEntityIconOn: 'lightbulb',                           //Rename
                                                        ScreensaverEntityIconOff: null, 
                                                        ScreensaverEntityValue: null,                                   //New
                                                        ScreensaverEntityValueDecimalPlace : 0,                         //New
                                                        ScreensaverEntityValueUnit: null,                               //New
                                                        ScreensaverEntityOnColor: On, 
                                                        ScreensaverEntityOffColor: HMIOff },
                            mrIcon2ScreensaverEntity: { ScreensaverEntity: 'mqtt.0.SmartHome.stat.NSPanel_1.POWER2', 
                                                        ScreensaverEntityIconOn: 'heat-wave',
                                                        ScreensaverEntityIconOff: null, 
                                                        ScreensaverEntityValue: NSPanel_Path + 'Sensor.ANALOG.Temperature',
                                                        ScreensaverEntityValueDecimalPlace : 1,
                                                        ScreensaverEntityValueUnit: '°', 
                                                        ScreensaverEntityOnColor: MSRed, 
                                                        ScreensaverEntityOffColor: Yellow },
                            
                            weatherEntity: 'alias.0.Wetter.Pliezhausen',    // Dieser Alias wird automatisch für den gewählten Wetter erstellt und kann entsprechend angepasst werden
                            defaultOffColor: Off,               // Default-Farbe für Off-Zustände
                            defaultOnColor: On,                 // Default-Farbe für On-Zustände
                            defaultColor: Off,
                            defaultBackgroundColor: HMIDark,    // Default-Hintergrundfarbe HMIDark oder Black
                            
                            // Mit 3.9.0 in Datenpunkte verschoben. Auch über Service Pages konfigurierbar
                                //alternativeScreensaverLayout: false,
                                //autoWeatherColorScreensaverLayout: true,
                                //timeoutScreensaver: 10,
                                //screenSaverDoubleClick: true,
                                //temperatureUnit: '°C',
                                //locale: 'de-DE',                    
                            
                            pages: [
                            
                                    Licht1,
                                    Sonos,
                                    NSPanel_Service         //Auto-Alias Service Page
                                    
                            ],
                            subPages: [
                                        
                                        NSPanel_Infos,                          //Auto-Alias Service Page
                                            NSPanel_Wifi_Info_1,                //Auto-Alias Service Page
                                            NSPanel_Wifi_Info_2,                //Auto-Alias Service Page
                                            NSPanel_Sensoren,                   //Auto-Alias Service Page
                                            NSPanel_Hardware,                   //Auto-Alias Service Page
                                        NSPanel_Einstellungen,                  //Auto-Alias Service Page
                                            NSPanel_Screensaver,                //Auto-Alias Service Page
                                                NSPanel_ScreensaverDimmode,     //Auto-Alias Service Page
                                                NSPanel_ScreensaverOther,       //Auto-Alias Service Page
                                                NSPanel_Weather,                //Auto-Alias Service Page
                                                NSPanel_Dateformat,             //Auto-Alias Service Page
                                                NSPanel_Indicators,             //Auto-Alias Service Page
                                                NSPanel_Relays,                 //Auto-Alias Service Page
                                        NSPanel_Firmware,                       //Auto-Alias Service Page
                                            NSPanel_FirmwareTasmota,            //Auto-Alias Service Page
                                            NSPanel_FirmwareBerry,              //Auto-Alias Service Page
                                            NSPanel_FirmwareNextion,            //Auto-Alias Service Page
                            ],
                            button1Page: null,   //Beispiel-Seite auf Button 1, wenn Rule2 definiert - Wenn nicht definiert --> button1Page: null, 
                            button2Page: null    //Beispiel-Seite auf Button 2, wenn Rule2 definiert - Wenn nicht definiert --> button1Page: null,
                            

                            };

                            :

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

                            @dieter-kurz

                            Kannst du mal die Tasmota Version senden.

                            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

                            D 1 Antwort Letzte Antwort
                            0
                            • T TT-Tom

                              @dieter-kurz

                              Kannst du mal die Tasmota Version senden.

                              D Offline
                              D Offline
                              Dieter Kurz
                              schrieb am zuletzt editiert von
                              #2075

                              @tt-tom Ist die 12.3.1

                              T 1 Antwort Letzte Antwort
                              0
                              • ArmilarA Armilar

                                @gargano

                                ist schon fertig... kommt mit der 4.0.0

                                GarganoG Offline
                                GarganoG Offline
                                Gargano
                                schrieb am zuletzt editiert von
                                #2076

                                @armilar Danke . Ist ja wie Weihnachten und Ostern zusammen :blush:

                                1 Antwort Letzte Antwort
                                0
                                • D Dieter Kurz

                                  @tt-tom Ist die 12.3.1

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

                                  @dieter-kurz

                                  Bildschirmfoto 2023-02-04 um 16.20.17.png

                                  sieht das bei dir auch so aus?

                                  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

                                  D 1 Antwort Letzte Antwort
                                  0
                                  • D Dieter Kurz

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

                                    @dieter-kurz

                                    Du hast noch Fehler in der Config. Den MQTT Pfad stimmt nicht. Welche Version vom Script nutz du den jetzt für das Panel. Zeige bitte mal auch den Teil der Config aus dem Script

                                    Erstmal DANKE für Deine Hilfe!
                                    Hier meine Config:

                                    export const config: Config = {
                                    panelRecvTopic: 'mqtt.0.SmartHome.tele.NSPanel_1.RESULT', // Bitte anpassen
                                    panelSendTopic: 'mqtt.0.SmartHome.cmnd.NSPanel_1.CustomSend', // Bitte anpassen

                                    // 4 kleine Icons im Screensaver
                                    // Mit 3.9.0 neue Parameter - Bitte anpassen - siehe auch Wiki
                                    firstScreensaverEntity:   { ScreensaverEntity: 'accuweather.0.Hourly.h0.PrecipitationProbability',
                                                                ScreensaverEntityFactor: 1,                                 //New
                                                                ScreensaverEntityDecimalPlaces: 0,                          //New 
                                                                ScreensaverEntityIcon: 'weather-pouring', 
                                                                ScreensaverEntityText: 'Regen', 
                                                                ScreensaverEntityUnitText: '%', 
                                                                ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100} 
                                                              },
                                    secondScreensaverEntity:  { ScreensaverEntity: 'parser.0.windSpeed', 
                                                                ScreensaverEntityFactor: (1000/1000),                       //New
                                                                ScreensaverEntityDecimalPlaces: 1,                          //New 
                                                                ScreensaverEntityIcon: 'weather-windy', 
                                                                ScreensaverEntityText: "Wind", 
                                                                ScreensaverEntityUnitText: 'km/h', 
                                                                ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 120} 
                                                              },
                                    thirdScreensaverEntity:   { ScreensaverEntity: 'hm-rpc.0.LEQ0227831.1.TEMPERATURE',
                                                                ScreensaverEntityFactor: 1,                                 //New
                                                                ScreensaverEntityDecimalPlaces: 0,                          //New  
                                                                ScreensaverEntityIcon: 'home-thermometer-outline', 
                                                                ScreensaverEntityText: 'Innen', 
                                                                ScreensaverEntityUnitText: '°C', 
                                                                ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 40, 'val_best': 22 } 
                                                              },
                                    fourthScreensaverEntity:  { ScreensaverEntity: 'parser.0.outHumidity', 
                                                                ScreensaverEntityFactor: 1,                                 //New
                                                                ScreensaverEntityDecimalPlaces: 0,                          //New 
                                                                ScreensaverEntityIcon: 'water-percent', 
                                                                ScreensaverEntityText: 'Luft', 
                                                                ScreensaverEntityUnitText: '%', 
                                                                ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100, 'val_best': 65} 
                                                              },
                                    
                                    // Indikator Icons im oberen Teil des Screensavers
                                    // Mit 3.9.0 neue Parameter - Bitte anpassen - siehe auch Wiki
                                    mrIcon1ScreensaverEntity: { ScreensaverEntity: 'mqtt.0.SmartHome.stat.NSPanel_1.POWER1', 
                                                                ScreensaverEntityIconOn: 'lightbulb',                           //Rename
                                                                ScreensaverEntityIconOff: null, 
                                                                ScreensaverEntityValue: null,                                   //New
                                                                ScreensaverEntityValueDecimalPlace : 0,                         //New
                                                                ScreensaverEntityValueUnit: null,                               //New
                                                                ScreensaverEntityOnColor: On, 
                                                                ScreensaverEntityOffColor: HMIOff },
                                    mrIcon2ScreensaverEntity: { ScreensaverEntity: 'mqtt.0.SmartHome.stat.NSPanel_1.POWER2', 
                                                                ScreensaverEntityIconOn: 'heat-wave',
                                                                ScreensaverEntityIconOff: null, 
                                                                ScreensaverEntityValue: NSPanel_Path + 'Sensor.ANALOG.Temperature',
                                                                ScreensaverEntityValueDecimalPlace : 1,
                                                                ScreensaverEntityValueUnit: '°', 
                                                                ScreensaverEntityOnColor: MSRed, 
                                                                ScreensaverEntityOffColor: Yellow },
                                    
                                    weatherEntity: 'alias.0.Wetter.Pliezhausen',    // Dieser Alias wird automatisch für den gewählten Wetter erstellt und kann entsprechend angepasst werden
                                    defaultOffColor: Off,               // Default-Farbe für Off-Zustände
                                    defaultOnColor: On,                 // Default-Farbe für On-Zustände
                                    defaultColor: Off,
                                    defaultBackgroundColor: HMIDark,    // Default-Hintergrundfarbe HMIDark oder Black
                                    
                                    // Mit 3.9.0 in Datenpunkte verschoben. Auch über Service Pages konfigurierbar
                                        //alternativeScreensaverLayout: false,
                                        //autoWeatherColorScreensaverLayout: true,
                                        //timeoutScreensaver: 10,
                                        //screenSaverDoubleClick: true,
                                        //temperatureUnit: '°C',
                                        //locale: 'de-DE',                    
                                    
                                    pages: [
                                    
                                            Licht1,
                                            Sonos,
                                            NSPanel_Service         //Auto-Alias Service Page
                                            
                                    ],
                                    subPages: [
                                                
                                                NSPanel_Infos,                          //Auto-Alias Service Page
                                                    NSPanel_Wifi_Info_1,                //Auto-Alias Service Page
                                                    NSPanel_Wifi_Info_2,                //Auto-Alias Service Page
                                                    NSPanel_Sensoren,                   //Auto-Alias Service Page
                                                    NSPanel_Hardware,                   //Auto-Alias Service Page
                                                NSPanel_Einstellungen,                  //Auto-Alias Service Page
                                                    NSPanel_Screensaver,                //Auto-Alias Service Page
                                                        NSPanel_ScreensaverDimmode,     //Auto-Alias Service Page
                                                        NSPanel_ScreensaverOther,       //Auto-Alias Service Page
                                                        NSPanel_Weather,                //Auto-Alias Service Page
                                                        NSPanel_Dateformat,             //Auto-Alias Service Page
                                                        NSPanel_Indicators,             //Auto-Alias Service Page
                                                        NSPanel_Relays,                 //Auto-Alias Service Page
                                                NSPanel_Firmware,                       //Auto-Alias Service Page
                                                    NSPanel_FirmwareTasmota,            //Auto-Alias Service Page
                                                    NSPanel_FirmwareBerry,              //Auto-Alias Service Page
                                                    NSPanel_FirmwareNextion,            //Auto-Alias Service Page
                                    ],
                                    button1Page: null,   //Beispiel-Seite auf Button 1, wenn Rule2 definiert - Wenn nicht definiert --> button1Page: null, 
                                    button2Page: null    //Beispiel-Seite auf Button 2, wenn Rule2 definiert - Wenn nicht definiert --> button1Page: null,
                                    

                                    };

                                    :

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

                                    @dieter-kurz

                                    Du sprichst von einem 2. Panel

                                    Kannst du kurz einen Auszug aus den Objekten des MQTT-Adapter machen, aus denen die Pfade der beiden Panels hervorgehen?

                                    Ich sehe hier im Log irgendwie so etwas:

                                    mqtt.0.SmartHome.tele.NSPanel_1.INFO2 (Sollte es nicht ein anderes Panel sein?)
                                    

                                    Also Prefix entweder vorne oder hinten. Aber nicht in der Mitte... Das unterstützt selbst Tasmota nur mit wiederwillen.

                                    Also einmal den Auszug von beiden Panels aus Tasmota und die MQTT-Objekte. Sonst kommen wir ins schleudern.

                                    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
                                    • T TT-Tom

                                      @dieter-kurz

                                      Bildschirmfoto 2023-02-04 um 16.20.17.png

                                      sieht das bei dir auch so aus?

                                      D Offline
                                      D Offline
                                      Dieter Kurz
                                      schrieb am zuletzt editiert von
                                      #2079

                                      @tt-tom INFO1, INFO2 und INFO3 fehlen, allerdings bei beiden Panels ..

                                      T ArmilarA 2 Antworten Letzte Antwort
                                      0
                                      • ArmilarA Armilar

                                        @dieter-kurz

                                        Du sprichst von einem 2. Panel

                                        Kannst du kurz einen Auszug aus den Objekten des MQTT-Adapter machen, aus denen die Pfade der beiden Panels hervorgehen?

                                        Ich sehe hier im Log irgendwie so etwas:

                                        mqtt.0.SmartHome.tele.NSPanel_1.INFO2 (Sollte es nicht ein anderes Panel sein?)
                                        

                                        Also Prefix entweder vorne oder hinten. Aber nicht in der Mitte... Das unterstützt selbst Tasmota nur mit wiederwillen.

                                        Also einmal den Auszug von beiden Panels aus Tasmota und die MQTT-Objekte. Sonst kommen wir ins schleudern.

                                        D Offline
                                        D Offline
                                        Dieter Kurz
                                        schrieb am zuletzt editiert von
                                        #2080

                                        @armilar d01e3201-1c3a-440a-a5e3-5d3429a9a713-image.png

                                        T 1 Antwort Letzte Antwort
                                        0
                                        • D Dieter Kurz

                                          @tt-tom INFO1, INFO2 und INFO3 fehlen, allerdings bei beiden Panels ..

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

                                          @dieter-kurz

                                          dann zeige mal deine MQTT einstellungen von Tasmota.

                                          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

                                          D 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

                                          923

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