Skip to content
  • Home
  • 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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Werte aus Text und Mittelwert berechnen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    876

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Werte aus Text und Mittelwert berechnen

Geplant Angeheftet Gesperrt Verschoben Blockly
16 Beiträge 5 Kommentatoren 816 Aufrufe 3 Watching
  • Ä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.
  • JoJo58J JoJo58

    Guten Morgen,

    ich habe einen DP in dem ich mir die Core Temperaturen meines Intel NUC schreiben lasse. Die Daten sehen so aus:

    Package id 0:
    Core 0: +59.0°C
    Core 1: +58.0°C
    Core 2: +64.0°C
    Core 3: +62.0°C
    Core 4: +58.0°C
    Core 5: +54.0°C
    

    Also habe ich Blockly erstellt, welches mir die Werte da rausholt und in Variablen schreibt. Ich mache das über "im Text * nimm Teil ab * bis* Buchstabe", keine Ahnung ob es eleganter geht? Das sieht dann so aus:
    Core Temperaturen.jpg
    Die Debug Ausgabe sieht dann so aus:

    Core Temp:, 64, 77, 69, 64, 64, 59
    

    Ich habe also nur glatte Werte. Wie bekomme ich da jetzt den Mittelwert raus? Einfach alle Werte addieren und dann durch 6 teilen? Oder muss/sollte man das anders machen?

    Wenn ich den Mittelwert habe, möchte ich mir eine Nachricht schicken lassen, wenn dieser 10 Minuten am Stück über 80 liegt. Da der DP jede Minute aktualisiert wird, würde ich einen Zähler setzen, der jedes mal wenn der Wert über 80 geht, erhöht wird und wenn dann 10 erreicht ist, bekomme ich die Nachricht. Sollte der Wert zwischendurch wieder unter 80 sein, wird der Zähler natürlich wieder auf 0 gesetzt. Ist das so okay, oder gibt es da bessere Varianten?

    Und im letzten Stepp dann noch eine JSON erstellen, so das ich die aktuellen Werte inklusive Mittelwert in VIS darstellen kann. Das müsste ich aber hinkriegen.

    Gruß, Johannes

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #4

    @jojo58 sagte: Wie bekomme ich da jetzt den Mittelwert raus?

    Eine Version:

    Blockly_temp.JPG

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    1 Antwort Letzte Antwort
    2
    • haus-automatisierungH haus-automatisierung

      @jojo58 So z.B.

      Geht aber bestimmt auch eleganter

      Screenshot 2025-04-24 at 13.20.23.png

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="0qMo2W}Kq_]r}pKv?1vm">text</variable>
          <variable id="x7~jx3L$wieq,D+zr=!(">temps</variable>
          <variable id="MLf-it[+Dt[|c@mAEe4(">zeile</variable>
        </variables>
        <block type="variables_set" id="7Ucg_OX_*N)bq0%Kl_a)" x="163" y="63">
          <field name="VAR" id="0qMo2W}Kq_]r}pKv?1vm">text</field>
          <value name="VALUE">
            <block type="text_multiline" id="cy;o?qx~`eF^UN]UqZul">
              <field name="TEXT">Package id 0:&amp;#10;Core 0: +59.0°C&amp;#10;Core 1: +58.0°C&amp;#10;Core 2: +64.0°C&amp;#10;Core 3: +62.0°C&amp;#10;Core 4: +58.0°C&amp;#10;Core 5: +54.0°C</field>
            </block>
          </value>
          <next>
            <block type="variables_set" id="IH)|e{lmuaE)T]`@I^?a">
              <field name="VAR" id="x7~jx3L$wieq,D+zr=!(">temps</field>
              <value name="VALUE">
                <block type="lists_create_with" id="=|s:yEwawraI%,*eZ9H/">
                  <mutation items="0"></mutation>
                </block>
              </value>
              <next>
                <block type="controls_forEach" id="J_ad`K%~~2dNftid)]P)">
                  <field name="VAR" id="MLf-it[+Dt[|c@mAEe4(">zeile</field>
                  <value name="LIST">
                    <block type="lists_split" id="~F$]Wk0FMe,c)^2h3@K?">
                      <mutation mode="SPLIT"></mutation>
                      <field name="MODE">SPLIT</field>
                      <value name="INPUT">
                        <block type="variables_get" id="=o8Hj9[I8fwhA:o_lf+z">
                          <field name="VAR" id="0qMo2W}Kq_]r}pKv?1vm">text</field>
                        </block>
                      </value>
                      <value name="DELIM">
                        <shadow type="text" id="c%6LCj4K8ve~$$wD$m|X">
                          <field name="TEXT">,</field>
                        </shadow>
                        <block type="text_newline" id="n~rV|d@73=w?eZH2gnra">
                          <field name="Type">\n</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO">
                    <block type="controls_if" id="v]2Q`|tZh4mqq%7=-h-)">
                      <value name="IF0">
                        <block type="text_contains" id="fm:,r?W2bP3^!SDLwOKN">
                          <value name="VALUE">
                            <block type="variables_get" id="R|}r:]vxm8.]0_d/`tVx">
                              <field name="VAR" id="MLf-it[+Dt[|c@mAEe4(">zeile</field>
                            </block>
                          </value>
                          <value name="FIND">
                            <shadow type="text" id="B;Qv*h90:L8HiNMh#*W(">
                              <field name="TEXT">Core </field>
                            </shadow>
                          </value>
                        </block>
                      </value>
                      <statement name="DO0">
                        <block type="lists_setIndex" id="eMS@W;3A2[OeDKBTII!B">
                          <mutation at="false"></mutation>
                          <field name="MODE">INSERT</field>
                          <field name="WHERE">LAST</field>
                          <value name="LIST">
                            <block type="variables_get" id="K6K?kt4G_-$McHeXdr1b">
                              <field name="VAR" id="x7~jx3L$wieq,D+zr=!(">temps</field>
                            </block>
                          </value>
                          <value name="TO">
                            <block type="convert_tonumber" id="K`iJtTg^1c%cbK?=Rl)0">
                              <value name="VALUE">
                                <block type="text_getSubstring" id="pm7jmow)[[g=`U^Sv2ZA" inline="false">
                                  <mutation at1="true" at2="true"></mutation>
                                  <field name="WHERE1">FROM_START</field>
                                  <field name="WHERE2">FROM_START</field>
                                  <value name="STRING">
                                    <block type="variables_get" id="LC[^)s9n=+eRjpY$$m73">
                                      <field name="VAR" id="MLf-it[+Dt[|c@mAEe4(">zeile</field>
                                    </block>
                                  </value>
                                  <value name="AT1">
                                    <block type="math_arithmetic" id="C_=(CgSmAJLu}7^q%.=q">
                                      <field name="OP">ADD</field>
                                      <value name="A">
                                        <shadow type="math_number" id=",@QKm_VOfV.Smev`PfNS">
                                          <field name="NUM">1</field>
                                        </shadow>
                                        <block type="text_indexOf" id="6+agAoxdPGQr15}plp|g">
                                          <field name="END">FIRST</field>
                                          <value name="VALUE">
                                            <block type="variables_get" id="9TfSPs[3$eFU=@Fi`v6*">
                                              <field name="VAR" id="MLf-it[+Dt[|c@mAEe4(">zeile</field>
                                            </block>
                                          </value>
                                          <value name="FIND">
                                            <shadow type="text" id=";aX65G3Gjkzv}4t^vIrk">
                                              <field name="TEXT">+</field>
                                            </shadow>
                                          </value>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <shadow type="math_number" id="19L}i~!w}b%7(p^$aY+w">
                                          <field name="NUM">1</field>
                                        </shadow>
                                      </value>
                                    </block>
                                  </value>
                                  <value name="AT2">
                                    <block type="math_arithmetic" id="WqSv1/!M4VF=h,po@jzT">
                                      <field name="OP">MINUS</field>
                                      <value name="A">
                                        <shadow type="math_number" id="6f#D0qeMn7wuECIxM+o0">
                                          <field name="NUM">1</field>
                                        </shadow>
                                        <block type="text_indexOf" id="ZC!j*$!D(SQ(B1?`M({c">
                                          <field name="END">FIRST</field>
                                          <value name="VALUE">
                                            <block type="variables_get" id="/8m[T=GWFR99Z=|*+tH#">
                                              <field name="VAR" id="MLf-it[+Dt[|c@mAEe4(">zeile</field>
                                            </block>
                                          </value>
                                          <value name="FIND">
                                            <shadow type="text" id="3:oJ2zHC}31[^9jGLs{i">
                                              <field name="TEXT">°C</field>
                                            </shadow>
                                          </value>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <shadow type="math_number" id="_sHFhGfp6/o-k7UvGy$s">
                                          <field name="NUM">1</field>
                                        </shadow>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </statement>
                    </block>
                  </statement>
                  <next>
                    <block type="debug" id="%Yk%{UA$F03t$BnC3FWE">
                      <field name="Severity">info</field>
                      <value name="TEXT">
                        <shadow type="text" id="FhVtLn]]J=wJtP`=tv]9">
                          <field name="TEXT">test</field>
                        </shadow>
                        <block type="math_rndfixed" id="hZ8W0k{Jt/ICe_9Ab5Ui">
                          <field name="n">2</field>
                          <value name="x">
                            <shadow type="math_number" id="]80=H[TgUUt[jq:Z2whZ">
                              <field name="NUM">3.1234</field>
                            </shadow>
                            <block type="math_on_list" id="I7Z)L3kX|jp@uzt~|;9L">
                              <mutation op="AVERAGE"></mutation>
                              <field name="OP">AVERAGE</field>
                              <value name="LIST">
                                <block type="variables_get" id="He)C|$TZ3m*3Ll_?)3C=">
                                  <field name="VAR" id="x7~jx3L$wieq,D+zr=!(">temps</field>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </next>
        </block>
      </xml>
      
      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von Homoran
      #5

      @haus-automatisierung sagte in Werte aus Text und Mittelwert berechnen:

      Geht aber bestimmt auch eleganter

      warum dann nicht doch

      @jojo58 sagte in Werte aus Text und Mittelwert berechnen:

      Einfach alle Werte addieren und dann durch 6 teilen

      ich halte das Arbeiten mit der Liste in diesem Fall für zu umständlich.

      EDIT:
      Wenn ich auf die Lösung von @Paul53 gekommen wäte, sähe die Aussage anders aus :grin:

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      haus-automatisierungH 1 Antwort Letzte Antwort
      0
      • HomoranH Homoran

        @haus-automatisierung sagte in Werte aus Text und Mittelwert berechnen:

        Geht aber bestimmt auch eleganter

        warum dann nicht doch

        @jojo58 sagte in Werte aus Text und Mittelwert berechnen:

        Einfach alle Werte addieren und dann durch 6 teilen

        ich halte das Arbeiten mit der Liste in diesem Fall für zu umständlich.

        EDIT:
        Wenn ich auf die Lösung von @Paul53 gekommen wäte, sähe die Aussage anders aus :grin:

        haus-automatisierungH Online
        haus-automatisierungH Online
        haus-automatisierung
        Developer Most Active
        schrieb am zuletzt editiert von haus-automatisierung
        #6

        @homoran sagte in Werte aus Text und Mittelwert berechnen:

        ich halte das Arbeiten mit der Liste in diesem Fall für zu umständlich.

        Vorteil ist halt, dass man die Länge / Anzahl der Elemente auch direkt kennt und nicht noch eine Zähl-Variable mitschleppen muss. Also einfach zur Liste hinzufügen und am Ende mit dem Baustein den Mittelwert holen...

        Screenshot 2025-04-24 at 13.32.20.png

        Meine Variante funktioniert immer. Egal ob 2 oder 24 Cores. Und ob die erste Zeile des Textes enthalten ist oder nicht spielt auch keine Rolle.

        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
        📚 Meine inoffizielle ioBroker Dokumentation

        JoJo58J 1 Antwort Letzte Antwort
        1
        • haus-automatisierungH haus-automatisierung

          @homoran sagte in Werte aus Text und Mittelwert berechnen:

          ich halte das Arbeiten mit der Liste in diesem Fall für zu umständlich.

          Vorteil ist halt, dass man die Länge / Anzahl der Elemente auch direkt kennt und nicht noch eine Zähl-Variable mitschleppen muss. Also einfach zur Liste hinzufügen und am Ende mit dem Baustein den Mittelwert holen...

          Screenshot 2025-04-24 at 13.32.20.png

          Meine Variante funktioniert immer. Egal ob 2 oder 24 Cores. Und ob die erste Zeile des Textes enthalten ist oder nicht spielt auch keine Rolle.

          JoJo58J Online
          JoJo58J Online
          JoJo58
          schrieb am zuletzt editiert von JoJo58
          #7

          @haus-automatisierung

          Das Blockly von dir verstehe ich nach kurzem Nachdenken sogar ;-) (und es funktioniert), bei dem von @paul53 sieht es schon anders aus, das wird bestimmt auch funktionieren, aber ich verstehe nicht wie? :astonished:

          @haus-automatisierung Kann ich die Liste "temps" auch direkt nutzen um daraus den JSON DP zu erzeugen?

          EDIT:
          Ist Quatsch, das geht nicht so einfach, da ich dann nur die Spalte mit Werte ohne Zuordnung zu Core oder Mittelwert habe. Sorry, zu kurz gedacht. :-(

          Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
          Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
          Einfach ein tolles Hobby :-)

          1 Antwort Letzte Antwort
          0
          • mickymM Online
            mickymM Online
            mickym
            Most Active
            schrieb am zuletzt editiert von
            #8

            Mitt JSONATA und Blockly gehts noch kürzer, aber bevor ich dann wieder Kritik ernte, werde ich die Lösung nur auf Wunsch vorstellen.

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            JoJo58J 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              Mitt JSONATA und Blockly gehts noch kürzer, aber bevor ich dann wieder Kritik ernte, werde ich die Lösung nur auf Wunsch vorstellen.

              JoJo58J Online
              JoJo58J Online
              JoJo58
              schrieb am zuletzt editiert von
              #9

              @mickym

              Wüßte nicht, warum ich deinen Vorschlag kritisieren sollte? Oder war das allgemein gemeint?

              Ich habe es jetzt mit der Version von @haus-automatisierung gelöst und das läuft erst mal.

              Danke für die schnelle Hilfe und eure Vorschläge. Hab gerade gesehen das @paul53 das noch mal angepasst hat, ich baue das auch noch nach, alleine schon um etwas zu lernen. :-)

              Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
              Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
              Einfach ein tolles Hobby :-)

              mickymM 1 Antwort Letzte Antwort
              1
              • JoJo58J JoJo58

                Guten Morgen,

                ich habe einen DP in dem ich mir die Core Temperaturen meines Intel NUC schreiben lasse. Die Daten sehen so aus:

                Package id 0:
                Core 0: +59.0°C
                Core 1: +58.0°C
                Core 2: +64.0°C
                Core 3: +62.0°C
                Core 4: +58.0°C
                Core 5: +54.0°C
                

                Also habe ich Blockly erstellt, welches mir die Werte da rausholt und in Variablen schreibt. Ich mache das über "im Text * nimm Teil ab * bis* Buchstabe", keine Ahnung ob es eleganter geht? Das sieht dann so aus:
                Core Temperaturen.jpg
                Die Debug Ausgabe sieht dann so aus:

                Core Temp:, 64, 77, 69, 64, 64, 59
                

                Ich habe also nur glatte Werte. Wie bekomme ich da jetzt den Mittelwert raus? Einfach alle Werte addieren und dann durch 6 teilen? Oder muss/sollte man das anders machen?

                Wenn ich den Mittelwert habe, möchte ich mir eine Nachricht schicken lassen, wenn dieser 10 Minuten am Stück über 80 liegt. Da der DP jede Minute aktualisiert wird, würde ich einen Zähler setzen, der jedes mal wenn der Wert über 80 geht, erhöht wird und wenn dann 10 erreicht ist, bekomme ich die Nachricht. Sollte der Wert zwischendurch wieder unter 80 sein, wird der Zähler natürlich wieder auf 0 gesetzt. Ist das so okay, oder gibt es da bessere Varianten?

                Und im letzten Stepp dann noch eine JSON erstellen, so das ich die aktuellen Werte inklusive Mittelwert in VIS darstellen kann. Das müsste ich aber hinkriegen.

                Gruß, Johannes

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von paul53
                #10

                @jojo58 sagte: JSON erstellen, so das ich die aktuellen Werte inklusive Mittelwert in VIS darstellen kann.

                Vorschlag:

                Blockly_temp.JPG

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                JoJo58J 3 Antworten Letzte Antwort
                0
                • JoJo58J JoJo58

                  @mickym

                  Wüßte nicht, warum ich deinen Vorschlag kritisieren sollte? Oder war das allgemein gemeint?

                  Ich habe es jetzt mit der Version von @haus-automatisierung gelöst und das läuft erst mal.

                  Danke für die schnelle Hilfe und eure Vorschläge. Hab gerade gesehen das @paul53 das noch mal angepasst hat, ich baue das auch noch nach, alleine schon um etwas zu lernen. :-)

                  mickymM Online
                  mickymM Online
                  mickym
                  Most Active
                  schrieb am zuletzt editiert von
                  #11

                  @jojo58 sagte in Werte aus Text und Mittelwert berechnen:

                  Wüßte nicht, warum ich deinen Vorschlag kritisieren sollte? Oder war das allgemein gemeint?

                  Dann hier mal meine Lösung - ein neues Objekt zu erstellen ist damit auch sehr einfach, aber keine Ahnung, wie Du das haben willst.

                  Hier das JSONATA:

                  $match($,/\d+\.\d/).$number(match)~>$average()~>$round(2)
                  

                  c9a5be24-baf8-4e6a-98f8-b5aa3baea3e3-image.png

                  und hier das Blockly zum Import:

                  <xml xmlns="https://developers.google.com/blockly/xml">
                   <variables>
                     <variable id="hu+F[F+=/+n6(w#b!bkk">Text</variable>
                   </variables>
                   <block type="variables_set" id="^~Sv#fxrrEl3v%:$_j(K" x="-137" y="63">
                     <field name="VAR" id="hu+F[F+=/+n6(w#b!bkk">Text</field>
                     <value name="VALUE">
                       <block type="text" id="}KJz}$Rs!%XxMZl%j4_w">
                         <field name="TEXT">Package id 0: Core 0: +59.0°C Core 1: +58.0°C Core 2: +64.0°C Core 3: +62.0°C Core 4: +58.0°C Core 5: +54.0°C</field>
                       </block>
                     </value>
                     <next>
                       <block type="debug" id="k08ZC410l/7`T|+g_+w@">
                         <field name="Severity">info</field>
                         <value name="TEXT">
                           <shadow type="text" id=",T!NCf4e|u/ADp:g1bn[">
                             <field name="TEXT">test</field>
                           </shadow>
                           <block type="text_join" id="~F~v3J+nR#hK*ocxCF#X">
                             <mutation items="2"></mutation>
                             <value name="ADD0">
                               <block type="text" id="C}wpA(/bWjvr.r;!:{9q">
                                 <field name="TEXT">Mittelwert (gerundet 2 Dezimalstellen): </field>
                               </block>
                             </value>
                             <value name="ADD1">
                               <block type="convert_jsonata" id="u}[_Z`KWHAeHkdE@@V?=">
                                 <value name="EXPRESSION">
                                   <shadow type="text" id="eg-6.rV=oGTM`RArquVg">
                                     <field name="TEXT">$match($,/\d+\.\d/).$number(match)~&gt;$average()~&gt;$round(2)</field>
                                   </shadow>
                                 </value>
                                 <value name="TARGET">
                                   <block type="variables_get" id="n+aI}jp_T]nxZ439rGaK">
                                     <field name="VAR" id="hu+F[F+=/+n6(w#b!bkk">Text</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                           </block>
                         </value>
                       </block>
                     </next>
                   </block>
                   <block type="convert_json2object" id="1-ME3y(y.YrZvl:v}Pb`" x="388" y="438"></block>
                  </xml>
                  

                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                  JoJo58J 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    @jojo58 sagte in Werte aus Text und Mittelwert berechnen:

                    Wüßte nicht, warum ich deinen Vorschlag kritisieren sollte? Oder war das allgemein gemeint?

                    Dann hier mal meine Lösung - ein neues Objekt zu erstellen ist damit auch sehr einfach, aber keine Ahnung, wie Du das haben willst.

                    Hier das JSONATA:

                    $match($,/\d+\.\d/).$number(match)~>$average()~>$round(2)
                    

                    c9a5be24-baf8-4e6a-98f8-b5aa3baea3e3-image.png

                    und hier das Blockly zum Import:

                    <xml xmlns="https://developers.google.com/blockly/xml">
                     <variables>
                       <variable id="hu+F[F+=/+n6(w#b!bkk">Text</variable>
                     </variables>
                     <block type="variables_set" id="^~Sv#fxrrEl3v%:$_j(K" x="-137" y="63">
                       <field name="VAR" id="hu+F[F+=/+n6(w#b!bkk">Text</field>
                       <value name="VALUE">
                         <block type="text" id="}KJz}$Rs!%XxMZl%j4_w">
                           <field name="TEXT">Package id 0: Core 0: +59.0°C Core 1: +58.0°C Core 2: +64.0°C Core 3: +62.0°C Core 4: +58.0°C Core 5: +54.0°C</field>
                         </block>
                       </value>
                       <next>
                         <block type="debug" id="k08ZC410l/7`T|+g_+w@">
                           <field name="Severity">info</field>
                           <value name="TEXT">
                             <shadow type="text" id=",T!NCf4e|u/ADp:g1bn[">
                               <field name="TEXT">test</field>
                             </shadow>
                             <block type="text_join" id="~F~v3J+nR#hK*ocxCF#X">
                               <mutation items="2"></mutation>
                               <value name="ADD0">
                                 <block type="text" id="C}wpA(/bWjvr.r;!:{9q">
                                   <field name="TEXT">Mittelwert (gerundet 2 Dezimalstellen): </field>
                                 </block>
                               </value>
                               <value name="ADD1">
                                 <block type="convert_jsonata" id="u}[_Z`KWHAeHkdE@@V?=">
                                   <value name="EXPRESSION">
                                     <shadow type="text" id="eg-6.rV=oGTM`RArquVg">
                                       <field name="TEXT">$match($,/\d+\.\d/).$number(match)~&gt;$average()~&gt;$round(2)</field>
                                     </shadow>
                                   </value>
                                   <value name="TARGET">
                                     <block type="variables_get" id="n+aI}jp_T]nxZ439rGaK">
                                       <field name="VAR" id="hu+F[F+=/+n6(w#b!bkk">Text</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </value>
                         </block>
                       </next>
                     </block>
                     <block type="convert_json2object" id="1-ME3y(y.YrZvl:v}Pb`" x="388" y="438"></block>
                    </xml>
                    

                    JoJo58J Online
                    JoJo58J Online
                    JoJo58
                    schrieb am zuletzt editiert von
                    #12

                    @mickym

                    Danke, werde ich auch ausprobieren. :-)

                    Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
                    Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
                    Einfach ein tolles Hobby :-)

                    1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @jojo58 sagte: JSON erstellen, so das ich die aktuellen Werte inklusive Mittelwert in VIS darstellen kann.

                      Vorschlag:

                      Blockly_temp.JPG

                      JoJo58J Online
                      JoJo58J Online
                      JoJo58
                      schrieb am zuletzt editiert von
                      #13

                      @paul53 sagte in Werte aus Text und Mittelwert berechnen:

                      Vorschlag:

                      Das wird ja immer besser. Danke... :-) :+1: Ich sage Bescheid, sobald ich es nachgebaut habe. Werde aber wohl erst Montag dazu kommen, da wir ab morgen früh für ein paar Tage weg sind.

                      Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
                      Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
                      Einfach ein tolles Hobby :-)

                      1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @jojo58 sagte: JSON erstellen, so das ich die aktuellen Werte inklusive Mittelwert in VIS darstellen kann.

                        Vorschlag:

                        Blockly_temp.JPG

                        JoJo58J Online
                        JoJo58J Online
                        JoJo58
                        schrieb am zuletzt editiert von
                        #14

                        @paul53

                        Moin, bin eben erst dazu gekommen, das aus deinem Post nachzubauen. Es hat auf Anhieb funktioniert und hier mal das Blockly und das Ergebnis:
                        Blockly Core Temp.jpg
                        Temperatur VIS.jpg

                        Danke für die Vorlage. Wieder etwas dazugelernt. :+1:

                        Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
                        Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
                        Einfach ein tolles Hobby :-)

                        1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @jojo58 sagte: JSON erstellen, so das ich die aktuellen Werte inklusive Mittelwert in VIS darstellen kann.

                          Vorschlag:

                          Blockly_temp.JPG

                          JoJo58J Online
                          JoJo58J Online
                          JoJo58
                          schrieb am zuletzt editiert von
                          #15

                          @paul53

                          Moin, ich weiß, ist schon ein paar Tage her.

                          Ich würde gerne die Werte je Core in einen Datenpunkt schreiben. Also vom ersten Objekt in den DP "0_userdata.0.LinuxServer.CPU_Temperatur.C_Core_00" den zweiten in den DP "0_userdata.0.LinuxServer.CPU_Temperatur.C_Core_01" usw.
                          Ich komme nicht dahinter, wie ich die einzelnen Werte raushole und schreiben kann.
                          Ich hatte es mit "In der Liste *** nimm das 1 Element" aber das ist ja Quatsch, da nimmt der nur den 1. Buchstaben.

                          Könntest du mir da bitte nochmal helfen? Ich kann dir das Blockly auch gerne exportieren und hier reinstellen, damit du es nicht nachbauen musst um mir zu helfen?

                          Gruß, Johannes

                          CPU Temperaturen 1.jpg

                          Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
                          Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
                          Einfach ein tolles Hobby :-)

                          JoJo58J 1 Antwort Letzte Antwort
                          0
                          • JoJo58J JoJo58

                            @paul53

                            Moin, ich weiß, ist schon ein paar Tage her.

                            Ich würde gerne die Werte je Core in einen Datenpunkt schreiben. Also vom ersten Objekt in den DP "0_userdata.0.LinuxServer.CPU_Temperatur.C_Core_00" den zweiten in den DP "0_userdata.0.LinuxServer.CPU_Temperatur.C_Core_01" usw.
                            Ich komme nicht dahinter, wie ich die einzelnen Werte raushole und schreiben kann.
                            Ich hatte es mit "In der Liste *** nimm das 1 Element" aber das ist ja Quatsch, da nimmt der nur den 1. Buchstaben.

                            Könntest du mir da bitte nochmal helfen? Ich kann dir das Blockly auch gerne exportieren und hier reinstellen, damit du es nicht nachbauen musst um mir zu helfen?

                            Gruß, Johannes

                            CPU Temperaturen 1.jpg

                            JoJo58J Online
                            JoJo58J Online
                            JoJo58
                            schrieb am zuletzt editiert von JoJo58
                            #16

                            @paul53

                            Hat sich erledigt, habs hinbekommen. 😁 Mit Element war ich schon auf dem richtigen Weg, aber ich musste nach Zahl konvertieren.

                            Gruß, Johannes

                            Intel NUC i7 64GB 1TB SSD - Proxmox - Raspi 4 8GB 500 GB SSD - Raspi 4 4GB 500GB SSD - Qnap 16TB - CCU3 - Fritz 6591 Cable - Green Cell USV 1500VA
                            Sonoff CC2652P - HUE Bridge - Broadlink RM4 pro u. RM3 mini - 5 x Echo - 1 x Samsung STab 8 - 54 x HM und HMIP - 32 x Zigbee - 2 x Shelly 3EM.
                            Einfach ein tolles Hobby :-)

                            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

                            771

                            Online

                            32.6k

                            Benutzer

                            82.1k

                            Themen

                            1.3m

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

                            • Du hast noch kein Konto? Registrieren

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