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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Meteohub Daten, XML parsen, JSON durchsuchen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

[gelöst] Meteohub Daten, XML parsen, JSON durchsuchen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
43 Beiträge 6 Kommentatoren 4.7k Aufrufe 4 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.
  • S steinche

    @oliverio said in [gelöst] Meteohub Daten, XML parsen, JSON durchsuchen:

    und er hat seinen code versteckt. so geht man von falschen voraussetzungen aus und verschendet ungern zeit. das ist bspw bei mir so ein lust-killer

    Ich hatte die Teile "eingebaut", die @ticaki so versucht hat, daher hatte ich nicht jedes mal den komplette Code gepostet.

    Die original Funktion:

    function getXML(do_init) {
        // loads full meteohub xml file from the mh_URL and calls the parse function.
        // on very first execution do_init is true and all states are created. Each successive call only sets the state values.
        log('meteohub query data from '+mh_URL); // Debug output
        request(mh_URL, function (error, response, body) {
            if (error) log("Fehler beim Herunterladen Meteohub XML: " + error, 'error');
            else {
                //var start = new Date();
                parseXML(body,do_init);
                //var time = new Date() - start;            
                //log('Meteohub XML2JS Durchlaufzeit: '+time); 
            };
        });
    }
    

    bringt den Fehler:

    23:47:04.347	error	javascript.0 (77182) script.js.common.WetterdatenEinlesen: Fehler beim Herunterladen Meteohub XML: Error: Parse Error: Invalid header value char
    

    Das muss doch daran liegen, dass dem request etwas nicht passt?

    Abschließend noch mal vielen Dank an alle für die Unterstützung, dass die Daten jetzt abgerufen werden!

    Die Verarbeitung der Daten muss ich noch anpassen, aber das bekomme ich hoffentlich alleine hin. Inzwischen weiß ich etwas mehr zu JavaScript als nur, wie man es schreibt :blush:

    OliverIOO Offline
    OliverIOO Offline
    OliverIO
    schrieb am zuletzt editiert von OliverIO
    #41

    @steinche sagte in [gelöst] Meteohub Daten, XML parsen, JSON durchsuchen:

    Das muss doch daran liegen, dass dem request etwas nicht passt?

    @oliverio sagte in [gelöst] Meteohub Daten, XML parsen, JSON durchsuchen:

    Mit der oben besagten Version 12.15 wurde eingeführt, das der response header einer http anfrage strikter geprüft wird. wenn nun der server ein nicht erlaubtes zeichen sendet, dann wird dieser fehler geworfen.

    Hast du den Artikel gelesen, den ich oben verlinkt habe?
    Das setzen der Option unterdrückt diese strikte Prüfung.
    Das Beispiel ist halt nur für axios.
    wenn man unbedingt das auch für request lösen will muss man im Internet suchen.
    allerdings ist axios neuer und request ist deprecated. also reicht die eine funktionierende Lösung ja aus.

    dein aktueller code:
    jetzt hast du axios wieder zu request zurückgebaut?
    verstehst du den unterschied zwischen request und axios überhaupt?

    wer hat den jetzt das folgende geschrieben? Ich blick da nicht mehr durch

    @steinche sagte in [gelöst] Meteohub Daten, XML parsen, JSON durchsuchen:

    Habe es auf axios umgebaut und um ', { insecureHTTPParser: true }' ergänzt -> ERFOLGREICH!!

    Meine Adapter und Widgets
    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
    Links im Profil

    S 1 Antwort Letzte Antwort
    0
    • OliverIOO OliverIO

      @steinche sagte in [gelöst] Meteohub Daten, XML parsen, JSON durchsuchen:

      Das muss doch daran liegen, dass dem request etwas nicht passt?

      @oliverio sagte in [gelöst] Meteohub Daten, XML parsen, JSON durchsuchen:

      Mit der oben besagten Version 12.15 wurde eingeführt, das der response header einer http anfrage strikter geprüft wird. wenn nun der server ein nicht erlaubtes zeichen sendet, dann wird dieser fehler geworfen.

      Hast du den Artikel gelesen, den ich oben verlinkt habe?
      Das setzen der Option unterdrückt diese strikte Prüfung.
      Das Beispiel ist halt nur für axios.
      wenn man unbedingt das auch für request lösen will muss man im Internet suchen.
      allerdings ist axios neuer und request ist deprecated. also reicht die eine funktionierende Lösung ja aus.

      dein aktueller code:
      jetzt hast du axios wieder zu request zurückgebaut?
      verstehst du den unterschied zwischen request und axios überhaupt?

      wer hat den jetzt das folgende geschrieben? Ich blick da nicht mehr durch

      @steinche sagte in [gelöst] Meteohub Daten, XML parsen, JSON durchsuchen:

      Habe es auf axios umgebaut und um ', { insecureHTTPParser: true }' ergänzt -> ERFOLGREICH!!

      S Offline
      S Offline
      steinche
      schrieb am zuletzt editiert von
      #42

      @oliverio said in [gelöst] Meteohub Daten, XML parsen, JSON durchsuchen:

      @steinche sagte in [gelöst] Meteohub Daten, XML parsen, JSON durchsuchen:

      Das muss doch daran liegen, dass dem request etwas nicht passt?

      @oliverio sagte in [gelöst] Meteohub Daten, XML parsen, JSON durchsuchen:

      Mit der oben besagten Version 12.15 wurde eingeführt, das der response header einer http anfrage strikter geprüft wird. wenn nun der server ein nicht erlaubtes zeichen sendet, dann wird dieser fehler geworfen.

      Sorry, ich bin von Hause aus SPS Programmierer und dementsprechend eher in anderen Sprachen unterwegs.

      Hast du den Artikel gelesen, den ich oben verlinkt habe?

      Den Artikel habe ich gelesen, bin aber davon ausgegangen, dass es sich auf axios bezieht.

      Das setzen der Option unterdrückt diese strikte Prüfung.

      Das habe ich festgestellt ;)

      wenn man unbedingt das auch für request lösen will muss man im Internet suchen.
      allerdings ist axios neuer und request ist deprecated. also reicht die eine funktionierende Lösung ja aus.

      dein aktueller code:
      jetzt hast du axios wieder zu request zurückgebaut?

      Nein, das war nur eine Frage, weil im ursprünglichen Code von @wberger mit request gearbeitet wurde.

      verstehst du den unterschied zwischen request und axios überhaupt?

      Nein, ich kann erkennen, dass die beiden Funktionen(?) Daten holen sollen, damit hört es bei mir schon auf.

      wer hat den jetzt das folgende geschrieben? Ich blick da nicht mehr durch

      @steinche sagte in [gelöst] Meteohub Daten, XML parsen, JSON durchsuchen:

      Habe es auf axios umgebaut und um ', { insecureHTTPParser: true }' ergänzt -> ERFOLGREICH!!

      Den Abruf mittels axios hat @ticaki hier geschrieben und ich habe bei mir eingesetzt. Danach haben wir viel hin und her probiert, auch mit curl und mein obiger Kommentar bezog sich auf den Code von @ticaki , den ich um den Parameter aus Deinem Link ergänzt habe. Da habe ich dann selbst hinbekommen. Aber das ist so das Level, auf dem ich mich bewege - also Grundschule addieren im Zahlenbereich 1-10 ;)

      Den Bereich, der die Daten parst konnte ich auch entsprechend der noch für mich wichtigen Daten erweitern. Allerdings ging es bei mir dann über den Zahlenbereich von 10 hinaus, da im Log von ioBroker beim schreiben der Werte bei jedem Wert eine Warnung kommt.

      2023-08-05 07:38:02.034	warn	Read-only state "javascript.0.meteohub.alltime.sol0.radiation" has been written without ack-flag with value "153.9"
      

      Ich versuche immer erst mal selbst zu schauen und nicht, dass man mir den Arm bei jeder Kleinigkeit aus der Sonne legen muss. Die Suche hat folgendes gefunden Klick
      Daraufhin die Eingträge

      else { setState(id,parseFloat(item[j].$t)) }
      

      gegen:

      else { setState(id,parseFloat(item[j].$t), true) }
      

      ersetzt. "Problem" selbst gelöst und autodidaktisch den Zahlenbereich bis 20 erschlossen :)
      Ich werde den aktuellen Code noch etwas um Kommentare ergänzen, auch den Teil, der die Daten parst um ein paar Standardwerte und in dann hier rein stellen, falls noch jemand Meteohub verwendet direkt, ohne Umweg über Wetterdiente, auch seine Daten zugreifen möchte.

      Und man kann es nicht oft genug sagen DANKE !!!

      1 Antwort Letzte Antwort
      0
      • T Offline
        T Offline
        ticaki
        schrieb am zuletzt editiert von
        #43

        @steinche sagte in [gelöst] Meteohub Daten, XML parsen, JSON durchsuchen:

        ersetzt. "Problem" selbst gelöst und autodidaktisch den Zahlenbereich bis 20 erschlossen :)

        https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#best-practice

        als referenze

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

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


        Support us

        ioBroker
        Community Adapters
        Donate

        413

        Online

        32.6k

        Benutzer

        82.1k

        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