Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. brauche Variable für eigene Log-Datei

    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

    brauche Variable für eigene Log-Datei

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

      Hallo,

      für meine eigene Log-Datei brauche ich eine geeignete Variable die man
      auch gut handeln kann.
      Nach dem Prinzip FIFO ( first in first out ) reicht es wenn dort für zwanzig Einträge
      Platz ist, der letzte wird immer gelöscht.

      Welche Variable eignet sich in Blocky dafür am besten ?
      Die Funktion eines Arrays ist mir bekannt, bin mir nur nicht sicher dass das in Blockly so einfach wird.
      Eigentlich will ich auch gar nicht gezielt einen Eintrag der 20 Einträge anzeigen.... angezeigt wird immer
      die ganze Liste.

      Hat jemand eine Idee bezüglich Variable für mich ?

      Danke und Gruß

      1 Reply Last reply Reply Quote 0
      • SBorg
        SBorg Forum Testing Most Active last edited by

        RRD.png

        Hier mal mit einem 5 Sekunden-Raster zum testen, schreibt die letzten 20 CPU-Auslastungen in die Variable "LogDatei" und gibt sie auf der Konsole aus. Der 20. Eintrag wird entfernt und "vor" die Liste ein aktueller Wert geschrieben. Kann man natürlich auch umdrehen 😉

        <block xmlns="http://www.w3.org/1999/xhtml" type="schedule" id="J}TxD:}t)tu]5a%Ev=pi" x="12.207793832522214" y="37.99999999999983">
          <field name="SCHEDULE">*/5 * * * * *</field>
          <statement name="STATEMENT">
            <block type="comment" id="{z%oG~e7U;HP/^Y(vQtA">
              <field name="COMMENT">leere Liste erzeugen falls nötig</field>
              <next>
                <block type="controls_if" id="Nh7.[~7k#@}U?U;:SeaV">
                  <value name="IF0">
                    <block type="logic_negate" id="?HU?*^o(|pYK:iJ=bQy=">
                      <value name="BOOL">
                        <block type="variables_get" id="eI9^z!/a8Jkgy+-B2=uW">
                          <field name="VAR" id="(|o{q,YRNd,j{oY#zaVK" variabletype="">LogDatei</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="variables_set" id=")i;4vVq5Xhj%~pvk^aJ8">
                      <field name="VAR" id="(|o{q,YRNd,j{oY#zaVK" variabletype="">LogDatei</field>
                      <value name="VALUE">
                        <block type="lists_repeat" id="?{twJhDmOs2Bl1#n$=1:">
                          <value name="NUM">
                            <shadow type="math_number" id="8{zGo)BWfpKarx#l]!+E">
                              <field name="NUM">20</field>
                            </shadow>
                          </value>
                          <value name="ITEM">
                            <block type="text" id="iNY60=NdH27E!isTd),m">
                              <field name="TEXT"></field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </statement>
                  <next>
                    <block type="comment" id="XA|d5YA])Xa$g$b,.T@R">
                      <field name="COMMENT">RRD abbilden</field>
                      <next>
                        <block type="lists_getIndex" id="Aj?X(1R(Fo4L.8rw(:7N">
                          <mutation statement="true" at="true"></mutation>
                          <field name="MODE">REMOVE</field>
                          <field name="WHERE">FROM_START</field>
                          <value name="VALUE">
                            <block type="variables_get" id="kR3ycE%+$q$eIqW8_My.">
                              <field name="VAR" id="(|o{q,YRNd,j{oY#zaVK" variabletype="">LogDatei</field>
                            </block>
                          </value>
                          <value name="AT">
                            <block type="math_number" id="RG{];f5p]!o1d(l?=l?e">
                              <field name="NUM">20</field>
                            </block>
                          </value>
                          <next>
                            <block type="lists_setIndex" id="%34Xz/e1[Xd-3wUy~1Oi">
                              <mutation at="true"></mutation>
                              <field name="MODE">INSERT</field>
                              <field name="WHERE">FROM_START</field>
                              <value name="LIST">
                                <block type="variables_get" id="`fX0_s/I0Hq+E5[.GXJV">
                                  <field name="VAR" id="(|o{q,YRNd,j{oY#zaVK" variabletype="">LogDatei</field>
                                </block>
                              </value>
                              <value name="AT">
                                <block type="math_number" id="nn-|0@+J)K)sdO/IV0QZ">
                                  <field name="NUM">1</field>
                                </block>
                              </value>
                              <value name="TO">
                                <block type="get_value" id="Z!J6HUKH(?q]@XZ4%[~:">
                                  <field name="ATTR">val</field>
                                  <field name="OID">info.0.sysinfo.cpu.currentLoad.currentload</field>
                                </block>
                              </value>
                              <next>
                                <block type="debug" id="O@aN90Eitr1(--sZg`14">
                                  <field name="Severity">log</field>
                                  <value name="TEXT">
                                    <shadow type="text" id="Vr`a1)qzy^0*KhfnS|_J">
                                      <field name="TEXT">test</field>
                                    </shadow>
                                    <block type="variables_get" id="y%-RLcTG0j37/AtN=gEL">
                                      <field name="VAR" id="(|o{q,YRNd,j{oY#zaVK" variabletype="">LogDatei</field>
                                    </block>
                                  </value>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </statement>
        </block>
        
        S 1 Reply Last reply Reply Quote 1
        • S
          skokarl @SBorg last edited by

          @SBorg
          Cool, das nenn ich mal ne geile Starthilfe.
          Sieht jetzt gar nicht mehr so schlimm aus
          wie ich es mir vorgestellt hatte.
          Blockly scheint echt mächtiger zu sein als ich dachte.
          Danke Dir, teste ich heute oder morgen sofort.
          Gruss

          1 Reply Last reply Reply Quote 0
          • SBorg
            SBorg Forum Testing Most Active last edited by

            Ich hatte es anfangs auch viel umständlicher. Beim "bauen" kam mir dann die Idee wie es viel einfacher geht.

            S 1 Reply Last reply Reply Quote 0
            • S
              skokarl @SBorg last edited by

              @SBorg
              und nach dem Löschen vom 20. Element, schiebt er automatisch alle ums eins hoch ? , das steht ja eigentlich nirgends..... ??

              1 Reply Last reply Reply Quote 0
              • SBorg
                SBorg Forum Testing Most Active last edited by

                Doch, in der 2. Zeile "füge als 1. Element ein".

                Tabelle mit Eintrag 1-20. Lösche den 20ten (Tabelle nun von 1-19) und füge quasi vor den 1ten wieder einen neuen Eintrag hinzu = wieder Tabelle mit 20 Einträgen.
                Der 1. wird nicht ersetzt, sondern davor ein weiterer Tabelleneintrag erstellt. Damit rücken alle Einträge um +1 nach hinten.

                btw: ist (diesmal) getestet und funktioniert 😇

                S 1 Reply Last reply Reply Quote 0
                • S
                  skokarl @SBorg last edited by

                  @SBorg

                  Mein lieber SBorg, ich glaube ich werde zu alt.

                  Glaub mir, ich hab vor über 30 Jahren mal 6502 Assembler gelernt, das war echt Knochenarbeit,
                  aber mit diesem neumodischen Kram tue ich mich so schwer ....

                  Wo ist Deine Log-Datei ? Ich brauch die für mein Widget 😀
                  Oder anders, ich hab mir ne Variable Typ Feld ( das ist wohl ein Array ) angelegt, aber irgendwie
                  krieg ich gerade Deine Daten nicht da rein.

                  Ziel ist, ein Feld in einer View zu haben wo die von mir an das Array geschickten Daten in einem Widget angezeigt werden.

                  d.h...... Fenster zu ... ab ins Array, Alarmanlage an, ab ins Array....

                  SBorg 1 Reply Last reply Reply Quote 0
                  • SBorg
                    SBorg Forum Testing Most Active @skokarl last edited by

                    Naja, ich mache das ganze auch schon 40 Jahre. Angefangen habe ich mit einem Texas Instruments TI-99/4A mit immerhin 16kB Hauptspeicher...

                    @skokarl sagte in brauche Variable für eigene Log-Datei:

                    Oder anders, ich hab mir ne Variable Typ Feld ( das ist wohl ein Array ) angelegt, aber irgendwie
                    krieg ich gerade Deine Daten nicht da rein.

                    Das ist schon fast gut 🙂
                    LogDatei ist eine Variable (hier ein Array), deswegen kannst du die auch recht simpel in jeden beliebigen Datenpunkt vom Typ "Feld" schreiben (bei mir "Test").
                    RRD 1.jpg
                    Schon kannst du es in der VIS anzeigen lassen.

                    Ich habe hier mal auf 3 Einträge gekürzt mit besseren Werten, da siehst du schön in der Konsole wie er die Daten korrekt verschiebt.
                    Jetzt brauchst du nur noch einen zentralen Datenpunkt, in dem jede gewünschte Ausgabe (Fenster zu, Alarm an...) landet und diesen anstelle der "CPU load..." eintragen.

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      skokarl @SBorg last edited by skokarl

                      @SBorg

                      jetzt hab ich's. 😀
                      Ich hatte mich in die LogDatei verrannt, völliger Quatsch, wenn das ganze im Objekt steht kann
                      ich besser mit arbeiten. Das passiert halt wenn man völlig falsch denkt.

                      Danke Dir für das Beispiel, damit kann ich das jetzt so ändern und erweitern wie ich es brauche.

                      Ich hoffe ich kann Dir eines Tages auch mal was gutes tun, obwohl, wenn man Deine Beiträge liesst,
                      kannst Du eigentlich schon fast alles 😱

                      1 Reply Last reply Reply Quote 0
                      • SBorg
                        SBorg Forum Testing Most Active last edited by

                        Bei weitem nicht 😀
                        ...und Technik ja, aber grafisch bin ich der Voll-N00b. Ich könnte es zwar höflich umschreiben, aber unterm Strich sieht es bei mir einfach immer nur k*cke aus...

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          skokarl @SBorg last edited by

                          @SBorg sagte in brauche Variable für eigene Log-Datei:

                          Bei weitem nicht 😀
                          ...und Technik ja, aber grafisch bin ich der Voll-N00b. Ich könnte es zwar höflich umschreiben, aber unterm Strich sieht es bei mir einfach immer nur k*cke aus...

                          Du darfst mir gerne mal die hässlichste Deiner Views schicken .... 😎

                          1 Reply Last reply Reply Quote 0
                          • SBorg
                            SBorg Forum Testing Most Active last edited by

                            Wenn mal eine fertig wird...
                            Sitze aber aktuell gerade an zwei Hardware-Projekten und plane noch zusätzlich mein bisher größtes 😁

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            631
                            Online

                            31.9k
                            Users

                            80.3k
                            Topics

                            1.3m
                            Posts

                            2
                            12
                            519
                            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