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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. SONOFF NSPanel mit Lovelace UI (TypeScript Version)

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    398

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

SONOFF NSPanel mit Lovelace UI (TypeScript Version)

Scheduled Pinned Locked Moved Hardware
lovelace uinspanelsonoff
8.0k Posts 277 Posters 7.2m Views 262 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C chiob314

    @armilar
    Merci für die Unterstützung! Ich bin einfach kein Entwickler, merk ich. Danke deswegen für die Unterstützung!

    Was bleibt ist das Phänomen mit der Sprache. Im Wetterforecast werden die Wochentage auch Englisch angezeigt.

    Hast du da noch irgendwelche Erleuchtungen?
    Danke und Grüße
    Bastian

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

    @chiob314 sagte in SONOFF NSPanel mit Lovelace UI:

    @armilar
    Merci für die Unterstützung! Ich bin einfach kein Entwickler, merk ich. Danke deswegen für die Unterstützung!

    Was bleibt ist das Phänomen mit der Sprache. Im Wetterforecast werden die Wochentage auch Englisch angezeigt.

    Hast du da noch irgendwelche Erleuchtungen?
    Danke und Grüße
    Bastian

    Was ist denn das für ein System?

    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.

    C 1 Reply Last reply
    0
    • ArmilarA Armilar

      @chiob314 sagte in SONOFF NSPanel mit Lovelace UI:

      @armilar
      Merci für die Unterstützung! Ich bin einfach kein Entwickler, merk ich. Danke deswegen für die Unterstützung!

      Was bleibt ist das Phänomen mit der Sprache. Im Wetterforecast werden die Wochentage auch Englisch angezeigt.

      Hast du da noch irgendwelche Erleuchtungen?
      Danke und Grüße
      Bastian

      Was ist denn das für ein System?

      C Offline
      C Offline
      chiob314
      wrote on last edited by
      #346

      @armilar ubuntu 20.04, tagesaktuell gepatcht

      ArmilarA 1 Reply Last reply
      0
      • ArmilarA Armilar

        @nevermind sagte in SONOFF NSPanel mit Lovelace UI:

        @armilar

        Danke :)

        Haut aber noch nicht ganz hin. Es nimmt immer die Farbe von fourthScreensaverEntity und zeigt diese bei firstScreensaverEntity an. D.h. 2-4 sind weiterhin ohne Farbe.

        Was soll ich sagen: Bugfixing und gleichzeitig Essen ;-)

        Jetzt sollte es passen:

        function HandleScreensaverUpdate(): void {
            try {
                if (screensaverEnabled && config.weatherEntity != null && existsObject(config.weatherEntity)) {
                    var icon = getState(config.weatherEntity + '.ICON').val;
        
                    let temperature =
                        existsState(config.weatherEntity + '.ACTUAL') ? getState(config.weatherEntity + '.ACTUAL').val :
                            existsState(config.weatherEntity + '.TEMP') ? getState(config.weatherEntity + '.TEMP').val : 'null';
        
                    if (config.alternativeScreensaverLayout) {
                        temperature = parseInt(Math.round(temperature).toFixed());
                    }
        
                    let payloadString =
                        'weatherUpdate~' + Icons.GetIcon(GetAccuWeatherIcon(parseInt(icon))) + '~'
                        + temperature + ' ' + config.temperatureUnit + '~';
        
                    vwIconColor[0] = GetAccuWeatherIconColor(parseInt(icon));
                    if (Debug) console.log(GetAccuWeatherIconColor(parseInt(icon)));
        
                    if (weatherForecast) {
                        // Accu-Weather Forecast Tag 2 - Tag 5 -- Wenn weatherForecast = true
                        for (let i = 2; i < 6; i++) {
                            let TempMax = getState('accuweather.0.Summary.TempMax_d' + i).val;
                            let DayOfWeek = getState('accuweather.0.Summary.DayOfWeek_d' + i).val;
                            let WeatherIcon = GetAccuWeatherIcon(getState('accuweather.0.Summary.WeatherIcon_d' + i).val);
                            vwIconColor[i-1] = GetAccuWeatherIconColor(getState('accuweather.0.Summary.WeatherIcon_d' + i).val);
                            if (Debug) console.log(vwIconColor[i-1]);
                            payloadString += DayOfWeek + '~' + Icons.GetIcon(WeatherIcon) + '~' + TempMax + ' ' + config.temperatureUnit + '~';
                        }
                    } else {
                        payloadString += GetScreenSaverEntityString(config.firstScreensaverEntity);
                        payloadString += GetScreenSaverEntityString(config.secondScreensaverEntity);
                        payloadString += GetScreenSaverEntityString(config.thirdScreensaverEntity);
                        payloadString += GetScreenSaverEntityString(config.fourthScreensaverEntity);
                        
                        const colorScale0:  RGB = { red:   99, green: 190, blue: 123 };
                        const colorScale1:  RGB = { red:  129, green: 199, blue: 126 };
                        const colorScale2:  RGB = { red:  161, green: 208, blue: 127 };
                        const colorScale3:  RGB = { red:  129, green: 217, blue: 126 };
                        const colorScale4:  RGB = { red:  222, green: 226, blue: 131 };
                        const colorScale5:  RGB = { red:  254, green: 235, blue: 132 };
                        const colorScale6:  RGB = { red:  255, green: 210, blue: 129 };
                        const colorScale7:  RGB = { red:  251, green: 185, blue: 124 };
                        const colorScale8:  RGB = { red:  251, green: 158, blue: 117 };
                        const colorScale9:  RGB = { red:  248, green: 131, blue: 111 };
                        const colorScale10: RGB = { red:  248, green: 105, blue: 107 };
        
                        if (config.firstScreensaverEntity.ScreensaverEntityIconColor != undefined) {
                            if (typeof getState(config.firstScreensaverEntity.ScreensaverEntity).val == 'boolean') {
                                vwIconColor[1] = (getState(config.firstScreensaverEntity.ScreensaverEntity).val == true) ? rgb_dec565(colorScale10) : rgb_dec565(colorScale0);
                            } else if (typeof config.firstScreensaverEntity.ScreensaverEntityIconColor == 'object') {
                                let iconvalmin = (config.firstScreensaverEntity.ScreensaverEntityIconColor.val_min != undefined) ? config.firstScreensaverEntity.ScreensaverEntityIconColor.val_min : 0 ;
                                let iconvalmax = (config.firstScreensaverEntity.ScreensaverEntityIconColor.val_max != undefined) ? config.firstScreensaverEntity.ScreensaverEntityIconColor.val_max : 100 ;
                                let iconvalbest = (config.firstScreensaverEntity.ScreensaverEntityIconColor.val_best != undefined) ? config.firstScreensaverEntity.ScreensaverEntityIconColor.val_best : iconvalmin ;
                                let valueScale = getState(config.firstScreensaverEntity.ScreensaverEntity).val;
        
                                if (iconvalmin == 0 && iconvalmax == 1) {
                                    vwIconColor[1] = (getState(config.firstScreensaverEntity.ScreensaverEntity).val == 1) ? rgb_dec565(colorScale0) : rgb_dec565(colorScale10);
                                } else {
                                    if (iconvalbest == iconvalmin) {
                                        valueScale = scale(valueScale,iconvalmin, iconvalmax, 10, 0)
                                    } else {
                                        if (valueScale < iconvalbest) {
                                            valueScale = scale(valueScale,iconvalmin, iconvalbest, 0, 10)    
                                        } else if (valueScale > iconvalbest || iconvalbest != iconvalmin) {
                                            valueScale = scale(valueScale,iconvalbest, iconvalmax, 10, 0)    
                                        } else {
                                          valueScale = scale(valueScale,iconvalmin, iconvalmax, 10, 0)  
                                        }
                                    }
                                    let valueScaletemp = (Math.round(valueScale)).toFixed(); 
                                    if (Debug) console.log(valueScaletemp);
                                    switch (valueScaletemp) {
                                        case '0':
                                            vwIconColor[1] = rgb_dec565(colorScale0);
                                            break;
                                        case '1':
                                            vwIconColor[1] = rgb_dec565(colorScale1);
                                            break;
                                        case '2':
                                            vwIconColor[1] = rgb_dec565(colorScale2);
                                            break;
                                        case '3':
                                            vwIconColor[1] = rgb_dec565(colorScale3);
                                            break;
                                        case '4':
                                            vwIconColor[1] = rgb_dec565(colorScale4);
                                            break;
                                        case '5':
                                            vwIconColor[1] = rgb_dec565(colorScale5);
                                            break;
                                        case '6':
                                            vwIconColor[1] = rgb_dec565(colorScale6);
                                            break;
                                        case '7':
                                            vwIconColor[1] = rgb_dec565(colorScale7);
                                            break;                                 
                                        case '8':
                                            vwIconColor[1] = rgb_dec565(colorScale8);
                                            break;
                                        case '9':
                                            vwIconColor[1] = rgb_dec565(colorScale9);
                                            break;
                                        case '10':
                                            vwIconColor[1] = rgb_dec565(colorScale10);
                                            break;
                                    } 
                                }
                                if (config.firstScreensaverEntity.ScreensaverEntityIconColor.val_min == undefined) {
                                    vwIconColor[1] = rgb_dec565(config.firstScreensaverEntity.ScreensaverEntityIconColor);
                                }
                            } else {
                                vwIconColor[1] = rgb_dec565(sctF1Icon);
                            }
                        } else {
                            vwIconColor[1] = rgb_dec565(sctF1Icon);    
                        }
        
                        if (config.secondScreensaverEntity.ScreensaverEntityIconColor != undefined) {
                            if (typeof getState(config.secondScreensaverEntity.ScreensaverEntity).val == 'boolean') {
                                vwIconColor[2] = (getState(config.secondScreensaverEntity.ScreensaverEntity).val == true) ? rgb_dec565(colorScale10) : rgb_dec565(colorScale0);
                            } else if (typeof config.secondScreensaverEntity.ScreensaverEntityIconColor == 'object') {
        
                                let iconvalmin = (config.secondScreensaverEntity.ScreensaverEntityIconColor.val_min != undefined) ? config.secondScreensaverEntity.ScreensaverEntityIconColor.val_min : 0 ;
                                let iconvalmax = (config.secondScreensaverEntity.ScreensaverEntityIconColor.val_max != undefined) ? config.secondScreensaverEntity.ScreensaverEntityIconColor.val_max : 100 ;
                                let iconvalbest = (config.secondScreensaverEntity.ScreensaverEntityIconColor.val_best != undefined) ? config.secondScreensaverEntity.ScreensaverEntityIconColor.val_best : iconvalmin ;
                                let valueScale = getState(config.secondScreensaverEntity.ScreensaverEntity).val;
        
                                if (iconvalmin == 0 && iconvalmax == 1) {
                                    vwIconColor[2] = (getState(config.secondScreensaverEntity.ScreensaverEntity).val == 1) ? rgb_dec565(colorScale0) : rgb_dec565(colorScale10);
                                } else {
                                    if (iconvalbest == iconvalmin) {
                                        valueScale = scale(valueScale,iconvalmin, iconvalmax, 10, 0)
                                    } else {
                                        if (valueScale < iconvalbest) {
                                            valueScale = scale(valueScale,iconvalmin, iconvalbest, 0, 10)    
                                        } else if (valueScale > iconvalbest || iconvalbest != iconvalmin) {
                                            valueScale = scale(valueScale,iconvalbest, iconvalmax, 10, 0)    
                                        } else {
                                          valueScale = scale(valueScale,iconvalmin, iconvalmax, 10, 0)  
                                        }
                                    }
                                    let valueScaletemp = (Math.round(valueScale)).toFixed(); 
                                    if (Debug) console.log(valueScaletemp);
                                    switch (valueScaletemp) {
                                        case '0':
                                            vwIconColor[2] = rgb_dec565(colorScale0);
                                            break;
                                        case '1':
                                            vwIconColor[2] = rgb_dec565(colorScale1);
                                            break;
                                        case '2':
                                            vwIconColor[2] = rgb_dec565(colorScale2);
                                            break;
                                        case '3':
                                            vwIconColor[2] = rgb_dec565(colorScale3);
                                            break;
                                        case '4':
                                            vwIconColor[2] = rgb_dec565(colorScale4);
                                            break;
                                        case '5':
                                            vwIconColor[2] = rgb_dec565(colorScale5);
                                            break;
                                        case '6':
                                            vwIconColor[2] = rgb_dec565(colorScale6);
                                            break;
                                        case '7':
                                            vwIconColor[2] = rgb_dec565(colorScale7);
                                            break;                                 
                                        case '8':
                                            vwIconColor[2] = rgb_dec565(colorScale8);
                                            break;
                                        case '9':
                                            vwIconColor[2] = rgb_dec565(colorScale9);
                                            break;
                                        case '10':
                                            vwIconColor[2] = rgb_dec565(colorScale10);
                                            break;
                                    } 
                                }
                                if (config.secondScreensaverEntity.ScreensaverEntityIconColor.val_min == undefined) {
                                    vwIconColor[2] = rgb_dec565(config.secondScreensaverEntity.ScreensaverEntityIconColor);
                                }
                            } else {
                                vwIconColor[2] = rgb_dec565(sctF2Icon);                        
                            }
                        } else {
                            vwIconColor[2] = rgb_dec565(sctF2Icon);    
                        }
        
                        if (config.thirdScreensaverEntity.ScreensaverEntityIconColor != undefined) {
                            if (typeof getState(config.thirdScreensaverEntity.ScreensaverEntity).val == 'boolean') {
                                vwIconColor[3] = (getState(config.thirdScreensaverEntity.ScreensaverEntity).val == true) ? rgb_dec565(colorScale10) : rgb_dec565(colorScale0);
                            } else if (typeof config.thirdScreensaverEntity.ScreensaverEntityIconColor == 'object') {
        
                                let iconvalmin = (config.thirdScreensaverEntity.ScreensaverEntityIconColor.val_min != undefined) ? config.thirdScreensaverEntity.ScreensaverEntityIconColor.val_min : 0 ;
                                let iconvalmax = (config.thirdScreensaverEntity.ScreensaverEntityIconColor.val_max != undefined) ? config.thirdScreensaverEntity.ScreensaverEntityIconColor.val_max : 100 ;
                                let iconvalbest = (config.thirdScreensaverEntity.ScreensaverEntityIconColor.val_best != undefined) ? config.thirdScreensaverEntity.ScreensaverEntityIconColor.val_best : iconvalmin ;
                                let valueScale = getState(config.thirdScreensaverEntity.ScreensaverEntity).val;
        
                                if (iconvalmin == 0 && iconvalmax == 1) {
                                    vwIconColor[3] = (getState(config.thirdScreensaverEntity.ScreensaverEntity).val == 1) ? rgb_dec565(colorScale0) : rgb_dec565(colorScale10);
                                } else {
                                    if (iconvalbest == iconvalmin) {
                                        valueScale = scale(valueScale,iconvalmin, iconvalmax, 10, 0)
                                    } else {
                                        if (valueScale < iconvalbest) {
                                            valueScale = scale(valueScale,iconvalmin, iconvalbest, 0, 10)    
                                        } else if (valueScale > iconvalbest || iconvalbest != iconvalmin) {
                                            valueScale = scale(valueScale,iconvalbest, iconvalmax, 10, 0)    
                                        } else {
                                          valueScale = scale(valueScale,iconvalmin, iconvalmax, 10, 0)  
                                        }
                                    }
                                    let valueScaletemp = (Math.round(valueScale)).toFixed(); 
                                    if (Debug) console.log(valueScaletemp);
                                    switch (valueScaletemp) {
                                        case '0':
                                            vwIconColor[3] = rgb_dec565(colorScale0);
                                            break;
                                        case '1':
                                            vwIconColor[3] = rgb_dec565(colorScale1);
                                            break;
                                        case '2':
                                            vwIconColor[3] = rgb_dec565(colorScale2);
                                            break;
                                        case '3':
                                            vwIconColor[3] = rgb_dec565(colorScale3);
                                            break;
                                        case '4':
                                            vwIconColor[3] = rgb_dec565(colorScale4);
                                            break;
                                        case '5':
                                            vwIconColor[3] = rgb_dec565(colorScale5);
                                            break;
                                        case '6':
                                            vwIconColor[3] = rgb_dec565(colorScale6);
                                            break;
                                        case '7':
                                            vwIconColor[3] = rgb_dec565(colorScale7);
                                            break;                                 
                                        case '8':
                                            vwIconColor[3] = rgb_dec565(colorScale8);
                                            break;
                                        case '9':
                                            vwIconColor[3] = rgb_dec565(colorScale9);
                                            break;
                                        case '10':
                                            vwIconColor[3] = rgb_dec565(colorScale10);
                                            break;
                                    } 
                                }
                                if (config.thirdScreensaverEntity.ScreensaverEntityIconColor.val_min == undefined) {
                                    vwIconColor[3] = rgb_dec565(config.thirdScreensaverEntity.ScreensaverEntityIconColor);
                                }
                            } else {
                                vwIconColor[3] = rgb_dec565(sctF2Icon);                        
                            }
                        } else {
                            vwIconColor[3] = rgb_dec565(sctF2Icon);    
                        }
        
                        if (config.fourthScreensaverEntity.ScreensaverEntityIconColor != undefined) {
                            if (typeof getState(config.fourthScreensaverEntity.ScreensaverEntity).val == 'boolean') {
                                vwIconColor[4] = (getState(config.fourthScreensaverEntity.ScreensaverEntity).val == true) ? rgb_dec565(colorScale10) : rgb_dec565(colorScale0);
                            } else if (typeof config.fourthScreensaverEntity.ScreensaverEntityIconColor == 'object') {
        
                                let iconvalmin = (config.fourthScreensaverEntity.ScreensaverEntityIconColor.val_min != undefined) ? config.fourthScreensaverEntity.ScreensaverEntityIconColor.val_min : 0 ;
                                let iconvalmax = (config.fourthScreensaverEntity.ScreensaverEntityIconColor.val_max != undefined) ? config.fourthScreensaverEntity.ScreensaverEntityIconColor.val_max : 100 ;
                                let iconvalbest = (config.fourthScreensaverEntity.ScreensaverEntityIconColor.val_best != undefined) ? config.fourthScreensaverEntity.ScreensaverEntityIconColor.val_best : iconvalmin ;
                                let valueScale = getState(config.fourthScreensaverEntity.ScreensaverEntity).val;
        
                                if (iconvalmin == 0 && iconvalmax == 1) {
                                    vwIconColor[4] = (getState(config.fourthScreensaverEntity.ScreensaverEntity).val == 1) ? rgb_dec565(colorScale0) : rgb_dec565(colorScale10);
                                } else {
                                    if (iconvalbest == iconvalmin) {
                                        valueScale = scale(valueScale,iconvalmin, iconvalmax, 10, 0)
                                    } else {
                                        if (valueScale < iconvalbest) {
                                            valueScale = scale(valueScale,iconvalmin, iconvalbest, 0, 10)    
                                        } else if (valueScale > iconvalbest || iconvalbest != iconvalmin) {
                                            valueScale = scale(valueScale,iconvalbest, iconvalmax, 10, 0)    
                                        } else {
                                          valueScale = scale(valueScale,iconvalmin, iconvalmax, 10, 0)  
                                        }
                                    }
                                    let valueScaletemp = (Math.round(valueScale)).toFixed(); 
                                    if (Debug) console.log(valueScaletemp);
                                    switch (valueScaletemp) {
                                        case '0':
                                            vwIconColor[4] = rgb_dec565(colorScale0);
                                            break;
                                        case '1':
                                            vwIconColor[4] = rgb_dec565(colorScale1);
                                            break;
                                        case '2':
                                            vwIconColor[4] = rgb_dec565(colorScale2);
                                            break;
                                        case '3':
                                            vwIconColor[4] = rgb_dec565(colorScale3);
                                            break;
                                        case '4':
                                            vwIconColor[4] = rgb_dec565(colorScale4);
                                            break;
                                        case '5':
                                            vwIconColor[4] = rgb_dec565(colorScale5);
                                            break;
                                        case '6':
                                            vwIconColor[4] = rgb_dec565(colorScale6);
                                            break;
                                        case '7':
                                            vwIconColor[4] = rgb_dec565(colorScale7);
                                            break;                                 
                                        case '8':
                                            vwIconColor[4] = rgb_dec565(colorScale8);
                                            break;
                                        case '9':
                                            vwIconColor[4] = rgb_dec565(colorScale9);
                                            break;
                                        case '10':
                                            vwIconColor[4] = rgb_dec565(colorScale10);
                                            break;
                                    } 
                                }
                                if (config.fourthScreensaverEntity.ScreensaverEntityIconColor.val_min == undefined) {
                                    vwIconColor[4] = rgb_dec565(config.fourthScreensaverEntity.ScreensaverEntityIconColor);
                                }
                            } else {
                                vwIconColor[4] = rgb_dec565(sctF2Icon);                        
                            }
                        } else {
                            vwIconColor[4] = rgb_dec565(sctF2Icon);    
                        }
                    }
        
                    //AltLayout
                    if (config.alternativeScreensaverLayout) {
                        payloadString += parseInt(getState(config.fourthScreensaverEntity.ScreensaverEntity).val) + '~'; 
                        payloadString += config.fourthScreensaverEntity.ScreensaverEntityUnitText + '~'
                    } else {
                        payloadString += '~~'            
                    }
                    
                    let hwBtn1Col: any = config.mrIcon1ScreensaverEntity.ScreensaverEntityOffColor;
                    if (config.mrIcon1ScreensaverEntity.ScreensaverEntity != null) {
                        if (typeof (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) == 'string') {
                            let hwBtn1: string = getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val;
                            if (hwBtn1 == 'ON') {
                                hwBtn1Col = config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor;                
                            }
                            payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIcon) + '~' + rgb_dec565(hwBtn1Col) + '~';
                        } else if (typeof (getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val) == 'boolean') {
                            let hwBtn1: boolean = getState(config.mrIcon1ScreensaverEntity.ScreensaverEntity).val;
                            if (hwBtn1) {
                                hwBtn1Col = config.mrIcon1ScreensaverEntity.ScreensaverEntityOnColor;                
                            }
                            payloadString += Icons.GetIcon(config.mrIcon1ScreensaverEntity.ScreensaverEntityIcon) + '~' + rgb_dec565(hwBtn1Col) + '~';
                        }  
                    } else {
                        hwBtn1Col = Black;
                        payloadString += '~~';
                    }
        
                    let hwBtn2Col: any = config.mrIcon2ScreensaverEntity.ScreensaverEntityOffColor;
                    if (config.mrIcon2ScreensaverEntity.ScreensaverEntity != null) {
                        if (typeof (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) == 'string') {
                            let hwBtn2: string = getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val;
                            if (hwBtn2 == 'ON') {
                                hwBtn2Col = config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor;                
                            }
                            payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIcon) + '~' + rgb_dec565(hwBtn2Col) + '~';
                        } else if (typeof (getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val) == 'boolean') {
                            let hwBtn2: boolean = getState(config.mrIcon2ScreensaverEntity.ScreensaverEntity).val;
                            if (hwBtn2) {
                                hwBtn2Col = config.mrIcon2ScreensaverEntity.ScreensaverEntityOnColor;               
                            }
                            payloadString += Icons.GetIcon(config.mrIcon2ScreensaverEntity.ScreensaverEntityIcon) + '~' + rgb_dec565(hwBtn2Col) + '~';
                        }  
                    } else {
                        hwBtn2Col = Black;
                        payloadString += '~~';
                    }
                    HandleScreensaverColors();
                    
                    SendToPanel(<Payload>{ payload: payloadString });
                    
                }
            } catch (err) {
                console.log('HandleScreensaverUpdate: ' + err.message);
            }        
        }
        

        N Offline
        N Offline
        nevermind
        wrote on last edited by
        #347

        @armilar

        Yes:) Danke dir!

        ArmilarA 1 Reply Last reply
        0
        • N nevermind

          @armilar

          Yes:) Danke dir!

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

          @nevermind sagte in SONOFF NSPanel mit Lovelace UI:

          @armilar

          Yes:) Danke dir!

          :+1:

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

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

          1 Reply Last reply
          0
          • C chiob314

            @armilar ubuntu 20.04, tagesaktuell gepatcht

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

            @chiob314 sagte in SONOFF NSPanel mit Lovelace UI:

            @armilar ubuntu 20.04, tagesaktuell gepatcht

            was zeigt

            $ locale
            

            und

            $ locale -a
            

            an?

            Nee, habe aktuell ein ubuntu22.04 laufen. Mache alle Installationen immer selbst...

            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.

            C 1 Reply Last reply
            0
            • ArmilarA Armilar

              @chiob314 sagte in SONOFF NSPanel mit Lovelace UI:

              @armilar ubuntu 20.04, tagesaktuell gepatcht

              was zeigt

              $ locale
              

              und

              $ locale -a
              

              an?

              Nee, habe aktuell ein ubuntu22.04 laufen. Mache alle Installationen immer selbst...

              C Offline
              C Offline
              chiob314
              wrote on last edited by
              #350

              @armilar

              administrator@mrtn-iobroker:~$ locale
              LANG=de_DE.UTF-8
              LANGUAGE=
              LC_CTYPE="de_DE.UTF-8"
              LC_NUMERIC="de_DE.UTF-8"
              LC_TIME="de_DE.UTF-8"
              LC_COLLATE="de_DE.UTF-8"
              LC_MONETARY="de_DE.UTF-8"
              LC_MESSAGES="de_DE.UTF-8"
              LC_PAPER="de_DE.UTF-8"
              LC_NAME="de_DE.UTF-8"
              LC_ADDRESS="de_DE.UTF-8"
              LC_TELEPHONE="de_DE.UTF-8"
              LC_MEASUREMENT="de_DE.UTF-8"
              LC_IDENTIFICATION="de_DE.UTF-8"
              LC_ALL=
              administrator@mrtn-iobroker:~$ locale -a
              C
              C.UTF-8
              de_DE.utf8
              en_US.utf8
              POSIX
              
              
              ArmilarA 1 Reply Last reply
              0
              • C chiob314

                @armilar

                administrator@mrtn-iobroker:~$ locale
                LANG=de_DE.UTF-8
                LANGUAGE=
                LC_CTYPE="de_DE.UTF-8"
                LC_NUMERIC="de_DE.UTF-8"
                LC_TIME="de_DE.UTF-8"
                LC_COLLATE="de_DE.UTF-8"
                LC_MONETARY="de_DE.UTF-8"
                LC_MESSAGES="de_DE.UTF-8"
                LC_PAPER="de_DE.UTF-8"
                LC_NAME="de_DE.UTF-8"
                LC_ADDRESS="de_DE.UTF-8"
                LC_TELEPHONE="de_DE.UTF-8"
                LC_MEASUREMENT="de_DE.UTF-8"
                LC_IDENTIFICATION="de_DE.UTF-8"
                LC_ALL=
                administrator@mrtn-iobroker:~$ locale -a
                C
                C.UTF-8
                de_DE.utf8
                en_US.utf8
                POSIX
                
                
                ArmilarA Offline
                ArmilarA Offline
                Armilar
                Most Active Forum Testing
                wrote on last edited by
                #351

                @chiob314 sagte in SONOFF NSPanel mit Lovelace UI:

                @armilar

                administrator@mrtn-iobroker:~$ locale
                LANG=de_DE.UTF-8
                LANGUAGE=
                LC_CTYPE="de_DE.UTF-8"
                LC_NUMERIC="de_DE.UTF-8"
                LC_TIME="de_DE.UTF-8"
                LC_COLLATE="de_DE.UTF-8"
                LC_MONETARY="de_DE.UTF-8"
                LC_MESSAGES="de_DE.UTF-8"
                LC_PAPER="de_DE.UTF-8"
                LC_NAME="de_DE.UTF-8"
                LC_ADDRESS="de_DE.UTF-8"
                LC_TELEPHONE="de_DE.UTF-8"
                LC_MEASUREMENT="de_DE.UTF-8"
                LC_IDENTIFICATION="de_DE.UTF-8"
                LC_ALL=
                administrator@mrtn-iobroker:~$ locale -a
                C
                C.UTF-8
                de_DE.utf8
                en_US.utf8
                POSIX
                
                

                da gibt es von meiner Seite kein Veto...

                Wie sieht die Einstellung im ioBroker aus?

                d8589df1-8740-4d88-8112-1935102dfbac-image.png

                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.

                C 2 Replies Last reply
                0
                • ArmilarA Armilar

                  @chiob314 sagte in SONOFF NSPanel mit Lovelace UI:

                  @armilar

                  administrator@mrtn-iobroker:~$ locale
                  LANG=de_DE.UTF-8
                  LANGUAGE=
                  LC_CTYPE="de_DE.UTF-8"
                  LC_NUMERIC="de_DE.UTF-8"
                  LC_TIME="de_DE.UTF-8"
                  LC_COLLATE="de_DE.UTF-8"
                  LC_MONETARY="de_DE.UTF-8"
                  LC_MESSAGES="de_DE.UTF-8"
                  LC_PAPER="de_DE.UTF-8"
                  LC_NAME="de_DE.UTF-8"
                  LC_ADDRESS="de_DE.UTF-8"
                  LC_TELEPHONE="de_DE.UTF-8"
                  LC_MEASUREMENT="de_DE.UTF-8"
                  LC_IDENTIFICATION="de_DE.UTF-8"
                  LC_ALL=
                  administrator@mrtn-iobroker:~$ locale -a
                  C
                  C.UTF-8
                  de_DE.utf8
                  en_US.utf8
                  POSIX
                  
                  

                  da gibt es von meiner Seite kein Veto...

                  Wie sieht die Einstellung im ioBroker aus?

                  d8589df1-8740-4d88-8112-1935102dfbac-image.png

                  C Offline
                  C Offline
                  chiob314
                  wrote on last edited by
                  #352

                  @armilar
                  5935af2f-6e96-4ce9-a3d9-89621bac29da-grafik.png

                  Eigentlich auch soweit ok....

                  ArmilarA 1 Reply Last reply
                  0
                  • C chiob314

                    @armilar
                    5935af2f-6e96-4ce9-a3d9-89621bac29da-grafik.png

                    Eigentlich auch soweit ok....

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

                    @chiob314 sagte in SONOFF NSPanel mit Lovelace UI:

                    @armilar
                    5935af2f-6e96-4ce9-a3d9-89621bac29da-grafik.png

                    Eigentlich auch soweit ok....

                    Dann verstehe ich das aber irgendwie auch nicht mehr... :confused:

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

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

                    1 Reply Last reply
                    0
                    • ArmilarA Armilar

                      @chiob314 sagte in SONOFF NSPanel mit Lovelace UI:

                      @armilar

                      administrator@mrtn-iobroker:~$ locale
                      LANG=de_DE.UTF-8
                      LANGUAGE=
                      LC_CTYPE="de_DE.UTF-8"
                      LC_NUMERIC="de_DE.UTF-8"
                      LC_TIME="de_DE.UTF-8"
                      LC_COLLATE="de_DE.UTF-8"
                      LC_MONETARY="de_DE.UTF-8"
                      LC_MESSAGES="de_DE.UTF-8"
                      LC_PAPER="de_DE.UTF-8"
                      LC_NAME="de_DE.UTF-8"
                      LC_ADDRESS="de_DE.UTF-8"
                      LC_TELEPHONE="de_DE.UTF-8"
                      LC_MEASUREMENT="de_DE.UTF-8"
                      LC_IDENTIFICATION="de_DE.UTF-8"
                      LC_ALL=
                      administrator@mrtn-iobroker:~$ locale -a
                      C
                      C.UTF-8
                      de_DE.utf8
                      en_US.utf8
                      POSIX
                      
                      

                      da gibt es von meiner Seite kein Veto...

                      Wie sieht die Einstellung im ioBroker aus?

                      d8589df1-8740-4d88-8112-1935102dfbac-image.png

                      C Offline
                      C Offline
                      chiob314
                      wrote on last edited by
                      #354

                      @armilar Dann sind wir ja schon zu zweit. (danke mal bis hierher!!)

                      Vielleicht gibt es ja noch von anderen Kollegen hier ein paar Ideen, was das sein könnte...

                      C ArmilarA T 3 Replies Last reply
                      0
                      • C chiob314

                        @armilar Dann sind wir ja schon zu zweit. (danke mal bis hierher!!)

                        Vielleicht gibt es ja noch von anderen Kollegen hier ein paar Ideen, was das sein könnte...

                        C Offline
                        C Offline
                        chiob314
                        wrote on last edited by
                        #355

                        @Armilar

                        Das Problem müsste irgendwo hier stecken:

                        function SendDate(): void {
                            try {
                                const date = new Date();
                                const options: any = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
                                const _SendDate = date.toLocaleDateString(config.locale, options);
                        
                                SendToPanel(<Payload>{ payload: 'date~' + _SendDate });
                            } catch (err) {
                                console.warn('function SendDate: ' + err.message);
                            }
                        }
                        

                        Die Funktion date.toLocalDateString müsste hier eigentlich brav alles umwandeln. Aus irgendeinem Grund passiert das nicht.

                        1 Reply Last reply
                        0
                        • C chiob314

                          @armilar Dann sind wir ja schon zu zweit. (danke mal bis hierher!!)

                          Vielleicht gibt es ja noch von anderen Kollegen hier ein paar Ideen, was das sein könnte...

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

                          @chiob314 sagte in SONOFF NSPanel mit Lovelace UI:

                          @armilar Dann sind wir ja schon zu zweit. (danke mal bis hierher!!)

                          Vielleicht gibt es ja noch von anderen Kollegen hier ein paar Ideen, was das sein könnte...

                          function SendDate(): void {
                              try {
                                  const date = new Date();
                                  const options: any = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
                                  const _SendDate = date.toLocaleDateString(config.locale, options);
                          
                                  SendToPanel(<Payload>{ payload: 'date~' + _SendDate });
                              } catch (err) {
                                  console.warn('function SendDate: ' + err.message);
                              }
                          }
                          

                          Das ist zumindest mal das Datum in der Mitte des Screensavers

                          Die bekommt als Variable in config.locale ein de-DE und wandelt alles dann um. Eigentlich kein Hexenwerk...

                          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.

                          C 1 Reply Last reply
                          0
                          • ArmilarA Armilar

                            @chiob314 sagte in SONOFF NSPanel mit Lovelace UI:

                            @armilar Dann sind wir ja schon zu zweit. (danke mal bis hierher!!)

                            Vielleicht gibt es ja noch von anderen Kollegen hier ein paar Ideen, was das sein könnte...

                            function SendDate(): void {
                                try {
                                    const date = new Date();
                                    const options: any = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
                                    const _SendDate = date.toLocaleDateString(config.locale, options);
                            
                                    SendToPanel(<Payload>{ payload: 'date~' + _SendDate });
                                } catch (err) {
                                    console.warn('function SendDate: ' + err.message);
                                }
                            }
                            

                            Das ist zumindest mal das Datum in der Mitte des Screensavers

                            Die bekommt als Variable in config.locale ein de-DE und wandelt alles dann um. Eigentlich kein Hexenwerk...

                            C Offline
                            C Offline
                            chiob314
                            wrote on last edited by
                            #357

                            @armilar richtig. Ich hab mal statt der Variable config.locale direkt 'de-DE' eingetragen. Aber.....
                            Auch mal mit ner anderen locale getestet. Keine Änderung.

                            C 1 Reply Last reply
                            0
                            • C chiob314

                              @armilar richtig. Ich hab mal statt der Variable config.locale direkt 'de-DE' eingetragen. Aber.....
                              Auch mal mit ner anderen locale getestet. Keine Änderung.

                              C Offline
                              C Offline
                              chiob314
                              wrote on last edited by
                              #358

                              @Armilar Problem gelöst! nodejs Update durchgeführt (ich war noch auf ner 12er Version.......)

                              Jetzt ist alles schick.

                              ArmilarA Thomas BraunT 2 Replies Last reply
                              0
                              • C chiob314

                                @Armilar Problem gelöst! nodejs Update durchgeführt (ich war noch auf ner 12er Version.......)

                                Jetzt ist alles schick.

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

                                @chiob314 sagte in SONOFF NSPanel mit Lovelace UI:

                                @Armilar Problem gelöst! nodejs Update durchgeführt (ich war noch auf ner 12er Version.......)

                                Jetzt ist alles schick.

                                :+1:

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

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

                                1 Reply Last reply
                                0
                                • C chiob314

                                  @Armilar Problem gelöst! nodejs Update durchgeführt (ich war noch auf ner 12er Version.......)

                                  Jetzt ist alles schick.

                                  Thomas BraunT Online
                                  Thomas BraunT Online
                                  Thomas Braun
                                  Most Active
                                  wrote on last edited by Thomas Braun
                                  #360

                                  @chiob314 sagte in SONOFF NSPanel mit Lovelace UI:

                                  nodejs Update durchgeführt (ich war noch auf ner 12er Version.......)

                                  Und ich bekomme immer zuhören:
                                  Du immer mit deinem nodejs-Update-Geseiere...
                                  Das hat überhaupt nichts mit dem Problem zu tun!1!

                                  Ein aktuelles und korrekt installiertes nodejs ist die Grundlage für alles im iobroker!

                                  Linux-Werkzeugkasten:
                                  https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                                  NodeJS Fixer Skript:
                                  https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                                  iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                                  1 Reply Last reply
                                  0
                                  • ArmilarA Offline
                                    ArmilarA Offline
                                    Armilar
                                    Most Active Forum Testing
                                    wrote on last edited by Armilar
                                    #361

                                    @thomas-braun sagte in SONOFF NSPanel mit Lovelace UI:

                                    @chiob314 sagte in SONOFF NSPanel mit Lovelace UI:

                                    nodejs Update durchgeführt (ich war noch auf ner 12er Version.......)

                                    Und ich bekomme immer zuhören:
                                    Du immer mit deinem nodejs-Update-Geseiere...
                                    Das hat überhaupt nichts mit dem Problem zu tun!1!

                                    Ein aktuelles und korrekt installiertes nodejs ist die Grundlage für alles im iobroker!

                                    "vor allem korrekt installiert" - denn "date.toLocaleDateString" gab es in der 12er auch schon... ;-)

                                    Aber aktuell sollte es auch sein. Und Probleme, dessen Ursache man an an völlig anderer Stelle erwartet, lösen sich dann in Luft auf... So eine Laufzeitumgebung für Javascript ist halt auch nur ein Mensch... :blush: :+1:

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

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

                                    1 Reply Last reply
                                    2
                                    • MatzebhvM Offline
                                      MatzebhvM Offline
                                      Matzebhv
                                      wrote on last edited by
                                      #362

                                      Moin, ich wieder mit meinem neu aufgesetzten System :-)

                                      Habe die Chance genutzt und sowohl die Firmware als auch die Scripte auf aktuellen Stand zu bringen.

                                      Das Panel funktioniert einwandfrei, allerdings wird das Log vollgeschrieben mit:

                                      script.js.NSPanel.Panel1: error with reading senor-data: Cannot read properties of undefined (reading 'Temperature')

                                      Ich kann den Fehler absolut nicht finden.

                                      Tasmota, Firmware, Script und iOBroker aktuell.

                                      Gruß
                                      Matze

                                      ArmilarA 1 Reply Last reply
                                      0
                                      • MatzebhvM Matzebhv

                                        Moin, ich wieder mit meinem neu aufgesetzten System :-)

                                        Habe die Chance genutzt und sowohl die Firmware als auch die Scripte auf aktuellen Stand zu bringen.

                                        Das Panel funktioniert einwandfrei, allerdings wird das Log vollgeschrieben mit:

                                        script.js.NSPanel.Panel1: error with reading senor-data: Cannot read properties of undefined (reading 'Temperature')

                                        Ich kann den Fehler absolut nicht finden.

                                        Tasmota, Firmware, Script und iOBroker aktuell.

                                        Gruß
                                        Matze

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

                                        @matzebhv sagte in SONOFF NSPanel mit Lovelace UI:

                                        Moin, ich wieder mit meinem neu aufgesetzten System :-)

                                        Habe die Chance genutzt und sowohl die Firmware als auch die Scripte auf aktuellen Stand zu bringen.

                                        Das Panel funktioniert einwandfrei, allerdings wird das Log vollgeschrieben mit:

                                        script.js.NSPanel.Panel1: error with reading senor-data: Cannot read properties of undefined (reading 'Temperature')

                                        Ich kann den Fehler absolut nicht finden.

                                        Tasmota, Firmware, Script und iOBroker aktuell.

                                        Gruß
                                        Matze

                                        Benutzt du eine Emulation oder das echte Panel?

                                        Erste Vermutung: Der interne Sensor ist nicht im Tasmota-Template...

                                        Hintergrund, es werden die internen Sensordaten (der benannte ist der Temperatursensor) ausgelesen und in Datenpunkte unter 0_userdata.0. geschrieben. Bei meiner Emu (die hat ja keine externen Sensoren) ist der Fehler völlig normal. Beim Original Panel allerdings nicht.

                                        Nachfolgende Funktion (fast am Ende des TS-Scripts vor den Color-Funktionen) findest du folgende Funktion:

                                        //------------------Begin Read Internal Sensor Data
                                        on({ id: config.panelRecvTopic.substring(0, config.panelRecvTopic.length - 'RESULT'.length) + 'SENSOR' }, async (obj) => {
                                            try {
                                                const Tasmota_Sensor = JSON.parse(obj.state.val);
                                        
                                                await createStateAsync(NSPanel_Path + 'Sensor.Time', <iobJS.StateCommon>{ type: 'string' });
                                                await createStateAsync(NSPanel_Path + 'Sensor.TempUnit', <iobJS.StateCommon>{ type: 'string' });
                                                await createStateAsync(NSPanel_Path + 'Sensor.ANALOG.Temperature', <iobJS.StateCommon>{ type: 'number', 'unit': '°C' });
                                                await createStateAsync(NSPanel_Path + 'Sensor.ESP32.Temperature', <iobJS.StateCommon>{ type: 'number', 'unit': '°C' });
                                        
                                                await setStateAsync(NSPanel_Path + 'Sensor.Time', <iobJS.State>{ val: Tasmota_Sensor.Time, ack: true });
                                                await setStateAsync(NSPanel_Path + 'Sensor.TempUnit', <iobJS.State>{ val: '°' + Tasmota_Sensor.TempUnit, ack: true });
                                                //await setStateAsync(NSPanel_Path + 'Sensor.ANALOG.Temperature', <iobJS.State>{ val: parseFloat(Tasmota_Sensor.ANALOG.Temperature1), ack: true });
                                                await setStateAsync(NSPanel_Path + 'Sensor.ESP32.Temperature', <iobJS.State>{ val: parseFloat(Tasmota_Sensor.ESP32.Temperature), ack: true });
                                            } catch (err) {
                                                console.warn('error with reading senor-data: '+ err.message);
                                            }
                                        });
                                        //------------------End Read Internal Sensor Data
                                        

                                        Kommentiere den vorletzten setStateAsync mal aus. Falls danach immer noch, den ESP32 Sensor eine Zeile danach.

                                        Dann melden ;-)

                                        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.

                                        MatzebhvM 1 Reply Last reply
                                        0
                                        • ArmilarA Armilar

                                          @matzebhv sagte in SONOFF NSPanel mit Lovelace UI:

                                          Moin, ich wieder mit meinem neu aufgesetzten System :-)

                                          Habe die Chance genutzt und sowohl die Firmware als auch die Scripte auf aktuellen Stand zu bringen.

                                          Das Panel funktioniert einwandfrei, allerdings wird das Log vollgeschrieben mit:

                                          script.js.NSPanel.Panel1: error with reading senor-data: Cannot read properties of undefined (reading 'Temperature')

                                          Ich kann den Fehler absolut nicht finden.

                                          Tasmota, Firmware, Script und iOBroker aktuell.

                                          Gruß
                                          Matze

                                          Benutzt du eine Emulation oder das echte Panel?

                                          Erste Vermutung: Der interne Sensor ist nicht im Tasmota-Template...

                                          Hintergrund, es werden die internen Sensordaten (der benannte ist der Temperatursensor) ausgelesen und in Datenpunkte unter 0_userdata.0. geschrieben. Bei meiner Emu (die hat ja keine externen Sensoren) ist der Fehler völlig normal. Beim Original Panel allerdings nicht.

                                          Nachfolgende Funktion (fast am Ende des TS-Scripts vor den Color-Funktionen) findest du folgende Funktion:

                                          //------------------Begin Read Internal Sensor Data
                                          on({ id: config.panelRecvTopic.substring(0, config.panelRecvTopic.length - 'RESULT'.length) + 'SENSOR' }, async (obj) => {
                                              try {
                                                  const Tasmota_Sensor = JSON.parse(obj.state.val);
                                          
                                                  await createStateAsync(NSPanel_Path + 'Sensor.Time', <iobJS.StateCommon>{ type: 'string' });
                                                  await createStateAsync(NSPanel_Path + 'Sensor.TempUnit', <iobJS.StateCommon>{ type: 'string' });
                                                  await createStateAsync(NSPanel_Path + 'Sensor.ANALOG.Temperature', <iobJS.StateCommon>{ type: 'number', 'unit': '°C' });
                                                  await createStateAsync(NSPanel_Path + 'Sensor.ESP32.Temperature', <iobJS.StateCommon>{ type: 'number', 'unit': '°C' });
                                          
                                                  await setStateAsync(NSPanel_Path + 'Sensor.Time', <iobJS.State>{ val: Tasmota_Sensor.Time, ack: true });
                                                  await setStateAsync(NSPanel_Path + 'Sensor.TempUnit', <iobJS.State>{ val: '°' + Tasmota_Sensor.TempUnit, ack: true });
                                                  //await setStateAsync(NSPanel_Path + 'Sensor.ANALOG.Temperature', <iobJS.State>{ val: parseFloat(Tasmota_Sensor.ANALOG.Temperature1), ack: true });
                                                  await setStateAsync(NSPanel_Path + 'Sensor.ESP32.Temperature', <iobJS.State>{ val: parseFloat(Tasmota_Sensor.ESP32.Temperature), ack: true });
                                              } catch (err) {
                                                  console.warn('error with reading senor-data: '+ err.message);
                                              }
                                          });
                                          //------------------End Read Internal Sensor Data
                                          

                                          Kommentiere den vorletzten setStateAsync mal aus. Falls danach immer noch, den ESP32 Sensor eine Zeile danach.

                                          Dann melden ;-)

                                          MatzebhvM Offline
                                          MatzebhvM Offline
                                          Matzebhv
                                          wrote on last edited by
                                          #364

                                          @armilar Meld :-)

                                          Nein, ich benutze ein voll echtes Panel. Die Daten sind auch gerade unter 0_userdata.0.NSPanel.1.Sensor.ANALOG.Temperature angekommen -> 23.2

                                          Ich habe das trotzdem mal auskommentiert, hat leider nicht geholfen.

                                          //------------------Begin Read Internal Sensor Data
                                          on({ id: config.panelRecvTopic.substring(0, config.panelRecvTopic.length - 'RESULT'.length) + 'SENSOR' }, async (obj) => {
                                              try {
                                                  const Tasmota_Sensor = JSON.parse(obj.state.val);
                                          
                                                  await createStateAsync(NSPanel_Path + 'Sensor.Time', <iobJS.StateCommon>{ type: 'string' });
                                                  await createStateAsync(NSPanel_Path + 'Sensor.TempUnit', <iobJS.StateCommon>{ type: 'string' });
                                                  await createStateAsync(NSPanel_Path + 'Sensor.ANALOG.Temperature', <iobJS.StateCommon>{ type: 'number', 'unit': '°C' });
                                                  await createStateAsync(NSPanel_Path + 'Sensor.ESP32.Temperature', <iobJS.StateCommon>{ type: 'number', 'unit': '°C' });
                                          
                                                  await setStateAsync(NSPanel_Path + 'Sensor.Time', <iobJS.State>{ val: Tasmota_Sensor.Time, ack: true });
                                                  await setStateAsync(NSPanel_Path + 'Sensor.TempUnit', <iobJS.State>{ val: '°' + Tasmota_Sensor.TempUnit, ack: true });
                                                  //await setStateAsync(NSPanel_Path + 'Sensor.ANALOG.Temperature', <iobJS.State>{ val: parseFloat(Tasmota_Sensor.ANALOG.Temperature1), ack: true });
                                                  await setStateAsync(NSPanel_Path + 'Sensor.ESP32.Temperature', <iobJS.State>{ val: parseFloat(Tasmota_Sensor.ESP32.Temperature), ack: true });
                                              } catch (err) {
                                                  console.warn('error with reading senor-data: '+ err.message);
                                              }
                                          });
                                          //------------------End Read Internal Sensor Data
                                          

                                          -> script.js.NSPanel.Panel1: error with reading senor-data: Cannot read properties of undefined (reading 'Temperature')

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          421

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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