Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Anzahl Vorkommen in Datenpunkt ermitteln

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Anzahl Vorkommen in Datenpunkt ermitteln

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      PatrickFro last edited by PatrickFro

      Moin zusammen aus der Corona-Hochburg Deutschlands,

      ich verzweifle an einem Blockly. Ich möchte das Vorkommen eines Wortes in einem Datenpunkt, später noch die Anzahl an "1" , "2" etc. zählen und per Telegram ausgeben.

      Nun habe ich folgendes zusammengestellt:
      1607ed79-bf5b-4ec7-a4b3-fb747594b2f0-image.png

      Funktioniert (halbwegs). Wie zu erkenne ist, dividiere ich die Anzahl des Vorkommens durch 99, denn spannenderweise wird jedes einzelne Vorkommen mit 99 erkannt. Ist also das Wort "Migräne" 2 Mal vorhanden, erscheint als Ergebnis 198.

      Was mir jetzt aufgefallen ist, ist dass die Zählweise auch an anderer Stelle nicht stimmen kann. Statt Migräne habe ich das Wort "Stress" in den Datenpunkt hinzugefügt. Dieser wurde ebenfalls mitgezählt, aber scheinbar nicht mit 99 pro Vorkommen sondern anders.

      Daher: was mache ich falsch? Ich möchte nur das Wort "Migräne" zählen und 1 sollte auch 1 sein. 😉

      Der Vollständigkeit halber:


      a890206a-7569-48bd-9064-de0dafac221f-image.png

      Inhalt des Datenpunktes Speicherunggeparst:


      Datum: 18.03.20 um 16:06, Kopfschmerzen vorhanden: Ja, Intensität: 4, Art der Schmerzen: Migräne Datum: 18.03.20 um 16:06, Kopfschmerzen vorhanden: Ja, Intensität: 6, Art der Schmerzen: Migräne Datum: 18.03.20 um 16:20, Kopfschmerzen vorhanden: Ja, Intensität: 4, Art der Schmerzen: Migräne Datum: 18.03.20 um 16:37, Kopfschmerzen vorhanden: Ja, Intensität: 4, Art der Schmerzen: Migräne Datum: 18.03.20 um 16:37, Kopfschmerzen vorhanden: Ja, Intensität: 4, Art der Schmerzen: Stress

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @PatrickFro last edited by

        @PatrickFro sagte:

        Inhalt des Datenpunktes Speicherunggeparst:

        Vorschlag (nur Teil "Migräne" zählen):

        Blockly_temp.JPG

        1 Reply Last reply Reply Quote 1
        • P
          PatrickFro last edited by

          Vielen Dank, so klappt es.

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @PatrickFro last edited by

            @PatrickFro sagte:

            so klappt es.

            Bitte das Thema in der Überschrift des ersten Beitrags als [gelöst] markieren.

            P 1 Reply Last reply Reply Quote 0
            • P
              PatrickFro @paul53 last edited by

              @paul53 Doch noch eine Frage: Kann es sein, dass die Ermittlung nur für Worte funktioniert?

              a1228762-08c9-4027-a684-5ae6a3796dd3-image.png

              Zähle ich die Intensität der Schmerzen wird keine Anzahl ermittelt. Dies obwohl der Aufbau der selbe ist wie:
              a1601cb3-f441-4121-aef1-62109c8e0683-image.png

              paul53 2 Replies Last reply Reply Quote 0
              • paul53
                paul53 @PatrickFro last edited by paul53

                @PatrickFro sagte:

                Kann es sein, dass die Ermittlung nur für Worte funktioniert?

                Nein, das funktioniert für beliebige Zeichenketten - auch mit einzelnen Buchstaben / Zahlen.

                @PatrickFro sagte in [gelöst] Anzahl Vorkommen in Datenpunkt ermitteln:

                Zähle ich die Intensität der Schmerzen

                Damit nicht beliebige Ziffern (aus Datum/Uhrzeit) mitgezählt werden, sollte der Suchbegriff erweitert werden, z.B. "Intensität: 4".
                Da sich die Variable Textherkunft in jeder Schleife ändert, muss vor jeder Schleife der ursprüngliche Text wieder hergestellt werden.

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @PatrickFro last edited by paul53

                  @PatrickFro
                  Da Du offenbar das Vorkommen mehrerer Suchbegriffe zählen möchtest, packe "zaehlen" in eine Funktion, an die der Suchtext übergeben wird und die die Zahl des Vorkommens zurück gibt.

                  Blockly_temp.JPG

                  Aufruf:

                  Blockly_temp.JPG

                  Die Ziffer "1" kommt übrigens 10 mal im Ursprungs-Text vor.

                  P 1 Reply Last reply Reply Quote 0
                  • P
                    PatrickFro @paul53 last edited by

                    @paul53 Vielen Dank, klappt alles nun wunderbar.

                    Gibt es eigentlich eine Größenordnung, die in einem Datenpunkt nicht überschritten werden sollte?
                    Wenn ich z.b. für einen Monat oder ein Jahr die Daten von jedem Tag in einem Datenpunkt eintrage, sollte das kapazitätsmäßig funktionieren? Ich speichere ja nichts in eine richtige Datenbank..

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @PatrickFro last edited by

                      @PatrickFro sagte:

                      Gibt es eigentlich eine Größenordnung, die in einem Datenpunkt nicht überschritten werden sollte?

                      Die gibt es sicher, sollte aber bei täglichen Einträgen für ein Jahr nicht erreicht werden.

                      1 Reply Last reply Reply Quote 1
                      • P
                        PatrickFro last edited by

                        @paul53
                        Ich bin an einen Fehler in meiner Denkweise gestoßen. Es sollen die Tage gezählt werden, an denen Migräne eingetragen war. Da sich aber im Laufe des Tages die Intensität ggf. ändert, kann mehr als ein Eintrag pro Tag stattfinden. Da ich die Einträge zähle, kommen verkehrte Anzahl von Tagen heraus.

                        Kann das Blockly so erweitert werden, dass wenn Suchtext "Datum" + 10 Stellen (wg. TT.MM.JJJJ) bereits vorhanden ist, keine Addierung mehr als 1 für den Tag passiert sondern dann eben nur ein Tag gezählt wird?

                        ccf13f13-0ac9-4acf-9ef1-b9882191555a-image.png

                        1 Reply Last reply Reply Quote 0
                        • P
                          PatrickFro last edited by

                          @paul53

                          Ich glaube, ein klein wenig weiter bin ich gekommen:

                          695e5a1e-e83d-40b7-b315-10973aab2ee5-image.png

                          Hiermit kann ich zumindest schon das Datum und die Schmerzart Migräne als Wort aus der JSON filtern. Nun möchte ich einbauen, dass falls das Datum nicht das selbe ist wie bei der letzten Schleife, der cnt Anzahl Migräne um 1 erhöht wird. Letzter Wert kenne ich aber nur aus einem Trigger, den ich hier nicht nutzen kann. Habe ich noch eine andere Möglichkeit, dieses als Vorgabe zu hinterlegen?

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          473
                          Online

                          32.0k
                          Users

                          80.4k
                          Topics

                          1.3m
                          Posts

                          blockly
                          2
                          11
                          452
                          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