Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Daten aus einer URL in eine Variable schreiben

NEWS

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

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

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

Daten aus einer URL in eine Variable schreiben

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
28 Beiträge 11 Kommentatoren 5.1k Aufrufe
  • Ä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.
  • a200A Offline
    a200A Offline
    a200
    schrieb am zuletzt editiert von
    #6

    @stoepselinho:

    Es sind deutlich mehr als drei Zeilen. In den ersten Zeilen steht allgemeines zu Anlagen Größe und so. `

    Was willst du denn genau ausgelesen bekommen?

    IoBroker auf QNAP TS-451, Raspi und NUC

    1 Antwort Letzte Antwort
    0
    • apollon77A Offline
      apollon77A Offline
      apollon77
      schrieb am zuletzt editiert von
      #7

      hey,

      Es gibt den neuen "Parser"-Adapter … der kann regelmäßig URLs abholen und dort per Regex parsen

      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        stoepselinho
        schrieb am zuletzt editiert von
        #8

        Hinter der IP steckt mein PV Datenlogger und ich will mir den aktuellen Ertrag und den aktuellen Verbrauch vom Haus in einer Variablen speichern um es mit vis darzustellen

        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          pix
          schrieb am zuletzt editiert von
          #9

          Hallo,

          mit diesem Ausdruck (nicht greedy) kannst du die Zahlen aus der erste Zeile rausfischen:

          (?<=[|])[0-9]*(?=[;])
          

          Der Ausdruck sucht Zahlenkombinationen, denen ein "|" vorausgeht und ein ";" folgt.

          Das ganze in den parser-Adapter kopiert sollte funktionieren.
          261_bildschirmfoto_2017-01-30_um_13.04.07.png

          Jetzt wird alle 300.000 ms oder 5min der Ausdruck gesucht und in den Datenpunkt parser.0.solar geschrieben.

          Kann sein, dass der Typ number noch Probleme macht und natürlich solltest du den URL noch komplettieren.

          Kann es selbst natürlich nicht ausprobieren 😄

          Gruß

          Pix

          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            stoepselinho
            schrieb am zuletzt editiert von
            #10

            Werd ich heute Abend mal ausprobieren. Muss ich die richtige Zeile irgendwo angeben?

            Speichert der dann beide Werte in einer Variablen ab?

            1 Antwort Letzte Antwort
            0
            • P Offline
              P Offline
              pix
              schrieb am zuletzt editiert von
              #11

              Nein, er speichert pro Zeile in den Einstellungen des parser-Adapters nur einen Wert. Da musst du noch eine Zeile anfügen.

              Du kannst auch diesen Ausdruck nehmen:

              [0-9]*(?=[;])
              ````für jede Zahl vor einem Semikolon nicht gierig, also nur beim ersten Vorkommen (nur der rote Wert).
              
              m[mi++]="28.01.17 18:20:00|623;0;8368|0;0;0;6275;0;0"
              
              m[mi++]="28.01.17 18:15:00|623;0;8317|0;0;0;6275;0;0"
              
              m[mi++]="28.01.17 18:10:00|652;0;8265|0;0;0;6275;0;0"
              
              Welche Werte brauchst du? Ist mir immer noch nicht klar. Kannst du das auch mal den Farben markieren?
              
              Gruß
              
              Pix

              ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                stoepselinho
                schrieb am zuletzt editiert von
                #12

                Hallo,

                der erste Rote wert müsste der aktuelle Verbrauch sein und der zweite der aktuelle Ertrag.

                m[mi++]="30.01.17 19:15:00|568;0;6100|0;0;0;309;0;0"

                1 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  stoepselinho
                  schrieb am zuletzt editiert von
                  #13

                  keine Idee wie man an den zweiten Wert kommt?

                  1 Antwort Letzte Antwort
                  0
                  • M Offline
                    M Offline
                    moebius
                    schrieb am zuletzt editiert von
                    #14

                    mit node-red zB:````
                    [{"id":"d622dd6c.13e18","type":"tab","label":"Flow 6"},{"id":"abca901f.329ba","type":"inject","z":"d622dd6c.13e18","name":"","topic":"","payload":"m[mi++]="28.01.17 18:20:00|623;0;8368|0;0;0;6275;0;0"","payloadType":"str","repeat":"","crontab":"","once":false,"x":123,"y":61,"wires":[["a8676829.f6bd48"]]},{"id":"a8676829.f6bd48","type":"split","z":"d622dd6c.13e18","name":"","splt":"|","x":263,"y":112,"wires":[["dd824334.af6fc"]]},{"id":"d54f3a3c.30d558","type":"split","z":"d622dd6c.13e18","name":"","splt":";","x":561,"y":199,"wires":[["fcd7879b.764f28"]]},{"id":"1bca33e3.e423fc","type":"debug","z":"d622dd6c.13e18","name":"","active":true,"console":"false","complete":"true","x":859,"y":264,"wires":[]},{"id":"dd824334.af6fc","type":"switch","z":"d622dd6c.13e18","name":"","property":"parts.index","propertyType":"msg","rules":[{"t":"gt","v":"0","vt":"num"}],"checkall":"true","outputs":1,"x":419,"y":152,"wires":[["d54f3a3c.30d558"]]},{"id":"fcd7879b.764f28","type":"switch","z":"d622dd6c.13e18","name":"","property":"parts.index","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"}],"checkall":"true","outputs":1,"x":713,"y":237,"wires":[["1bca33e3.e423fc"]]}]

                    Du müsstest noch inject durch den http request ersetzen.
                    [1803_clipboard02.jpg](/assets/uploads/files/1803_clipboard02.jpg)
                    1 Antwort Letzte Antwort
                    0
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      schrieb am zuletzt editiert von
                      #15
                      var text = 'm[mi++]="28.01.17 18:20:00|623;0;8368|0;0;0;6275;0;0"\n';
                      text += 'm[mi++]="28.01.17 18:15:00|623;0;8317|0;0;0;6275;0;0"\n';
                      text += 'm[mi++]="28.01.17 18:10:00|652;0;8265|0;0;0;6275;0;0"\n';
                      
                      var m = text.match(/\|(\d+);/g);
                      console.log(JSON.stringify(m));
                      console.log(m[0].substring(1, m[0].length - 1) + ' - ' + m[1].substring(1, m[1].length - 1));
                      

                      URL kann man so bekommen:

                      var request = require('request');
                      createState('myState1', {unit: 'W', type: 'number'});
                      createState('myState2', {unit: 'W', type: 'number'});
                      request('http://google.com', function (err, resp, body) {
                      	if (body) {
                      		var m = text.match(/\|(\d+);/g);
                      		if (m && m.length > 1) {
                      		       setState('myState1', parseInt(m[0].substring(1, m[0].length - 1) , 10), true);
                      		       setState('myState2', parseInt(m[1].substring(1, m[1].length - 1) , 10), true);
                      		}
                      	} else {
                      		console.warn('NO response: ' + err);
                      	}
                      });
                      
                      
                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        stoepselinho
                        schrieb am zuletzt editiert von
                        #16

                        @moebius:

                        mit node-red zB:````
                        [{"id":"d622dd6c.13e18","type":"tab","label":"Flow 6"},{"id":"abca901f.329ba","type":"inject","z":"d622dd6c.13e18","name":"","topic":"","payload":"m[mi++]="28.01.17 18:20:00|623;0;8368|0;0;0;6275;0;0"","payloadType":"str","repeat":"","crontab":"","once":false,"x":123,"y":61,"wires":[["a8676829.f6bd48"]]},{"id":"a8676829.f6bd48","type":"split","z":"d622dd6c.13e18","name":"","splt":"|","x":263,"y":112,"wires":[["dd824334.af6fc"]]},{"id":"d54f3a3c.30d558","type":"split","z":"d622dd6c.13e18","name":"","splt":";","x":561,"y":199,"wires":[["fcd7879b.764f28"]]},{"id":"1bca33e3.e423fc","type":"debug","z":"d622dd6c.13e18","name":"","active":true,"console":"false","complete":"true","x":859,"y":264,"wires":[]},{"id":"dd824334.af6fc","type":"switch","z":"d622dd6c.13e18","name":"","property":"parts.index","propertyType":"msg","rules":[{"t":"gt","v":"0","vt":"num"}],"checkall":"true","outputs":1,"x":419,"y":152,"wires":[["d54f3a3c.30d558"]]},{"id":"fcd7879b.764f28","type":"switch","z":"d622dd6c.13e18","name":"","property":"parts.index","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"}],"checkall":"true","outputs":1,"x":713,"y":237,"wires":[["1bca33e3.e423fc"]]}]

                        Du müsstest noch inject durch den http request ersetzen. `  
                        

                        hab das versucht, bekomm das irgendwie nicht hin. wie genau funktioniert das denn mit dem node-red? angezeigt wird es mir aber wo wird es denn gespeichert

                        1 Antwort Letzte Antwort
                        0
                        • M Offline
                          M Offline
                          moebius
                          schrieb am zuletzt editiert von
                          #17

                          Was genau hast du versucht? Was genau hat nicht funktioniert?

                          Wenn du was mit node-red machen willst, schau dir bitte doch mal die schöne Hilfe die Homoran geschrieben hat an:

                          http://www.iobroker.net/?page_id=4284&lang=de

                          Da steht auch drin, wie du Werte von node-red wieder in iobroker speichern kannst.

                          1 Antwort Letzte Antwort
                          0
                          • P Offline
                            P Offline
                            pix
                            schrieb am zuletzt editiert von
                            #18

                            Für den zweiten Wert nimmst du diesen Ausdruck (vorausgesetzt, der Wert 6275 bleibt immer gleich; könnte aber auch ohne 6275 gehen)

                            [0-9]*(?=;0;0;6275)
                            

                            https://regex101.com/r/QFGi6C/1

                            Sorry, hatte den Thread schon wieder vergessen.

                            Pix

                            EDIT: Also in http://forum.iobroker.net/viewtopic.php?f=21&t=5039&p=51250#p50343 ist der grüne Wert (0) gemeint

                            ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                            1 Antwort Letzte Antwort
                            0
                            • S Offline
                              S Offline
                              stoepselinho
                              schrieb am zuletzt editiert von
                              #19

                              das scheint nicht zu klappen,

                              die werte sind nur 0 wenn die anlage nicht läuft. Jetzt sieht die Zeile so aus:

                              m[mi++]="04.02.17 12:50:00|462;0;3636|665;463;258;3218;405;406"

                              mit dem Code so funktionierts

                              [0-9]*(?=;*[0-9]*;*[0-9]*;*[0-9]*;*[0-9]*;*[0-9]*;*[0-9]")
                              
                              1 Antwort Letzte Antwort
                              0
                              • P Offline
                                P Offline
                                pix
                                schrieb am zuletzt editiert von
                                #20

                                Super gelöst! Danke fürs Feedback.

                                ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                                1 Antwort Letzte Antwort
                                0
                                • R Offline
                                  R Offline
                                  ralalla
                                  schrieb am zuletzt editiert von
                                  #21

                                  Würde auch gerne den Parser nutzen um den Wasserstand eines Flusses auszulesen.

                                  Z. B. von dieser URL http://www.hochwasser-rlp.de/hoechststa … l/BETZDORF

                                  den Wasserstand der unter der Grafik hinter : letzter Messwert angezeigt wird.

                                  Mit der Parser Testseite komme ich gar nicht klar sonst hätte ich da schon probiert.

                                  ioBroker auf Intel NUC mit Proxmox / PiVCCU auf Pi3

                                  1 Antwort Letzte Antwort
                                  0
                                  • S Offline
                                    S Offline
                                    stoepselinho
                                    schrieb am zuletzt editiert von
                                    #22

                                    würde gerne noch weitere Werte aus der zeile haben, bekomme es aber nicht hin. jemand eine idee?

                                    m[mi++]="04.04.17 20:20:00|557;0;5473|0;0;0;17107;0;0"

                                    1 Antwort Letzte Antwort
                                    0
                                    • ruhr70R Offline
                                      ruhr70R Offline
                                      ruhr70
                                      schrieb am zuletzt editiert von
                                      #23

                                      @stoepselinho:

                                      würde gerne noch weitere Werte aus der zeile haben, bekomme es aber nicht hin. jemand eine idee?

                                      m[mi++]="04.04.17 20:20:00|557;0;5473|0;0;0;17107;0;0" `

                                      \d+;
                                      -> 557
                                      
                                      \d+;(\d+)
                                      -> 0
                                      
                                      \d+;\d+;(\d+)
                                      -> 5473
                                      
                                      \d+;\d+;\d+\|(\d+)
                                      -> 0
                                      
                                      \d+;\d+;\d+\|\d+;(\d+)
                                      -> 0
                                      
                                      \d+;\d+;\d+\|\d+;\d+;(\d+)
                                      -> 0
                                      
                                      \d+;\d+;\d+\|\d+;\d+;\d+;(\d+)
                                      -> 17107
                                      
                                      \d+;\d+;\d+\|\d+;\d+;\d+;\d+;(\d+)
                                      -> 0
                                      
                                      \d+;\d+;\d+\|\d+;\d+;\d+;\d+;\d+;(\d+)
                                      -> 0
                                      

                                      Oder für Dein anderes Beispiel:

                                      m[mi++]="04.02.17 12:50:00|462;0;3636|665;463;258;3218;405;406"

                                      \d+;
                                      -> 462
                                      
                                      \d+;(\d+)
                                      -> 0
                                      
                                      \d+;\d+;(\d+)
                                      -> 3636
                                      
                                      \d+;\d+;\d+\|(\d+)
                                      -> 665
                                      
                                      \d+;\d+;\d+\|\d+;(\d+)
                                      -> 463
                                      
                                      \d+;\d+;\d+\|\d+;\d+;(\d+)
                                      -> 258
                                      
                                      \d+;\d+;\d+\|\d+;\d+;\d+;(\d+)
                                      -> 3218
                                      
                                      \d+;\d+;\d+\|\d+;\d+;\d+;\d+;(\d+)
                                      -> 405
                                      
                                      \d+;\d+;\d+\|\d+;\d+;\d+;\d+;\d+;(\d+)
                                      -> 406
                                      
                                      

                                      Adapter: Fritzbox, Unify Circuit
                                      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                      1 Antwort Letzte Antwort
                                      0
                                      • ruhr70R Offline
                                        ruhr70R Offline
                                        ruhr70
                                        schrieb am zuletzt editiert von
                                        #24

                                        @ralalla:

                                        Würde auch gerne den Parser nutzen um den Wasserstand eines Flusses auszulesen.

                                        Z. B. von dieser URL http://www.hochwasser-rlp.de/hoechststa … l/BETZDORF

                                        den Wasserstand der unter der Grafik hinter : letzter Messwert angezeigt wird.

                                        Mit der Parser Testseite komme ich gar nicht klar sonst hätte ich da schon probiert. `

                                        Nur die cm?

                                        Mit dem Parser-Adapter erhaltene Objekte:

                                        327_hochwasser_objekte.jpg

                                        Einstellungen im Parser Adapter:

                                        327_hochwasser_einstellungen.jpg

                                        RegEx 1:

                                        Letzter Messwert: **(.+Uhr)**
                                        ```` **RegEx 2:
                                        

                                        (\d+) cm

                                        Adapter: Fritzbox, Unify Circuit
                                        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                        1 Antwort Letzte Antwort
                                        0
                                        • S Offline
                                          S Offline
                                          stoepselinho
                                          schrieb am zuletzt editiert von
                                          #25

                                          super danke

                                          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

                                          327

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe