Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Coronavirus Statistics for ioBroker

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Test Coronavirus Statistics for ioBroker

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      Coffeelover @Dutchman last edited by

      @Dutchman https://github.com/Scrounger

      1 Reply Last reply Reply Quote 0
      • Scrounger
        Scrounger Developer last edited by

        Hab mein Skript noch erweitert um:

        • Kontinent Amerika (Zusammenfassung von Nord- & Süd Amerika)
        • Welt, fehlende Werte für todayCases & todayDeaths

        Skript:

        const countryJs = require("country-list-js");
        
        let selector = `[id=coronavirus-statistics.0.*.cases]`
        let allCountries = $(selector);
        
        // Fehlermeldung ausgeben, wenn selector kein result liefert
        if (allCountries.length === 0) {
            console.error(`no result for selector '${selector}'`)
        }
        
        on({ id: 'coronavirus-statistics.0.global_totals.updated', change: 'any' }, statsForContinents);
        
        function statsForContinents() {
            setTimeout(function () {
                console.log('Corona Statistik für Kontinente wird erstellt');
        
                let countryTranslator = {
                    // https://github.com/i-rocky/country-list-js/blob/master/data/names.json
                    "Vatican_City": "Vatican",
                    "USA": "United States",
                    "UK": "United Kingdom",
                    "UAE": "United Arab Emirates",
                    "US_Virgin_Islands": "U.S. Virgin Islands",
                    "St_Vincent_Grenadines": "Saint Vincent and the Grenadines",
                    "St_Barth": "Saint Barthelemy",
                    "S_Korea": "South Korea",
                    "Palestine": "Palestinian Territory",
                    "North_Macedonia": "Macedonia",
                    "Faeroe_Islands": "Faroe Islands",
                    "Eswatini": "Swaziland",
                    "Czechia": "Czech Republic",
                    "Congo": "Republic of the Congo",
                    "CAR": "Central African Republic",
                    "DRC": "Democratic Republic of the Congo",
                    "Channel_Islands": "France"                             // gehört zu Europa, deshalb Frankreich einfach vergeben
                }
        
                var continentsStats = {};
                countryJs.continents().forEach(function (continent, index) {
                    continentsStats[continent] = {
                        cases: 0,
                        critical: 0,
                        deaths: 0,
                        recovered: 0,
                        todayCases: 0,
                        todayDeaths: 0,
                    }
                });
        
                continentsStats['America'] = {
                    cases: 0,
                    critical: 0,
                    deaths: 0,
                    recovered: 0,
                    todayCases: 0,
                    todayDeaths: 0,
                };
        
                continentsStats['World'] = {
                    todayCases: 0,
                    todayDeaths: 0,
                };
        
        
                for (var i = 0; i <= allCountries.length - 1; i++) {
                    let idCases = allCountries[i];
                    let idCritical = idCases.replace('.cases', '.critical');
                    let idDeaths = idCases.replace('.cases', '.deaths');
                    let idRecovered = idCases.replace('.cases', '.recovered');
                    let idTodayCases = idCases.replace('.cases', '.todayCases');
                    let idTodayDeaths = idCases.replace('.cases', '.todayDeaths');
        
                    let countryName = idCases.split('.')[2];
        
                    let country = countryJs.findByName(countryName.replace(/_/g, ' ').replace('é', 'e').replace('ç', 'c'));
                    if (country) {
                        calcStats(country);
                    } else {
                        country = countryJs.findByName(countryTranslator[countryName]);
                        if (country) {
                            calcStats(country);
                        } else {
                            if (countryName !== 'global_totals' && countryName !== 'Diamond_Princess') {
                                console.warn(`${countryName} nicht in gefunden. Korrekter Name muss im skript manuell hinzugefügt werden!`);
                            }
                        }
                    }
        
                    function calcStats(country) {
                        if (country.continent) {
                            continentsStats[country.continent].cases = continentsStats[country.continent].cases + getState(idCases).val;
                            continentsStats[country.continent].critical = continentsStats[country.continent].critical + getState(idCritical).val;
                            continentsStats[country.continent].deaths = continentsStats[country.continent].deaths + getState(idDeaths).val;
                            continentsStats[country.continent].recovered = continentsStats[country.continent].recovered + getState(idRecovered).val;
                            continentsStats[country.continent].todayCases = continentsStats[country.continent].todayCases + getState(idTodayCases).val;
                            continentsStats[country.continent].todayDeaths = continentsStats[country.continent].todayDeaths + getState(idTodayDeaths).val;
        
                            if (country.continent === 'South America' || country.continent === 'North America') {
                                continentsStats['America'].cases = continentsStats['America'].cases + getState(idCases).val;
                                continentsStats['America'].critical = continentsStats['America'].critical + getState(idCritical).val;
                                continentsStats['America'].deaths = continentsStats['America'].deaths + getState(idDeaths).val;
                                continentsStats['America'].recovered = continentsStats['America'].recovered + getState(idRecovered).val;
                                continentsStats['America'].todayCases = continentsStats['America'].todayCases + getState(idTodayCases).val;
                                continentsStats['America'].todayDeaths = continentsStats['America'].todayDeaths + getState(idTodayDeaths).val;
                            }
        
                            continentsStats['World'].todayCases = continentsStats['World'].todayCases + getState(idTodayCases).val;
                            continentsStats['World'].todayDeaths = continentsStats['World'].todayDeaths + getState(idTodayDeaths).val;
                        } else {
                            console.warn(`Für ${countryName} existiert kein Kontinent!`);
                        }
                    }
                }
        
                for (var continent in continentsStats) {
                    for (var prop in continentsStats[continent]) {
                        let dpId = `corona.continents.${continent}.${prop}`
        
                        if (existsState(dpId)) {
                            setState(dpId, continentsStats[continent][prop], true);
                        } else {
                            createState(dpId, continentsStats[continent][prop], {
                                name: `${continent} ${prop}`,
                                read: true,
                                write: false,
                                desc: `${continent} ${prop}`,
                                type: "number",
                                def: 0,
                            });
                        }
                    }
                }
            }, 30000);
        }
        
        // Bei JS Start ausführen
        statsForContinents();
        
        1 Reply Last reply Reply Quote 0
        • Uli977
          Uli977 @sigi234 last edited by Uli977

          @sigi234 stellst du das View mal zur Verfügung?
          Inkl der nötigen Icons und ggf. Skripte wenn erforderlich.

          sigi234 1 Reply Last reply Reply Quote 0
          • sigi234
            sigi234 Forum Testing Most Active @Uli977 last edited by

            @Uli977 sagte in Test Coronavirus Statistics for ioBroker:

            @sigi234 stellst du das View mal zur Verfügung?
            Inkl der nötigen Icons und ggf. Skripte wenn erforderlich.

            https://forum.iobroker.net/topic/28717/vis-von-sigi234/180

            Uli977 1 Reply Last reply Reply Quote 0
            • Uli977
              Uli977 @sigi234 last edited by

              @sigi234 Danke!

              Aber was habe ich vergessen?

              1f23f323-8004-4221-9194-e67b8832f98b-image.png

              vis-materialdesign.0 ist installiert

              sigi234 1 Reply Last reply Reply Quote 0
              • sigi234
                sigi234 Forum Testing Most Active @Uli977 last edited by sigi234

                @Uli977 sagte in Test Coronavirus Statistics for ioBroker:

                @sigi234 Danke!

                Aber was habe ich vergessen?

                vis-materialdesign.0 ist installiert

                Das Skript von @Scrounger ?

                Soweit ich weis baut das @Dutchman aber ein.

                Uli977 Dutchman 2 Replies Last reply Reply Quote 0
                • Uli977
                  Uli977 @sigi234 last edited by Uli977

                  @sigi234

                  6ad5cb5c-642e-48bc-9842-c4f7c60395b2-image.png

                  Wo finde ich diese Liste?

                  sigi234 1 Reply Last reply Reply Quote 0
                  • sigi234
                    sigi234 Forum Testing Most Active @Uli977 last edited by

                    @Uli977 sagte in Test Coronavirus Statistics for ioBroker:

                    Wo finde ich diese lIste?

                    Das musst du im JS Adapter eintragen und Adapter neu starten!

                    Screenshot (2068)_LI.jpg

                    Uli977 1 Reply Last reply Reply Quote 0
                    • Dutchman
                      Dutchman Developer Most Active Administrators @sigi234 last edited by

                      @sigi234 sagte in Test Coronavirus Statistics for ioBroker:

                      Soweit ich weis baut das @Dutchman aber ein.

                      das design, nope die sache mit den Kontinenten kommt noch

                      1 Reply Last reply Reply Quote 0
                      • Uli977
                        Uli977 @sigi234 last edited by

                        @sigi234 wieder was gelernt!

                        Aber das View ist immer noch leer...

                        af68c13b-e3fc-499c-ac34-e95bc31a7d07-image.png

                        sigi234 1 Reply Last reply Reply Quote 0
                        • sigi234
                          sigi234 Forum Testing Most Active @Uli977 last edited by

                          @Uli977

                          Kommen die Daten an?

                          Screenshot (2070).png

                          Uli977 1 Reply Last reply Reply Quote 0
                          • Uli977
                            Uli977 @sigi234 last edited by

                            @sigi234 Ja, kommen an

                            1a618ea2-2987-47b9-8647-3d92a8688afa-image.png

                            sigi234 1 Reply Last reply Reply Quote 0
                            • sigi234
                              sigi234 Forum Testing Most Active @Uli977 last edited by

                              @Uli977

                              MD Widget Richtig installiert?

                              Screenshot (2073)_LI.jpg

                              Uli977 1 Reply Last reply Reply Quote 0
                              • Uli977
                                Uli977 @sigi234 last edited by

                                @sigi234 ist vorhanden

                                1197a608-f9bc-41fd-8c66-840472906265-image.png

                                sigi234 1 Reply Last reply Reply Quote 0
                                • sigi234
                                  sigi234 Forum Testing Most Active @Uli977 last edited by

                                  @Uli977 sagte in Test Coronavirus Statistics for ioBroker:

                                  @sigi234 ist vorhanden

                                  1197a608-f9bc-41fd-8c66-840472906265-image.png

                                  ICON LIST

                                  Uli977 2 Replies Last reply Reply Quote 0
                                  • Uli977
                                    Uli977 @sigi234 last edited by

                                    @sigi234 nä... nicht da

                                    sigi234 1 Reply Last reply Reply Quote 0
                                    • Uli977
                                      Uli977 @sigi234 last edited by

                                      @sigi234 folgendes bei neuinstallation

                                      e5463136-98a8-452c-bb06-3bf81049f80b-image.png

                                      1 Reply Last reply Reply Quote 0
                                      • sigi234
                                        sigi234 Forum Testing Most Active @Uli977 last edited by

                                        @Uli977 sagte in Test Coronavirus Statistics for ioBroker:

                                        @sigi234 nä... nicht da

                                        Welche Version hast du?

                                        Uli977 1 Reply Last reply Reply Quote 0
                                        • Uli977
                                          Uli977 @sigi234 last edited by

                                          @sigi234 0.1.5

                                          sigi234 1 Reply Last reply Reply Quote 0
                                          • sigi234
                                            sigi234 Forum Testing Most Active @Uli977 last edited by

                                            @Uli977 sagte in Test Coronavirus Statistics for ioBroker:

                                            @sigi234 0.1.5

                                            UPDATE MACHEN!

                                            Screenshot (2075)_LI.jpg

                                            Uli977 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            550
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter installation adapterentwicklung testen
                                            120
                                            1177
                                            277052
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo