Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Frage] Excel nach json

    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

    Frage] Excel nach json

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @Horst Böttcher last edited by

      @Horst-Böttcher sagte:

      wo muss das rein und wie

      Einfach eingeben.

      JS_Temp.JPG

      Horst Böttcher 1 Reply Last reply Reply Quote 0
      • Horst Böttcher
        Horst Böttcher @paul53 last edited by Horst Böttcher

        @paul53 ok hab ich gemacht

        3.11.2020, 19:52:17.005	[info ]: javascript.0 (7715) Stop script script.js.text
        3.11.2020, 19:52:18.967	[info ]: javascript.0 (7715) Start javascript script.js.text
        3.11.2020, 19:52:18.976	[info ]: javascript.0 (7715) script.js.text: registered 0 subscriptions and 0 schedules
        

        bekomme nur keine daten

        paul53 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @Horst Böttcher last edited by

          @Horst-Böttcher sagte in Frage] Excel nach json:

          bekomme nur keine daten

          Die Daten werden als JSON in einen Datenpunkt geschrieben. Wenn sie im Log zu sehen sein sollen, muss ergänzt werden:

                  log(json);
          
          Horst Böttcher 1 Reply Last reply Reply Quote 0
          • Horst Böttcher
            Horst Böttcher @paul53 last edited by Horst Böttcher

            @paul53 ok jetzt ging es

            nur gibt es ein UTF-8 Problem denn die Sonderzeichen sehen komisch aus
            und wie kann man einstellen das es immer um 0:00 Uhr und 12:00 Uhr ausgelesen wird

            [{"\"Bezirk\"":"Charlottenburg-Wilmersdorf","\"Fallzahl\"":"3155","\"Differenz\"":"134","\"Inzidenz\"":" 918,2","\"Genesen\"":"2056"},{"\"Bezirk\"":"Friedrichshain-Kreuzberg","\"Fallzahl\"":"3602","\"Differenz\"":"140","\"Inzidenz\"":"1240,4","\"Genesen\"":"2305"},{"\"Bezirk\"":"Lichtenberg","\"Fallzahl\"":"1722","\"Differenz\"":"86","\"Inzidenz\"":" 585,3","\"Genesen\"":"1099"},{"\"Bezirk\"":"Marzahn-Hellersdorf","\"Fallzahl\"":"1376","\"Differenz\"":"76","\"Inzidenz\"":" 509,7","\"Genesen\"":"994"},{"\"Bezirk\"":"Mitte","\"Fallzahl\"":"5247","\"Differenz\"":"195","\"Inzidenz\"":"1360,2","\"Genesen\"":"3373"},{"\"Bezirk\"":"Neuk�lln","\"Fallzahl\"":"5216","\"Differenz\"":"205","\"Inzidenz\"":"1581,0","\"Genesen\"":"3353"},{"\"Bezirk\"":"Pankow","\"Fallzahl\"":"2681","\"Differenz\"":"132","\"Inzidenz\"":" 655,0","\"Genesen\"":"1848"},{"\"Bezirk\"":"Reinickendorf","\"Fallzahl\"":"2592","\"Differenz\"":"90","\"Inzidenz\"":" 972,9","\"Genesen\"":"1722"},{"\"Bezirk\"":"Spandau","\"Fallzahl\"":"2045","\"Differenz\"":"166","\"Inzidenz\"":" 834,0","\"Genesen\"":"1309"},{"\"Bezirk\"":"Steglitz-Zehlendorf","\"Fallzahl\"":"2242","\"Differenz\"":"78","\"Inzidenz\"":" 723,1","\"Genesen\"":"1092"},{"\"Bezirk\"":"Tempelhof-Sch�neberg","\"Fallzahl\"":"3585","\"Differenz\"":"136","\"Inzidenz\"":"1021,4","\"Genesen\"":"1915"},{"\"Bezirk\"":"Treptow-K�penick","\"Fallzahl\"":"1355","\"Differenz\"":"75","\"Inzidenz\"":" 495,1","\"Genesen\"":"784"},{"\"Bezirk\"":"Berlin","\"Fallzahl\"":"34818","\"Differenz\"":"1513","\"Inzidenz\"":" 923,7","\"Genesen\"":"21850"}]
            
            Horst Böttcher paul53 OliverIO 4 Replies Last reply Reply Quote 0
            • Horst Böttcher
              Horst Böttcher @Horst Böttcher last edited by

              Hat wer da eine Lösung

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @Horst Böttcher last edited by paul53

                @Horst-Böttcher:

                wie kann man einstellen das es immer um 0:00 Uhr und 12:00 Uhr ausgelesen wird

                const csvjson = require('csvjson');
                const idJson = 'Datenpunkt-ID für Vis-Tabelle';
                const url = 'https://www.berlin.de/lageso/_assets/gesundheit/publikationen/corona/bezirkstabelle.csv';
                 
                schedule('0 0,12 * * *', function() {
                  request(url, function(err, resp, data) {
                    if(err) log(err, 'warn');
                    else {
                        let json = JSON.stringify(csvjson.toObject(data, {delimiter : ';'}));
                        setState(idJson, json, true);
                    }
                  });
                });
                
                1 Reply Last reply Reply Quote 0
                • OliverIO
                  OliverIO @Horst Böttcher last edited by

                  @Horst-Böttcher sagte in Frage] Excel nach json:

                  UTF-8 Problem

                  Beim einlesen kannst du ein encoding angeben. Dazu musst du herausfinden wie die excel kodiert wurde. Wenn es Windows ist könntest du es mal mit ISO-8859-1 probieren

                  Horst Böttcher 1 Reply Last reply Reply Quote 0
                  • Horst Böttcher
                    Horst Böttcher @OliverIO last edited by

                    @OliverIO sagte in Frage] Excel nach json:

                    ISO-8859-1

                    es währe net wenn sie mir sagen könnten wie man das dort einträgt

                    OliverIO 1 Reply Last reply Reply Quote 0
                    • OliverIO
                      OliverIO @Horst Böttcher last edited by

                      @Horst-Böttcher

                      ich habe mal das beispiel von oben kopiert. es muss nur wenig geändert werden.

                      const csvjson = require('csvjson');
                      const idJson = 'Datenpunkt-ID für Vis-Tabelle';
                      const url = 'https://www.berlin.de/lageso/_assets/gesundheit/publikationen/corona/bezirkstabelle.csv';
                       
                      request({
                        url:url,
                        encoding:'ISO-8859-1'
                        }, function(err, resp, data) {
                          if(err) log(err, 'warn');
                          else {
                              let json = JSON.stringify(csvjson.toObject(data, {delimiter : ';'}));
                              setState(idJson, json, true);
                          }
                      });
                      
                      F 1 Reply Last reply Reply Quote 0
                      • F
                        fastfoot @OliverIO last edited by

                        @OliverIO sagte in Frage] Excel nach json:

                        encoding:'ISO-8859-1'

                        das mag der JS Adapter gar nicht und beendet sich 😞 Ich hatte mich diese Woche daran versucht und bin kläglich gescheitert

                        OliverIO 1 Reply Last reply Reply Quote 0
                        • OliverIO
                          OliverIO @fastfoot last edited by

                          @fastfoot
                          Ohne eine Fehlermeldung?
                          Was heißt beendet. Absturz?

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            fastfoot @OliverIO last edited by

                            @OliverIO sagte in Frage] Excel nach json:

                            @fastfoot
                            Ohne eine Fehlermeldung?
                            Was heißt beendet. Absturz?

                            ja, crash. Dasselbe mit ansi und was mir sonst noch einfiel.

                            javascript.1	2020-11-06 23:48:11.901	error	(27805) TypeError [ERR_UNKNOWN_ENCODING]: Unknown encoding: ISO-8859-1
                            javascript.1	2020-11-06 23:48:11.901	error	(27805) Error: Unknown encoding: ISO-8859-1
                            javascript.1	2020-11-06 23:48:11.900	error	(27805) An error happened which is most likely from one of your scripts, but the originating script could not be detected.
                            
                            OliverIO 1 Reply Last reply Reply Quote 0
                            • OliverIO
                              OliverIO @fastfoot last edited by

                              @fastfoot
                              Dann Probier mal den folgenden String
                              iso88591

                              Wenn das auch nicht geht, wirst du die Daten vorher nochmal durch iconv jagen müssen.

                              https://blog.theodo.com/2017/04/csv-excel-escape-from-the-encoding-hell-in-nodejs/

                              F 1 Reply Last reply Reply Quote 1
                              • F
                                fastfoot @OliverIO last edited by

                                @OliverIO sagte in Frage] Excel nach json:

                                @fastfoot
                                Dann Probier mal den folgenden String
                                iso88591

                                Wenn das auch nicht geht, wirst du die Daten vorher nochmal durch iconv jagen müssen.

                                https://blog.theodo.com/2017/04/csv-excel-escape-from-the-encoding-hell-in-nodejs/

                                Danke dir sehr, auch wenn ich nicht der TE bin. Das hatte mich doch interessiert und hat mich frustriert zurückgelassen, dass ich die Lösung nicht selbst finden konnte. Mit deiner Lösung klappt es jetzt. Ginge nicht auch so etwas wie charset = xxxx ? Ich kenne mich mit Request-Headern leider gar nicht aus

                                const csvjson = require('csvjson');
                                const iconv = require('iconv-lite');
                                const idJson = '0_userdata.0.json';
                                const url = 'https://www.berlin.de/lageso/_assets/gesundheit/publikationen/corona/bezirkstabelle.csv';
                                 
                                request({
                                  url:url,
                                  encoding:'binary'
                                  }, function(err, resp, data) {
                                    if(err) log(err, 'warn');
                                    else {
                                        data = iconv.decode(data, 'iso88591');
                                        let json = JSON.stringify(csvjson.toObject(data, {delimiter : ';'}));
                                        setState(idJson, json, true);
                                        log(json);
                                    }
                                });
                                
                                
                                1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @Horst Böttcher last edited by

                                  @Horst-Böttcher:

                                  die Sonderzeichen sehen komisch aus

                                  Man kann sie austauschen, da alle für ein "ö" stehen.

                                          setState(idJson, json.replace(/�/g, 'ö'), true);
                                  
                                  Horst Böttcher 1 Reply Last reply Reply Quote 0
                                  • Horst Böttcher
                                    Horst Böttcher @paul53 last edited by Horst Böttcher

                                    Dann Probier mal den folgenden String
                                    iso88591

                                    Hat supper geklappt danke euch

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    424
                                    Online

                                    31.8k
                                    Users

                                    80.0k
                                    Topics

                                    1.3m
                                    Posts

                                    5
                                    21
                                    1200
                                    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