Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Array schreiben und lesen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Array schreiben und lesen

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

      Hallo,

      bin auf den ioBroker umgesteigen, und kenne den Typ Array aus der C Programmierung. Mir ist aber unklar wie ich ein dreidimensionales Array (Datenpunkt) erstelle, die Daten schreiben und lesen kann im ioBroker. Auch habe ich keine Info über die Größe des Datenpunkts Array gefunden.

      Ich möchte ca. 5 Daten jede Minute sichern und diese in einem Abstand von z.B. jede Stunde in eine CSV schreiben um den Speicher zu schonen. Das minütliche schreiben in eine CSV funktioniert bereits.

      Wie und mit welcher Programmiersprache (z.B. Blockly, NodeRed,...) ist dies realisierbar ?

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

        @explorer
        z.b. mit einem json - das kannst du alle 5 minuten erweitern - du musst dir nur überlegen, wie viele dieser 5-minuten speicherungen es insgesamt geben soll - irgendwan wird sonst der dp zu groß

        man kann das auch über den history adapter machen, um die daten alle 5 min zu speichern

        wie lange sollen deine 5 min speicherungen den aufbwahrt werden - eine stunde dann löschen, einen tag dann löschen oder ein jahr ?

        was soll in die stündliche csv schreibung - die letzte stunde oder die letzten 5 stunden oder 24 stunden

        wieso csv - brauchst du das auf einem anderen rechner oder geht es nur um das ansehen der letzen stunde in einer tabelle ? das kann man über die vis realisieren. außer du mußt die daten des csv's andersweilig weiterverarbeiten

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

          @liv-in-sky ja die Daten sollen zur genauen Analyse weiter verarbeitbar sein, deshalb das csv Format.

          Optimal wäre am Tag 1x schreiben und wenn die Daten geschrieben sind, können diese Daten gelöscht werden.
          Wenn ich die Daten jede Minute aufzeichnen würde, so benötige ich 1440 Zeilen. Deshalb wäre ein Schreiben auch alle z.B. 6 Stunden eine Möglichkeit.
          Die Speicherung erfolgt auf einem externen USB-Stick.

          History Adapter habe ich mir auch schon angesehen, aber die Einstellungen haben mich nicht überzeugt. Wo speichert der History Adapter die Daten? Im RAM oder auch auf der SD-Karte meines Raspberry?

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

            @explorer sagte in Array schreiben und lesen:

            History Adapter habe ich mir auch schon angesehen, aber die Einstellungen haben mich nicht überzeugt. Wo speichert der History Adapter die Daten? Im RAM oder auch auf der SD-Karte meines Raspberry?

            je nachdem was du installierst - du kannst auch eine datenbank wie zb mysql/influxdb benutzen
            die standard history speichert in files - du kannst aber angeben wohin

            also optimal: du brauchst jede minuten über einen tag lang - um 23:59 sollte das csv geschrieben werden

            also ich würde es einfach mal ausprobieren und die zwischedaten minütlich in ein json in einem dp speichern

            kennst du dich mit json und javascript aus ? es kommt auf die daten drauf an - evtl reicht auch ein array (in blockly liste genannt) - wenn die daten z.b keine kommas enthalten. dann ginge eine listeneintrag in einer liste. ich würde jedoch json bevorzugen , dann kannst du dir in der vis auch noch eine ansicht der daten basteln/coden

            wie viele einzelne daten sind es eigentlich pro lesezyklus ?

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

              @liv-in-sky
              es sind ca. 5 Einzeldaten. Eine DB habe ich mir auch schon mal angesehen, aber da habe ich zu wenig Kenntnisse.
              Die json klingt für mich am sinnvollsten. Programmieren mit Code ist für mich am übersichtlichsten. Lese mich gerade in javascript ein....

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

                @explorer

                hier mal ein beispiel für das erstellen und hinzufügen eines jsonteils

                vorher datenpunkt lesen
                json (JsonData) erweitern
                json wieder in dp schreiben

                
                JsonData=JSON.parse(getState(myID).val)
                JsonData.push({
                    "Datum":myDate,
                    "VerbrauchMonat":Math.round(myDifferenz*10)/10,
                    "AbgelesenerWert":myValue,
                    "Timestamp": Date.now(),
                    "Preis":  Math.round(preisMyEinheit*myDifferenz*100)/100
                })
                setState(myID,JSON.stringify(JsonData))
                
                1 Reply Last reply Reply Quote 1
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                554
                Online

                31.8k
                Users

                80.0k
                Topics

                1.3m
                Posts

                2
                6
                351
                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