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. Off Topic
  4. Website auslesen/JSON parsen

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

Website auslesen/JSON parsen

Geplant Angeheftet Gesperrt Verschoben Off Topic
30 Beiträge 6 Kommentatoren 3.4k Aufrufe 5 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.
  • ? Ein ehemaliger Benutzer

    @negalein auf anhieb nicht, da man sich bei deren API anmelden muss.

    NegaleinN Offline
    NegaleinN Offline
    Negalein
    Global Moderator
    schrieb am zuletzt editiert von
    #15

    @ilovegym sagte in Website auslesen/JSON parsen:

    auf anhieb nicht, da man sich bei deren API anmelden muss

    Hallo

    Konntest du mit der API 1.0 was erreichen?

    ° Node.js: 20.17.0 NPM: 10.8.2
    ° Proxmox, Ubuntu 22.04.3 LTS
    ° Fixer ---> iob fix

    ? 1 Antwort Letzte Antwort
    0
    • NegaleinN Negalein

      @ilovegym sagte in Website auslesen/JSON parsen:

      auf anhieb nicht, da man sich bei deren API anmelden muss

      Hallo

      Konntest du mit der API 1.0 was erreichen?

      ? Offline
      ? Offline
      Ein ehemaliger Benutzer
      schrieb am zuletzt editiert von
      #16

      @negalein ja das kannste einfach umsetzen, ich hatte einfach den link mal ausprobiert und da kamen auch die json dabei raus.
      Beispiel:
      https://api.pegelalarm.at/api/station/1.0/list?qStationName=Linz

      und dann schaust du dir die json an und setzt dir die States wie du sie brauchst, also value, trend, etc.

      NegaleinN 1 Antwort Letzte Antwort
      0
      • ? Ein ehemaliger Benutzer

        @negalein ja das kannste einfach umsetzen, ich hatte einfach den link mal ausprobiert und da kamen auch die json dabei raus.
        Beispiel:
        https://api.pegelalarm.at/api/station/1.0/list?qStationName=Linz

        und dann schaust du dir die json an und setzt dir die States wie du sie brauchst, also value, trend, etc.

        NegaleinN Offline
        NegaleinN Offline
        Negalein
        Global Moderator
        schrieb am zuletzt editiert von
        #17

        @ilovegym sagte in Website auslesen/JSON parsen:

        und dann schaust du dir die json an und setzt dir die States wie du sie brauchst, also value, trend, etc.

        Danke dir!
        Ich benötige eigentlich nur Zeit und Pegel.

        Müsste das dann so passen?

        // Pegelonline script by ilovegym66
        // 
         
        var request = require('request');
        var url = 'https://api.pegelalarm.at/api/station/1.0/list?qStationName=Sch%C3%A4rding';
        var sourceDate;
        // var trend;
        var value;
        // var stateMnwMhw;
        // var stateNswHsw;
         
        var idsourceDate = '0_userdata.0.Pegelalarm.Schärding.sourceDate';
        // var idtrend = '0_userdata.0.Pegelalarm.Schärding.trend';
        var idvalue = '0_userdata.0.Pegelalarm.Schärding.value';
        // var idstateMnwMhw = '0_userdata.0.Pegelalarm.Schärding.stateMnwMhw';
        // var idstateNswHsw = '0_userdata.0.Pegelalarm.Schärding.stateNswHsw';
         
        createState('0_userdata.0.Pegelalarm.Schärding.sourceDate', {
            name: 'sourceDate',
            });
         
        createState('0_userdata.0.Pegelalarm.Schärding.value', {
            name: 'value',
            });
         
        // createState('0_userdata.0.Pegelalarm.Schärding.trend', {
        //     name: 'trend',
        //     });
         
        // createState('0_userdata.0.Pegelalarm.Schärding.stateMnwMhw', {
        //     name: 'stateMnwMhw',
        //     });
         
        // createState('0_userdata.0.Pegelalarm.Schärding.stateNswHsw', {
        //     name: 'stateNswHsw',
        //     });    
         
         
         
         
        function PegelSchärding() { 
        request(url, function ( err, state, body){
            if (err) {
                log("Fehler aufgetreten: " + err);
            } else {
            var obj = JSON.parse(body);
            sourceDate = obj.sourceDate;
            value = obj.value;
        //     trend = obj.trend;
        //     stateMnwMhw = obj.stateMnwMhw;
        //     stateNswHsw = obj.stateNswHsw;
         
            setState(idsourceDate, sourceDate);
        //    setState(idtrend, trend);
            setState(idvalue, value);
        //    setState(idstateMnwMhw, stateMnwMhw);
        //    setState(idstateNswHsw, stateNswHsw);
            } 
        });
        }
         
        schedule('*/21 * * * *', PegelSchärding);
        

        Problem ist, dass in der JSON 2 Stationen sind, ich aber nur 1 benötige!
        Beide Stationen verwenden requestDate und value.

        {
        	"status": {
        		"code": 200
        	},
        	"payload": {
        		"stations": [
        			{
        				"name": "Inn / Schärding / at",
        				"commonid": "206201-at",
        				"country": "Österreich",
        				"stationName": "Schärding",
        				"water": "Inn",
        				"region": "Oberösterreich",
        				"latitude": 48.456197269621,
        				"longitude": 13.428268065578,
        				"positionKm": 16.25,
        				"altitudeM": 299.8,
        				"defaultWarnValueCm": 520.0,
        				"defaultWarnValueM3s": 2600.0,
        				"defaultAlarmValueCm": 580.0,
        				"defaultAlarmValueM3s": 3700.0,
        				"data": [
        					{
        						"type": "height in cm",
        						"value": 370.0,
        						"requestDate": "13.03.2021T11:20:29+0100",
        						"sourceDate": "13.03.2021T11:00:00+0100"
        					},
        					{
        						"type": "flow in m3s",
        						"value": 1435.0,
        						"requestDate": "12.08.2016T09:42:10+0200",
        						"sourceDate": "12.08.2016T08:00:00+0200"
        					}
        				],
        				"trend": 10,
        				"situation": 10,
        				"visibility": "PUBLIC"
        			},
        			{
        				"name": "Inn / Schärding-Neuhaus Ow / de",
        				"commonid": "18007105-de",
        				"country": "Deutschland",
        				"stationName": "Schärding-Neuhaus Ow",
        				"water": "Inn",
        				"region": "Bayern",
        				"latitude": 48.435577724765,
        				"longitude": 13.440730974464,
        				"positionKm": 0.0,
        				"altitudeM": 0.0,
        				"data": [
        					{
        						"type": "height in cm",
        						"value": 314.9,
        						"requestDate": "03.08.2016T15:46:12+0200",
        						"sourceDate": "03.08.2016T15:30:00+0200"
        					}
        				],
        				"trend": 100,
        				"situation": 100,
        				"visibility": "PUBLIC"
        			},
        			{
        				"name": "Inn / Schärding-Neuhaus Kw / de",
        				"commonid": "18007107-de",
        				"country": "Deutschland",
        				"stationName": "Schärding-Neuhaus Kw",
        				"water": "Inn",
        				"region": "Bayern",
        				"latitude": 48.435577724765,
        				"longitude": 13.440730974464,
        				"positionKm": 18.8,
        				"altitudeM": 315.17,
        				"defaultWarnValueM3s": 2000.0,
        				"data": [
        					{
        						"type": "flow in m3s",
        						"value": 840.0,
        						"requestDate": "03.08.2016T15:46:12+0200",
        						"sourceDate": "03.08.2016T15:30:00+0200"
        					}
        				],
        				"trend": -10,
        				"situation": 10,
        				"visibility": "PUBLIC"
        			}
        		]
        	}
        }
        

        ° Node.js: 20.17.0 NPM: 10.8.2
        ° Proxmox, Ubuntu 22.04.3 LTS
        ° Fixer ---> iob fix

        NegaleinN paul53P 2 Antworten Letzte Antwort
        0
        • NegaleinN Negalein

          @ilovegym sagte in Website auslesen/JSON parsen:

          und dann schaust du dir die json an und setzt dir die States wie du sie brauchst, also value, trend, etc.

          Danke dir!
          Ich benötige eigentlich nur Zeit und Pegel.

          Müsste das dann so passen?

          // Pegelonline script by ilovegym66
          // 
           
          var request = require('request');
          var url = 'https://api.pegelalarm.at/api/station/1.0/list?qStationName=Sch%C3%A4rding';
          var sourceDate;
          // var trend;
          var value;
          // var stateMnwMhw;
          // var stateNswHsw;
           
          var idsourceDate = '0_userdata.0.Pegelalarm.Schärding.sourceDate';
          // var idtrend = '0_userdata.0.Pegelalarm.Schärding.trend';
          var idvalue = '0_userdata.0.Pegelalarm.Schärding.value';
          // var idstateMnwMhw = '0_userdata.0.Pegelalarm.Schärding.stateMnwMhw';
          // var idstateNswHsw = '0_userdata.0.Pegelalarm.Schärding.stateNswHsw';
           
          createState('0_userdata.0.Pegelalarm.Schärding.sourceDate', {
              name: 'sourceDate',
              });
           
          createState('0_userdata.0.Pegelalarm.Schärding.value', {
              name: 'value',
              });
           
          // createState('0_userdata.0.Pegelalarm.Schärding.trend', {
          //     name: 'trend',
          //     });
           
          // createState('0_userdata.0.Pegelalarm.Schärding.stateMnwMhw', {
          //     name: 'stateMnwMhw',
          //     });
           
          // createState('0_userdata.0.Pegelalarm.Schärding.stateNswHsw', {
          //     name: 'stateNswHsw',
          //     });    
           
           
           
           
          function PegelSchärding() { 
          request(url, function ( err, state, body){
              if (err) {
                  log("Fehler aufgetreten: " + err);
              } else {
              var obj = JSON.parse(body);
              sourceDate = obj.sourceDate;
              value = obj.value;
          //     trend = obj.trend;
          //     stateMnwMhw = obj.stateMnwMhw;
          //     stateNswHsw = obj.stateNswHsw;
           
              setState(idsourceDate, sourceDate);
          //    setState(idtrend, trend);
              setState(idvalue, value);
          //    setState(idstateMnwMhw, stateMnwMhw);
          //    setState(idstateNswHsw, stateNswHsw);
              } 
          });
          }
           
          schedule('*/21 * * * *', PegelSchärding);
          

          Problem ist, dass in der JSON 2 Stationen sind, ich aber nur 1 benötige!
          Beide Stationen verwenden requestDate und value.

          {
          	"status": {
          		"code": 200
          	},
          	"payload": {
          		"stations": [
          			{
          				"name": "Inn / Schärding / at",
          				"commonid": "206201-at",
          				"country": "Österreich",
          				"stationName": "Schärding",
          				"water": "Inn",
          				"region": "Oberösterreich",
          				"latitude": 48.456197269621,
          				"longitude": 13.428268065578,
          				"positionKm": 16.25,
          				"altitudeM": 299.8,
          				"defaultWarnValueCm": 520.0,
          				"defaultWarnValueM3s": 2600.0,
          				"defaultAlarmValueCm": 580.0,
          				"defaultAlarmValueM3s": 3700.0,
          				"data": [
          					{
          						"type": "height in cm",
          						"value": 370.0,
          						"requestDate": "13.03.2021T11:20:29+0100",
          						"sourceDate": "13.03.2021T11:00:00+0100"
          					},
          					{
          						"type": "flow in m3s",
          						"value": 1435.0,
          						"requestDate": "12.08.2016T09:42:10+0200",
          						"sourceDate": "12.08.2016T08:00:00+0200"
          					}
          				],
          				"trend": 10,
          				"situation": 10,
          				"visibility": "PUBLIC"
          			},
          			{
          				"name": "Inn / Schärding-Neuhaus Ow / de",
          				"commonid": "18007105-de",
          				"country": "Deutschland",
          				"stationName": "Schärding-Neuhaus Ow",
          				"water": "Inn",
          				"region": "Bayern",
          				"latitude": 48.435577724765,
          				"longitude": 13.440730974464,
          				"positionKm": 0.0,
          				"altitudeM": 0.0,
          				"data": [
          					{
          						"type": "height in cm",
          						"value": 314.9,
          						"requestDate": "03.08.2016T15:46:12+0200",
          						"sourceDate": "03.08.2016T15:30:00+0200"
          					}
          				],
          				"trend": 100,
          				"situation": 100,
          				"visibility": "PUBLIC"
          			},
          			{
          				"name": "Inn / Schärding-Neuhaus Kw / de",
          				"commonid": "18007107-de",
          				"country": "Deutschland",
          				"stationName": "Schärding-Neuhaus Kw",
          				"water": "Inn",
          				"region": "Bayern",
          				"latitude": 48.435577724765,
          				"longitude": 13.440730974464,
          				"positionKm": 18.8,
          				"altitudeM": 315.17,
          				"defaultWarnValueM3s": 2000.0,
          				"data": [
          					{
          						"type": "flow in m3s",
          						"value": 840.0,
          						"requestDate": "03.08.2016T15:46:12+0200",
          						"sourceDate": "03.08.2016T15:30:00+0200"
          					}
          				],
          				"trend": -10,
          				"situation": 10,
          				"visibility": "PUBLIC"
          			}
          		]
          	}
          }
          
          NegaleinN Offline
          NegaleinN Offline
          Negalein
          Global Moderator
          schrieb am zuletzt editiert von
          #18

          @ilovegym

          Müsste das dann so passen?

          konntest du schon kurz drüberschaun?

          ° Node.js: 20.17.0 NPM: 10.8.2
          ° Proxmox, Ubuntu 22.04.3 LTS
          ° Fixer ---> iob fix

          1 Antwort Letzte Antwort
          0
          • NegaleinN Negalein

            @ilovegym sagte in Website auslesen/JSON parsen:

            und dann schaust du dir die json an und setzt dir die States wie du sie brauchst, also value, trend, etc.

            Danke dir!
            Ich benötige eigentlich nur Zeit und Pegel.

            Müsste das dann so passen?

            // Pegelonline script by ilovegym66
            // 
             
            var request = require('request');
            var url = 'https://api.pegelalarm.at/api/station/1.0/list?qStationName=Sch%C3%A4rding';
            var sourceDate;
            // var trend;
            var value;
            // var stateMnwMhw;
            // var stateNswHsw;
             
            var idsourceDate = '0_userdata.0.Pegelalarm.Schärding.sourceDate';
            // var idtrend = '0_userdata.0.Pegelalarm.Schärding.trend';
            var idvalue = '0_userdata.0.Pegelalarm.Schärding.value';
            // var idstateMnwMhw = '0_userdata.0.Pegelalarm.Schärding.stateMnwMhw';
            // var idstateNswHsw = '0_userdata.0.Pegelalarm.Schärding.stateNswHsw';
             
            createState('0_userdata.0.Pegelalarm.Schärding.sourceDate', {
                name: 'sourceDate',
                });
             
            createState('0_userdata.0.Pegelalarm.Schärding.value', {
                name: 'value',
                });
             
            // createState('0_userdata.0.Pegelalarm.Schärding.trend', {
            //     name: 'trend',
            //     });
             
            // createState('0_userdata.0.Pegelalarm.Schärding.stateMnwMhw', {
            //     name: 'stateMnwMhw',
            //     });
             
            // createState('0_userdata.0.Pegelalarm.Schärding.stateNswHsw', {
            //     name: 'stateNswHsw',
            //     });    
             
             
             
             
            function PegelSchärding() { 
            request(url, function ( err, state, body){
                if (err) {
                    log("Fehler aufgetreten: " + err);
                } else {
                var obj = JSON.parse(body);
                sourceDate = obj.sourceDate;
                value = obj.value;
            //     trend = obj.trend;
            //     stateMnwMhw = obj.stateMnwMhw;
            //     stateNswHsw = obj.stateNswHsw;
             
                setState(idsourceDate, sourceDate);
            //    setState(idtrend, trend);
                setState(idvalue, value);
            //    setState(idstateMnwMhw, stateMnwMhw);
            //    setState(idstateNswHsw, stateNswHsw);
                } 
            });
            }
             
            schedule('*/21 * * * *', PegelSchärding);
            

            Problem ist, dass in der JSON 2 Stationen sind, ich aber nur 1 benötige!
            Beide Stationen verwenden requestDate und value.

            {
            	"status": {
            		"code": 200
            	},
            	"payload": {
            		"stations": [
            			{
            				"name": "Inn / Schärding / at",
            				"commonid": "206201-at",
            				"country": "Österreich",
            				"stationName": "Schärding",
            				"water": "Inn",
            				"region": "Oberösterreich",
            				"latitude": 48.456197269621,
            				"longitude": 13.428268065578,
            				"positionKm": 16.25,
            				"altitudeM": 299.8,
            				"defaultWarnValueCm": 520.0,
            				"defaultWarnValueM3s": 2600.0,
            				"defaultAlarmValueCm": 580.0,
            				"defaultAlarmValueM3s": 3700.0,
            				"data": [
            					{
            						"type": "height in cm",
            						"value": 370.0,
            						"requestDate": "13.03.2021T11:20:29+0100",
            						"sourceDate": "13.03.2021T11:00:00+0100"
            					},
            					{
            						"type": "flow in m3s",
            						"value": 1435.0,
            						"requestDate": "12.08.2016T09:42:10+0200",
            						"sourceDate": "12.08.2016T08:00:00+0200"
            					}
            				],
            				"trend": 10,
            				"situation": 10,
            				"visibility": "PUBLIC"
            			},
            			{
            				"name": "Inn / Schärding-Neuhaus Ow / de",
            				"commonid": "18007105-de",
            				"country": "Deutschland",
            				"stationName": "Schärding-Neuhaus Ow",
            				"water": "Inn",
            				"region": "Bayern",
            				"latitude": 48.435577724765,
            				"longitude": 13.440730974464,
            				"positionKm": 0.0,
            				"altitudeM": 0.0,
            				"data": [
            					{
            						"type": "height in cm",
            						"value": 314.9,
            						"requestDate": "03.08.2016T15:46:12+0200",
            						"sourceDate": "03.08.2016T15:30:00+0200"
            					}
            				],
            				"trend": 100,
            				"situation": 100,
            				"visibility": "PUBLIC"
            			},
            			{
            				"name": "Inn / Schärding-Neuhaus Kw / de",
            				"commonid": "18007107-de",
            				"country": "Deutschland",
            				"stationName": "Schärding-Neuhaus Kw",
            				"water": "Inn",
            				"region": "Bayern",
            				"latitude": 48.435577724765,
            				"longitude": 13.440730974464,
            				"positionKm": 18.8,
            				"altitudeM": 315.17,
            				"defaultWarnValueM3s": 2000.0,
            				"data": [
            					{
            						"type": "flow in m3s",
            						"value": 840.0,
            						"requestDate": "03.08.2016T15:46:12+0200",
            						"sourceDate": "03.08.2016T15:30:00+0200"
            					}
            				],
            				"trend": -10,
            				"situation": 10,
            				"visibility": "PUBLIC"
            			}
            		]
            	}
            }
            
            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #19

            @negalein sagte: in der JSON 2 Stationen sind, ich aber nur 1 benötige!

            Es sind sogar 3 Stationen. Welche wird benötigt?
            Den Namen der benötigten Station anpassen:

            function PegelSchaerding() { 
                request(url, function(err, state, body) {
                    if (err) {
                        log("Fehler aufgetreten: " + err);
                    } else {
                        let stations = JSON.parse(body).payload.stations;
                        for(let i = 0; i < stations.length; i++) {
                            if(stations[i].stationName == 'Schärding') { 
                                let sourceDate = stations[i].data[0].sourceDate;
                                let value = stations[i].data[0].value;
                                setState(idsourceDate, sourceDate, true);
                                setState(idvalue, value, true);
                                break;
                            }
                        }
                    } 
                });
            }
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            NegaleinN 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @negalein sagte: in der JSON 2 Stationen sind, ich aber nur 1 benötige!

              Es sind sogar 3 Stationen. Welche wird benötigt?
              Den Namen der benötigten Station anpassen:

              function PegelSchaerding() { 
                  request(url, function(err, state, body) {
                      if (err) {
                          log("Fehler aufgetreten: " + err);
                      } else {
                          let stations = JSON.parse(body).payload.stations;
                          for(let i = 0; i < stations.length; i++) {
                              if(stations[i].stationName == 'Schärding') { 
                                  let sourceDate = stations[i].data[0].sourceDate;
                                  let value = stations[i].data[0].value;
                                  setState(idsourceDate, sourceDate, true);
                                  setState(idvalue, value, true);
                                  break;
                              }
                          }
                      } 
                  });
              }
              
              NegaleinN Offline
              NegaleinN Offline
              Negalein
              Global Moderator
              schrieb am zuletzt editiert von
              #20

              @paul53 sagte in Website auslesen/JSON parsen:

              Es sind sogar 3 Stationen. Welche wird benötigt?
              Den Namen der benötigten Station anpassen:

              Danke

              Ja, Schärding wird benötigt.
              Also auch wenn im JSON mit ä geschrieben, muss es im Script mit ae sein?

              ° Node.js: 20.17.0 NPM: 10.8.2
              ° Proxmox, Ubuntu 22.04.3 LTS
              ° Fixer ---> iob fix

              paul53P ? 2 Antworten Letzte Antwort
              0
              • NegaleinN Negalein

                @paul53 sagte in Website auslesen/JSON parsen:

                Es sind sogar 3 Stationen. Welche wird benötigt?
                Den Namen der benötigten Station anpassen:

                Danke

                Ja, Schärding wird benötigt.
                Also auch wenn im JSON mit ä geschrieben, muss es im Script mit ae sein?

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #21

                @negalein sagte: muss es im Script mit ae sein?

                Ich habe nur den Funktionsbezeichner geändert, da ich in Bezeichnern Umlaute vermeide. Es funktioniert wahrscheinlich auch mit "ä".
                Der Stationsname muss mit "ä" geschrieben werden wie im JSON.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Antwort Letzte Antwort
                0
                • NegaleinN Negalein

                  @paul53 sagte in Website auslesen/JSON parsen:

                  Es sind sogar 3 Stationen. Welche wird benötigt?
                  Den Namen der benötigten Station anpassen:

                  Danke

                  Ja, Schärding wird benötigt.
                  Also auch wenn im JSON mit ä geschrieben, muss es im Script mit ae sein?

                  ? Offline
                  ? Offline
                  Ein ehemaliger Benutzer
                  schrieb am zuletzt editiert von
                  #22

                  @negalein Hi, hatte noch keine Zeit, aber so wie @paul53 schreibt muesste es passen.

                  Umlaute so, wie es die json hergibt.

                  1 Antwort Letzte Antwort
                  0
                  • NegaleinN Offline
                    NegaleinN Offline
                    Negalein
                    Global Moderator
                    schrieb am zuletzt editiert von
                    #23

                    @paul53

                    habe es nun so

                    // Pegelonline script by ilovegym66
                    // 
                     
                    var request = require('request');
                    var url = 'https://api.pegelalarm.at/api/station/1.0/list?qStationName=Schärding';
                    var sourceDate;
                    // var trend;
                    var value;
                    // var stateMnwMhw;
                    // var stateNswHsw;
                     
                    var idsourceDate = '0_userdata.0.Pegelalarm.Schaerding.sourceDate';
                    // var idtrend = '0_userdata.0.Pegelalarm.Schärding.trend';
                    var idvalue = '0_userdata.0.Pegelalarm.Schaerding.value';
                    // var idstateMnwMhw = '0_userdata.0.Pegelalarm.Schärding.stateMnwMhw';
                    // var idstateNswHsw = '0_userdata.0.Pegelalarm.Schärding.stateNswHsw';
                     
                    createState('0_userdata.0.Pegelalarm.Schaerding.sourceDate', {
                        name: 'sourceDate',
                        });
                     
                    createState('0_userdata.0.Pegelalarm.Schaerding.value', {
                        name: 'value',
                        });
                     
                    // createState('0_userdata.0.Pegelalarm.Schärding.trend', {
                    //     name: 'trend',
                    //     });
                     
                    // createState('0_userdata.0.Pegelalarm.Schärding.stateMnwMhw', {
                    //     name: 'stateMnwMhw',
                    //     });
                     
                    // createState('0_userdata.0.Pegelalarm.Schärding.stateNswHsw', {
                    //     name: 'stateNswHsw',
                    //     });    
                     
                     
                     
                     
                    function PegelSchaerding() { 
                    request(url, function ( err, state, body){
                        if (err) {
                            log("Fehler aufgetreten: " + err);
                        } else {
                        var obj = JSON.parse(body);
                        sourceDate = obj.sourceDate;
                        value = obj.value;
                    //     trend = obj.trend;
                    //     stateMnwMhw = obj.stateMnwMhw;
                    //     stateNswHsw = obj.stateNswHsw;
                     
                        setState(idsourceDate, sourceDate);
                    //    setState(idtrend, trend);
                        setState(idvalue, value);
                    //    setState(idstateMnwMhw, stateMnwMhw);
                    //    setState(idstateNswHsw, stateNswHsw);
                        } 
                    });
                    }
                     
                    schedule('*/21 * * * *', PegelSchaerding);
                    

                    Aber auch nach den 21 Minuten lt. Schedule steht nichts in den beiden DP 0_userdata.0.Pegelalarm.Schaerding.sourceDate und 0_userdata.0.Pegelalarm.Schaerding.value.

                    Könntest du es bei dir testen?

                    ° Node.js: 20.17.0 NPM: 10.8.2
                    ° Proxmox, Ubuntu 22.04.3 LTS
                    ° Fixer ---> iob fix

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • NegaleinN Negalein

                      @paul53

                      habe es nun so

                      // Pegelonline script by ilovegym66
                      // 
                       
                      var request = require('request');
                      var url = 'https://api.pegelalarm.at/api/station/1.0/list?qStationName=Schärding';
                      var sourceDate;
                      // var trend;
                      var value;
                      // var stateMnwMhw;
                      // var stateNswHsw;
                       
                      var idsourceDate = '0_userdata.0.Pegelalarm.Schaerding.sourceDate';
                      // var idtrend = '0_userdata.0.Pegelalarm.Schärding.trend';
                      var idvalue = '0_userdata.0.Pegelalarm.Schaerding.value';
                      // var idstateMnwMhw = '0_userdata.0.Pegelalarm.Schärding.stateMnwMhw';
                      // var idstateNswHsw = '0_userdata.0.Pegelalarm.Schärding.stateNswHsw';
                       
                      createState('0_userdata.0.Pegelalarm.Schaerding.sourceDate', {
                          name: 'sourceDate',
                          });
                       
                      createState('0_userdata.0.Pegelalarm.Schaerding.value', {
                          name: 'value',
                          });
                       
                      // createState('0_userdata.0.Pegelalarm.Schärding.trend', {
                      //     name: 'trend',
                      //     });
                       
                      // createState('0_userdata.0.Pegelalarm.Schärding.stateMnwMhw', {
                      //     name: 'stateMnwMhw',
                      //     });
                       
                      // createState('0_userdata.0.Pegelalarm.Schärding.stateNswHsw', {
                      //     name: 'stateNswHsw',
                      //     });    
                       
                       
                       
                       
                      function PegelSchaerding() { 
                      request(url, function ( err, state, body){
                          if (err) {
                              log("Fehler aufgetreten: " + err);
                          } else {
                          var obj = JSON.parse(body);
                          sourceDate = obj.sourceDate;
                          value = obj.value;
                      //     trend = obj.trend;
                      //     stateMnwMhw = obj.stateMnwMhw;
                      //     stateNswHsw = obj.stateNswHsw;
                       
                          setState(idsourceDate, sourceDate);
                      //    setState(idtrend, trend);
                          setState(idvalue, value);
                      //    setState(idstateMnwMhw, stateMnwMhw);
                      //    setState(idstateNswHsw, stateNswHsw);
                          } 
                      });
                      }
                       
                      schedule('*/21 * * * *', PegelSchaerding);
                      

                      Aber auch nach den 21 Minuten lt. Schedule steht nichts in den beiden DP 0_userdata.0.Pegelalarm.Schaerding.sourceDate und 0_userdata.0.Pegelalarm.Schaerding.value.

                      Könntest du es bei dir testen?

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von paul53
                      #24

                      @negalein sagte: Könntest du es bei dir testen?

                      Ich habe es mit dieser URL erfolgreich getestet:

                      var url = 'https://api.pegelalarm.at/api/station/1.0/list?qStationName=Sch%C3%A4rding';
                      

                      Mit log() anstelle von setState():

                      18:21:09.169	info	javascript.0 (1916) script.js.common.Neuer_Test: 24.03.2021T17:30:00+0100
                      18:21:09.169	info	javascript.0 (1916) script.js.common.Neuer_Test: 361
                      

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      NegaleinN 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @negalein sagte: Könntest du es bei dir testen?

                        Ich habe es mit dieser URL erfolgreich getestet:

                        var url = 'https://api.pegelalarm.at/api/station/1.0/list?qStationName=Sch%C3%A4rding';
                        

                        Mit log() anstelle von setState():

                        18:21:09.169	info	javascript.0 (1916) script.js.common.Neuer_Test: 24.03.2021T17:30:00+0100
                        18:21:09.169	info	javascript.0 (1916) script.js.common.Neuer_Test: 361
                        
                        NegaleinN Offline
                        NegaleinN Offline
                        Negalein
                        Global Moderator
                        schrieb am zuletzt editiert von
                        #25

                        @paul53 sagte in Website auslesen/JSON parsen:

                        Ich habe es mit dieser URL erfolgreich getestet:

                        Ich bekomme keine Daten

                        Egal ob ich https://api.pegelalarm.at/api/station/1.0/list?qStationName=Sch%C3%A4rding oder https://api.pegelalarm.at/api/station/1.0/list?qStationName=Sch%C3%A4rding verwende.

                        So schaut das Script aus.

                        // Pegelonline script by ilovegym66
                        // 
                         
                        var request = require('request');
                        var url = 'https://api.pegelalarm.at/api/station/1.0/list?qStationName=Sch%C3%A4rding';
                        var sourceDate;
                        // var trend;
                        var value;
                        // var stateMnwMhw;
                        // var stateNswHsw;
                         
                        var idsourceDate = '0_userdata.0.Pegelalarm.Schaerding.sourceDate';
                        // var idtrend = '0_userdata.0.Pegelalarm.Schärding.trend';
                        var idvalue = '0_userdata.0.Pegelalarm.Schaerding.value';
                        // var idstateMnwMhw = '0_userdata.0.Pegelalarm.Schärding.stateMnwMhw';
                        // var idstateNswHsw = '0_userdata.0.Pegelalarm.Schärding.stateNswHsw';
                         
                        createState('0_userdata.0.Pegelalarm.Schaerding.sourceDate', {
                            name: 'sourceDate',
                            });
                         
                        createState('0_userdata.0.Pegelalarm.Schaerding.value', {
                            name: 'value',
                            });
                         
                        // createState('0_userdata.0.Pegelalarm.Schärding.trend', {
                        //     name: 'trend',
                        //     });
                         
                        // createState('0_userdata.0.Pegelalarm.Schärding.stateMnwMhw', {
                        //     name: 'stateMnwMhw',
                        //     });
                         
                        // createState('0_userdata.0.Pegelalarm.Schärding.stateNswHsw', {
                        //     name: 'stateNswHsw',
                        //     });    
                         
                         
                         
                         
                        function PegelSchaerding() { 
                        request(url, function ( err, state, body){
                            if (err) {
                                log("Fehler aufgetreten: " + err);
                            } else {
                            var obj = JSON.parse(body);
                            sourceDate = obj.sourceDate;
                            value = obj.value;
                        //     trend = obj.trend;
                        //     stateMnwMhw = obj.stateMnwMhw;
                        //     stateNswHsw = obj.stateNswHsw;
                         
                            setState(idsourceDate, sourceDate);
                        //    setState(idtrend, trend);
                            setState(idvalue, value);
                        //    setState(idstateMnwMhw, stateMnwMhw);
                        //    setState(idstateNswHsw, stateNswHsw);
                            } 
                        });
                        }
                         
                        schedule('*/21 * * * *', PegelSchaerding);
                        

                        Siehst du noch wo einen Fehler?

                        ° Node.js: 20.17.0 NPM: 10.8.2
                        ° Proxmox, Ubuntu 22.04.3 LTS
                        ° Fixer ---> iob fix

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • NegaleinN Negalein

                          @paul53 sagte in Website auslesen/JSON parsen:

                          Ich habe es mit dieser URL erfolgreich getestet:

                          Ich bekomme keine Daten

                          Egal ob ich https://api.pegelalarm.at/api/station/1.0/list?qStationName=Sch%C3%A4rding oder https://api.pegelalarm.at/api/station/1.0/list?qStationName=Sch%C3%A4rding verwende.

                          So schaut das Script aus.

                          // Pegelonline script by ilovegym66
                          // 
                           
                          var request = require('request');
                          var url = 'https://api.pegelalarm.at/api/station/1.0/list?qStationName=Sch%C3%A4rding';
                          var sourceDate;
                          // var trend;
                          var value;
                          // var stateMnwMhw;
                          // var stateNswHsw;
                           
                          var idsourceDate = '0_userdata.0.Pegelalarm.Schaerding.sourceDate';
                          // var idtrend = '0_userdata.0.Pegelalarm.Schärding.trend';
                          var idvalue = '0_userdata.0.Pegelalarm.Schaerding.value';
                          // var idstateMnwMhw = '0_userdata.0.Pegelalarm.Schärding.stateMnwMhw';
                          // var idstateNswHsw = '0_userdata.0.Pegelalarm.Schärding.stateNswHsw';
                           
                          createState('0_userdata.0.Pegelalarm.Schaerding.sourceDate', {
                              name: 'sourceDate',
                              });
                           
                          createState('0_userdata.0.Pegelalarm.Schaerding.value', {
                              name: 'value',
                              });
                           
                          // createState('0_userdata.0.Pegelalarm.Schärding.trend', {
                          //     name: 'trend',
                          //     });
                           
                          // createState('0_userdata.0.Pegelalarm.Schärding.stateMnwMhw', {
                          //     name: 'stateMnwMhw',
                          //     });
                           
                          // createState('0_userdata.0.Pegelalarm.Schärding.stateNswHsw', {
                          //     name: 'stateNswHsw',
                          //     });    
                           
                           
                           
                           
                          function PegelSchaerding() { 
                          request(url, function ( err, state, body){
                              if (err) {
                                  log("Fehler aufgetreten: " + err);
                              } else {
                              var obj = JSON.parse(body);
                              sourceDate = obj.sourceDate;
                              value = obj.value;
                          //     trend = obj.trend;
                          //     stateMnwMhw = obj.stateMnwMhw;
                          //     stateNswHsw = obj.stateNswHsw;
                           
                              setState(idsourceDate, sourceDate);
                          //    setState(idtrend, trend);
                              setState(idvalue, value);
                          //    setState(idstateMnwMhw, stateMnwMhw);
                          //    setState(idstateNswHsw, stateNswHsw);
                              } 
                          });
                          }
                           
                          schedule('*/21 * * * *', PegelSchaerding);
                          

                          Siehst du noch wo einen Fehler?

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #26

                          @negalein sagte: Siehst du noch wo einen Fehler?

                          Die Funktion, die ich gepostet habe, sieht ganz anders aus.
                          Versuche es damit:

                          const url = 'https://api.pegelalarm.at/api/station/1.0/list?qStationName=Sch%C3%A4rding';
                          const idsourceDate = '0_userdata.0.Pegelalarm.Schaerding.sourceDate';
                          const idvalue = '0_userdata.0.Pegelalarm.Schaerding.value';
                          
                          function PegelSchaerding() { 
                              request(url, function(err, state, body) {
                                  if (err) {
                                      log("Fehler aufgetreten: " + err);
                                  } else {
                                      let stations = JSON.parse(body).payload.stations;
                                      for(let i = 0; i < stations.length; i++) {
                                          if(stations[i].stationName == 'Schärding') { 
                                              let sourceDate = stations[i].data[0].sourceDate;
                                              let value = stations[i].data[0].value;
                                              setState(idsourceDate, sourceDate, true);
                                              setState(idvalue, value, true);
                                              break;
                                          }
                                      }
                                  } 
                              });
                          }
                          
                          schedule('*/21 * * * *', PegelSchaerding);
                          

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          NegaleinN 2 Antworten Letzte Antwort
                          1
                          • paul53P paul53

                            @negalein sagte: Siehst du noch wo einen Fehler?

                            Die Funktion, die ich gepostet habe, sieht ganz anders aus.
                            Versuche es damit:

                            const url = 'https://api.pegelalarm.at/api/station/1.0/list?qStationName=Sch%C3%A4rding';
                            const idsourceDate = '0_userdata.0.Pegelalarm.Schaerding.sourceDate';
                            const idvalue = '0_userdata.0.Pegelalarm.Schaerding.value';
                            
                            function PegelSchaerding() { 
                                request(url, function(err, state, body) {
                                    if (err) {
                                        log("Fehler aufgetreten: " + err);
                                    } else {
                                        let stations = JSON.parse(body).payload.stations;
                                        for(let i = 0; i < stations.length; i++) {
                                            if(stations[i].stationName == 'Schärding') { 
                                                let sourceDate = stations[i].data[0].sourceDate;
                                                let value = stations[i].data[0].value;
                                                setState(idsourceDate, sourceDate, true);
                                                setState(idvalue, value, true);
                                                break;
                                            }
                                        }
                                    } 
                                });
                            }
                            
                            schedule('*/21 * * * *', PegelSchaerding);
                            
                            NegaleinN Offline
                            NegaleinN Offline
                            Negalein
                            Global Moderator
                            schrieb am zuletzt editiert von
                            #27

                            @paul53 sagte in Website auslesen/JSON parsen:

                            Versuche es damit:

                            Danke, damit hats funktioniert! :)

                            ° Node.js: 20.17.0 NPM: 10.8.2
                            ° Proxmox, Ubuntu 22.04.3 LTS
                            ° Fixer ---> iob fix

                            1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @negalein sagte: Siehst du noch wo einen Fehler?

                              Die Funktion, die ich gepostet habe, sieht ganz anders aus.
                              Versuche es damit:

                              const url = 'https://api.pegelalarm.at/api/station/1.0/list?qStationName=Sch%C3%A4rding';
                              const idsourceDate = '0_userdata.0.Pegelalarm.Schaerding.sourceDate';
                              const idvalue = '0_userdata.0.Pegelalarm.Schaerding.value';
                              
                              function PegelSchaerding() { 
                                  request(url, function(err, state, body) {
                                      if (err) {
                                          log("Fehler aufgetreten: " + err);
                                      } else {
                                          let stations = JSON.parse(body).payload.stations;
                                          for(let i = 0; i < stations.length; i++) {
                                              if(stations[i].stationName == 'Schärding') { 
                                                  let sourceDate = stations[i].data[0].sourceDate;
                                                  let value = stations[i].data[0].value;
                                                  setState(idsourceDate, sourceDate, true);
                                                  setState(idvalue, value, true);
                                                  break;
                                              }
                                          }
                                      } 
                                  });
                              }
                              
                              schedule('*/21 * * * *', PegelSchaerding);
                              
                              NegaleinN Offline
                              NegaleinN Offline
                              Negalein
                              Global Moderator
                              schrieb am zuletzt editiert von
                              #28

                              @paul53 sagte in Website auslesen/JSON parsen:

                              Die Funktion, die ich gepostet habe,

                              Noch eine Frage.
                              Wenn ich mehrere Messstellen abfragen möchte, ist es dann besser für jede Messstelle ein eigenes Script, oder kann man in dem bestehendem mehrere einfügen?

                              Es ginge noch um diese zusätzlichen Messstellen.
                              https://api.pegelalarm.at/api/station/1.0/list?qStationName=Pramerdorf
                              https://api.pegelalarm.at/api/station/1.0/list?qStationName=Passau%20Ingling
                              https://api.pegelalarm.at/api/station/1.0/list?qStationName=Passau%20Marienbr%C3%BCcke

                              ° Node.js: 20.17.0 NPM: 10.8.2
                              ° Proxmox, Ubuntu 22.04.3 LTS
                              ° Fixer ---> iob fix

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • NegaleinN Negalein

                                @paul53 sagte in Website auslesen/JSON parsen:

                                Die Funktion, die ich gepostet habe,

                                Noch eine Frage.
                                Wenn ich mehrere Messstellen abfragen möchte, ist es dann besser für jede Messstelle ein eigenes Script, oder kann man in dem bestehendem mehrere einfügen?

                                Es ginge noch um diese zusätzlichen Messstellen.
                                https://api.pegelalarm.at/api/station/1.0/list?qStationName=Pramerdorf
                                https://api.pegelalarm.at/api/station/1.0/list?qStationName=Passau%20Ingling
                                https://api.pegelalarm.at/api/station/1.0/list?qStationName=Passau%20Marienbr%C3%BCcke

                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #29

                                @negalein sagte: kann man in dem bestehendem mehrere einfügen?

                                Man kann das Skript um mehrere Messstellen erweitern. Gibt es zeitliche Einschränkungen beim Zugriff auf die API?

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                NegaleinN 1 Antwort Letzte Antwort
                                0
                                • paul53P paul53

                                  @negalein sagte: kann man in dem bestehendem mehrere einfügen?

                                  Man kann das Skript um mehrere Messstellen erweitern. Gibt es zeitliche Einschränkungen beim Zugriff auf die API?

                                  NegaleinN Offline
                                  NegaleinN Offline
                                  Negalein
                                  Global Moderator
                                  schrieb am zuletzt editiert von
                                  #30

                                  @paul53 sagte in Website auslesen/JSON parsen:

                                  Gibt es zeitliche Einschränkungen beim Zugriff auf die API?

                                  Kann ich leider nicht sagen, da keine Doku zur 1.0 existiert.

                                  Dann erstell ich besser getrennte Scripte mit unterschiedlichen Schedules.

                                  ° Node.js: 20.17.0 NPM: 10.8.2
                                  ° Proxmox, Ubuntu 22.04.3 LTS
                                  ° Fixer ---> iob fix

                                  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

                                  187

                                  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