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

  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Coronavirus Statistics for ioBroker

NEWS

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

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

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

Test Coronavirus Statistics for ioBroker

Geplant Angeheftet Gesperrt Verschoben Tester
adapter installationadapterentwicklungtesten
1.2k Beiträge 120 Kommentatoren 336.9k Aufrufe 94 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • C Coffeelover

    @sebastian-io D.h. mit Hilfe deines Scripts werden auch diese Infos in Datenpunkte geschrieben, die ich in VIS nutzen könnte? Dann würde ich mich darüber auch sehr freuen.

    Sebastian IOS Offline
    Sebastian IOS Offline
    Sebastian IO
    schrieb am zuletzt editiert von
    #839

    Script zum Auslesen der corona statistik für jarvis visualisierung

    Mein Setup für jarvis zur Darstellung

    Für die Filter Statelist horizontal
    Für die Ausgabe customHtml
    Für das Aufbereiten des Designs in den Einstellungen Styles (pro)

    das Script wird im javascript adapter hinterlegt:

    const moment = require("moment");
    
    //Datumsformat
    moment.locale('de');
    let fRkiFaktor = 1.00443;
    
    /****** DATENPUNKTE MÜSSEN ERSTELLT WERDEN (Name Pfad frei konfigurierbar)  **********/
    /**role html, type string (Typ = Zeichenkette)  */
    let coronaHtmlDp = '0_userdata.0.vis.jarvis.coronahtml';
    
    // verwendet in function write_corona_stats() und für die Aktivierung der Eventlistener
    /**role switch, type boolean (Typ = Logikwert) */
    /**FILTER: setze den Wert auf false und der ausgewählte Datenpunkt wird nicht angezeigt */
    let filterDp = {
        'states': '0_userdata.0.vis.jarvis.corona.filter.bundeslaender',
        'cities': '0_userdata.0.vis.jarvis.corona.filter.cities',
        'countries': '0_userdata.0.vis.jarvis.corona.filter.countries',
        'top5': '0_userdata.0.vis.jarvis.corona.filter.top5stats',
    }
    /******ENDE DATENPUNKTE MÜSSEN ERSTELLT WERDEN **********/
    
    let countrySelector = '[id=coronavirus-statistics.0.*.population]';
    let oListCountry = $(countrySelector);
    
    let stateSelector = '[id=coronavirus-statistics.0.Germany.Bundesland.*.cases]';
    let oListState = $(stateSelector);
    
    let kreisSelector = '[id=coronavirus-statistics.0.Germany.Kreis.*.BL]';
    let oListKreis = $(kreisSelector);
    
    let stadtSelector = '[id=coronavirus-statistics.0.Germany.Stadt.*.BL]';
    let oListStadt = $(stadtSelector);
    
    //Mapper für Länder und Statistiken top5 und weltweit (nicht benötigte Datenpunkte können auskommentiert werden)
    let oSchemeCountry = {
        'updated': { 'title': 'zuletzt aktualisiert', 'format': 'datetime' },
        'population': { 'title': 'Einwohnerzahl', 'format': 'int' },
        'cases': { 'title': 'Fälle gesamt', 'format': 'int' },
        'active': { 'title': 'Aktuell infiziert', 'format': 'int' },
        'critical': { 'title': 'Im kritischen Zustand', 'format': 'int' },
        'recovered': { 'title': 'Genesene', 'format': 'int' },
        'tests': { 'title': 'Testungen', 'format': 'int' },
        'deaths': { 'title': 'Todesfälle', 'format': 'int' },
        'todayCases': { 'title': 'Heute neu infiziert', 'format': 'int' },
        'todayDeaths': { 'title': 'Heute Todesfälle', 'format': 'int' },
        'todayRecovered': { 'title': 'Heute Genesene', 'format': 'int' },
    };
    
    //Mapper für Bundesländer (nicht benötigte Datenpunkte können auskommentiert werden)
    let oSchemeState = {
        'updated': { 'title': 'zuletzt aktualisiert', 'format': 'datetime' },
        'cases': { 'title': ' COVID-19 Fälle gesamt', 'format': 'int' },
        'cases7_per_100k': { 'title': '7-Tage-Inzidenz', 'format': 'float' },
        'deaths': { 'title': 'COVID-19 Todesfälle', 'format': 'int' },
    
    };
    
    //Mapper für Stadt und Kreise (nicht benötigte Datenpunkte können auskommentiert werden)
    // hat ein title den Eintrag object wird der Name des Datenpunktes verwendet
    let oScheme = {
        'BL': { 'title': 'object', 'format': 'string' },
        'cases': { 'title': 'COVID-19 Fälle gesamt', 'format': 'int' },
        // 'cases_per_100k': { 'title': 'object', 'format': 'float' },
        // 'cases_per_population': { 'title': 'object', 'format': 'float' },
        // 'death_rate': { 'title': 'object', 'format': 'float' },
        'deaths': { 'title': 'COVID-19 Todesfälle', 'format': 'int' },
        'cases7_per_100k': { 'title': '7-Tage-Inzidenz', 'format': 'float' },
    };
    
    //Mapper für grafische Darstellung 7-Tages-Inzidenz verwendet in function calcGefahrInzidenz()
    let oScheme7Tg = {
        'ok': { 'title': 'Status ok', 'bgcolor': 'green', 'color': '#fff' },//wert 0 - 35
        'critical': { 'title': 'Status kritisch', 'bgcolor': 'orange', 'color': '#fff' }, //wert 35 - 50
        'high': { 'title': 'Status hoch', 'bgcolor': 'red', 'color': '#fff' }, // 50 - 100
        'veryhigh': { 'title': 'Status sehr hoch Notbremse aktiviert', 'bgcolor': 'darkred', 'color': '#fff' }// > 100
    };
    
    //Mapper für erlaubte Dinge 7-Tages-Inzidenz verwendet in function calcGefahrInzidenz()
    let oSchemeAllowed = {
        'ok': [// 0 - 35
            { 'title': 'Privat', 'descr': '3 Haushalte max. zehn Personen, Kinder bis 14 Jahre nicht mitgezählt' },
            { 'title': 'Geschäfte', 'descr': 'Einzelhandel mit kontrollierten Einlass' },
            { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten' },
            { 'title': 'Sport', 'descr': 'Außensport kontaktfrei (max. 10 Personen)' },
            { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
        ],
        'critical': [ // 35 - 50
            { 'title': 'Privat', 'descr': 'Max 5 Personen aus zwei Haushalten, Kinder bis 14 Jahre nicht mitgezählt' },
            { 'title': 'Geschäfte', 'descr': 'Einzelhandel mit kontrollierten Einlass' },
            { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten' },
            { 'title': 'Sport', 'descr': 'Außensport kontaktfrei (max. 10 Personen)' },
            { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
        ],
        'high': [ // 50 - 100
            { 'title': 'Privat', 'descr': 'Max 5 Personen aus zwei Haushalten, Kinder bis 14 Jahre nicht mitgezählt' },
            { 'title': 'Geschäfte', 'descr': 'Einzelhandel Click & Collect oder Click & Meet (40 Quadratmeter pro Person), Kontaktdatenerhebung' },
            { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten nur mit Terminbuchung' },
            { 'title': 'Sport', 'descr': 'Individualsport außen, max 5 Personen aus 2 Haushalten' },
            { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
        ],
        'veryhigh': [ // > 100
            { 'title': 'Privat', 'descr': 'ein Haushalt und eine weitere Person, nächtliche Ausgangssperre' },
            { 'title': 'Geschäfte', 'descr': 'Einzelhandel geschlossen' },
            { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten geschlossen' },
            { 'title': 'Sport', 'descr': 'Individualsport nur allein' },
            { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
            { 'title': 'Kindergärten und Kitas', 'descr': 'geschlossen, nur Notbetreuung' },
            { 'title': 'Schulen', 'descr': 'nur Distanzunterricht' },
        ],
    };
    
    //Mapper für Legende Landkreise und Städte
    let oSchemeLegende = {
        'city': [
            { 'title': 'Hinweis', 'descr': 'Zudem gilt die sogenannte Notbremse: Steigt die 7-Tage-Inzidenz pro 100.000 Einwohner an drei aufeinander folgenden Tagen in einem Landkreis oder einer kreisfreien Stadt über 100, treten die Regeln, die vor dem 8. März gegolten hatten, wieder in Kraft.' }
        ],
    };
    
    //Eventlistener for filter 
    for (const [key, dp] of Object.entries(filterDp)) {
        on({ id: dp }, write_corona_stats);
    };
    
    write_corona_stats();
    
    function write_corona_stats() {
        try {
    
            let sStateOut = '';
            let sOutSumGermany = '';
            //Liste ausgewählter Bundesländer
            var calcInzidenzSum = 0.00;
            if (oListState.length > 0) {
                let bShowStates = getState(filterDp.states).val;
                sStateOut = '<div class="co-container states">';
    
                oListState.each((item, index) => {
                    let iStateID = item.replace('.cases', '');
                    if (bShowStates === true) {
                        let sStateName = iStateID.replace('coronavirus-statistics.0.Germany.Bundesland.', '');
                        sStateOut += '<div class="co-container"><div class="co-heading state">' + sStateName + '</div>';
                    }
                    for (const [key, dp] of Object.entries(oSchemeState)) {
                        if (bShowStates === true) {
                            sStateOut += builElements(key, dp, iStateID, false, '');
                        }
                        if (key === 'cases7_per_100k') {
                            calcInzidenzSum += parseFloat(getState(iStateID + '.' + key).val);
                        }
                    }//End for
                    if (bShowStates === true) {
                        sStateOut += '</div>';
                    }
                });
    
                if (oListState.length === 16) {
                    let calc7IndDe = (calcInzidenzSum / oListState.length * fRkiFaktor);
                    let fCalc7IndDe = calc7IndDe.toFixed(2);
                    let sCalc7IndDe = number_format(calc7IndDe, 2, ',', '.');
    
                    let oReturn = calcGefahrInzidenz(fCalc7IndDe, sCalc7IndDe, false);
                    let valc7IndDe = oReturn.val;
    
                    sOutSumGermany = '<div class="co-entry de-7-inz horizontal"><div class="co-descr">7-Tage-Inzidenz</div><div class="co-val">' + valc7IndDe + '</div></div>';
                }
                sStateOut += '</div>';
            }
    
            //Liste ausgewählter Länder
            let sCountryOut = '';
            if (oListCountry.length > 0) {
                let bShowTop5 = getState(filterDp.top5).val;
                let bCountries = getState(filterDp.countries).val;
                //only countries
                if (bCountries === true) {
                    sCountryOut = '<div class="co-container countries">';
                    oListCountry.each((item, index) => {
                        let iCountryID = item.replace('.population', '');
                        if ((iCountryID.indexOf("country_Top_5") === -1 && iCountryID.indexOf("global_totals") === -1)) {
                            let sCountryName = iCountryID.replace('coronavirus-statistics.0.', '');
                            let sFlag = '<img class="co-flag" src="' + getState(iCountryID + '.flag').val + '"> ';
                            let sCountryNameTrans = sFlag + sCountryName;
    
                            if (sCountryName === 'Germany') {
                                sCountryNameTrans = sFlag + 'Deutschland';
                            }
                            sCountryOut += '<div class="co-container country"><div class="co-heading country">' + sCountryNameTrans + '</div>';
    
                            for (const [key, dp] of Object.entries(oSchemeCountry)) {
                                sCountryOut += builElements(key, dp, iCountryID, false, 'horizontal');
                            }//End for
    
                            if (sCountryName === 'Germany') {
                                sCountryOut += sOutSumGermany;
                            }
                            sCountryOut += '</div>';
                        }
                    });
                    sCountryOut += '</div>';
                }
    
                //only stats
                if (bShowTop5 === true) {
                    sCountryOut += '<div class="co-container stats">';
                    oListCountry.each((item, index) => {
                        let iCountryID = item.replace('.population', '');
                        if (iCountryID.indexOf("country_Top_5") > -1 || iCountryID.indexOf("global_totals") > -1) {
                            let sCountryName = iCountryID.replace('coronavirus-statistics.0.', '');
                            let sFlag = '';
                            if (iCountryID.indexOf("global_totals") === -1) {
                                sFlag = '<img class="co-flag" src="' + getState(iCountryID + '.flag').val + '"> ';
                            }
                            let sCountryNameTrans = sFlag + sCountryName;
    
                            if (sCountryName.indexOf("country_Top_5") > -1) {
                                let obj = getObject(iCountryID);
                                sCountryNameTrans = sFlag + obj.common.name;
                            } else if (sCountryName.indexOf("global_totals") > -1) {
                                sCountryNameTrans = 'Weltweit gesamt';
                            }
                            sCountryOut += '<div class="co-container country"><div class="co-heading stats">' + sCountryNameTrans + '</div>';
    
                            for (const [key, dp] of Object.entries(oSchemeCountry)) {
                                sCountryOut += builElements(key, dp, iCountryID, false, '');
                            }//End for
    
                            sCountryOut += '</div>';
                        }
                    });
                    sCountryOut += '</div>';
                }
            }
    
            //Liste Landkreise
            let sCityCountiesOut = '';
            if (oListKreis.length > 0 && getState(filterDp.cities).val === true) {
    
                oListKreis.each((item, index) => {
                    let iKreisID = item.replace('.BL', '');
                    let sKreisName = iKreisID.replace('coronavirus-statistics.0.Germany.Kreis.', '');
                    sCityCountiesOut += '<div class="co-container"><div class="co-heading county">' + 'Kreis ' + sKreisName + '</div>';
    
                    for (const [key, dp] of Object.entries(oScheme)) {
                        sCityCountiesOut += builElements(key, dp, iKreisID, true, '');
                    }//End for
    
                    sCityCountiesOut += '</div>';
                });//end each
            }
    
            //Liste kreisfreie Städte
            if (oListStadt.length > 0 && getState(filterDp.cities).val === true) {
                oListStadt.each((item, index) => {
                    let iStadtID = item.replace('.BL', '');
                    let sStadtName = iStadtID.replace('coronavirus-statistics.0.Germany.Stadt.', '');
                    sCityCountiesOut += '<div class="co-container"><div class="co-heading city">' + 'Stadt ' + sStadtName + '</div>';
    
                    for (const [key, dp] of Object.entries(oScheme)) {
                        sCityCountiesOut += builElements(key, dp, iStadtID, true, '');
                    }//End for
    
                    sCityCountiesOut += '</div>';
                });//end each
            }
    
            if (sCityCountiesOut !== '') {
                let sLegende = '<div class="co-legende">';
                for (const [key, element] of Object.entries(oSchemeLegende.city)) {
                    sLegende += '<b>' + element.title + '</b>: ' + element.descr;
                };
                sLegende += '</div>';
                sCityCountiesOut = '<div class="co-container cities-counties">' + sCityCountiesOut + sLegende + '</div>';
            }
    
            var sHtml = '<div class="co-overview">';
            sHtml += sCountryOut + sStateOut + sCityCountiesOut;
    
            setState(coronaHtmlDp, sHtml);
    
        } catch (err) {
            console.error('[CoronaStatus] error: ' + err.message + ', stack: ' + err.stack);
        }
    }
    
    function builElements(key, dp, dpId, bAllow, cssClass) {
        let descr = '';
        let val = '';
        let sList = '';
        let sOut = '';
    
        if (dp.title === 'object') {
            let obj = getObject(dpId + '.' + key);
            descr = obj.common.name;
        } else {
            descr = dp.title
        }
    
        if (dp.format === 'string') {
            val = getState(dpId + '.' + key).val;
        } else if (dp.format === 'datetime') {
            let valDate = getState(dpId + '.' + key).val;
            val = moment(valDate).format('DD.MM.YYYY HH:mm');
        } else if (dp.format === 'int') {
            val = getState(dpId + '.' + key).val;
            val = number_format(val, 0, '', '.');
        } else if (dp.format === 'float') {
            let fVal = parseFloat(getState(dpId + '.' + key).val).toFixed(2);
            val = number_format(fVal, 2, ',', '.');
            if (key === 'cases7_per_100k') {
                let oReturn = calcGefahrInzidenz(fVal, val, bAllow);
                val = oReturn.val;
                sList = (oReturn.list !== '') ? '<div class="co-allowed-list">' + oReturn.list + '</div>' : '';
            }
        }
    
        sOut = '<div class="co-entry co-dp-' + key + ' ' + cssClass + '"><div class="co-descr">' + descr + '</div><div class="co-val">' + val + '</div></div>';
    
        if (sList !== '') {
            sOut += sList;
        }
    
        return sOut;
    }
    
    function calcGefahrInzidenz(fVal, sVal, isAllowed) {
        let iVal = parseInt(fVal);
        let val = '';
        let sListAllowed = '';
    
        if (iVal < 35) {
            val = '<span class="badge" title="' + oScheme7Tg.ok.title + '" style="background-color:' + oScheme7Tg.ok.bgcolor + ';color:' + oScheme7Tg.ok.color + ';">' + sVal + '</span>';
            if (isAllowed === true) {
                sListAllowed = '<ul class="co-list">';
                for (const [key, element] of Object.entries(oSchemeAllowed.ok)) {
                    sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                };
                sListAllowed += '</ul>';
            }
        } else if (iVal >= 35 && iVal < 50) {
            val = '<span class="badge" title="' + oScheme7Tg.critical.title + '" style="background-color:' + oScheme7Tg.critical.bgcolor + ';color:' + oScheme7Tg.critical.color + ';">' + sVal + '</span>';
            if (isAllowed === true) {
                sListAllowed = '<ul class="co-list">';
                for (const [key, element] of Object.entries(oSchemeAllowed.critical)) {
                    sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                };
                sListAllowed += '</ul>';
            }
        } else if (iVal >= 50 && iVal < 100) {
            val = '<span class="badge" title="' + oScheme7Tg.high.title + '" style="background-color:' + oScheme7Tg.high.bgcolor + ';color:' + oScheme7Tg.high.color + ';">' + sVal + '</span>';
            if (isAllowed === true) {
                sListAllowed = '<ul class="co-list">';
                for (const [key, element] of Object.entries(oSchemeAllowed.high)) {
                    sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                };
                sListAllowed += '</ul>';
            }
        } else if (iVal >= 100) {
            val = '<span class="badge" title="' + oScheme7Tg.veryhigh.title + '" style="background-color:' + oScheme7Tg.veryhigh.bgcolor + ';color:' + oScheme7Tg.veryhigh.color + ';">' + sVal + '</span>';
            if (isAllowed === true) {
                sListAllowed = '<ul class="co-list">';
                for (const [key, element] of Object.entries(oSchemeAllowed.veryhigh)) {
                    sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                };
                sListAllowed += '</ul>';
            }
        }
        let oReturn = { 'val': val, 'list': sListAllowed };
    
        return oReturn;
    }
    
    //taken from https://gist.github.com/VassilisPallas/d73632e9de4794b7dd10b7408f7948e8/bf17eccef8521b4e5869bdc6a5b09a771356fbff
    function number_format(intFloatNumber, decimals, dec_point, thousands_point) {
    
        if (intFloatNumber == null || !isFinite(intFloatNumber)) {
            throw new TypeError("number is not valid");
        }
    
        if (!decimals) {
            let len = intFloatNumber.toString().split('.').length;
            decimals = len > 1 ? len : 0;
        }
    
        dec_point = (!dec_point) ? '.' : dec_point;
        thousands_point = (!thousands_point) ? '.' : thousands_point;
    
        intFloatNumber = parseFloat(intFloatNumber).toFixed(decimals);
        intFloatNumber = intFloatNumber.replace(".", dec_point);
    
        var splitNum = intFloatNumber.split(dec_point);
        splitNum[0] = splitNum[0].replace(/\B(?=(\d{3})+(?!\d))/g, thousands_point);
        intFloatNumber = splitNum.join(dec_point);
    
        return intFloatNumber;
    }
    
    

    Das erforderliche Css für das Design:

    /*corona*/
    .co-overview{
    position: relative;
    width: 100% ;
    display: inline-block;
    box-sizing:border-box;
    }
    
    .co-container{
    position: relative;
    width: calc(25% - 20px);
    display: inline-block;
    box-sizing:border-box;
    margin:10px;
    vertical-align:text-top;
    background-color:#f4f4f4;
    border-radius:8px;
    
    }
    
    .co-container.stats,
    .co-container.cities-counties,
    .co-container.countries,
    .co-container.states{
    width: 100%;
    background-color:#fff;
    margin:0;
    padding:0;
    }
    
    .co-container.stats .co-container{
    width:calc(33.333% - 20px);
    margin:10px;
    }
    
    .co-container.stats .co-container,
    .co-container.countries .co-container,
    .co-container.cities-counties .co-container,
    .co-container.states .co-container{
    box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);
    background-color:#fff;
    }
    
    
    .co-container.country{
    width: calc(100% - 20px);
    }
    .co-legende{
    width: calc(100% - 20px);
    padding: 10px;
    background: #FFCCBC;
    position: relative;
    margin-left: 10px;
    box-sizing: border-box;
    border-radius:8px;
    box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);
    margin-bottom: 10px;
    margin-top:10px;
    }
    
    .co-heading{
    position: relative;
    width: 100%;
    display: inline-block;
    font-weight:bold;
    padding: 0 5px;
    box-sizing: border-box;
    }
    
    .co-heading.stats,
    .co-heading.country,
    .co-heading.county,
    .co-heading.city,
    .co-heading.state{
    background: #2196F3;
    font-size: 14px;
    line-height: 35px;
    color: #fff;
    font-weight: normal;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    }
    
    .co-heading.stats{
    background:#F57C00;
    }
    .co-heading.country{
    background:#880E4F;
    }
    
    .co-heading.county,
    .co-heading.city{
    background: #00796B;
    }
    
    img.co-flag{
    height:15px;
    width:auto;
    }
    .co-entry{
    position: relative;
    width: 100%;
    display: inline-block;
    padding: 0 10px;
    box-sizing:border-box;
    }
    
    
    .co-entry .badge{
    font-size:12px;
    padding: 0px 4px;
    border-radius: 4px;
    }
    .co-descr{
    position: relative;
    width: 60%;
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    }
    .co-val{
    position: relative;
    width: 40%;
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align:right;
    }
    
    .co-container.states .co-entry.co-dp-updated,
    .co-container.stats .co-entry.co-dp-updated{
    font-size:11px;
    }
    .co-container.countries .co-entry.co-dp-updated.horizontal{
    font-size:14px;
    }
    
    .co-entry.horizontal{
    width: calc(16.6666% - 20px);
    margin: 17px 10px;
    background:#fff;
    border-radius:8px;
    padding:0;
    box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);
    }
    
    .co-entry.horizontal .co-descr,
    .co-entry.horizontal .co-val{
    width:100%;
    text-align:center;
    }
    .co-entry.horizontal .co-val{
    font-weight:bold;
    }
    .co-entry.horizontal .co-descr{
    background: #880E4F;
    font-size: 14px;
    line-height: 35px;
    color: #fff;
    font-weight: normal;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    }
    
    .co-allowed-list{
    position: relative;
    width: 100%;
    display: inline-block;
    padding: 10px;
    background-color: #EAEAB9;
    border-bottom-left-radius: 8px;
    box-sizing: border-box;
    margin-top: 10px;
    border-bottom-right-radius: 8px;
    }
    .co-list{
    margin:0;
    padding:0;
    list-style:none;
    position:relative;
    width:100%;
    display:inline-block;
    }
    
    .co-list li{
    position:relative;
    width:100%;
    font-size:14px;
    line-height:18px;
    marign-bottom:4px;
    }
    
    /*corona*/
    @media (max-width: 768px) {
    .co-container.stats .co-container {
        width: calc(50% - 20px);
    }
    .co-container{
    width: calc(50% - 20px);
    }
    }
    @media (max-width: 536px) {
    
    .co-container{
    width: calc(100% - 20px);
    }
    
    .co-container.stats .co-container {
        width: calc(100% - 20px);
    }
    .co-entry.horizontal {
        width: calc(50% - 20px);
    }
    }
    
    

    Have fun!

    sigi234S A 2 Antworten Letzte Antwort
    4
    • Sebastian IOS Sebastian IO

      Script zum Auslesen der corona statistik für jarvis visualisierung

      Mein Setup für jarvis zur Darstellung

      Für die Filter Statelist horizontal
      Für die Ausgabe customHtml
      Für das Aufbereiten des Designs in den Einstellungen Styles (pro)

      das Script wird im javascript adapter hinterlegt:

      const moment = require("moment");
      
      //Datumsformat
      moment.locale('de');
      let fRkiFaktor = 1.00443;
      
      /****** DATENPUNKTE MÜSSEN ERSTELLT WERDEN (Name Pfad frei konfigurierbar)  **********/
      /**role html, type string (Typ = Zeichenkette)  */
      let coronaHtmlDp = '0_userdata.0.vis.jarvis.coronahtml';
      
      // verwendet in function write_corona_stats() und für die Aktivierung der Eventlistener
      /**role switch, type boolean (Typ = Logikwert) */
      /**FILTER: setze den Wert auf false und der ausgewählte Datenpunkt wird nicht angezeigt */
      let filterDp = {
          'states': '0_userdata.0.vis.jarvis.corona.filter.bundeslaender',
          'cities': '0_userdata.0.vis.jarvis.corona.filter.cities',
          'countries': '0_userdata.0.vis.jarvis.corona.filter.countries',
          'top5': '0_userdata.0.vis.jarvis.corona.filter.top5stats',
      }
      /******ENDE DATENPUNKTE MÜSSEN ERSTELLT WERDEN **********/
      
      let countrySelector = '[id=coronavirus-statistics.0.*.population]';
      let oListCountry = $(countrySelector);
      
      let stateSelector = '[id=coronavirus-statistics.0.Germany.Bundesland.*.cases]';
      let oListState = $(stateSelector);
      
      let kreisSelector = '[id=coronavirus-statistics.0.Germany.Kreis.*.BL]';
      let oListKreis = $(kreisSelector);
      
      let stadtSelector = '[id=coronavirus-statistics.0.Germany.Stadt.*.BL]';
      let oListStadt = $(stadtSelector);
      
      //Mapper für Länder und Statistiken top5 und weltweit (nicht benötigte Datenpunkte können auskommentiert werden)
      let oSchemeCountry = {
          'updated': { 'title': 'zuletzt aktualisiert', 'format': 'datetime' },
          'population': { 'title': 'Einwohnerzahl', 'format': 'int' },
          'cases': { 'title': 'Fälle gesamt', 'format': 'int' },
          'active': { 'title': 'Aktuell infiziert', 'format': 'int' },
          'critical': { 'title': 'Im kritischen Zustand', 'format': 'int' },
          'recovered': { 'title': 'Genesene', 'format': 'int' },
          'tests': { 'title': 'Testungen', 'format': 'int' },
          'deaths': { 'title': 'Todesfälle', 'format': 'int' },
          'todayCases': { 'title': 'Heute neu infiziert', 'format': 'int' },
          'todayDeaths': { 'title': 'Heute Todesfälle', 'format': 'int' },
          'todayRecovered': { 'title': 'Heute Genesene', 'format': 'int' },
      };
      
      //Mapper für Bundesländer (nicht benötigte Datenpunkte können auskommentiert werden)
      let oSchemeState = {
          'updated': { 'title': 'zuletzt aktualisiert', 'format': 'datetime' },
          'cases': { 'title': ' COVID-19 Fälle gesamt', 'format': 'int' },
          'cases7_per_100k': { 'title': '7-Tage-Inzidenz', 'format': 'float' },
          'deaths': { 'title': 'COVID-19 Todesfälle', 'format': 'int' },
      
      };
      
      //Mapper für Stadt und Kreise (nicht benötigte Datenpunkte können auskommentiert werden)
      // hat ein title den Eintrag object wird der Name des Datenpunktes verwendet
      let oScheme = {
          'BL': { 'title': 'object', 'format': 'string' },
          'cases': { 'title': 'COVID-19 Fälle gesamt', 'format': 'int' },
          // 'cases_per_100k': { 'title': 'object', 'format': 'float' },
          // 'cases_per_population': { 'title': 'object', 'format': 'float' },
          // 'death_rate': { 'title': 'object', 'format': 'float' },
          'deaths': { 'title': 'COVID-19 Todesfälle', 'format': 'int' },
          'cases7_per_100k': { 'title': '7-Tage-Inzidenz', 'format': 'float' },
      };
      
      //Mapper für grafische Darstellung 7-Tages-Inzidenz verwendet in function calcGefahrInzidenz()
      let oScheme7Tg = {
          'ok': { 'title': 'Status ok', 'bgcolor': 'green', 'color': '#fff' },//wert 0 - 35
          'critical': { 'title': 'Status kritisch', 'bgcolor': 'orange', 'color': '#fff' }, //wert 35 - 50
          'high': { 'title': 'Status hoch', 'bgcolor': 'red', 'color': '#fff' }, // 50 - 100
          'veryhigh': { 'title': 'Status sehr hoch Notbremse aktiviert', 'bgcolor': 'darkred', 'color': '#fff' }// > 100
      };
      
      //Mapper für erlaubte Dinge 7-Tages-Inzidenz verwendet in function calcGefahrInzidenz()
      let oSchemeAllowed = {
          'ok': [// 0 - 35
              { 'title': 'Privat', 'descr': '3 Haushalte max. zehn Personen, Kinder bis 14 Jahre nicht mitgezählt' },
              { 'title': 'Geschäfte', 'descr': 'Einzelhandel mit kontrollierten Einlass' },
              { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten' },
              { 'title': 'Sport', 'descr': 'Außensport kontaktfrei (max. 10 Personen)' },
              { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
          ],
          'critical': [ // 35 - 50
              { 'title': 'Privat', 'descr': 'Max 5 Personen aus zwei Haushalten, Kinder bis 14 Jahre nicht mitgezählt' },
              { 'title': 'Geschäfte', 'descr': 'Einzelhandel mit kontrollierten Einlass' },
              { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten' },
              { 'title': 'Sport', 'descr': 'Außensport kontaktfrei (max. 10 Personen)' },
              { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
          ],
          'high': [ // 50 - 100
              { 'title': 'Privat', 'descr': 'Max 5 Personen aus zwei Haushalten, Kinder bis 14 Jahre nicht mitgezählt' },
              { 'title': 'Geschäfte', 'descr': 'Einzelhandel Click & Collect oder Click & Meet (40 Quadratmeter pro Person), Kontaktdatenerhebung' },
              { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten nur mit Terminbuchung' },
              { 'title': 'Sport', 'descr': 'Individualsport außen, max 5 Personen aus 2 Haushalten' },
              { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
          ],
          'veryhigh': [ // > 100
              { 'title': 'Privat', 'descr': 'ein Haushalt und eine weitere Person, nächtliche Ausgangssperre' },
              { 'title': 'Geschäfte', 'descr': 'Einzelhandel geschlossen' },
              { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten geschlossen' },
              { 'title': 'Sport', 'descr': 'Individualsport nur allein' },
              { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
              { 'title': 'Kindergärten und Kitas', 'descr': 'geschlossen, nur Notbetreuung' },
              { 'title': 'Schulen', 'descr': 'nur Distanzunterricht' },
          ],
      };
      
      //Mapper für Legende Landkreise und Städte
      let oSchemeLegende = {
          'city': [
              { 'title': 'Hinweis', 'descr': 'Zudem gilt die sogenannte Notbremse: Steigt die 7-Tage-Inzidenz pro 100.000 Einwohner an drei aufeinander folgenden Tagen in einem Landkreis oder einer kreisfreien Stadt über 100, treten die Regeln, die vor dem 8. März gegolten hatten, wieder in Kraft.' }
          ],
      };
      
      //Eventlistener for filter 
      for (const [key, dp] of Object.entries(filterDp)) {
          on({ id: dp }, write_corona_stats);
      };
      
      write_corona_stats();
      
      function write_corona_stats() {
          try {
      
              let sStateOut = '';
              let sOutSumGermany = '';
              //Liste ausgewählter Bundesländer
              var calcInzidenzSum = 0.00;
              if (oListState.length > 0) {
                  let bShowStates = getState(filterDp.states).val;
                  sStateOut = '<div class="co-container states">';
      
                  oListState.each((item, index) => {
                      let iStateID = item.replace('.cases', '');
                      if (bShowStates === true) {
                          let sStateName = iStateID.replace('coronavirus-statistics.0.Germany.Bundesland.', '');
                          sStateOut += '<div class="co-container"><div class="co-heading state">' + sStateName + '</div>';
                      }
                      for (const [key, dp] of Object.entries(oSchemeState)) {
                          if (bShowStates === true) {
                              sStateOut += builElements(key, dp, iStateID, false, '');
                          }
                          if (key === 'cases7_per_100k') {
                              calcInzidenzSum += parseFloat(getState(iStateID + '.' + key).val);
                          }
                      }//End for
                      if (bShowStates === true) {
                          sStateOut += '</div>';
                      }
                  });
      
                  if (oListState.length === 16) {
                      let calc7IndDe = (calcInzidenzSum / oListState.length * fRkiFaktor);
                      let fCalc7IndDe = calc7IndDe.toFixed(2);
                      let sCalc7IndDe = number_format(calc7IndDe, 2, ',', '.');
      
                      let oReturn = calcGefahrInzidenz(fCalc7IndDe, sCalc7IndDe, false);
                      let valc7IndDe = oReturn.val;
      
                      sOutSumGermany = '<div class="co-entry de-7-inz horizontal"><div class="co-descr">7-Tage-Inzidenz</div><div class="co-val">' + valc7IndDe + '</div></div>';
                  }
                  sStateOut += '</div>';
              }
      
              //Liste ausgewählter Länder
              let sCountryOut = '';
              if (oListCountry.length > 0) {
                  let bShowTop5 = getState(filterDp.top5).val;
                  let bCountries = getState(filterDp.countries).val;
                  //only countries
                  if (bCountries === true) {
                      sCountryOut = '<div class="co-container countries">';
                      oListCountry.each((item, index) => {
                          let iCountryID = item.replace('.population', '');
                          if ((iCountryID.indexOf("country_Top_5") === -1 && iCountryID.indexOf("global_totals") === -1)) {
                              let sCountryName = iCountryID.replace('coronavirus-statistics.0.', '');
                              let sFlag = '<img class="co-flag" src="' + getState(iCountryID + '.flag').val + '"> ';
                              let sCountryNameTrans = sFlag + sCountryName;
      
                              if (sCountryName === 'Germany') {
                                  sCountryNameTrans = sFlag + 'Deutschland';
                              }
                              sCountryOut += '<div class="co-container country"><div class="co-heading country">' + sCountryNameTrans + '</div>';
      
                              for (const [key, dp] of Object.entries(oSchemeCountry)) {
                                  sCountryOut += builElements(key, dp, iCountryID, false, 'horizontal');
                              }//End for
      
                              if (sCountryName === 'Germany') {
                                  sCountryOut += sOutSumGermany;
                              }
                              sCountryOut += '</div>';
                          }
                      });
                      sCountryOut += '</div>';
                  }
      
                  //only stats
                  if (bShowTop5 === true) {
                      sCountryOut += '<div class="co-container stats">';
                      oListCountry.each((item, index) => {
                          let iCountryID = item.replace('.population', '');
                          if (iCountryID.indexOf("country_Top_5") > -1 || iCountryID.indexOf("global_totals") > -1) {
                              let sCountryName = iCountryID.replace('coronavirus-statistics.0.', '');
                              let sFlag = '';
                              if (iCountryID.indexOf("global_totals") === -1) {
                                  sFlag = '<img class="co-flag" src="' + getState(iCountryID + '.flag').val + '"> ';
                              }
                              let sCountryNameTrans = sFlag + sCountryName;
      
                              if (sCountryName.indexOf("country_Top_5") > -1) {
                                  let obj = getObject(iCountryID);
                                  sCountryNameTrans = sFlag + obj.common.name;
                              } else if (sCountryName.indexOf("global_totals") > -1) {
                                  sCountryNameTrans = 'Weltweit gesamt';
                              }
                              sCountryOut += '<div class="co-container country"><div class="co-heading stats">' + sCountryNameTrans + '</div>';
      
                              for (const [key, dp] of Object.entries(oSchemeCountry)) {
                                  sCountryOut += builElements(key, dp, iCountryID, false, '');
                              }//End for
      
                              sCountryOut += '</div>';
                          }
                      });
                      sCountryOut += '</div>';
                  }
              }
      
              //Liste Landkreise
              let sCityCountiesOut = '';
              if (oListKreis.length > 0 && getState(filterDp.cities).val === true) {
      
                  oListKreis.each((item, index) => {
                      let iKreisID = item.replace('.BL', '');
                      let sKreisName = iKreisID.replace('coronavirus-statistics.0.Germany.Kreis.', '');
                      sCityCountiesOut += '<div class="co-container"><div class="co-heading county">' + 'Kreis ' + sKreisName + '</div>';
      
                      for (const [key, dp] of Object.entries(oScheme)) {
                          sCityCountiesOut += builElements(key, dp, iKreisID, true, '');
                      }//End for
      
                      sCityCountiesOut += '</div>';
                  });//end each
              }
      
              //Liste kreisfreie Städte
              if (oListStadt.length > 0 && getState(filterDp.cities).val === true) {
                  oListStadt.each((item, index) => {
                      let iStadtID = item.replace('.BL', '');
                      let sStadtName = iStadtID.replace('coronavirus-statistics.0.Germany.Stadt.', '');
                      sCityCountiesOut += '<div class="co-container"><div class="co-heading city">' + 'Stadt ' + sStadtName + '</div>';
      
                      for (const [key, dp] of Object.entries(oScheme)) {
                          sCityCountiesOut += builElements(key, dp, iStadtID, true, '');
                      }//End for
      
                      sCityCountiesOut += '</div>';
                  });//end each
              }
      
              if (sCityCountiesOut !== '') {
                  let sLegende = '<div class="co-legende">';
                  for (const [key, element] of Object.entries(oSchemeLegende.city)) {
                      sLegende += '<b>' + element.title + '</b>: ' + element.descr;
                  };
                  sLegende += '</div>';
                  sCityCountiesOut = '<div class="co-container cities-counties">' + sCityCountiesOut + sLegende + '</div>';
              }
      
              var sHtml = '<div class="co-overview">';
              sHtml += sCountryOut + sStateOut + sCityCountiesOut;
      
              setState(coronaHtmlDp, sHtml);
      
          } catch (err) {
              console.error('[CoronaStatus] error: ' + err.message + ', stack: ' + err.stack);
          }
      }
      
      function builElements(key, dp, dpId, bAllow, cssClass) {
          let descr = '';
          let val = '';
          let sList = '';
          let sOut = '';
      
          if (dp.title === 'object') {
              let obj = getObject(dpId + '.' + key);
              descr = obj.common.name;
          } else {
              descr = dp.title
          }
      
          if (dp.format === 'string') {
              val = getState(dpId + '.' + key).val;
          } else if (dp.format === 'datetime') {
              let valDate = getState(dpId + '.' + key).val;
              val = moment(valDate).format('DD.MM.YYYY HH:mm');
          } else if (dp.format === 'int') {
              val = getState(dpId + '.' + key).val;
              val = number_format(val, 0, '', '.');
          } else if (dp.format === 'float') {
              let fVal = parseFloat(getState(dpId + '.' + key).val).toFixed(2);
              val = number_format(fVal, 2, ',', '.');
              if (key === 'cases7_per_100k') {
                  let oReturn = calcGefahrInzidenz(fVal, val, bAllow);
                  val = oReturn.val;
                  sList = (oReturn.list !== '') ? '<div class="co-allowed-list">' + oReturn.list + '</div>' : '';
              }
          }
      
          sOut = '<div class="co-entry co-dp-' + key + ' ' + cssClass + '"><div class="co-descr">' + descr + '</div><div class="co-val">' + val + '</div></div>';
      
          if (sList !== '') {
              sOut += sList;
          }
      
          return sOut;
      }
      
      function calcGefahrInzidenz(fVal, sVal, isAllowed) {
          let iVal = parseInt(fVal);
          let val = '';
          let sListAllowed = '';
      
          if (iVal < 35) {
              val = '<span class="badge" title="' + oScheme7Tg.ok.title + '" style="background-color:' + oScheme7Tg.ok.bgcolor + ';color:' + oScheme7Tg.ok.color + ';">' + sVal + '</span>';
              if (isAllowed === true) {
                  sListAllowed = '<ul class="co-list">';
                  for (const [key, element] of Object.entries(oSchemeAllowed.ok)) {
                      sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                  };
                  sListAllowed += '</ul>';
              }
          } else if (iVal >= 35 && iVal < 50) {
              val = '<span class="badge" title="' + oScheme7Tg.critical.title + '" style="background-color:' + oScheme7Tg.critical.bgcolor + ';color:' + oScheme7Tg.critical.color + ';">' + sVal + '</span>';
              if (isAllowed === true) {
                  sListAllowed = '<ul class="co-list">';
                  for (const [key, element] of Object.entries(oSchemeAllowed.critical)) {
                      sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                  };
                  sListAllowed += '</ul>';
              }
          } else if (iVal >= 50 && iVal < 100) {
              val = '<span class="badge" title="' + oScheme7Tg.high.title + '" style="background-color:' + oScheme7Tg.high.bgcolor + ';color:' + oScheme7Tg.high.color + ';">' + sVal + '</span>';
              if (isAllowed === true) {
                  sListAllowed = '<ul class="co-list">';
                  for (const [key, element] of Object.entries(oSchemeAllowed.high)) {
                      sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                  };
                  sListAllowed += '</ul>';
              }
          } else if (iVal >= 100) {
              val = '<span class="badge" title="' + oScheme7Tg.veryhigh.title + '" style="background-color:' + oScheme7Tg.veryhigh.bgcolor + ';color:' + oScheme7Tg.veryhigh.color + ';">' + sVal + '</span>';
              if (isAllowed === true) {
                  sListAllowed = '<ul class="co-list">';
                  for (const [key, element] of Object.entries(oSchemeAllowed.veryhigh)) {
                      sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                  };
                  sListAllowed += '</ul>';
              }
          }
          let oReturn = { 'val': val, 'list': sListAllowed };
      
          return oReturn;
      }
      
      //taken from https://gist.github.com/VassilisPallas/d73632e9de4794b7dd10b7408f7948e8/bf17eccef8521b4e5869bdc6a5b09a771356fbff
      function number_format(intFloatNumber, decimals, dec_point, thousands_point) {
      
          if (intFloatNumber == null || !isFinite(intFloatNumber)) {
              throw new TypeError("number is not valid");
          }
      
          if (!decimals) {
              let len = intFloatNumber.toString().split('.').length;
              decimals = len > 1 ? len : 0;
          }
      
          dec_point = (!dec_point) ? '.' : dec_point;
          thousands_point = (!thousands_point) ? '.' : thousands_point;
      
          intFloatNumber = parseFloat(intFloatNumber).toFixed(decimals);
          intFloatNumber = intFloatNumber.replace(".", dec_point);
      
          var splitNum = intFloatNumber.split(dec_point);
          splitNum[0] = splitNum[0].replace(/\B(?=(\d{3})+(?!\d))/g, thousands_point);
          intFloatNumber = splitNum.join(dec_point);
      
          return intFloatNumber;
      }
      
      

      Das erforderliche Css für das Design:

      /*corona*/
      .co-overview{
      position: relative;
      width: 100% ;
      display: inline-block;
      box-sizing:border-box;
      }
      
      .co-container{
      position: relative;
      width: calc(25% - 20px);
      display: inline-block;
      box-sizing:border-box;
      margin:10px;
      vertical-align:text-top;
      background-color:#f4f4f4;
      border-radius:8px;
      
      }
      
      .co-container.stats,
      .co-container.cities-counties,
      .co-container.countries,
      .co-container.states{
      width: 100%;
      background-color:#fff;
      margin:0;
      padding:0;
      }
      
      .co-container.stats .co-container{
      width:calc(33.333% - 20px);
      margin:10px;
      }
      
      .co-container.stats .co-container,
      .co-container.countries .co-container,
      .co-container.cities-counties .co-container,
      .co-container.states .co-container{
      box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);
      background-color:#fff;
      }
      
      
      .co-container.country{
      width: calc(100% - 20px);
      }
      .co-legende{
      width: calc(100% - 20px);
      padding: 10px;
      background: #FFCCBC;
      position: relative;
      margin-left: 10px;
      box-sizing: border-box;
      border-radius:8px;
      box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);
      margin-bottom: 10px;
      margin-top:10px;
      }
      
      .co-heading{
      position: relative;
      width: 100%;
      display: inline-block;
      font-weight:bold;
      padding: 0 5px;
      box-sizing: border-box;
      }
      
      .co-heading.stats,
      .co-heading.country,
      .co-heading.county,
      .co-heading.city,
      .co-heading.state{
      background: #2196F3;
      font-size: 14px;
      line-height: 35px;
      color: #fff;
      font-weight: normal;
      border-top-left-radius: 8px;
      border-top-right-radius: 8px;
      }
      
      .co-heading.stats{
      background:#F57C00;
      }
      .co-heading.country{
      background:#880E4F;
      }
      
      .co-heading.county,
      .co-heading.city{
      background: #00796B;
      }
      
      img.co-flag{
      height:15px;
      width:auto;
      }
      .co-entry{
      position: relative;
      width: 100%;
      display: inline-block;
      padding: 0 10px;
      box-sizing:border-box;
      }
      
      
      .co-entry .badge{
      font-size:12px;
      padding: 0px 4px;
      border-radius: 4px;
      }
      .co-descr{
      position: relative;
      width: 60%;
      display: inline-block;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      }
      .co-val{
      position: relative;
      width: 40%;
      display: inline-block;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      text-align:right;
      }
      
      .co-container.states .co-entry.co-dp-updated,
      .co-container.stats .co-entry.co-dp-updated{
      font-size:11px;
      }
      .co-container.countries .co-entry.co-dp-updated.horizontal{
      font-size:14px;
      }
      
      .co-entry.horizontal{
      width: calc(16.6666% - 20px);
      margin: 17px 10px;
      background:#fff;
      border-radius:8px;
      padding:0;
      box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);
      }
      
      .co-entry.horizontal .co-descr,
      .co-entry.horizontal .co-val{
      width:100%;
      text-align:center;
      }
      .co-entry.horizontal .co-val{
      font-weight:bold;
      }
      .co-entry.horizontal .co-descr{
      background: #880E4F;
      font-size: 14px;
      line-height: 35px;
      color: #fff;
      font-weight: normal;
      border-top-left-radius: 8px;
      border-top-right-radius: 8px;
      }
      
      .co-allowed-list{
      position: relative;
      width: 100%;
      display: inline-block;
      padding: 10px;
      background-color: #EAEAB9;
      border-bottom-left-radius: 8px;
      box-sizing: border-box;
      margin-top: 10px;
      border-bottom-right-radius: 8px;
      }
      .co-list{
      margin:0;
      padding:0;
      list-style:none;
      position:relative;
      width:100%;
      display:inline-block;
      }
      
      .co-list li{
      position:relative;
      width:100%;
      font-size:14px;
      line-height:18px;
      marign-bottom:4px;
      }
      
      /*corona*/
      @media (max-width: 768px) {
      .co-container.stats .co-container {
          width: calc(50% - 20px);
      }
      .co-container{
      width: calc(50% - 20px);
      }
      }
      @media (max-width: 536px) {
      
      .co-container{
      width: calc(100% - 20px);
      }
      
      .co-container.stats .co-container {
          width: calc(100% - 20px);
      }
      .co-entry.horizontal {
          width: calc(50% - 20px);
      }
      }
      
      

      Have fun!

      sigi234S Online
      sigi234S Online
      sigi234
      Forum Testing Most Active
      schrieb am zuletzt editiert von sigi234
      #840

      @sebastian-io

      Cool, alles erledigt, wie bekomme ich es jetzt in Jarvis?

      Erledigt, aber weiße Schrift auf weißen Hintergrund.

      Screenshot (3471).png

      DARK MODE eingestellt!

      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Immer Daten sichern!

      Sebastian IOS 1 Antwort Letzte Antwort
      0
      • sigi234S sigi234

        @sebastian-io

        Cool, alles erledigt, wie bekomme ich es jetzt in Jarvis?

        Erledigt, aber weiße Schrift auf weißen Hintergrund.

        Screenshot (3471).png

        DARK MODE eingestellt!

        Sebastian IOS Offline
        Sebastian IOS Offline
        Sebastian IO
        schrieb am zuletzt editiert von
        #841

        @sigi234 du musst nun deine Farben noch in den Einstellungen Css pro anpassen, ich verwende ja das helle Design und da ist die StandardFarbe schwarz:

        Diese Anweisung suchen:

        .co-overview{
        position: relative;
        width: 100% ;
        display: inline-block;
        box-sizing:border-box;
        color:#000;
        }
        
        1 Antwort Letzte Antwort
        1
        • Sebastian IOS Sebastian IO

          Script zum Auslesen der corona statistik für jarvis visualisierung

          Mein Setup für jarvis zur Darstellung

          Für die Filter Statelist horizontal
          Für die Ausgabe customHtml
          Für das Aufbereiten des Designs in den Einstellungen Styles (pro)

          das Script wird im javascript adapter hinterlegt:

          const moment = require("moment");
          
          //Datumsformat
          moment.locale('de');
          let fRkiFaktor = 1.00443;
          
          /****** DATENPUNKTE MÜSSEN ERSTELLT WERDEN (Name Pfad frei konfigurierbar)  **********/
          /**role html, type string (Typ = Zeichenkette)  */
          let coronaHtmlDp = '0_userdata.0.vis.jarvis.coronahtml';
          
          // verwendet in function write_corona_stats() und für die Aktivierung der Eventlistener
          /**role switch, type boolean (Typ = Logikwert) */
          /**FILTER: setze den Wert auf false und der ausgewählte Datenpunkt wird nicht angezeigt */
          let filterDp = {
              'states': '0_userdata.0.vis.jarvis.corona.filter.bundeslaender',
              'cities': '0_userdata.0.vis.jarvis.corona.filter.cities',
              'countries': '0_userdata.0.vis.jarvis.corona.filter.countries',
              'top5': '0_userdata.0.vis.jarvis.corona.filter.top5stats',
          }
          /******ENDE DATENPUNKTE MÜSSEN ERSTELLT WERDEN **********/
          
          let countrySelector = '[id=coronavirus-statistics.0.*.population]';
          let oListCountry = $(countrySelector);
          
          let stateSelector = '[id=coronavirus-statistics.0.Germany.Bundesland.*.cases]';
          let oListState = $(stateSelector);
          
          let kreisSelector = '[id=coronavirus-statistics.0.Germany.Kreis.*.BL]';
          let oListKreis = $(kreisSelector);
          
          let stadtSelector = '[id=coronavirus-statistics.0.Germany.Stadt.*.BL]';
          let oListStadt = $(stadtSelector);
          
          //Mapper für Länder und Statistiken top5 und weltweit (nicht benötigte Datenpunkte können auskommentiert werden)
          let oSchemeCountry = {
              'updated': { 'title': 'zuletzt aktualisiert', 'format': 'datetime' },
              'population': { 'title': 'Einwohnerzahl', 'format': 'int' },
              'cases': { 'title': 'Fälle gesamt', 'format': 'int' },
              'active': { 'title': 'Aktuell infiziert', 'format': 'int' },
              'critical': { 'title': 'Im kritischen Zustand', 'format': 'int' },
              'recovered': { 'title': 'Genesene', 'format': 'int' },
              'tests': { 'title': 'Testungen', 'format': 'int' },
              'deaths': { 'title': 'Todesfälle', 'format': 'int' },
              'todayCases': { 'title': 'Heute neu infiziert', 'format': 'int' },
              'todayDeaths': { 'title': 'Heute Todesfälle', 'format': 'int' },
              'todayRecovered': { 'title': 'Heute Genesene', 'format': 'int' },
          };
          
          //Mapper für Bundesländer (nicht benötigte Datenpunkte können auskommentiert werden)
          let oSchemeState = {
              'updated': { 'title': 'zuletzt aktualisiert', 'format': 'datetime' },
              'cases': { 'title': ' COVID-19 Fälle gesamt', 'format': 'int' },
              'cases7_per_100k': { 'title': '7-Tage-Inzidenz', 'format': 'float' },
              'deaths': { 'title': 'COVID-19 Todesfälle', 'format': 'int' },
          
          };
          
          //Mapper für Stadt und Kreise (nicht benötigte Datenpunkte können auskommentiert werden)
          // hat ein title den Eintrag object wird der Name des Datenpunktes verwendet
          let oScheme = {
              'BL': { 'title': 'object', 'format': 'string' },
              'cases': { 'title': 'COVID-19 Fälle gesamt', 'format': 'int' },
              // 'cases_per_100k': { 'title': 'object', 'format': 'float' },
              // 'cases_per_population': { 'title': 'object', 'format': 'float' },
              // 'death_rate': { 'title': 'object', 'format': 'float' },
              'deaths': { 'title': 'COVID-19 Todesfälle', 'format': 'int' },
              'cases7_per_100k': { 'title': '7-Tage-Inzidenz', 'format': 'float' },
          };
          
          //Mapper für grafische Darstellung 7-Tages-Inzidenz verwendet in function calcGefahrInzidenz()
          let oScheme7Tg = {
              'ok': { 'title': 'Status ok', 'bgcolor': 'green', 'color': '#fff' },//wert 0 - 35
              'critical': { 'title': 'Status kritisch', 'bgcolor': 'orange', 'color': '#fff' }, //wert 35 - 50
              'high': { 'title': 'Status hoch', 'bgcolor': 'red', 'color': '#fff' }, // 50 - 100
              'veryhigh': { 'title': 'Status sehr hoch Notbremse aktiviert', 'bgcolor': 'darkred', 'color': '#fff' }// > 100
          };
          
          //Mapper für erlaubte Dinge 7-Tages-Inzidenz verwendet in function calcGefahrInzidenz()
          let oSchemeAllowed = {
              'ok': [// 0 - 35
                  { 'title': 'Privat', 'descr': '3 Haushalte max. zehn Personen, Kinder bis 14 Jahre nicht mitgezählt' },
                  { 'title': 'Geschäfte', 'descr': 'Einzelhandel mit kontrollierten Einlass' },
                  { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten' },
                  { 'title': 'Sport', 'descr': 'Außensport kontaktfrei (max. 10 Personen)' },
                  { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
              ],
              'critical': [ // 35 - 50
                  { 'title': 'Privat', 'descr': 'Max 5 Personen aus zwei Haushalten, Kinder bis 14 Jahre nicht mitgezählt' },
                  { 'title': 'Geschäfte', 'descr': 'Einzelhandel mit kontrollierten Einlass' },
                  { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten' },
                  { 'title': 'Sport', 'descr': 'Außensport kontaktfrei (max. 10 Personen)' },
                  { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
              ],
              'high': [ // 50 - 100
                  { 'title': 'Privat', 'descr': 'Max 5 Personen aus zwei Haushalten, Kinder bis 14 Jahre nicht mitgezählt' },
                  { 'title': 'Geschäfte', 'descr': 'Einzelhandel Click & Collect oder Click & Meet (40 Quadratmeter pro Person), Kontaktdatenerhebung' },
                  { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten nur mit Terminbuchung' },
                  { 'title': 'Sport', 'descr': 'Individualsport außen, max 5 Personen aus 2 Haushalten' },
                  { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
              ],
              'veryhigh': [ // > 100
                  { 'title': 'Privat', 'descr': 'ein Haushalt und eine weitere Person, nächtliche Ausgangssperre' },
                  { 'title': 'Geschäfte', 'descr': 'Einzelhandel geschlossen' },
                  { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten geschlossen' },
                  { 'title': 'Sport', 'descr': 'Individualsport nur allein' },
                  { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
                  { 'title': 'Kindergärten und Kitas', 'descr': 'geschlossen, nur Notbetreuung' },
                  { 'title': 'Schulen', 'descr': 'nur Distanzunterricht' },
              ],
          };
          
          //Mapper für Legende Landkreise und Städte
          let oSchemeLegende = {
              'city': [
                  { 'title': 'Hinweis', 'descr': 'Zudem gilt die sogenannte Notbremse: Steigt die 7-Tage-Inzidenz pro 100.000 Einwohner an drei aufeinander folgenden Tagen in einem Landkreis oder einer kreisfreien Stadt über 100, treten die Regeln, die vor dem 8. März gegolten hatten, wieder in Kraft.' }
              ],
          };
          
          //Eventlistener for filter 
          for (const [key, dp] of Object.entries(filterDp)) {
              on({ id: dp }, write_corona_stats);
          };
          
          write_corona_stats();
          
          function write_corona_stats() {
              try {
          
                  let sStateOut = '';
                  let sOutSumGermany = '';
                  //Liste ausgewählter Bundesländer
                  var calcInzidenzSum = 0.00;
                  if (oListState.length > 0) {
                      let bShowStates = getState(filterDp.states).val;
                      sStateOut = '<div class="co-container states">';
          
                      oListState.each((item, index) => {
                          let iStateID = item.replace('.cases', '');
                          if (bShowStates === true) {
                              let sStateName = iStateID.replace('coronavirus-statistics.0.Germany.Bundesland.', '');
                              sStateOut += '<div class="co-container"><div class="co-heading state">' + sStateName + '</div>';
                          }
                          for (const [key, dp] of Object.entries(oSchemeState)) {
                              if (bShowStates === true) {
                                  sStateOut += builElements(key, dp, iStateID, false, '');
                              }
                              if (key === 'cases7_per_100k') {
                                  calcInzidenzSum += parseFloat(getState(iStateID + '.' + key).val);
                              }
                          }//End for
                          if (bShowStates === true) {
                              sStateOut += '</div>';
                          }
                      });
          
                      if (oListState.length === 16) {
                          let calc7IndDe = (calcInzidenzSum / oListState.length * fRkiFaktor);
                          let fCalc7IndDe = calc7IndDe.toFixed(2);
                          let sCalc7IndDe = number_format(calc7IndDe, 2, ',', '.');
          
                          let oReturn = calcGefahrInzidenz(fCalc7IndDe, sCalc7IndDe, false);
                          let valc7IndDe = oReturn.val;
          
                          sOutSumGermany = '<div class="co-entry de-7-inz horizontal"><div class="co-descr">7-Tage-Inzidenz</div><div class="co-val">' + valc7IndDe + '</div></div>';
                      }
                      sStateOut += '</div>';
                  }
          
                  //Liste ausgewählter Länder
                  let sCountryOut = '';
                  if (oListCountry.length > 0) {
                      let bShowTop5 = getState(filterDp.top5).val;
                      let bCountries = getState(filterDp.countries).val;
                      //only countries
                      if (bCountries === true) {
                          sCountryOut = '<div class="co-container countries">';
                          oListCountry.each((item, index) => {
                              let iCountryID = item.replace('.population', '');
                              if ((iCountryID.indexOf("country_Top_5") === -1 && iCountryID.indexOf("global_totals") === -1)) {
                                  let sCountryName = iCountryID.replace('coronavirus-statistics.0.', '');
                                  let sFlag = '<img class="co-flag" src="' + getState(iCountryID + '.flag').val + '"> ';
                                  let sCountryNameTrans = sFlag + sCountryName;
          
                                  if (sCountryName === 'Germany') {
                                      sCountryNameTrans = sFlag + 'Deutschland';
                                  }
                                  sCountryOut += '<div class="co-container country"><div class="co-heading country">' + sCountryNameTrans + '</div>';
          
                                  for (const [key, dp] of Object.entries(oSchemeCountry)) {
                                      sCountryOut += builElements(key, dp, iCountryID, false, 'horizontal');
                                  }//End for
          
                                  if (sCountryName === 'Germany') {
                                      sCountryOut += sOutSumGermany;
                                  }
                                  sCountryOut += '</div>';
                              }
                          });
                          sCountryOut += '</div>';
                      }
          
                      //only stats
                      if (bShowTop5 === true) {
                          sCountryOut += '<div class="co-container stats">';
                          oListCountry.each((item, index) => {
                              let iCountryID = item.replace('.population', '');
                              if (iCountryID.indexOf("country_Top_5") > -1 || iCountryID.indexOf("global_totals") > -1) {
                                  let sCountryName = iCountryID.replace('coronavirus-statistics.0.', '');
                                  let sFlag = '';
                                  if (iCountryID.indexOf("global_totals") === -1) {
                                      sFlag = '<img class="co-flag" src="' + getState(iCountryID + '.flag').val + '"> ';
                                  }
                                  let sCountryNameTrans = sFlag + sCountryName;
          
                                  if (sCountryName.indexOf("country_Top_5") > -1) {
                                      let obj = getObject(iCountryID);
                                      sCountryNameTrans = sFlag + obj.common.name;
                                  } else if (sCountryName.indexOf("global_totals") > -1) {
                                      sCountryNameTrans = 'Weltweit gesamt';
                                  }
                                  sCountryOut += '<div class="co-container country"><div class="co-heading stats">' + sCountryNameTrans + '</div>';
          
                                  for (const [key, dp] of Object.entries(oSchemeCountry)) {
                                      sCountryOut += builElements(key, dp, iCountryID, false, '');
                                  }//End for
          
                                  sCountryOut += '</div>';
                              }
                          });
                          sCountryOut += '</div>';
                      }
                  }
          
                  //Liste Landkreise
                  let sCityCountiesOut = '';
                  if (oListKreis.length > 0 && getState(filterDp.cities).val === true) {
          
                      oListKreis.each((item, index) => {
                          let iKreisID = item.replace('.BL', '');
                          let sKreisName = iKreisID.replace('coronavirus-statistics.0.Germany.Kreis.', '');
                          sCityCountiesOut += '<div class="co-container"><div class="co-heading county">' + 'Kreis ' + sKreisName + '</div>';
          
                          for (const [key, dp] of Object.entries(oScheme)) {
                              sCityCountiesOut += builElements(key, dp, iKreisID, true, '');
                          }//End for
          
                          sCityCountiesOut += '</div>';
                      });//end each
                  }
          
                  //Liste kreisfreie Städte
                  if (oListStadt.length > 0 && getState(filterDp.cities).val === true) {
                      oListStadt.each((item, index) => {
                          let iStadtID = item.replace('.BL', '');
                          let sStadtName = iStadtID.replace('coronavirus-statistics.0.Germany.Stadt.', '');
                          sCityCountiesOut += '<div class="co-container"><div class="co-heading city">' + 'Stadt ' + sStadtName + '</div>';
          
                          for (const [key, dp] of Object.entries(oScheme)) {
                              sCityCountiesOut += builElements(key, dp, iStadtID, true, '');
                          }//End for
          
                          sCityCountiesOut += '</div>';
                      });//end each
                  }
          
                  if (sCityCountiesOut !== '') {
                      let sLegende = '<div class="co-legende">';
                      for (const [key, element] of Object.entries(oSchemeLegende.city)) {
                          sLegende += '<b>' + element.title + '</b>: ' + element.descr;
                      };
                      sLegende += '</div>';
                      sCityCountiesOut = '<div class="co-container cities-counties">' + sCityCountiesOut + sLegende + '</div>';
                  }
          
                  var sHtml = '<div class="co-overview">';
                  sHtml += sCountryOut + sStateOut + sCityCountiesOut;
          
                  setState(coronaHtmlDp, sHtml);
          
              } catch (err) {
                  console.error('[CoronaStatus] error: ' + err.message + ', stack: ' + err.stack);
              }
          }
          
          function builElements(key, dp, dpId, bAllow, cssClass) {
              let descr = '';
              let val = '';
              let sList = '';
              let sOut = '';
          
              if (dp.title === 'object') {
                  let obj = getObject(dpId + '.' + key);
                  descr = obj.common.name;
              } else {
                  descr = dp.title
              }
          
              if (dp.format === 'string') {
                  val = getState(dpId + '.' + key).val;
              } else if (dp.format === 'datetime') {
                  let valDate = getState(dpId + '.' + key).val;
                  val = moment(valDate).format('DD.MM.YYYY HH:mm');
              } else if (dp.format === 'int') {
                  val = getState(dpId + '.' + key).val;
                  val = number_format(val, 0, '', '.');
              } else if (dp.format === 'float') {
                  let fVal = parseFloat(getState(dpId + '.' + key).val).toFixed(2);
                  val = number_format(fVal, 2, ',', '.');
                  if (key === 'cases7_per_100k') {
                      let oReturn = calcGefahrInzidenz(fVal, val, bAllow);
                      val = oReturn.val;
                      sList = (oReturn.list !== '') ? '<div class="co-allowed-list">' + oReturn.list + '</div>' : '';
                  }
              }
          
              sOut = '<div class="co-entry co-dp-' + key + ' ' + cssClass + '"><div class="co-descr">' + descr + '</div><div class="co-val">' + val + '</div></div>';
          
              if (sList !== '') {
                  sOut += sList;
              }
          
              return sOut;
          }
          
          function calcGefahrInzidenz(fVal, sVal, isAllowed) {
              let iVal = parseInt(fVal);
              let val = '';
              let sListAllowed = '';
          
              if (iVal < 35) {
                  val = '<span class="badge" title="' + oScheme7Tg.ok.title + '" style="background-color:' + oScheme7Tg.ok.bgcolor + ';color:' + oScheme7Tg.ok.color + ';">' + sVal + '</span>';
                  if (isAllowed === true) {
                      sListAllowed = '<ul class="co-list">';
                      for (const [key, element] of Object.entries(oSchemeAllowed.ok)) {
                          sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                      };
                      sListAllowed += '</ul>';
                  }
              } else if (iVal >= 35 && iVal < 50) {
                  val = '<span class="badge" title="' + oScheme7Tg.critical.title + '" style="background-color:' + oScheme7Tg.critical.bgcolor + ';color:' + oScheme7Tg.critical.color + ';">' + sVal + '</span>';
                  if (isAllowed === true) {
                      sListAllowed = '<ul class="co-list">';
                      for (const [key, element] of Object.entries(oSchemeAllowed.critical)) {
                          sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                      };
                      sListAllowed += '</ul>';
                  }
              } else if (iVal >= 50 && iVal < 100) {
                  val = '<span class="badge" title="' + oScheme7Tg.high.title + '" style="background-color:' + oScheme7Tg.high.bgcolor + ';color:' + oScheme7Tg.high.color + ';">' + sVal + '</span>';
                  if (isAllowed === true) {
                      sListAllowed = '<ul class="co-list">';
                      for (const [key, element] of Object.entries(oSchemeAllowed.high)) {
                          sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                      };
                      sListAllowed += '</ul>';
                  }
              } else if (iVal >= 100) {
                  val = '<span class="badge" title="' + oScheme7Tg.veryhigh.title + '" style="background-color:' + oScheme7Tg.veryhigh.bgcolor + ';color:' + oScheme7Tg.veryhigh.color + ';">' + sVal + '</span>';
                  if (isAllowed === true) {
                      sListAllowed = '<ul class="co-list">';
                      for (const [key, element] of Object.entries(oSchemeAllowed.veryhigh)) {
                          sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                      };
                      sListAllowed += '</ul>';
                  }
              }
              let oReturn = { 'val': val, 'list': sListAllowed };
          
              return oReturn;
          }
          
          //taken from https://gist.github.com/VassilisPallas/d73632e9de4794b7dd10b7408f7948e8/bf17eccef8521b4e5869bdc6a5b09a771356fbff
          function number_format(intFloatNumber, decimals, dec_point, thousands_point) {
          
              if (intFloatNumber == null || !isFinite(intFloatNumber)) {
                  throw new TypeError("number is not valid");
              }
          
              if (!decimals) {
                  let len = intFloatNumber.toString().split('.').length;
                  decimals = len > 1 ? len : 0;
              }
          
              dec_point = (!dec_point) ? '.' : dec_point;
              thousands_point = (!thousands_point) ? '.' : thousands_point;
          
              intFloatNumber = parseFloat(intFloatNumber).toFixed(decimals);
              intFloatNumber = intFloatNumber.replace(".", dec_point);
          
              var splitNum = intFloatNumber.split(dec_point);
              splitNum[0] = splitNum[0].replace(/\B(?=(\d{3})+(?!\d))/g, thousands_point);
              intFloatNumber = splitNum.join(dec_point);
          
              return intFloatNumber;
          }
          
          

          Das erforderliche Css für das Design:

          /*corona*/
          .co-overview{
          position: relative;
          width: 100% ;
          display: inline-block;
          box-sizing:border-box;
          }
          
          .co-container{
          position: relative;
          width: calc(25% - 20px);
          display: inline-block;
          box-sizing:border-box;
          margin:10px;
          vertical-align:text-top;
          background-color:#f4f4f4;
          border-radius:8px;
          
          }
          
          .co-container.stats,
          .co-container.cities-counties,
          .co-container.countries,
          .co-container.states{
          width: 100%;
          background-color:#fff;
          margin:0;
          padding:0;
          }
          
          .co-container.stats .co-container{
          width:calc(33.333% - 20px);
          margin:10px;
          }
          
          .co-container.stats .co-container,
          .co-container.countries .co-container,
          .co-container.cities-counties .co-container,
          .co-container.states .co-container{
          box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);
          background-color:#fff;
          }
          
          
          .co-container.country{
          width: calc(100% - 20px);
          }
          .co-legende{
          width: calc(100% - 20px);
          padding: 10px;
          background: #FFCCBC;
          position: relative;
          margin-left: 10px;
          box-sizing: border-box;
          border-radius:8px;
          box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);
          margin-bottom: 10px;
          margin-top:10px;
          }
          
          .co-heading{
          position: relative;
          width: 100%;
          display: inline-block;
          font-weight:bold;
          padding: 0 5px;
          box-sizing: border-box;
          }
          
          .co-heading.stats,
          .co-heading.country,
          .co-heading.county,
          .co-heading.city,
          .co-heading.state{
          background: #2196F3;
          font-size: 14px;
          line-height: 35px;
          color: #fff;
          font-weight: normal;
          border-top-left-radius: 8px;
          border-top-right-radius: 8px;
          }
          
          .co-heading.stats{
          background:#F57C00;
          }
          .co-heading.country{
          background:#880E4F;
          }
          
          .co-heading.county,
          .co-heading.city{
          background: #00796B;
          }
          
          img.co-flag{
          height:15px;
          width:auto;
          }
          .co-entry{
          position: relative;
          width: 100%;
          display: inline-block;
          padding: 0 10px;
          box-sizing:border-box;
          }
          
          
          .co-entry .badge{
          font-size:12px;
          padding: 0px 4px;
          border-radius: 4px;
          }
          .co-descr{
          position: relative;
          width: 60%;
          display: inline-block;
          overflow: hidden;
          text-overflow: ellipsis;
          white-space: nowrap;
          }
          .co-val{
          position: relative;
          width: 40%;
          display: inline-block;
          overflow: hidden;
          text-overflow: ellipsis;
          white-space: nowrap;
          text-align:right;
          }
          
          .co-container.states .co-entry.co-dp-updated,
          .co-container.stats .co-entry.co-dp-updated{
          font-size:11px;
          }
          .co-container.countries .co-entry.co-dp-updated.horizontal{
          font-size:14px;
          }
          
          .co-entry.horizontal{
          width: calc(16.6666% - 20px);
          margin: 17px 10px;
          background:#fff;
          border-radius:8px;
          padding:0;
          box-shadow: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);
          }
          
          .co-entry.horizontal .co-descr,
          .co-entry.horizontal .co-val{
          width:100%;
          text-align:center;
          }
          .co-entry.horizontal .co-val{
          font-weight:bold;
          }
          .co-entry.horizontal .co-descr{
          background: #880E4F;
          font-size: 14px;
          line-height: 35px;
          color: #fff;
          font-weight: normal;
          border-top-left-radius: 8px;
          border-top-right-radius: 8px;
          }
          
          .co-allowed-list{
          position: relative;
          width: 100%;
          display: inline-block;
          padding: 10px;
          background-color: #EAEAB9;
          border-bottom-left-radius: 8px;
          box-sizing: border-box;
          margin-top: 10px;
          border-bottom-right-radius: 8px;
          }
          .co-list{
          margin:0;
          padding:0;
          list-style:none;
          position:relative;
          width:100%;
          display:inline-block;
          }
          
          .co-list li{
          position:relative;
          width:100%;
          font-size:14px;
          line-height:18px;
          marign-bottom:4px;
          }
          
          /*corona*/
          @media (max-width: 768px) {
          .co-container.stats .co-container {
              width: calc(50% - 20px);
          }
          .co-container{
          width: calc(50% - 20px);
          }
          }
          @media (max-width: 536px) {
          
          .co-container{
          width: calc(100% - 20px);
          }
          
          .co-container.stats .co-container {
              width: calc(100% - 20px);
          }
          .co-entry.horizontal {
              width: calc(50% - 20px);
          }
          }
          
          

          Have fun!

          A Offline
          A Offline
          Ash2k
          schrieb am zuletzt editiert von Ash2k
          #842

          @sebastian-io

          ich hab leider noch Probleme mit deinem Script:

          2021-03-13 11:34:25.788 - info: javascript.0 (23599) Start javascript script.js.Jarvis_Corona
          2021-03-13 11:34:25.815 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Baden-Württemberg7_per_100k.updated" not found (3)
          2021-03-13 11:34:25.817 - warn: javascript.0 (23599) at builElements (script.js.Jarvis_Corona:301:23)
          2021-03-13 11:34:25.817 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:145:38
          2021-03-13 11:34:25.817 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
          2021-03-13 11:34:25.818 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
          2021-03-13 11:34:25.818 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
          2021-03-13 11:34:25.819 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Baden-Württemberg7_per_100k.cases" not found (3)
          2021-03-13 11:34:25.820 - warn: javascript.0 (23599) at builElements (script.js.Jarvis_Corona:304:15)
          2021-03-13 11:34:25.820 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:145:38
          2021-03-13 11:34:25.820 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
          2021-03-13 11:34:25.821 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
          2021-03-13 11:34:25.821 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
          2021-03-13 11:34:25.822 - error: javascript.0 (23599) script.js.Jarvis_Corona: [CoronaStatus] error: number is not valid, stack: TypeError: number is not valid
          at number_format (script.js.Jarvis_Corona:376:15)
          at builElements (script.js.Jarvis_Corona:305:15)
          at script.js.Jarvis_Corona:145:38
          at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
          at write_corona_stats (script.js.Jarvis_Corona:137:24)
          at script.js.Jarvis_Corona:124:1
          at Script.runInContext (vm.js:143:18)
          at Script.runInNewContext (vm.js:148:17)
          at execute (/opt/iobroker/node_modules/iobroker.javascript/main.js:1320:27)
          at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1504:38)
          2021-03-13 11:34:25.822 - info: javascript.0 (23599) script.js.Jarvis_Corona: registered 4 subscriptions and 0 schedules
          

          Datenpunkte sind wie folgt angepasst im Script:

          /****** DATENPUNKTE MÜSSEN ERSTELLT WERDEN (Name Pfad frei konfigurierbar)  **********/
          /**role html, type string (Typ = Zeichenkette)  */
          let coronaHtmlDp = '0_userdata.0.jarvis.corona.coronahtml';
           
          // verwendet in function write_corona_stats() und für die Aktivierung der Eventlistener
          /**role switch, type boolean (Typ = Logikwert) */
          /**FILTER: setze den Wert auf false und der ausgewählte Datenpunkt wird nicht angezeigt */
          let filterDp = {
              'states': '0_userdata.0.jarvis.corona.filter.bundeslaender',
              'cities': '0_userdata.0.jarvis.corona.filter.cities',
              'countries': '0_userdata.0.jarvis.corona.filter.countries',
              'top5': '0_userdata.0.jarvis.corona.filter.top5stats',
          

          Hier die Datenpunkte unter Objekte:

          Corona.PNG

          Und hier die RAW-Einstellungen von coronahtml:

          {
           "from": "system.adapter.admin.0",
           "user": "system.user.admin",
           "ts": 1615629811323,
           "common": {
             "name": "coronahtml",
             "role": "html",
             "type": "string",
             "desc": "Manuell erzeugt",
             "def": "",
             "read": true,
             "write": true
           },
           "native": {},
           "acl": {
             "object": 1638,
             "owner": "system.user.admin",
             "ownerGroup": "system.group.administrator",
             "state": 1638
           },
           "_id": "0_userdata.0.jarvis.corona.coronahtml",
           "type": "state"
          }
          

          Ich hab sicherlich irgendwo nen Fehler, bin aber was Javascript angeht nen Laie, vielleicht siehst du es wo mein Problem liegt?

          Edit: Welche Adapterversion vom Covid-Adapter hast du installiert?

          Sebastian IOS 1 Antwort Letzte Antwort
          0
          • A Ash2k

            @sebastian-io

            ich hab leider noch Probleme mit deinem Script:

            2021-03-13 11:34:25.788 - info: javascript.0 (23599) Start javascript script.js.Jarvis_Corona
            2021-03-13 11:34:25.815 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Baden-Württemberg7_per_100k.updated" not found (3)
            2021-03-13 11:34:25.817 - warn: javascript.0 (23599) at builElements (script.js.Jarvis_Corona:301:23)
            2021-03-13 11:34:25.817 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:145:38
            2021-03-13 11:34:25.817 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
            2021-03-13 11:34:25.818 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
            2021-03-13 11:34:25.818 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
            2021-03-13 11:34:25.819 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Baden-Württemberg7_per_100k.cases" not found (3)
            2021-03-13 11:34:25.820 - warn: javascript.0 (23599) at builElements (script.js.Jarvis_Corona:304:15)
            2021-03-13 11:34:25.820 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:145:38
            2021-03-13 11:34:25.820 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
            2021-03-13 11:34:25.821 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
            2021-03-13 11:34:25.821 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
            2021-03-13 11:34:25.822 - error: javascript.0 (23599) script.js.Jarvis_Corona: [CoronaStatus] error: number is not valid, stack: TypeError: number is not valid
            at number_format (script.js.Jarvis_Corona:376:15)
            at builElements (script.js.Jarvis_Corona:305:15)
            at script.js.Jarvis_Corona:145:38
            at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
            at write_corona_stats (script.js.Jarvis_Corona:137:24)
            at script.js.Jarvis_Corona:124:1
            at Script.runInContext (vm.js:143:18)
            at Script.runInNewContext (vm.js:148:17)
            at execute (/opt/iobroker/node_modules/iobroker.javascript/main.js:1320:27)
            at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1504:38)
            2021-03-13 11:34:25.822 - info: javascript.0 (23599) script.js.Jarvis_Corona: registered 4 subscriptions and 0 schedules
            

            Datenpunkte sind wie folgt angepasst im Script:

            /****** DATENPUNKTE MÜSSEN ERSTELLT WERDEN (Name Pfad frei konfigurierbar)  **********/
            /**role html, type string (Typ = Zeichenkette)  */
            let coronaHtmlDp = '0_userdata.0.jarvis.corona.coronahtml';
             
            // verwendet in function write_corona_stats() und für die Aktivierung der Eventlistener
            /**role switch, type boolean (Typ = Logikwert) */
            /**FILTER: setze den Wert auf false und der ausgewählte Datenpunkt wird nicht angezeigt */
            let filterDp = {
                'states': '0_userdata.0.jarvis.corona.filter.bundeslaender',
                'cities': '0_userdata.0.jarvis.corona.filter.cities',
                'countries': '0_userdata.0.jarvis.corona.filter.countries',
                'top5': '0_userdata.0.jarvis.corona.filter.top5stats',
            

            Hier die Datenpunkte unter Objekte:

            Corona.PNG

            Und hier die RAW-Einstellungen von coronahtml:

            {
             "from": "system.adapter.admin.0",
             "user": "system.user.admin",
             "ts": 1615629811323,
             "common": {
               "name": "coronahtml",
               "role": "html",
               "type": "string",
               "desc": "Manuell erzeugt",
               "def": "",
               "read": true,
               "write": true
             },
             "native": {},
             "acl": {
               "object": 1638,
               "owner": "system.user.admin",
               "ownerGroup": "system.group.administrator",
               "state": 1638
             },
             "_id": "0_userdata.0.jarvis.corona.coronahtml",
             "type": "state"
            }
            

            Ich hab sicherlich irgendwo nen Fehler, bin aber was Javascript angeht nen Laie, vielleicht siehst du es wo mein Problem liegt?

            Edit: Welche Adapterversion vom Covid-Adapter hast du installiert?

            Sebastian IOS Offline
            Sebastian IOS Offline
            Sebastian IO
            schrieb am zuletzt editiert von
            #843

            @ash2k zeig mal deine angelegten datenpunkte im script?
            der log sagt dass du hinter deinen bundesländern ein punkt fehlt

            falsch

            Fehler coronavirus-statistics.0.Germany.Bundesland.Baden-Württemberg7_per_100k.cases
            

            richtig

            coronavirus-statistics.0.Germany.Bundesland.Baden-Württemberg.7_per_100k.cases
            
            A 1 Antwort Letzte Antwort
            0
            • Sebastian IOS Sebastian IO

              @ash2k zeig mal deine angelegten datenpunkte im script?
              der log sagt dass du hinter deinen bundesländern ein punkt fehlt

              falsch

              Fehler coronavirus-statistics.0.Germany.Bundesland.Baden-Württemberg7_per_100k.cases
              

              richtig

              coronavirus-statistics.0.Germany.Bundesland.Baden-Württemberg.7_per_100k.cases
              
              A Offline
              A Offline
              Ash2k
              schrieb am zuletzt editiert von Ash2k
              #844

              @sebastian-io

              welche meinst du jetzt genau die oben im Beitrag nicht zu sehen sind?!?

              unter dem Spoiler "Datenpunkte" steht der Ausschnitt aus dem Script, meinst du die?

              Ansonsten ist das hier zum Beispiel der Pfad unter Objekte zu den Bundeslaender:

              0_userdata.0.jarvis.corona.filter.bundeslaender

              Sebastian IOS 1 Antwort Letzte Antwort
              0
              • A Ash2k

                @sebastian-io

                welche meinst du jetzt genau die oben im Beitrag nicht zu sehen sind?!?

                unter dem Spoiler "Datenpunkte" steht der Ausschnitt aus dem Script, meinst du die?

                Ansonsten ist das hier zum Beispiel der Pfad unter Objekte zu den Bundeslaender:

                0_userdata.0.jarvis.corona.filter.bundeslaender

                Sebastian IOS Offline
                Sebastian IOS Offline
                Sebastian IO
                schrieb am zuletzt editiert von
                #845

                @ash2k ich verwende die Version 0.6.3 von den Corona Statistik Adapter

                Was hast du in den Einstellungen des Corona Statistik Adapters konfiguriert?

                A 1 Antwort Letzte Antwort
                0
                • Sebastian IOS Sebastian IO

                  @ash2k ich verwende die Version 0.6.3 von den Corona Statistik Adapter

                  Was hast du in den Einstellungen des Corona Statistik Adapters konfiguriert?

                  A Offline
                  A Offline
                  Ash2k
                  schrieb am zuletzt editiert von
                  #846

                  @sebastian-io
                  ich hab die 0.6.8 ausm latest installiert

                  hier die Einstellungen, habe vorhin alles mal aktiviert:

                  Covid.PNG

                  Sebastian IOS 1 Antwort Letzte Antwort
                  0
                  • A Ash2k

                    @sebastian-io
                    ich hab die 0.6.8 ausm latest installiert

                    hier die Einstellungen, habe vorhin alles mal aktiviert:

                    Covid.PNG

                    Sebastian IOS Offline
                    Sebastian IOS Offline
                    Sebastian IO
                    schrieb am zuletzt editiert von
                    #847

                    @ash2k so sieht es bei meinen Einstellungen aus:
                    screen-corona.png

                    A 1 Antwort Letzte Antwort
                    0
                    • Sebastian IOS Sebastian IO

                      @ash2k so sieht es bei meinen Einstellungen aus:
                      screen-corona.png

                      A Offline
                      A Offline
                      Ash2k
                      schrieb am zuletzt editiert von
                      #848

                      @sebastian-io
                      ich bin raus bzw wohl zu doof dafür....

                      habe jetzt den Covid-Adapter komplett gelöscht, alle Objekte gelöscht und den Adapter in der Version 0.6.3 installiert, gleiche Einstellungen gemacht wie bei dir ausser Landkreise alle ausgewählt....

                      Dann dein Script unverändert gelassen und die Datenpunkte in dem Pfad angelegt wie es in deinem Script steht und trotzdem kommen weiterhin die Fehlermeldungen....

                      Das hier sind die angelegten DP:

                       {
                        "0_userdata.0.vis.jarvis.coronahtml": {
                          "_id": "0_userdata.0.vis.jarvis.coronahtml",
                          "type": "state",
                          "common": {
                            "name": "vis.jarvis.coronahtml",
                            "role": "html",
                            "type": "string",
                            "desc": "Manuell erzeugt",
                            "def": "",
                            "read": true,
                            "write": true
                          },
                          "native": {},
                          "from": "system.adapter.admin.0",
                          "user": "system.user.admin",
                          "ts": 1615647045577,
                          "acl": {
                            "object": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator",
                            "state": 1636
                          }
                        },
                        "0_userdata.0.vis.jarvis.corona.filter.bundeslaender": {
                          "_id": "0_userdata.0.vis.jarvis.corona.filter.bundeslaender",
                          "type": "state",
                          "common": {
                            "name": "vis.jarvis.corona.filter.bundeslaender",
                            "role": "switch",
                            "type": "boolean",
                            "desc": "Manuell erzeugt",
                            "read": true,
                            "write": true,
                            "def": false
                          },
                          "native": {},
                          "from": "system.adapter.admin.0",
                          "user": "system.user.admin",
                          "ts": 1615647124353,
                          "acl": {
                            "object": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator",
                            "state": 1636
                          }
                        },
                        "0_userdata.0.vis.jarvis.corona.filter.cities": {
                          "_id": "0_userdata.0.vis.jarvis.corona.filter.cities",
                          "type": "state",
                          "common": {
                            "name": "vis.jarvis.corona.filter.cities",
                            "role": "switch",
                            "type": "boolean",
                            "desc": "Manuell erzeugt",
                            "read": true,
                            "write": true,
                            "def": false
                          },
                          "native": {},
                          "from": "system.adapter.admin.0",
                          "user": "system.user.admin",
                          "ts": 1615647181197,
                          "acl": {
                            "object": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator",
                            "state": 1636
                          }
                        },
                        "0_userdata.0.vis.jarvis.corona.filter.countries": {
                          "_id": "0_userdata.0.vis.jarvis.corona.filter.countries",
                          "type": "state",
                          "common": {
                            "name": "vis.jarvis.corona.filter.countries",
                            "role": "switch",
                            "type": "boolean",
                            "desc": "Manuell erzeugt",
                            "read": true,
                            "write": true,
                            "def": false
                          },
                          "native": {},
                          "from": "system.adapter.admin.0",
                          "user": "system.user.admin",
                          "ts": 1615647212692,
                          "acl": {
                            "object": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator",
                            "state": 1636
                          }
                        },
                        "0_userdata.0.vis.jarvis.corona.filter.top5stats": {
                          "_id": "0_userdata.0.vis.jarvis.corona.filter.top5stats",
                          "type": "state",
                          "common": {
                            "name": "vis.jarvis.corona.filter.top5stats",
                            "role": "switch",
                            "type": "boolean",
                            "desc": "Manuell erzeugt",
                            "read": true,
                            "write": true,
                            "def": false
                          },
                          "native": {},
                          "from": "system.adapter.admin.0",
                          "user": "system.user.admin",
                          "ts": 1615647239518,
                          "acl": {
                            "object": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator",
                            "state": 1636
                          }
                        }
                      }
                      

                      Fehlerlog hat sich zwar irgendwie geändert aber hilft mir auch nich weiter :-(

                      2021-03-13 16:00:30.561 - info: javascript.0 (23599) Start javascript script.js.Jarvis_Corona
                      2021-03-13 16:00:30.632 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Baden-Württemberg7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.635 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.635 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.636 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.636 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.636 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Baden-Württemberg_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.638 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.638 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.638 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.638 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.639 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Bayern7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.640 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.640 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.641 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.641 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.641 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Bayern_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.643 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.644 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.644 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.644 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.645 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Berlin7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.647 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.648 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.648 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.648 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.648 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Berlin_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.651 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.651 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.651 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.651 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.652 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Brandenburg7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.654 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.654 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.655 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.655 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.655 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Brandenburg_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.656 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.657 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.657 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.658 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.659 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Bremen7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.661 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.661 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.661 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.662 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.663 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Bremen_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.665 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.665 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.665 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.666 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.666 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Hamburg7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.669 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.670 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.670 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.670 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.678 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Hamburg_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.680 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.680 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.680 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.680 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.681 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Hessen7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.683 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.683 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.683 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.683 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.684 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Hessen_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.685 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.685 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.685 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.686 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.689 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Mecklenburg-Vorpommern7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.690 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.690 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.691 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.691 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.692 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Mecklenburg-Vorpommern_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.693 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.694 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.698 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.699 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.699 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Niedersachsen7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.701 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.701 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.701 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.704 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.705 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Niedersachsen_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.707 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.708 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.708 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.708 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.717 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Nordrhein-Westfalen7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.719 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.719 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.719 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.719 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.719 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Nordrhein-Westfalen_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.725 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.725 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.725 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.726 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.726 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Rheinland-Pfalz7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.728 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.729 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.729 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.729 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.729 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Rheinland-Pfalz_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.741 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.742 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.742 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.742 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.743 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Saarland7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.745 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.745 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.745 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.745 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.745 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Saarland_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.751 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.751 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.754 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.754 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.755 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Sachsen-Anhalt7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.761 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.761 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.761 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.766 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.766 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Sachsen-Anhalt_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.768 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.769 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.769 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.769 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.769 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Sachsen7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.770 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.776 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.776 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.777 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.777 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Sachsen_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.778 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.778 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.779 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.779 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.779 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Schleswig-Holstein7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.781 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.781 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.781 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.781 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.791 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Schleswig-Holstein_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.794 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.794 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.794 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.794 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.795 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Thüringen7_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.796 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.797 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.797 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.797 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.798 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Thüringen_per_100k.cases7_per_100k" not found (3)
                      2021-03-13 16:00:30.802 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                      2021-03-13 16:00:30.802 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                      2021-03-13 16:00:30.802 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                      2021-03-13 16:00:30.802 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                      2021-03-13 16:00:30.803 - info: javascript.0 (23599) script.js.Jarvis_Corona: registered 4 subscriptions and 0 schedules
                      

                      Sebastian IOS 1 Antwort Letzte Antwort
                      0
                      • NashraN Offline
                        NashraN Offline
                        Nashra
                        Most Active Forum Testing
                        schrieb am zuletzt editiert von Nashra
                        #849

                        @Ash2k
                        die Datenpunkte fehlen noch unter Objekte

                        .798 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Thüringen_per_100k.cases7_per_100k" not found (3)
                        

                        Stoppe den Corona-Adapter mal und dann wieder aktivieren. Danach in Objekte unter

                        coronavirus-statistics.0.Germany.Bundesland.Thüringen.cases7_per_100k
                        

                        nachsehen ob der Dastenpunkt angelegt wurde. Wenn nicht, das Ganze einfach nochmal.
                        Hatte ich auch schonmal das er beim ersten Start nicht direkt alles angelegt hat.

                        Gruß Ralf
                        Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

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

                        A 1 Antwort Letzte Antwort
                        1
                        • A Ash2k

                          @sebastian-io
                          ich bin raus bzw wohl zu doof dafür....

                          habe jetzt den Covid-Adapter komplett gelöscht, alle Objekte gelöscht und den Adapter in der Version 0.6.3 installiert, gleiche Einstellungen gemacht wie bei dir ausser Landkreise alle ausgewählt....

                          Dann dein Script unverändert gelassen und die Datenpunkte in dem Pfad angelegt wie es in deinem Script steht und trotzdem kommen weiterhin die Fehlermeldungen....

                          Das hier sind die angelegten DP:

                           {
                            "0_userdata.0.vis.jarvis.coronahtml": {
                              "_id": "0_userdata.0.vis.jarvis.coronahtml",
                              "type": "state",
                              "common": {
                                "name": "vis.jarvis.coronahtml",
                                "role": "html",
                                "type": "string",
                                "desc": "Manuell erzeugt",
                                "def": "",
                                "read": true,
                                "write": true
                              },
                              "native": {},
                              "from": "system.adapter.admin.0",
                              "user": "system.user.admin",
                              "ts": 1615647045577,
                              "acl": {
                                "object": 1636,
                                "owner": "system.user.admin",
                                "ownerGroup": "system.group.administrator",
                                "state": 1636
                              }
                            },
                            "0_userdata.0.vis.jarvis.corona.filter.bundeslaender": {
                              "_id": "0_userdata.0.vis.jarvis.corona.filter.bundeslaender",
                              "type": "state",
                              "common": {
                                "name": "vis.jarvis.corona.filter.bundeslaender",
                                "role": "switch",
                                "type": "boolean",
                                "desc": "Manuell erzeugt",
                                "read": true,
                                "write": true,
                                "def": false
                              },
                              "native": {},
                              "from": "system.adapter.admin.0",
                              "user": "system.user.admin",
                              "ts": 1615647124353,
                              "acl": {
                                "object": 1636,
                                "owner": "system.user.admin",
                                "ownerGroup": "system.group.administrator",
                                "state": 1636
                              }
                            },
                            "0_userdata.0.vis.jarvis.corona.filter.cities": {
                              "_id": "0_userdata.0.vis.jarvis.corona.filter.cities",
                              "type": "state",
                              "common": {
                                "name": "vis.jarvis.corona.filter.cities",
                                "role": "switch",
                                "type": "boolean",
                                "desc": "Manuell erzeugt",
                                "read": true,
                                "write": true,
                                "def": false
                              },
                              "native": {},
                              "from": "system.adapter.admin.0",
                              "user": "system.user.admin",
                              "ts": 1615647181197,
                              "acl": {
                                "object": 1636,
                                "owner": "system.user.admin",
                                "ownerGroup": "system.group.administrator",
                                "state": 1636
                              }
                            },
                            "0_userdata.0.vis.jarvis.corona.filter.countries": {
                              "_id": "0_userdata.0.vis.jarvis.corona.filter.countries",
                              "type": "state",
                              "common": {
                                "name": "vis.jarvis.corona.filter.countries",
                                "role": "switch",
                                "type": "boolean",
                                "desc": "Manuell erzeugt",
                                "read": true,
                                "write": true,
                                "def": false
                              },
                              "native": {},
                              "from": "system.adapter.admin.0",
                              "user": "system.user.admin",
                              "ts": 1615647212692,
                              "acl": {
                                "object": 1636,
                                "owner": "system.user.admin",
                                "ownerGroup": "system.group.administrator",
                                "state": 1636
                              }
                            },
                            "0_userdata.0.vis.jarvis.corona.filter.top5stats": {
                              "_id": "0_userdata.0.vis.jarvis.corona.filter.top5stats",
                              "type": "state",
                              "common": {
                                "name": "vis.jarvis.corona.filter.top5stats",
                                "role": "switch",
                                "type": "boolean",
                                "desc": "Manuell erzeugt",
                                "read": true,
                                "write": true,
                                "def": false
                              },
                              "native": {},
                              "from": "system.adapter.admin.0",
                              "user": "system.user.admin",
                              "ts": 1615647239518,
                              "acl": {
                                "object": 1636,
                                "owner": "system.user.admin",
                                "ownerGroup": "system.group.administrator",
                                "state": 1636
                              }
                            }
                          }
                          

                          Fehlerlog hat sich zwar irgendwie geändert aber hilft mir auch nich weiter :-(

                          2021-03-13 16:00:30.561 - info: javascript.0 (23599) Start javascript script.js.Jarvis_Corona
                          2021-03-13 16:00:30.632 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Baden-Württemberg7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.635 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.635 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.636 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.636 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.636 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Baden-Württemberg_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.638 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.638 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.638 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.638 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.639 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Bayern7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.640 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.640 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.641 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.641 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.641 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Bayern_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.643 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.644 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.644 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.644 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.645 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Berlin7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.647 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.648 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.648 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.648 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.648 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Berlin_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.651 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.651 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.651 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.651 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.652 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Brandenburg7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.654 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.654 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.655 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.655 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.655 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Brandenburg_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.656 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.657 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.657 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.658 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.659 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Bremen7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.661 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.661 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.661 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.662 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.663 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Bremen_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.665 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.665 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.665 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.666 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.666 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Hamburg7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.669 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.670 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.670 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.670 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.678 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Hamburg_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.680 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.680 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.680 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.680 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.681 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Hessen7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.683 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.683 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.683 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.683 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.684 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Hessen_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.685 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.685 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.685 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.686 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.689 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Mecklenburg-Vorpommern7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.690 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.690 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.691 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.691 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.692 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Mecklenburg-Vorpommern_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.693 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.694 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.698 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.699 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.699 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Niedersachsen7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.701 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.701 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.701 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.704 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.705 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Niedersachsen_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.707 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.708 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.708 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.708 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.717 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Nordrhein-Westfalen7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.719 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.719 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.719 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.719 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.719 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Nordrhein-Westfalen_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.725 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.725 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.725 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.726 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.726 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Rheinland-Pfalz7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.728 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.729 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.729 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.729 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.729 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Rheinland-Pfalz_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.741 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.742 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.742 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.742 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.743 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Saarland7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.745 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.745 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.745 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.745 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.745 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Saarland_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.751 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.751 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.754 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.754 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.755 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Sachsen-Anhalt7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.761 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.761 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.761 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.766 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.766 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Sachsen-Anhalt_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.768 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.769 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.769 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.769 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.769 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Sachsen7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.770 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.776 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.776 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.777 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.777 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Sachsen_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.778 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.778 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.779 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.779 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.779 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Schleswig-Holstein7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.781 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.781 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.781 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.781 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.791 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Schleswig-Holstein_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.794 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.794 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.794 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.794 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.795 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Thüringen7_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.796 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.797 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.797 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.797 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.798 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Thüringen_per_100k.cases7_per_100k" not found (3)
                          2021-03-13 16:00:30.802 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:148:55
                          2021-03-13 16:00:30.802 - warn: javascript.0 (23599) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:785:29)
                          2021-03-13 16:00:30.802 - warn: javascript.0 (23599) at write_corona_stats (script.js.Jarvis_Corona:137:24)
                          2021-03-13 16:00:30.802 - warn: javascript.0 (23599) at script.js.Jarvis_Corona:124:1
                          2021-03-13 16:00:30.803 - info: javascript.0 (23599) script.js.Jarvis_Corona: registered 4 subscriptions and 0 schedules
                          

                          Sebastian IOS Offline
                          Sebastian IOS Offline
                          Sebastian IO
                          schrieb am zuletzt editiert von
                          #850

                          @ash2k und schaue auch das moment bei deiner javascript instanz unter Haupteinstellungen hinterlegt ist (Zusätzliche NPM-Module)

                          A 1 Antwort Letzte Antwort
                          0
                          • NashraN Nashra

                            @Ash2k
                            die Datenpunkte fehlen noch unter Objekte

                            .798 - warn: javascript.0 (23599) getState "coronavirus-statistics.0.Germany.Bundesland.Thüringen_per_100k.cases7_per_100k" not found (3)
                            

                            Stoppe den Corona-Adapter mal und dann wieder aktivieren. Danach in Objekte unter

                            coronavirus-statistics.0.Germany.Bundesland.Thüringen.cases7_per_100k
                            

                            nachsehen ob der Dastenpunkt angelegt wurde. Wenn nicht, das Ganze einfach nochmal.
                            Hatte ich auch schonmal das er beim ersten Start nicht direkt alles angelegt hat.

                            A Offline
                            A Offline
                            Ash2k
                            schrieb am zuletzt editiert von
                            #851

                            @nashra
                            der Datenpunkt ist da:

                            Corona.PNG

                            Mich macht aber eher im Script stutzig das der Pfad nicht stimmt bei der Fehlermeldung:

                            Das steht im Fehlerlog:

                            coronavirus-statistics.0.Germany.Bundesland.Thüringen_per_100k.cases7_per_100k
                            

                            und so heisst halt der Pfad im Adapter unter Objekte:

                            coronavirus-statistics.0.Germany.Bundesland.Thüringen.cases7_per_100k
                            

                            Ich habe aber keine Ahnung was ich falsch gemacht haben könnte :-(

                            Sebastian IOS 1 Antwort Letzte Antwort
                            0
                            • Sebastian IOS Sebastian IO

                              @ash2k und schaue auch das moment bei deiner javascript instanz unter Haupteinstellungen hinterlegt ist (Zusätzliche NPM-Module)

                              A Offline
                              A Offline
                              Ash2k
                              schrieb am zuletzt editiert von
                              #852

                              @sebastian-io sagte in Test Coronavirus Statistics for ioBroker:

                              @ash2k und schaue auch das moment bei deiner javascript instanz unter Haupteinstellungen hinterlegt ist (Zusätzliche NPM-Module)

                              moment war nicht installiert, brauchte man auch vorher noch für kein Script was ich bislang genutzt habe...danke für den Hinweis, wäre gut wenn du das vielleicht beim nächsten Mal mit dazu schreibst ;-)

                              Dennoch kommen die gleichen Fehlermeldungen.

                              1 Antwort Letzte Antwort
                              0
                              • A Ash2k

                                @nashra
                                der Datenpunkt ist da:

                                Corona.PNG

                                Mich macht aber eher im Script stutzig das der Pfad nicht stimmt bei der Fehlermeldung:

                                Das steht im Fehlerlog:

                                coronavirus-statistics.0.Germany.Bundesland.Thüringen_per_100k.cases7_per_100k
                                

                                und so heisst halt der Pfad im Adapter unter Objekte:

                                coronavirus-statistics.0.Germany.Bundesland.Thüringen.cases7_per_100k
                                

                                Ich habe aber keine Ahnung was ich falsch gemacht haben könnte :-(

                                Sebastian IOS Offline
                                Sebastian IOS Offline
                                Sebastian IO
                                schrieb am zuletzt editiert von
                                #853

                                @ash2k sagte in Test Coronavirus Statistics for ioBroker:

                                _per_100k
                                welche version des js-controllers verwendest du?

                                A 2 Antworten Letzte Antwort
                                0
                                • Sebastian IOS Sebastian IO

                                  @ash2k sagte in Test Coronavirus Statistics for ioBroker:

                                  _per_100k
                                  welche version des js-controllers verwendest du?

                                  A Offline
                                  A Offline
                                  Ash2k
                                  schrieb am zuletzt editiert von
                                  #854

                                  @sebastian-io

                                  diese Woche den 3.2.16 installiert

                                  Controller "js-controller" : 3.2.16   , installed 3.2.16
                                  
                                  Sebastian IOS 1 Antwort Letzte Antwort
                                  0
                                  • A Ash2k

                                    @sebastian-io

                                    diese Woche den 3.2.16 installiert

                                    Controller "js-controller" : 3.2.16   , installed 3.2.16
                                    
                                    Sebastian IOS Offline
                                    Sebastian IOS Offline
                                    Sebastian IO
                                    schrieb am zuletzt editiert von
                                    #855

                                    @ash2k

                                    probier mal dieses script aus:

                                    const moment = require("moment");
                                    
                                    //Datumsformat
                                    moment.locale('de');
                                    let fRkiFaktor = 1.00443;
                                    
                                    /****** DATENPUNKTE MÜSSEN ERSTELLT WERDEN (Name Pfad frei konfigurierbar)  **********/
                                    /**role html, type string (Typ = Zeichenkette)  */
                                    let coronaHtmlDp = '0_userdata.0.vis.jarvis.coronahtml';
                                    
                                    // verwendet in function write_corona_stats() und für die Aktivierung der Eventlistener
                                    /**role switch, type boolean (Typ = Logikwert) */
                                    /**FILTER: setze den Wert auf false und der ausgewählte Datenpunkt wird nicht angezeigt */
                                    let filterDp = {
                                        'states': '0_userdata.0.vis.jarvis.corona.filter.bundeslaender',
                                        'cities': '0_userdata.0.vis.jarvis.corona.filter.cities',
                                        'countries': '0_userdata.0.vis.jarvis.corona.filter.countries',
                                        'top5': '0_userdata.0.vis.jarvis.corona.filter.top5stats',
                                    }
                                    /******ENDE DATENPUNKTE MÜSSEN ERSTELLT WERDEN **********/
                                    
                                    let countrySelector = '[id=coronavirus-statistics.0.*.population]';
                                    let oListCountry = $(countrySelector);
                                    
                                    let stateSelector = '[id=coronavirus-statistics.0.Germany.Bundesland.*.deaths]';
                                    let oListState = $(stateSelector);
                                    
                                    let kreisSelector = '[id=coronavirus-statistics.0.Germany.Kreis.*.BL]';
                                    let oListKreis = $(kreisSelector);
                                    
                                    let stadtSelector = '[id=coronavirus-statistics.0.Germany.Stadt.*.BL]';
                                    let oListStadt = $(stadtSelector);
                                    
                                    //Mapper für Länder und Statistiken top5 und weltweit (nicht benötigte Datenpunkte können auskommentiert werden)
                                    let oSchemeCountry = {
                                        'updated': { 'title': 'zuletzt aktualisiert', 'format': 'datetime' },
                                        'population': { 'title': 'Einwohnerzahl', 'format': 'int' },
                                        'cases': { 'title': 'Fälle gesamt', 'format': 'int' },
                                        'active': { 'title': 'Aktuell infiziert', 'format': 'int' },
                                        'critical': { 'title': 'Im kritischen Zustand', 'format': 'int' },
                                        'recovered': { 'title': 'Genesene', 'format': 'int' },
                                        'tests': { 'title': 'Testungen', 'format': 'int' },
                                        'deaths': { 'title': 'Todesfälle', 'format': 'int' },
                                        'todayCases': { 'title': 'Heute neu infiziert', 'format': 'int' },
                                        'todayDeaths': { 'title': 'Heute Todesfälle', 'format': 'int' },
                                        'todayRecovered': { 'title': 'Heute Genesene', 'format': 'int' },
                                    };
                                    
                                    //Mapper für Bundesländer (nicht benötigte Datenpunkte können auskommentiert werden)
                                    let oSchemeState = {
                                        'updated': { 'title': 'zuletzt aktualisiert', 'format': 'datetime' },
                                        'cases': { 'title': ' COVID-19 Fälle gesamt', 'format': 'int' },
                                        'cases7_per_100k': { 'title': '7-Tage-Inzidenz', 'format': 'float' },
                                        'deaths': { 'title': 'COVID-19 Todesfälle', 'format': 'int' },
                                    
                                    };
                                    
                                    //Mapper für Stadt und Kreise (nicht benötigte Datenpunkte können auskommentiert werden)
                                    // hat ein title den Eintrag object wird der Name des Datenpunktes verwendet
                                    let oScheme = {
                                        'BL': { 'title': 'object', 'format': 'string' },
                                        'cases': { 'title': 'COVID-19 Fälle gesamt', 'format': 'int' },
                                        'cases_per_100k': { 'title': 'object', 'format': 'float' },
                                         'cases_per_population': { 'title': 'object', 'format': 'float' },
                                        // 'death_rate': { 'title': 'object', 'format': 'float' },
                                        'deaths': { 'title': 'COVID-19 Todesfälle', 'format': 'int' },
                                        'cases7_per_100k': { 'title': '7-Tage-Inzidenz', 'format': 'float' },
                                    };
                                    
                                    //Mapper für grafische Darstellung 7-Tages-Inzidenz verwendet in function calcGefahrInzidenz()
                                    let oScheme7Tg = {
                                        'ok': { 'title': 'Status ok', 'bgcolor': 'green', 'color': '#fff' },//wert 0 - 35
                                        'critical': { 'title': 'Status kritisch', 'bgcolor': 'orange', 'color': '#fff' }, //wert 35 - 50
                                        'high': { 'title': 'Status hoch', 'bgcolor': 'red', 'color': '#fff' }, // 50 - 100
                                        'veryhigh': { 'title': 'Status sehr hoch Notbremse aktiviert', 'bgcolor': 'darkred', 'color': '#fff' }// > 100
                                    };
                                    
                                    //Mapper für erlaubte Dinge 7-Tages-Inzidenz verwendet in function calcGefahrInzidenz()
                                    let oSchemeAllowed = {
                                        'ok': [// 0 - 35
                                            { 'title': 'Privat', 'descr': '3 Haushalte max. zehn Personen, Kinder bis 14 Jahre nicht mitgezählt' },
                                            { 'title': 'Geschäfte', 'descr': 'Einzelhandel mit kontrollierten Einlass' },
                                            { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten' },
                                            { 'title': 'Sport', 'descr': 'Außensport kontaktfrei (max. 10 Personen)' },
                                            { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
                                        ],
                                        'critical': [ // 35 - 50
                                            { 'title': 'Privat', 'descr': 'Max 5 Personen aus zwei Haushalten, Kinder bis 14 Jahre nicht mitgezählt' },
                                            { 'title': 'Geschäfte', 'descr': 'Einzelhandel mit kontrollierten Einlass' },
                                            { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten' },
                                            { 'title': 'Sport', 'descr': 'Außensport kontaktfrei (max. 10 Personen)' },
                                            { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
                                        ],
                                        'high': [ // 50 - 100
                                            { 'title': 'Privat', 'descr': 'Max 5 Personen aus zwei Haushalten, Kinder bis 14 Jahre nicht mitgezählt' },
                                            { 'title': 'Geschäfte', 'descr': 'Einzelhandel Click & Collect oder Click & Meet (40 Quadratmeter pro Person), Kontaktdatenerhebung' },
                                            { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten nur mit Terminbuchung' },
                                            { 'title': 'Sport', 'descr': 'Individualsport außen, max 5 Personen aus 2 Haushalten' },
                                            { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
                                        ],
                                        'veryhigh': [ // > 100
                                            { 'title': 'Privat', 'descr': 'ein Haushalt und eine weitere Person, nächtliche Ausgangssperre' },
                                            { 'title': 'Geschäfte', 'descr': 'Einzelhandel geschlossen' },
                                            { 'title': 'Freizeit', 'descr': 'Museen, Galerien, Zoos, Botanische Gärten, Gedenkstätten geschlossen' },
                                            { 'title': 'Sport', 'descr': 'Individualsport nur allein' },
                                            { 'title': 'Gastronomie', 'descr': 'erst ab 22. März' },
                                            { 'title': 'Kindergärten und Kitas', 'descr': 'geschlossen, nur Notbetreuung' },
                                            { 'title': 'Schulen', 'descr': 'nur Distanzunterricht' },
                                        ],
                                    };
                                    
                                    //Mapper für Legende Landkreise und Städte
                                    let oSchemeLegende = {
                                        'city': [
                                            { 'title': 'Hinweis', 'descr': 'Zudem gilt die sogenannte Notbremse: Steigt die 7-Tage-Inzidenz pro 100.000 Einwohner an drei aufeinander folgenden Tagen in einem Landkreis oder einer kreisfreien Stadt über 100, treten die Regeln, die vor dem 8. März gegolten hatten, wieder in Kraft.' }
                                        ],
                                    };
                                    
                                    //Eventlistener for filter 
                                    for (const [key, dp] of Object.entries(filterDp)) {
                                        on({ id: dp }, write_corona_stats);
                                    };
                                    
                                    write_corona_stats();
                                    
                                    function write_corona_stats() {
                                        try {
                                    
                                            let sStateOut = '';
                                            let sOutSumGermany = '';
                                            //Liste ausgewählter Bundesländer
                                            var calcInzidenzSum = 0.00;
                                            if (oListState.length > 0) {
                                                let bShowStates = getState(filterDp.states).val;
                                                sStateOut = '<div class="co-container states">';
                                    
                                                oListState.each((item, index) => {
                                                    let iStateID = item.replace('.deaths', '');
                                                   
                                                    if (bShowStates === true) {
                                                        let sStateName = iStateID.replace('coronavirus-statistics.0.Germany.Bundesland.', '');
                                                        sStateOut += '<div class="co-container"><div class="co-heading state">' + sStateName + '</div>';
                                                    }
                                                    for (const [key, dp] of Object.entries(oSchemeState)) {
                                                        if (bShowStates === true) {
                                                            sStateOut += builElements(key, dp, iStateID, false, '');
                                                        }
                                                        if (key === 'cases7_per_100k') {
                                                            calcInzidenzSum += parseFloat(getState(iStateID + '.' + key).val);
                                                        }
                                                    }//End for
                                                    if (bShowStates === true) {
                                                        sStateOut += '</div>';
                                                    }
                                                });
                                    
                                                if (oListState.length === 16) {
                                                    let calc7IndDe = (calcInzidenzSum / oListState.length * fRkiFaktor);
                                                    let fCalc7IndDe = calc7IndDe.toFixed(2);
                                                    let sCalc7IndDe = number_format(calc7IndDe, 2, ',', '.');
                                    
                                                    let oReturn = calcGefahrInzidenz(fCalc7IndDe, sCalc7IndDe, false);
                                                    let valc7IndDe = oReturn.val;
                                    
                                                    sOutSumGermany = '<div class="co-entry de-7-inz horizontal"><div class="co-descr">7-Tage-Inzidenz</div><div class="co-val">' + valc7IndDe + '</div></div>';
                                                }
                                                sStateOut += '</div>';
                                            }
                                    
                                            //Liste ausgewählter Länder
                                            let sCountryOut = '';
                                            if (oListCountry.length > 0) {
                                                let bShowTop5 = getState(filterDp.top5).val;
                                                let bCountries = getState(filterDp.countries).val;
                                                //only countries
                                                if (bCountries === true) {
                                                    sCountryOut = '<div class="co-container countries">';
                                                    oListCountry.each((item, index) => {
                                                        let iCountryID = item.replace('.population', '');
                                                        if ((iCountryID.indexOf("country_Top_5") === -1 && iCountryID.indexOf("global_totals") === -1)) {
                                                            let sCountryName = iCountryID.replace('coronavirus-statistics.0.', '');
                                                            let sFlag = '<img class="co-flag" src="' + getState(iCountryID + '.flag').val + '"> ';
                                                            let sCountryNameTrans = sFlag + sCountryName;
                                    
                                                            if (sCountryName === 'Germany') {
                                                                sCountryNameTrans = sFlag + 'Deutschland';
                                                            }
                                                            sCountryOut += '<div class="co-container country"><div class="co-heading country">' + sCountryNameTrans + '</div>';
                                    
                                                            for (const [key, dp] of Object.entries(oSchemeCountry)) {
                                                                sCountryOut += builElements(key, dp, iCountryID, false, 'horizontal');
                                                            }//End for
                                    
                                                            if (sCountryName === 'Germany') {
                                                                sCountryOut += sOutSumGermany;
                                                            }
                                                            sCountryOut += '</div>';
                                                        }
                                                    });
                                                    sCountryOut += '</div>';
                                                }
                                    
                                                //only stats
                                                if (bShowTop5 === true) {
                                                    sCountryOut += '<div class="co-container stats">';
                                                    oListCountry.each((item, index) => {
                                                        let iCountryID = item.replace('.population', '');
                                                        if (iCountryID.indexOf("country_Top_5") > -1 || iCountryID.indexOf("global_totals") > -1) {
                                                            let sCountryName = iCountryID.replace('coronavirus-statistics.0.', '');
                                                            let sFlag = '';
                                                            if (iCountryID.indexOf("global_totals") === -1) {
                                                                sFlag = '<img class="co-flag" src="' + getState(iCountryID + '.flag').val + '"> ';
                                                            }
                                                            let sCountryNameTrans = sFlag + sCountryName;
                                    
                                                            if (sCountryName.indexOf("country_Top_5") > -1) {
                                                                let obj = getObject(iCountryID);
                                                                sCountryNameTrans = sFlag + obj.common.name;
                                                            } else if (sCountryName.indexOf("global_totals") > -1) {
                                                                sCountryNameTrans = 'Weltweit gesamt';
                                                            }
                                                            sCountryOut += '<div class="co-container country"><div class="co-heading stats">' + sCountryNameTrans + '</div>';
                                    
                                                            for (const [key, dp] of Object.entries(oSchemeCountry)) {
                                                                sCountryOut += builElements(key, dp, iCountryID, false, '');
                                                            }//End for
                                    
                                                            sCountryOut += '</div>';
                                                        }
                                                    });
                                                    sCountryOut += '</div>';
                                                }
                                            }
                                    
                                            //Liste Landkreise
                                            let sCityCountiesOut = '';
                                            if (oListKreis.length > 0 && getState(filterDp.cities).val === true) {
                                    
                                                oListKreis.each((item, index) => {
                                                    let iKreisID = item.replace('.BL', '');
                                                    let sKreisName = iKreisID.replace('coronavirus-statistics.0.Germany.Kreis.', '');
                                                    sCityCountiesOut += '<div class="co-container"><div class="co-heading county">' + 'Kreis ' + sKreisName + '</div>';
                                    
                                                    for (const [key, dp] of Object.entries(oScheme)) {
                                                        sCityCountiesOut += builElements(key, dp, iKreisID, true, '');
                                                    }//End for
                                    
                                                    sCityCountiesOut += '</div>';
                                                });//end each
                                            }
                                    
                                            //Liste kreisfreie Städte
                                            if (oListStadt.length > 0 && getState(filterDp.cities).val === true) {
                                                oListStadt.each((item, index) => {
                                                    let iStadtID = item.replace('.BL', '');
                                                    let sStadtName = iStadtID.replace('coronavirus-statistics.0.Germany.Stadt.', '');
                                                    sCityCountiesOut += '<div class="co-container"><div class="co-heading city">' + 'Stadt ' + sStadtName + '</div>';
                                    
                                                    for (const [key, dp] of Object.entries(oScheme)) {
                                                        sCityCountiesOut += builElements(key, dp, iStadtID, true, '');
                                                    }//End for
                                    
                                                    sCityCountiesOut += '</div>';
                                                });//end each
                                            }
                                    
                                            if (sCityCountiesOut !== '') {
                                                let sLegende = '<div class="co-legende">';
                                                for (const [key, element] of Object.entries(oSchemeLegende.city)) {
                                                    sLegende += '<b>' + element.title + '</b>: ' + element.descr;
                                                };
                                                sLegende += '</div>';
                                                sCityCountiesOut = '<div class="co-container cities-counties">' + sCityCountiesOut + sLegende + '</div>';
                                            }
                                    
                                            var sHtml = '<div class="co-overview">';
                                            sHtml += sCountryOut + sStateOut + sCityCountiesOut;
                                    
                                            setState(coronaHtmlDp, sHtml);
                                    
                                        } catch (err) {
                                            console.error('[CoronaStatus] error: ' + err.message + ', stack: ' + err.stack);
                                        }
                                    }
                                    
                                    function builElements(key, dp, dpId, bAllow, cssClass) {
                                        let descr = '';
                                        let val = '';
                                        let sList = '';
                                        let sOut = '';
                                    
                                        if (dp.title === 'object') {
                                            let obj = getObject(dpId + '.' + key);
                                            descr = obj.common.name;
                                        } else {
                                            descr = dp.title
                                        }
                                    
                                        if (dp.format === 'string') {
                                            val = getState(dpId + '.' + key).val;
                                        } else if (dp.format === 'datetime') {
                                            let valDate = getState(dpId + '.' + key).val;
                                            val = moment(valDate).format('DD.MM.YYYY HH:mm');
                                        } else if (dp.format === 'int') {
                                            val = getState(dpId + '.' + key).val;
                                            val = number_format(val, 0, '', '.');
                                        } else if (dp.format === 'float') {
                                            let fVal = parseFloat(getState(dpId + '.' + key).val).toFixed(2);
                                            val = number_format(fVal, 2, ',', '.');
                                            if (key === 'cases7_per_100k') {
                                                let oReturn = calcGefahrInzidenz(fVal, val, bAllow);
                                                val = oReturn.val;
                                                sList = (oReturn.list !== '') ? '<div class="co-allowed-list">' + oReturn.list + '</div>' : '';
                                            }
                                        }
                                    
                                        sOut = '<div class="co-entry co-dp-' + key + ' ' + cssClass + '"><div class="co-descr">' + descr + '</div><div class="co-val">' + val + '</div></div>';
                                    
                                        if (sList !== '') {
                                            sOut += sList;
                                        }
                                    
                                        return sOut;
                                    }
                                    
                                    function calcGefahrInzidenz(fVal, sVal, isAllowed) {
                                        let iVal = parseInt(fVal);
                                        let val = '';
                                        let sListAllowed = '';
                                    
                                        if (iVal < 35) {
                                            val = '<span class="badge" title="' + oScheme7Tg.ok.title + '" style="background-color:' + oScheme7Tg.ok.bgcolor + ';color:' + oScheme7Tg.ok.color + ';">' + sVal + '</span>';
                                            if (isAllowed === true) {
                                                sListAllowed = '<ul class="co-list">';
                                                for (const [key, element] of Object.entries(oSchemeAllowed.ok)) {
                                                    sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                                                };
                                                sListAllowed += '</ul>';
                                            }
                                        } else if (iVal >= 35 && iVal < 50) {
                                            val = '<span class="badge" title="' + oScheme7Tg.critical.title + '" style="background-color:' + oScheme7Tg.critical.bgcolor + ';color:' + oScheme7Tg.critical.color + ';">' + sVal + '</span>';
                                            if (isAllowed === true) {
                                                sListAllowed = '<ul class="co-list">';
                                                for (const [key, element] of Object.entries(oSchemeAllowed.critical)) {
                                                    sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                                                };
                                                sListAllowed += '</ul>';
                                            }
                                        } else if (iVal >= 50 && iVal < 100) {
                                            val = '<span class="badge" title="' + oScheme7Tg.high.title + '" style="background-color:' + oScheme7Tg.high.bgcolor + ';color:' + oScheme7Tg.high.color + ';">' + sVal + '</span>';
                                            if (isAllowed === true) {
                                                sListAllowed = '<ul class="co-list">';
                                                for (const [key, element] of Object.entries(oSchemeAllowed.high)) {
                                                    sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                                                };
                                                sListAllowed += '</ul>';
                                            }
                                        } else if (iVal >= 100) {
                                            val = '<span class="badge" title="' + oScheme7Tg.veryhigh.title + '" style="background-color:' + oScheme7Tg.veryhigh.bgcolor + ';color:' + oScheme7Tg.veryhigh.color + ';">' + sVal + '</span>';
                                            if (isAllowed === true) {
                                                sListAllowed = '<ul class="co-list">';
                                                for (const [key, element] of Object.entries(oSchemeAllowed.veryhigh)) {
                                                    sListAllowed += '<li><b>' + element.title + '</b>: ' + element.descr + '</li>';
                                                };
                                                sListAllowed += '</ul>';
                                            }
                                        }
                                        let oReturn = { 'val': val, 'list': sListAllowed };
                                    
                                        return oReturn;
                                    }
                                    
                                    //taken from https://gist.github.com/VassilisPallas/d73632e9de4794b7dd10b7408f7948e8/bf17eccef8521b4e5869bdc6a5b09a771356fbff
                                    function number_format(intFloatNumber, decimals, dec_point, thousands_point) {
                                    
                                        if (intFloatNumber == null || !isFinite(intFloatNumber)) {
                                            throw new TypeError("number is not valid");
                                        }
                                    
                                        if (!decimals) {
                                            let len = intFloatNumber.toString().split('.').length;
                                            decimals = len > 1 ? len : 0;
                                        }
                                    
                                        dec_point = (!dec_point) ? '.' : dec_point;
                                        thousands_point = (!thousands_point) ? '.' : thousands_point;
                                    
                                        intFloatNumber = parseFloat(intFloatNumber).toFixed(decimals);
                                        intFloatNumber = intFloatNumber.replace(".", dec_point);
                                    
                                        var splitNum = intFloatNumber.split(dec_point);
                                        splitNum[0] = splitNum[0].replace(/\B(?=(\d{3})+(?!\d))/g, thousands_point);
                                        intFloatNumber = splitNum.join(dec_point);
                                    
                                        return intFloatNumber;
                                    }
                                    
                                    
                                    1 Antwort Letzte Antwort
                                    0
                                    • Sebastian IOS Sebastian IO

                                      @ash2k sagte in Test Coronavirus Statistics for ioBroker:

                                      _per_100k
                                      welche version des js-controllers verwendest du?

                                      A Offline
                                      A Offline
                                      Ash2k
                                      schrieb am zuletzt editiert von Ash2k
                                      #856

                                      @sebastian-io

                                      welche Adapter-Version vom Javascript-Adapter hast du?

                                      Habe gerade mal Update auf 5.0.14 gemacht.
                                      Vorher war die 4.8.4 installiert, weiss nicht seit wann das 5.0.14 angeboten wurde im stable, eine Woche vielleicht?!?
                                      Scheint jetzt noch daran gelegen zu haben...sorry aber bin ja auf vieles gekommen aber nicht darauf....Jaja immer Updates der Adapter machen werden nun wieder viele denken und sagen :D Aber manchmal muss ich mir für solch aus meiner Sicht wichtigen Adapter auch die Zeit nehmen können für den Worst Case wenn was schief läuft beim Update.

                                      Der einzige Adapter der bei mir ewig nicht mehr aktualisiert wurde ist der Shelly, sonst mache ich das schon regelmäßig:

                                      9d92124c-94b0-412e-a4df-d9773fd23a18-image.png

                                      Aber bei dem muss ich richtig viel Zeit haben da ich gleichzeitig noch FW-Updates aller Shellys machen muss bevor ich den Adapter updaten kann. und es immer wieder Probleme gibt/gab mit bestimmter FW der Shellys im WLAN :)

                                      Sebastian IOS 1 Antwort Letzte Antwort
                                      1
                                      • A Ash2k

                                        @sebastian-io

                                        welche Adapter-Version vom Javascript-Adapter hast du?

                                        Habe gerade mal Update auf 5.0.14 gemacht.
                                        Vorher war die 4.8.4 installiert, weiss nicht seit wann das 5.0.14 angeboten wurde im stable, eine Woche vielleicht?!?
                                        Scheint jetzt noch daran gelegen zu haben...sorry aber bin ja auf vieles gekommen aber nicht darauf....Jaja immer Updates der Adapter machen werden nun wieder viele denken und sagen :D Aber manchmal muss ich mir für solch aus meiner Sicht wichtigen Adapter auch die Zeit nehmen können für den Worst Case wenn was schief läuft beim Update.

                                        Der einzige Adapter der bei mir ewig nicht mehr aktualisiert wurde ist der Shelly, sonst mache ich das schon regelmäßig:

                                        9d92124c-94b0-412e-a4df-d9773fd23a18-image.png

                                        Aber bei dem muss ich richtig viel Zeit haben da ich gleichzeitig noch FW-Updates aller Shellys machen muss bevor ich den Adapter updaten kann. und es immer wieder Probleme gibt/gab mit bestimmter FW der Shellys im WLAN :)

                                        Sebastian IOS Offline
                                        Sebastian IOS Offline
                                        Sebastian IO
                                        schrieb am zuletzt editiert von
                                        #857

                                        @ash2k Ich bin ja froh, dass wir dir weiterhelfen konnten. #communitygedanke

                                        1 Antwort Letzte Antwort
                                        2
                                        • DutchmanD Dutchman

                                          @sebastian-io sagte in Test Coronavirus Statistics for ioBroker:

                                          @dutchman wollte danke sagen für die tolle Aufbereitung der Daten

                                          WoW Nice! Ich bin ein backend/Daten man und Specialist grafische Wiedergabe ist nicht meine Stärke 🙈
                                          Ich finde es immer super geil und cool um zu sehen was ihr für tolle Sachen ihr da baut mit den bisschen “raw Daten” welche meine Adapter liefern ☺️

                                          Weiter so und danke fürs teilen, das gibt einen ja richtig Energy weiter jegliche Art von Integrationen für die commune zu machen 😀

                                          Cheers !

                                          Dutch

                                          Sebastian IOS Offline
                                          Sebastian IOS Offline
                                          Sebastian IO
                                          schrieb am zuletzt editiert von Sebastian IO
                                          #858

                                          @dutchman ich habe jetzt mal die Version (0.6.8) von Github installiert, so dass ich auch die Impfdaten auswerten kann. Dabei ist mir aufgefallen, dass der Datenpunkt:

                                           coronavirus-statistics.0.Germany.Bundesland.Baden-Württemberg._Impfungen.rkiZweitImpfungenDifferenzVortag
                                          

                                          gleich der Impfquote des Bundeslandes entspricht, da ich mir für die Bundesländer selbst die Impfquote aus Einwohnerzahl und Impfungen kumulativ per Dreisatz berechne.
                                          Und der Datenpunkt mit der Differenz an Impfungen zum Vortag halte ich auch nicht für realistisch. Aber ich habe es nicht gegengeprüft. Und die eigentliche Impfquote passt auch nicht. Interessant hierbei ist eigentlich, dass ich mit den Daten des Statistischen Meldeamts für die Einwohnerzahl der Bundesländer von 2019 (sind die aktuellesten, da nur alle 2 Jahre) die Impfquote berechne und die dadurch den exakten Wert des DP rkiZweitImpfungenDifferenzVortag ergeben.

                                          Hier noch ein aktueller Screen meiner aktuellen corona infos:
                                          screen-corona-impf-140320221.png

                                          edit:
                                          Ich glaube die Impfquote ist die Differenz zum Vortag an Impfungen, von den Werten her könnte es passen!
                                          VG

                                          Ich habe auf Tagesschau eine Tabelle mit den Impfdaten gefunden und meine Annahme bestätigt, dass hier die Datenpunkte durcheinander gekommen sind:
                                          screen-tabelle-impfungen.png

                                          Aus dem Adapter mit korrekter wahl dp:
                                          screen-tabelle-impfungen-jarvis.png

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          329

                                          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