Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Parser-Ausdruck für Ebbe&Flut gesucht

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Parser-Ausdruck für Ebbe&Flut gesucht

    This topic has been deleted. Only users with topic management privileges can see it.
    • BBTown
      BBTown @Homoran last edited by

      @homoran oder "haben ist besser als brauchen" (na gut, das sage ich meist beim Einkaufen 😎 )

      1 Reply Last reply Reply Quote 0
      • hg6806
        hg6806 Most Active @Homoran last edited by

        @homoran sagte in Parser-Ausdruck für Ebbe&Flut gesucht:

        um es mit Konstantin Wecker zu sagen: "genug ist nie genug!"

        😂

        1 Reply Last reply Reply Quote 0
        • hg6806
          hg6806 Most Active last edited by

          Um jetzt so richtig unverschämt zu werden, wie bekomme ich denn die Meterangaben da raus?

          <div><i>&#x25B2;([\d]*)
          

          Wirft nur Müll raus.

          Homoran OliverIO 2 Replies Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @hg6806 last edited by Homoran

            @hg6806 sagte in Parser-Ausdruck für Ebbe&Flut gesucht:

            Wirft nur Müll raus.

            da fehlt ja auch die Hälfte 😡
            <div><i>&#x25B2;<\/i>\s([\d\.]*)

            kürzer wäre ([\d\.]*)\sm

            1 Reply Last reply Reply Quote 0
            • hg6806
              hg6806 Most Active last edited by

              @homoran sagte in Parser-Ausdruck für Ebbe&Flut gesucht:

              <div><i>▲</i>\s([\d.]*)

              Ah, ok, wieso kommt in dem </i> noch ein Backslash for dem Slash?

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @hg6806 last edited by Homoran

                @hg6806 sagte in Parser-Ausdruck für Ebbe&Flut gesucht:

                wieso kommt in dem </i> noch ein Backslash for dem Slash?

                damit er den Slash auch als solchen sieht und nicht als Steuerzeichen
                aber das war nicht dein Problem. Bei dir fehlte einfach einiges.
                so kommt bei dir vor der Gruppe <div><i>&#x25B2;([\d]*) nicht noch <\/i>\s und in der Zahl darf bei dir auch kein Punkt sein.
                zum Vergleich:
                im Quelltext steht: <div><i>&#x25B2;</i> 2.01 m</div>

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

                  @hg6806 sagte in Parser-Ausdruck für Ebbe&Flut gesucht:

                  Um jetzt so richtig unverschämt zu werden, wie bekomme ich denn die Meterangaben da raus?

                  <div><i>&#x25B2;([\d]*)
                  

                  Wirft nur Müll raus.

                  zum lernen darf ich wärmstens

                  regex101.com

                  empfehlen.

                  1. Den Quelltext der Webseite in Teststring einfügen
                  2. Damit die einstellungen mit dem parser adapter übereinstimmen
                    bei den regexoptionen aus gm ein gs machen

                  das suchergebnis wird ja immer life aktualisiert.

                  hg6806 1 Reply Last reply Reply Quote 0
                  • hg6806
                    hg6806 Most Active @OliverIO last edited by

                    @oliverio
                    Ich weiß, steht ehrlich gesagt schon länger auf der todo...

                    BBTown 1 Reply Last reply Reply Quote 0
                    • BBTown
                      BBTown @hg6806 last edited by

                      @hg6806
                      Ich empfehle dir diese Seite von Daniel Fett

                      hg6806 1 Reply Last reply Reply Quote 0
                      • hg6806
                        hg6806 Most Active @BBTown last edited by

                        @bbtown
                        👍

                        1 Reply Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky @OliverIO last edited by

                          @oliverio

                          danke für den tipp - cheerio kannte ich nicht - das gefällt mir

                          Image 3.png

                          da werd ich mal ein bischen üben/rum probieren 🙂

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            fastfoot @liv-in-sky last edited by

                            @liv-in-sky sagte in Parser-Ausdruck für Ebbe&Flut gesucht:

                            da werd ich mal ein bischen üben/rum probieren

                            habe cheerio schon des Öfteren hier erwähnt, hier findest du ein Beispiel wie man zB Tabellen sehr easy einlesen kann. Ansonsten ist die Doku auf Github empfehlenswert

                            liv-in-sky 1 Reply Last reply Reply Quote 1
                            • liv-in-sky
                              liv-in-sky @fastfoot last edited by

                              @fastfoot danke - werd ich durchstöbern

                              1 Reply Last reply Reply Quote 0
                              • liv-in-sky
                                liv-in-sky @hg6806 last edited by

                                @hg6806
                                das konnte ich bis jetzt bekommen

                                ein json mit den werten

                                Image 1.png

                                muss jetzt weg - nachmittag gehts weiter

                                hg6806 1 Reply Last reply Reply Quote 0
                                • hg6806
                                  hg6806 Most Active @liv-in-sky last edited by

                                  @liv-in-sky

                                  Cool!
                                  Wie hast du das in JSON gekriegt?
                                  Dann bräuchte ich das ja nur mit einer JSON-Tabelle darstellen.
                                  Auch das "fehlender-4.Wert-Problem" ist nicht drin, wie @Homoran prognostiziert hatte.

                                  Also ich hätte mir die einzelnen Werte auch als eine Art Tabelle dargestellt und das Problem mit dem evtl. fehlenden 4. Wert in einem Blockly (das höchste meiner Programmierkenntnisse) dann über einen Vergleich der Uhrzeiten als leeres Feld dargestellt, bzw. die anderen verschoben.

                                  liv-in-sky 1 Reply Last reply Reply Quote 0
                                  • liv-in-sky
                                    liv-in-sky @hg6806 last edited by liv-in-sky

                                    @hg6806

                                    @Homoran hätte auch eine andere art der datenzerlegung gemacht

                                    habe das mit cheerio probiert - du musst im adapter setting cheerio eintragen

                                    Image 2.png

                                    das script (schreibt nur ins log):

                                    
                                    const cheerio = require('cheerio');
                                    const request = require('request');
                                    request('https://de.tideschart.com/Spain/Canary-Islands/Provincia-de-Las-Palmas/Playa-de-Costa-Calma/Weekly/',(error, response, html)=>{
                                      if (response.statusCode==200){
                                                                   const $ = cheerio.load(html)
                                                                   const list5 = $('*')
                                                                                      .find('td:not(.sun)')
                                                                                      .toArray()
                                                                                      .map(element => { return $(element).text()}); //log(list5.length +"---"+list5)
                                    
                                                                   let dayArr=['Mo','Di','Mi','Do','Fr','Sa','So'];
                                                                   let jsonArr=[];
                                                                   for(let i=0;i<list5.length;i++) {//log(list5[i])
                                                                       for (let day=0;day<dayArr.length;day++) { if (list5[i].includes(dayArr[day])) {
                                                                                                                       jsonArr.push({
                                                                                                                           "day":    list5[i],
                                                                                                                           "erste":  list5[i+1],
                                                                                                                           "zweite": list5[i+2],
                                                                                                                           "dritte": list5[i+3],
                                                                                                                           "vierte": list5[i+4]
                                                                                                                       })
                                           }}
                                    } 
                                    log(JSON.stringify(jsonArr))   //hier in dp schreiben
                                    }});
                                    
                                    
                                    
                                    hg6806 1 Reply Last reply Reply Quote 0
                                    • hg6806
                                      hg6806 Most Active last edited by

                                      @liv-in-sky
                                      Läuft! Zumindest wird ins Log-File geschrieben.

                                      1 Reply Last reply Reply Quote 0
                                      • hg6806
                                        hg6806 Most Active @liv-in-sky last edited by

                                        @liv-in-sky

                                        Wie bekommt man nun die Werte in ein JSON für eine Tabelle?

                                        liv-in-sky 3 Replies Last reply Reply Quote 0
                                        • liv-in-sky
                                          liv-in-sky @hg6806 last edited by liv-in-sky

                                          @hg6806 du legst dir einen datenpunkt vom typ zeichenkette/string an und sicherst darin das json

                                          Image 5.png - das log kommentierst du aus - du machst // vor log(...)

                                          dann brauchst du noch einen trigger

                                          hier ein script - du musst dir deinen dp in der letzten zeile eintragen - trigger ist im script auch drin

                                          
                                          const cheerio = require('cheerio');
                                          const request = require('request');
                                          
                                          let mySchedule1="  12 */4 * * * "; // alle 4 stunden bei minute 12
                                          
                                           schedule(mySchedule1,  function () {
                                          request('https://de.tideschart.com/Spain/Canary-Islands/Provincia-de-Las-Palmas/Playa-de-Costa-Calma/Weekly/',(error, response, html)=>{
                                           if (response.statusCode==200){
                                                                        const $ = cheerio.load(html)
                                                                        const list5 = $('*')
                                                                                           .find('td:not(.sun)')
                                                                                           .toArray()
                                                                                           .map(element => { return $(element).text()}); //log(list5.length +"---"+list5)
                                          
                                                                        let dayArr=['Mo','Di','Mi','Do','Fr','Sa','So'];
                                                                        let jsonArr=[];
                                                                        for(let i=0;i<list5.length;i++) {//log(list5[i])
                                                                            for (let day=0;day<dayArr.length;day++) { if (list5[i].includes(dayArr[day])) {
                                                                                                                            jsonArr.push({
                                                                                                                                "day":    list5[i],
                                                                                                                                "erste":  list5[i+1],
                                                                                                                                "zweite": list5[i+2],
                                                                                                                                "dritte": list5[i+3],
                                                                                                                                "vierte": list5[i+4]
                                                                                                                            })
                                                }}
                                          } 
                                          //log(JSON.stringify(jsonArr))   //hier in dp schreiben
                                          
                                          setState("0_userdata.0.meinDP",JSON.stringify(jsonArr))
                                          }});
                                           });
                                          

                                          in der vis nimmst du das inventwo-json (evtl inventwo installieren) widget und gibst deinen dp an

                                          1 Reply Last reply Reply Quote 0
                                          • liv-in-sky
                                            liv-in-sky @hg6806 last edited by

                                            @hg6806

                                            habe hier einen export für json -widget - wie erwähnt evtl mußt du noch inventwo widgets installieren

                                            Image 6.png

                                            [{"tpl":"i-vis-jsontable","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","iTblRowLimit":"18","iTableRefreshRate":"0","iColCount":"5","iColShow1":"true","iTblTextAlign1":"left","iTblCellFormat1":"normal","iTblCellImageSize1":"200","iTblCellBooleanCheckbox1":"false","iTblCellBooleanColorFalse1":"#ff0000","iTblCellBooleanColorTrue1":"#00ff00","iTblCellNumberDecimals1":"2","iTblCellNumberDecimalSeperator1":".","iTblCellNumberThousandSeperator1":",","iTblCellThresholdsDp1":"","iTblCellThresholdsText1":"","iOpacityAll":"1","iTblRowEvenColor":"#333333","iTblRowUnevenColor":"#455618","iTblHeaderColor":"#333333","iRowSpacing":"10","iTblRowEvenTextColor":"#ffffff","iTblRowUnevenTextColor":"#ffffff","iTblHeaderTextColor":"#ffffff","iBorderSize":"0","iBorderStyleLeft":"none","iBorderStyleRight":"none","iBorderStyleUp":"none","iBorderStyleDown":"none","iBorderColor":"#ffffff","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"oid":"0_userdata.0.CONTROL-OWN.TABELLEN.GezeitenInSpanien","iColShow2":"true","iTblTextAlign2":"left","iTblCellFormat2":"normal","iTblCellImageSize2":"200","iTblCellBooleanCheckbox2":"false","iTblCellBooleanColorFalse2":"#ff0000","iTblCellBooleanColorTrue2":"#00ff00","iTblCellNumberDecimals2":"2","iTblCellNumberDecimalSeperator2":".","iTblCellNumberThousandSeperator2":",","iTblCellThresholdsDp2":"","iTblCellThresholdsText2":"","iColShow3":"true","iTblTextAlign3":"left","iTblCellFormat3":"normal","iTblCellImageSize3":"200","iTblCellBooleanCheckbox3":"false","iTblCellBooleanColorFalse3":"#ff0000","iTblCellBooleanColorTrue3":"#00ff00","iTblCellNumberDecimals3":"2","iTblCellNumberDecimalSeperator3":".","iTblCellNumberThousandSeperator3":",","iTblCellThresholdsDp3":"","iTblCellThresholdsText3":"","iColShow4":"true","iTblTextAlign4":"left","iTblCellFormat4":"normal","iTblCellImageSize4":"200","iTblCellBooleanCheckbox4":"false","iTblCellBooleanColorFalse4":"#ff0000","iTblCellBooleanColorTrue4":"#00ff00","iTblCellNumberDecimals4":"2","iTblCellNumberDecimalSeperator4":".","iTblCellNumberThousandSeperator4":",","iTblCellThresholdsDp4":"","iTblCellThresholdsText4":"","iColShow5":"true","iTblTextAlign5":"left","iTblCellFormat5":"normal","iTblCellImageSize5":"200","iTblCellBooleanCheckbox5":"false","iTblCellBooleanColorFalse5":"#ff0000","iTblCellBooleanColorTrue5":"#00ff00","iTblCellNumberDecimals5":"2","iTblCellNumberDecimalSeperator5":".","iTblCellNumberThousandSeperator5":",","iTblCellThresholdsDp5":"","iTblCellThresholdsText5":"","iColShow6":"true","iTblTextAlign6":"left","iTblCellFormat6":"normal","iTblCellImageSize6":"200","iTblCellBooleanCheckbox6":"false","iTblCellBooleanColorFalse6":"#ff0000","iTblCellBooleanColorTrue6":"#00ff00","iTblCellNumberDecimals6":"2","iTblCellNumberDecimalSeperator6":".","iTblCellNumberThousandSeperator6":",","iTblCellThresholdsDp6":"","iTblCellThresholdsText6":""},"style":{"left":"157px","top":"556px","width":"774px","height":"368px"},"widgetSet":"vis-inventwo"}]
                                            

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            938
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            65
                                            2436
                                            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