Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Visualisierung
  4. Button verstecken aus JSON Angaben (gelöst)

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    347

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    312

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    932

Button verstecken aus JSON Angaben (gelöst)

Geplant Angeheftet Gesperrt Verschoben Visualisierung
18 Beiträge 2 Kommentatoren 288 Aufrufe 2 Beobachtet
  • Ä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.
  • stefu87_CHS Online
    stefu87_CHS Online
    stefu87_CH
    schrieb am zuletzt editiert von stefu87_CH
    #1

    Hallo zusammen

    Ich habe den Countdown Adapter bei mir installiert und mehrer Termine schon eingetragen.
    Auf der Visu zeigt es mir immer an wie lange es nocht geht bis zum Termin. Dies erfolgt über JSON.
    Jetzt wollte ich einen Button "verstecken" wenn noch mehr als 2 Tage sind bis zum Termin.

    Wie kann man das realisieren?

    Die JSON Datei sieht folgendermassen aus:

     [["Ostern"," 19 Tage 17 Stunden 55 Minuten",19,473,2,"16.04.2022 07:00"],["Frühling"," 1 Monat 16 Tage",47,1145,6,"14.05.2022 07:00"],["Sommer"," 3 Monate 18 Tage",110,2657,15,"16.07.2022 07:00"]]
    

    Funktioniert das über Blockly oder wie würdet ihr das machen?

    Model : AMD Ryzen 7 8745HS w/ Radeon 780M Graphics
    Cores: 1 × 8 = 8 cores
    Threads: 16
    mit Proxmox
    LXC Container mit Iobroker

    mickymM 1 Antwort Letzte Antwort
    0
    • stefu87_CHS stefu87_CH

      Hallo zusammen

      Ich habe den Countdown Adapter bei mir installiert und mehrer Termine schon eingetragen.
      Auf der Visu zeigt es mir immer an wie lange es nocht geht bis zum Termin. Dies erfolgt über JSON.
      Jetzt wollte ich einen Button "verstecken" wenn noch mehr als 2 Tage sind bis zum Termin.

      Wie kann man das realisieren?

      Die JSON Datei sieht folgendermassen aus:

       [["Ostern"," 19 Tage 17 Stunden 55 Minuten",19,473,2,"16.04.2022 07:00"],["Frühling"," 1 Monat 16 Tage",47,1145,6,"14.05.2022 07:00"],["Sommer"," 3 Monate 18 Tage",110,2657,15,"16.07.2022 07:00"]]
      

      Funktioniert das über Blockly oder wie würdet ihr das machen?

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

      @stefu87_ch

      Nun ich gehe mal davon aus, dass die mittlere Zahl die Anzahl der Stunden bis zum Termin sind. Die brauchst doch nur rausziehen und abprüfen, ob die kleiner als 48 Stunden ist. Damit steuerst dann einen selbst erstellten Datenpunkt mit true oder false und setzt damit die Sichtbarkeit Deines Buttons:

      51b503bc-9761-4a36-9e4c-37d477808943-image.png

      Die Elemente in den Arrays sind wieder Arrays und dort das 4. Element - also Index 3.

      In NR könnte man das mit folgendem kleinen Flow erreichen:

      483b9dcd-0c28-4176-8a58-179dedc9a21c-image.png

      [
         {
             "id": "84ede78b9bd8bd35",
             "type": "inject",
             "z": "54b226bc.0793e8",
             "name": "",
             "props": [
                 {
                     "p": "payload"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "payload": "[[\"Ostern\",\" 19 Tage 17 Stunden 55 Minuten\",19,473,2,\"16.04.2022 07:00\"],[\"Frühling\",\" 1 Monat 16 Tage\",47,1145,6,\"14.05.2022 07:00\"],[\"Sommer\",\" 3 Monate 18 Tage\",110,2657,15,\"16.07.2022 07:00\"]]",
             "payloadType": "json",
             "x": 210,
             "y": 3700,
             "wires": [
                 [
                     "a724f9b8d9906e19"
                 ]
             ]
         },
         {
             "id": "a724f9b8d9906e19",
             "type": "split",
             "z": "54b226bc.0793e8",
             "name": "",
             "splt": "\\n",
             "spltType": "str",
             "arraySplt": 1,
             "arraySpltType": "len",
             "stream": false,
             "addname": "",
             "x": 350,
             "y": 3700,
             "wires": [
                 [
                     "e012e55dc142a16f"
                 ]
             ]
         },
         {
             "id": "d5432f52a8bbe04c",
             "type": "debug",
             "z": "54b226bc.0793e8",
             "name": "Termin in weniger als 2 Tagen?",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 1030,
             "y": 3700,
             "wires": []
         },
         {
             "id": "e012e55dc142a16f",
             "type": "switch",
             "z": "54b226bc.0793e8",
             "name": "",
             "property": "payload[3]",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "lte",
                     "v": "48",
                     "vt": "num"
                 },
                 {
                     "t": "gt",
                     "v": "48",
                     "vt": "num"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 2,
             "x": 490,
             "y": 3700,
             "wires": [
                 [
                     "75c276ea3953cc5a"
                 ],
                 [
                     "3ea2caf7ee7b1fa4"
                 ]
             ]
         },
         {
             "id": "75c276ea3953cc5a",
             "type": "change",
             "z": "54b226bc.0793e8",
             "name": "true <=48",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "true",
                     "tot": "bool"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 640,
             "y": 3680,
             "wires": [
                 [
                     "463fc0c159bf59ee"
                 ]
             ]
         },
         {
             "id": "3ea2caf7ee7b1fa4",
             "type": "change",
             "z": "54b226bc.0793e8",
             "name": "false > 48",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "false",
                     "tot": "bool"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 640,
             "y": 3720,
             "wires": [
                 [
                     "463fc0c159bf59ee"
                 ]
             ]
         },
         {
             "id": "463fc0c159bf59ee",
             "type": "join",
             "z": "54b226bc.0793e8",
             "name": "Array OR",
             "mode": "reduce",
             "build": "object",
             "property": "payload",
             "propertyType": "msg",
             "key": "topic",
             "joiner": "\\n",
             "joinerType": "str",
             "accumulate": true,
             "timeout": "",
             "count": "",
             "reduceRight": false,
             "reduceExp": "$A or payload",
             "reduceInit": "false",
             "reduceInitType": "bool",
             "reduceFixup": "",
             "x": 800,
             "y": 3700,
             "wires": [
                 [
                     "d5432f52a8bbe04c"
                 ]
             ]
         }
      ]
      

      oder Du nimmst halt JS - musst halt nur den JSON mit parse in ein Array transferieren und dann in input speichern:

      var str = '[["Ostern"," 19 Tage 17 Stunden 55 Minuten",19,473,2,"16.04.2022 07:00"],["Frühling"," 1 Monat 16 Tage",47,1145,6,"14.05.2022 07:00"],["Sommer"," 3 Monate 18 Tage",110,2657,15,"16.07.2022 07:00"]]';
      var input = JSON.parse(str);
      result = (input.map(v => v[3] <= 48 ? true : false)).reduce((t,v) => v || t);
      

      Puzzeln tue ich nicht, aber Du kannst ja JS Funktionen in Blockly einbinden.

      Hab das sogar gepackt - die Funktion in ein Puzzle zu packen:

      b1447c76-a2c0-4a4c-8968-1be7c3d81497-image.png

      d9af5ae6-d775-4e2d-8556-a36199f87ebf-image.png

      Nun aber genug gepuzzelt. ;)

      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.

      stefu87_CHS 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        @stefu87_ch

        Nun ich gehe mal davon aus, dass die mittlere Zahl die Anzahl der Stunden bis zum Termin sind. Die brauchst doch nur rausziehen und abprüfen, ob die kleiner als 48 Stunden ist. Damit steuerst dann einen selbst erstellten Datenpunkt mit true oder false und setzt damit die Sichtbarkeit Deines Buttons:

        51b503bc-9761-4a36-9e4c-37d477808943-image.png

        Die Elemente in den Arrays sind wieder Arrays und dort das 4. Element - also Index 3.

        In NR könnte man das mit folgendem kleinen Flow erreichen:

        483b9dcd-0c28-4176-8a58-179dedc9a21c-image.png

        [
           {
               "id": "84ede78b9bd8bd35",
               "type": "inject",
               "z": "54b226bc.0793e8",
               "name": "",
               "props": [
                   {
                       "p": "payload"
                   }
               ],
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "[[\"Ostern\",\" 19 Tage 17 Stunden 55 Minuten\",19,473,2,\"16.04.2022 07:00\"],[\"Frühling\",\" 1 Monat 16 Tage\",47,1145,6,\"14.05.2022 07:00\"],[\"Sommer\",\" 3 Monate 18 Tage\",110,2657,15,\"16.07.2022 07:00\"]]",
               "payloadType": "json",
               "x": 210,
               "y": 3700,
               "wires": [
                   [
                       "a724f9b8d9906e19"
                   ]
               ]
           },
           {
               "id": "a724f9b8d9906e19",
               "type": "split",
               "z": "54b226bc.0793e8",
               "name": "",
               "splt": "\\n",
               "spltType": "str",
               "arraySplt": 1,
               "arraySpltType": "len",
               "stream": false,
               "addname": "",
               "x": 350,
               "y": 3700,
               "wires": [
                   [
                       "e012e55dc142a16f"
                   ]
               ]
           },
           {
               "id": "d5432f52a8bbe04c",
               "type": "debug",
               "z": "54b226bc.0793e8",
               "name": "Termin in weniger als 2 Tagen?",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 1030,
               "y": 3700,
               "wires": []
           },
           {
               "id": "e012e55dc142a16f",
               "type": "switch",
               "z": "54b226bc.0793e8",
               "name": "",
               "property": "payload[3]",
               "propertyType": "msg",
               "rules": [
                   {
                       "t": "lte",
                       "v": "48",
                       "vt": "num"
                   },
                   {
                       "t": "gt",
                       "v": "48",
                       "vt": "num"
                   }
               ],
               "checkall": "true",
               "repair": false,
               "outputs": 2,
               "x": 490,
               "y": 3700,
               "wires": [
                   [
                       "75c276ea3953cc5a"
                   ],
                   [
                       "3ea2caf7ee7b1fa4"
                   ]
               ]
           },
           {
               "id": "75c276ea3953cc5a",
               "type": "change",
               "z": "54b226bc.0793e8",
               "name": "true <=48",
               "rules": [
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "true",
                       "tot": "bool"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 640,
               "y": 3680,
               "wires": [
                   [
                       "463fc0c159bf59ee"
                   ]
               ]
           },
           {
               "id": "3ea2caf7ee7b1fa4",
               "type": "change",
               "z": "54b226bc.0793e8",
               "name": "false > 48",
               "rules": [
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "false",
                       "tot": "bool"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 640,
               "y": 3720,
               "wires": [
                   [
                       "463fc0c159bf59ee"
                   ]
               ]
           },
           {
               "id": "463fc0c159bf59ee",
               "type": "join",
               "z": "54b226bc.0793e8",
               "name": "Array OR",
               "mode": "reduce",
               "build": "object",
               "property": "payload",
               "propertyType": "msg",
               "key": "topic",
               "joiner": "\\n",
               "joinerType": "str",
               "accumulate": true,
               "timeout": "",
               "count": "",
               "reduceRight": false,
               "reduceExp": "$A or payload",
               "reduceInit": "false",
               "reduceInitType": "bool",
               "reduceFixup": "",
               "x": 800,
               "y": 3700,
               "wires": [
                   [
                       "d5432f52a8bbe04c"
                   ]
               ]
           }
        ]
        

        oder Du nimmst halt JS - musst halt nur den JSON mit parse in ein Array transferieren und dann in input speichern:

        var str = '[["Ostern"," 19 Tage 17 Stunden 55 Minuten",19,473,2,"16.04.2022 07:00"],["Frühling"," 1 Monat 16 Tage",47,1145,6,"14.05.2022 07:00"],["Sommer"," 3 Monate 18 Tage",110,2657,15,"16.07.2022 07:00"]]';
        var input = JSON.parse(str);
        result = (input.map(v => v[3] <= 48 ? true : false)).reduce((t,v) => v || t);
        

        Puzzeln tue ich nicht, aber Du kannst ja JS Funktionen in Blockly einbinden.

        Hab das sogar gepackt - die Funktion in ein Puzzle zu packen:

        b1447c76-a2c0-4a4c-8968-1be7c3d81497-image.png

        d9af5ae6-d775-4e2d-8556-a36199f87ebf-image.png

        Nun aber genug gepuzzelt. ;)

        stefu87_CHS Online
        stefu87_CHS Online
        stefu87_CH
        schrieb am zuletzt editiert von
        #3

        @mickym Danke für die vielen tollen Aufzeichnungen. Aber ich bin nicht so visiert auf Java zu programmieren und für mich ist der gross Teil von dir gerade mehr Bahnhof als das ich das einfach verstehen könnte.

        Model : AMD Ryzen 7 8745HS w/ Radeon 780M Graphics
        Cores: 1 × 8 = 8 cores
        Threads: 16
        mit Proxmox
        LXC Container mit Iobroker

        mickymM 1 Antwort Letzte Antwort
        0
        • stefu87_CHS stefu87_CH

          @mickym Danke für die vielen tollen Aufzeichnungen. Aber ich bin nicht so visiert auf Java zu programmieren und für mich ist der gross Teil von dir gerade mehr Bahnhof als das ich das einfach verstehen könnte.

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

          @stefu87_ch Ich hab Dir doch sogar die Funktion hier in ein Blockly gepackt. hier mal zum Import - kannst ja mal versuchen:

          <xml xmlns="https://developers.google.com/blockly/xml">
           <variables>
             <variable id="PqA)CsA(ce)X8%`I*d^q">str</variable>
             <variable id="q$oE[~S?OlF4SQok4h0c">JSON</variable>
           </variables>
           <block type="procedures_defcustomreturn" id="x@]{6O[G;hI!G=TlcL-]" x="163" y="263">
             <mutation statements="false">
               <arg name="str" varid="PqA)CsA(ce)X8%`I*d^q"></arg>
             </mutation>
             <field name="NAME">etwas tun</field>
             <field name="SCRIPT">dmFyIGlucHV0ID0gSlNPTi5wYXJzZShzdHIpOw0KcmV0dXJuIChpbnB1dC5tYXAodiA9PiB2WzNdIDw9IDQ4ID8gdHJ1ZSA6IGZhbHNlKSkucmVkdWNlKCh0LHYpID0+IHYgfHwgdCk7DQo=</field>
             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
           </block>
           <block type="variables_set" id="XrwXl/^n8,:T|:@CIDJS" x="163" y="338">
             <field name="VAR" id="q$oE[~S?OlF4SQok4h0c">JSON</field>
             <value name="VALUE">
               <block type="text" id="419]^N1k+]hVj4uS35[r">
                 <field name="TEXT">[["Ostern"," 19 Tage 17 Stunden 55 Minuten",19,473,2,"16.04.2022 07:00"],["Frühling"," 1 Monat 16 Tage",47,1145,6,"14.05.2022 07:00"],["Sommer"," 3 Monate 18 Tage",110,2657,15,"16.07.2022 07:00"]]</field>
               </block>
             </value>
             <next>
               <block type="debug" id="A*OSUvgIDOwzcH{l%4yL">
                 <field name="Severity">log</field>
                 <value name="TEXT">
                   <shadow type="text" id="q~FD)HRQzf=Y27hXruN%">
                     <field name="TEXT">test</field>
                   </shadow>
                   <block type="procedures_callcustomreturn" id="9wt?1S#DXeoVAEjKQPIO">
                     <mutation name="etwas tun">
                       <arg name="str"></arg>
                     </mutation>
                     <value name="ARG0">
                       <block type="variables_get" id="r1@haH5r2smbaKVUw2[Y">
                         <field name="VAR" id="q$oE[~S?OlF4SQok4h0c">JSON</field>
                       </block>
                     </value>
                   </block>
                 </value>
               </block>
             </next>
           </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.

          stefu87_CHS 1 Antwort Letzte Antwort
          0
          • mickymM mickym

            @stefu87_ch Ich hab Dir doch sogar die Funktion hier in ein Blockly gepackt. hier mal zum Import - kannst ja mal versuchen:

            <xml xmlns="https://developers.google.com/blockly/xml">
             <variables>
               <variable id="PqA)CsA(ce)X8%`I*d^q">str</variable>
               <variable id="q$oE[~S?OlF4SQok4h0c">JSON</variable>
             </variables>
             <block type="procedures_defcustomreturn" id="x@]{6O[G;hI!G=TlcL-]" x="163" y="263">
               <mutation statements="false">
                 <arg name="str" varid="PqA)CsA(ce)X8%`I*d^q"></arg>
               </mutation>
               <field name="NAME">etwas tun</field>
               <field name="SCRIPT">dmFyIGlucHV0ID0gSlNPTi5wYXJzZShzdHIpOw0KcmV0dXJuIChpbnB1dC5tYXAodiA9PiB2WzNdIDw9IDQ4ID8gdHJ1ZSA6IGZhbHNlKSkucmVkdWNlKCh0LHYpID0+IHYgfHwgdCk7DQo=</field>
               <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
             </block>
             <block type="variables_set" id="XrwXl/^n8,:T|:@CIDJS" x="163" y="338">
               <field name="VAR" id="q$oE[~S?OlF4SQok4h0c">JSON</field>
               <value name="VALUE">
                 <block type="text" id="419]^N1k+]hVj4uS35[r">
                   <field name="TEXT">[["Ostern"," 19 Tage 17 Stunden 55 Minuten",19,473,2,"16.04.2022 07:00"],["Frühling"," 1 Monat 16 Tage",47,1145,6,"14.05.2022 07:00"],["Sommer"," 3 Monate 18 Tage",110,2657,15,"16.07.2022 07:00"]]</field>
                 </block>
               </value>
               <next>
                 <block type="debug" id="A*OSUvgIDOwzcH{l%4yL">
                   <field name="Severity">log</field>
                   <value name="TEXT">
                     <shadow type="text" id="q~FD)HRQzf=Y27hXruN%">
                       <field name="TEXT">test</field>
                     </shadow>
                     <block type="procedures_callcustomreturn" id="9wt?1S#DXeoVAEjKQPIO">
                       <mutation name="etwas tun">
                         <arg name="str"></arg>
                       </mutation>
                       <value name="ARG0">
                         <block type="variables_get" id="r1@haH5r2smbaKVUw2[Y">
                           <field name="VAR" id="q$oE[~S?OlF4SQok4h0c">JSON</field>
                         </block>
                       </value>
                     </block>
                   </value>
                 </block>
               </next>
             </block>
            </xml>
            

            stefu87_CHS Online
            stefu87_CHS Online
            stefu87_CH
            schrieb am zuletzt editiert von
            #5

            @mickym Das hab ich soweit verstanden, ich frage mich nun, was mache ich mit dem debug Output? Muss da was verknüpft werden?

            Model : AMD Ryzen 7 8745HS w/ Radeon 780M Graphics
            Cores: 1 × 8 = 8 cores
            Threads: 16
            mit Proxmox
            LXC Container mit Iobroker

            mickymM 1 Antwort Letzte Antwort
            0
            • stefu87_CHS stefu87_CH

              @mickym Das hab ich soweit verstanden, ich frage mich nun, was mache ich mit dem debug Output? Muss da was verknüpft werden?

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

              @stefu87_ch Bis auf einen Logikfehler dass ich <48 und nicht <= 48 abprüfen müsste.

              Ich zeigs Dir trotzdem mal anhand von Node-Red - aber geht mit den anderen genauso.

              Wenn Du den JSON String parsed - ergibt das ein Array mit jedem Termin als weiteres Array. Innerhalb eines Array ist das 4. Element (Index=3) die Anzahl an Stunden:

              4d63975a-0315-4a7e-9239-f352f4533f0f-image.png

              Sobald ein Termin unter 48 Stunden ist - ergibt sich ein true, sonst ein false.

              Du legst also einen Datenpunkt an und schreibst das Ergebnis dieses Blocklies, Flows oder JS in diesen Datenpunkt. Diesen gibst Du dann in Deinem Button unter Sichtbarkeit ein, wie in dem Screenshot. Ist ein Termin unter 48 Stunden steht in dem Datenpunkt true und Dein Button ist sichtbar.

              762c7e8a-3234-41f5-b837-5cc1685c7c1d-image.png

              Also einfach das Ergebnis dieses Blocklies in den Datenpunkt sichtbarkeit schreiben. Falls ein Termin innerhalb von 48 Stunden fällig ist, wird true in den Datenpunkt geschrieben, anderenfalls false.

              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.

              stefu87_CHS 1 Antwort Letzte Antwort
              0
              • mickymM mickym

                @stefu87_ch Bis auf einen Logikfehler dass ich <48 und nicht <= 48 abprüfen müsste.

                Ich zeigs Dir trotzdem mal anhand von Node-Red - aber geht mit den anderen genauso.

                Wenn Du den JSON String parsed - ergibt das ein Array mit jedem Termin als weiteres Array. Innerhalb eines Array ist das 4. Element (Index=3) die Anzahl an Stunden:

                4d63975a-0315-4a7e-9239-f352f4533f0f-image.png

                Sobald ein Termin unter 48 Stunden ist - ergibt sich ein true, sonst ein false.

                Du legst also einen Datenpunkt an und schreibst das Ergebnis dieses Blocklies, Flows oder JS in diesen Datenpunkt. Diesen gibst Du dann in Deinem Button unter Sichtbarkeit ein, wie in dem Screenshot. Ist ein Termin unter 48 Stunden steht in dem Datenpunkt true und Dein Button ist sichtbar.

                762c7e8a-3234-41f5-b837-5cc1685c7c1d-image.png

                Also einfach das Ergebnis dieses Blocklies in den Datenpunkt sichtbarkeit schreiben. Falls ein Termin innerhalb von 48 Stunden fällig ist, wird true in den Datenpunkt geschrieben, anderenfalls false.

                stefu87_CHS Online
                stefu87_CHS Online
                stefu87_CH
                schrieb am zuletzt editiert von
                #7

                @mickym Ich denke mal, das dies sicher falsch ist, aber ich steh gerade massiv auf dem Schlauch und entschuldige mich auch dafür das ich das nicht so ganz deutlich verstehe.

                05375d50-826f-4da0-8190-53b5bfc4eeb7-grafik.png

                Model : AMD Ryzen 7 8745HS w/ Radeon 780M Graphics
                Cores: 1 × 8 = 8 cores
                Threads: 16
                mit Proxmox
                LXC Container mit Iobroker

                mickymM 1 Antwort Letzte Antwort
                0
                • stefu87_CHS stefu87_CH

                  @mickym Ich denke mal, das dies sicher falsch ist, aber ich steh gerade massiv auf dem Schlauch und entschuldige mich auch dafür das ich das nicht so ganz deutlich verstehe.

                  05375d50-826f-4da0-8190-53b5bfc4eeb7-grafik.png

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

                  @stefu87_ch Nee nichts mit false machen, sondern das Ergebnis der Function einfach mit aktualisiere in Deinen Datenpunkt schreiben. Also nicht falls ....

                  a25582ab-e955-4a6f-b8be-57d88c1af996-image.png

                  Also so das Debug kannst ja dann wegschmeissen.

                  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.

                  stefu87_CHS 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    @stefu87_ch Nee nichts mit false machen, sondern das Ergebnis der Function einfach mit aktualisiere in Deinen Datenpunkt schreiben. Also nicht falls ....

                    a25582ab-e955-4a6f-b8be-57d88c1af996-image.png

                    Also so das Debug kannst ja dann wegschmeissen.

                    stefu87_CHS Online
                    stefu87_CHS Online
                    stefu87_CH
                    schrieb am zuletzt editiert von
                    #9

                    @mickym Ich denke so habe ich das auch falsch verstanden oder:

                    2e86d096-c95b-426e-a3b1-0258ce5db0a8-grafik.png

                    Model : AMD Ryzen 7 8745HS w/ Radeon 780M Graphics
                    Cores: 1 × 8 = 8 cores
                    Threads: 16
                    mit Proxmox
                    LXC Container mit Iobroker

                    mickymM 1 Antwort Letzte Antwort
                    0
                    • stefu87_CHS stefu87_CH

                      @mickym Ich denke so habe ich das auch falsch verstanden oder:

                      2e86d096-c95b-426e-a3b1-0258ce5db0a8-grafik.png

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

                      @stefu87_ch Habe es gerade gepostet. ;)

                      Testen kannst Du in dem Du einfach mal die Stunden manuell auf unter 48 setzt.

                      Also statt:

                      [["Ostern"," 19 Tage 17 Stunden 55 Minuten",19,473,2,"16.04.2022 07:00"],["Frühling"," 1 Monat 16 Tage",47,1145,6,"14.05.2022 07:00"],["Sommer"," 3 Monate 18 Tage",110,2657,15,"16.07.2022 07:00"]]
                      

                      machst einfach aus den 473 mal eine 47, dann sollte true rauskommen und in dem Datenpunkt true stehen

                      [["Ostern"," 19 Tage 17 Stunden 55 Minuten",19,47,2,"16.04.2022 07:00"],["Frühling"," 1 Monat 16 Tage",47,1145,6,"14.05.2022 07:00"],["Sommer"," 3 Monate 18 Tage",110,2657,15,"16.07.2022 07:00"]]
                      

                      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.

                      stefu87_CHS 1 Antwort Letzte Antwort
                      0
                      • mickymM mickym

                        @stefu87_ch Habe es gerade gepostet. ;)

                        Testen kannst Du in dem Du einfach mal die Stunden manuell auf unter 48 setzt.

                        Also statt:

                        [["Ostern"," 19 Tage 17 Stunden 55 Minuten",19,473,2,"16.04.2022 07:00"],["Frühling"," 1 Monat 16 Tage",47,1145,6,"14.05.2022 07:00"],["Sommer"," 3 Monate 18 Tage",110,2657,15,"16.07.2022 07:00"]]
                        

                        machst einfach aus den 473 mal eine 47, dann sollte true rauskommen und in dem Datenpunkt true stehen

                        [["Ostern"," 19 Tage 17 Stunden 55 Minuten",19,47,2,"16.04.2022 07:00"],["Frühling"," 1 Monat 16 Tage",47,1145,6,"14.05.2022 07:00"],["Sommer"," 3 Monate 18 Tage",110,2657,15,"16.07.2022 07:00"]]
                        
                        stefu87_CHS Online
                        stefu87_CHS Online
                        stefu87_CH
                        schrieb am zuletzt editiert von
                        #11

                        @mickym Krieg ich eine warnung:

                        fcf8de9b-a62d-4473-9267-5a08c2dc92b7-grafik.png

                        Model : AMD Ryzen 7 8745HS w/ Radeon 780M Graphics
                        Cores: 1 × 8 = 8 cores
                        Threads: 16
                        mit Proxmox
                        LXC Container mit Iobroker

                        mickymM 1 Antwort Letzte Antwort
                        0
                        • stefu87_CHS stefu87_CH

                          @mickym Krieg ich eine warnung:

                          fcf8de9b-a62d-4473-9267-5a08c2dc92b7-grafik.png

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

                          @stefu87_ch Hier ich exportiere es Dir nochmal komplett:

                          <xml xmlns="https://developers.google.com/blockly/xml">
                           <variables>
                             <variable id="PqA)CsA(ce)X8%`I*d^q">str</variable>
                             <variable id="q$oE[~S?OlF4SQok4h0c">JSON</variable>
                           </variables>
                           <block type="procedures_defcustomreturn" id="x@]{6O[G;hI!G=TlcL-]" x="163" y="263">
                             <mutation statements="false">
                               <arg name="str" varid="PqA)CsA(ce)X8%`I*d^q"></arg>
                             </mutation>
                             <field name="NAME">etwas tun</field>
                             <field name="SCRIPT">dmFyIGlucHV0ID0gSlNPTi5wYXJzZShzdHIpOw0KcmV0dXJuIChpbnB1dC5tYXAodiA9PiB2WzNdIDw9IDQ4ID8gdHJ1ZSA6IGZhbHNlKSkucmVkdWNlKCh0LHYpID0+IHYgfHwgdCk7DQo=</field>
                             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                           </block>
                           <block type="variables_set" id="XrwXl/^n8,:T|:@CIDJS" x="163" y="338">
                             <field name="VAR" id="q$oE[~S?OlF4SQok4h0c">JSON</field>
                             <value name="VALUE">
                               <block type="text" id="419]^N1k+]hVj4uS35[r">
                                 <field name="TEXT">[["Ostern"," 19 Tage 17 Stunden 55 Minuten",19,473,2,"16.04.2022 07:00"],["Frühling"," 1 Monat 16 Tage",47,1145,6,"14.05.2022 07:00"],["Sommer"," 3 Monate 18 Tage",110,2657,15,"16.07.2022 07:00"]]</field>
                               </block>
                             </value>
                             <next>
                               <block type="update" id="G85QIq2@EG$4;^gvG{dF">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                 <field name="OID">0_userdata.0.sichtbarkeit</field>
                                 <field name="WITH_DELAY">FALSE</field>
                                 <value name="VALUE">
                                   <block type="procedures_callcustomreturn" id="LOG491oe*KVgGeW7-|vL">
                                     <mutation name="etwas tun">
                                       <arg name="str"></arg>
                                     </mutation>
                                     <value name="ARG0">
                                       <block type="variables_get" id="uZI4oulY4A#=_3j1]KV)">
                                         <field name="VAR" id="q$oE[~S?OlF4SQok4h0c">JSON</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="debug" id="A*OSUvgIDOwzcH{l%4yL">
                                     <field name="Severity">log</field>
                                     <value name="TEXT">
                                       <shadow type="text" id="q~FD)HRQzf=Y27hXruN%">
                                         <field name="TEXT">test</field>
                                       </shadow>
                                       <block type="procedures_callcustomreturn" id="9wt?1S#DXeoVAEjKQPIO">
                                         <mutation name="etwas tun">
                                           <arg name="str"></arg>
                                         </mutation>
                                         <value name="ARG0">
                                           <block type="variables_get" id="r1@haH5r2smbaKVUw2[Y">
                                             <field name="VAR" id="q$oE[~S?OlF4SQok4h0c">JSON</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                          </xml>
                          

                          Den Datenpunkt habe ich direkt unter 0_userdata.0 erstellt -also unter 0_userdata.0.sichtbarkeit

                          bei mir kommt einmal true oder false raus:

                          f9150769-6f7b-4c62-aefb-d3f70f3029fd-image.png

                          Ich bin aber kein Blockly Spezialist - wenn das bei Dir nicht funktioniert und bei mir schon, dann muss das wohl ein Blockly Spezi Dir helfen. Ich bin eher NodeRed Fan. ;)

                          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.

                          stefu87_CHS 1 Antwort Letzte Antwort
                          0
                          • mickymM mickym

                            @stefu87_ch Hier ich exportiere es Dir nochmal komplett:

                            <xml xmlns="https://developers.google.com/blockly/xml">
                             <variables>
                               <variable id="PqA)CsA(ce)X8%`I*d^q">str</variable>
                               <variable id="q$oE[~S?OlF4SQok4h0c">JSON</variable>
                             </variables>
                             <block type="procedures_defcustomreturn" id="x@]{6O[G;hI!G=TlcL-]" x="163" y="263">
                               <mutation statements="false">
                                 <arg name="str" varid="PqA)CsA(ce)X8%`I*d^q"></arg>
                               </mutation>
                               <field name="NAME">etwas tun</field>
                               <field name="SCRIPT">dmFyIGlucHV0ID0gSlNPTi5wYXJzZShzdHIpOw0KcmV0dXJuIChpbnB1dC5tYXAodiA9PiB2WzNdIDw9IDQ4ID8gdHJ1ZSA6IGZhbHNlKSkucmVkdWNlKCh0LHYpID0+IHYgfHwgdCk7DQo=</field>
                               <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                             </block>
                             <block type="variables_set" id="XrwXl/^n8,:T|:@CIDJS" x="163" y="338">
                               <field name="VAR" id="q$oE[~S?OlF4SQok4h0c">JSON</field>
                               <value name="VALUE">
                                 <block type="text" id="419]^N1k+]hVj4uS35[r">
                                   <field name="TEXT">[["Ostern"," 19 Tage 17 Stunden 55 Minuten",19,473,2,"16.04.2022 07:00"],["Frühling"," 1 Monat 16 Tage",47,1145,6,"14.05.2022 07:00"],["Sommer"," 3 Monate 18 Tage",110,2657,15,"16.07.2022 07:00"]]</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="update" id="G85QIq2@EG$4;^gvG{dF">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">0_userdata.0.sichtbarkeit</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="procedures_callcustomreturn" id="LOG491oe*KVgGeW7-|vL">
                                       <mutation name="etwas tun">
                                         <arg name="str"></arg>
                                       </mutation>
                                       <value name="ARG0">
                                         <block type="variables_get" id="uZI4oulY4A#=_3j1]KV)">
                                           <field name="VAR" id="q$oE[~S?OlF4SQok4h0c">JSON</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="debug" id="A*OSUvgIDOwzcH{l%4yL">
                                       <field name="Severity">log</field>
                                       <value name="TEXT">
                                         <shadow type="text" id="q~FD)HRQzf=Y27hXruN%">
                                           <field name="TEXT">test</field>
                                         </shadow>
                                         <block type="procedures_callcustomreturn" id="9wt?1S#DXeoVAEjKQPIO">
                                           <mutation name="etwas tun">
                                             <arg name="str"></arg>
                                           </mutation>
                                           <value name="ARG0">
                                             <block type="variables_get" id="r1@haH5r2smbaKVUw2[Y">
                                               <field name="VAR" id="q$oE[~S?OlF4SQok4h0c">JSON</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                            </xml>
                            

                            Den Datenpunkt habe ich direkt unter 0_userdata.0 erstellt -also unter 0_userdata.0.sichtbarkeit

                            bei mir kommt einmal true oder false raus:

                            f9150769-6f7b-4c62-aefb-d3f70f3029fd-image.png

                            Ich bin aber kein Blockly Spezialist - wenn das bei Dir nicht funktioniert und bei mir schon, dann muss das wohl ein Blockly Spezi Dir helfen. Ich bin eher NodeRed Fan. ;)

                            stefu87_CHS Online
                            stefu87_CHS Online
                            stefu87_CH
                            schrieb am zuletzt editiert von
                            #13

                            @mickym Hab jetzt deinen neuen Aktuellen Code genommen und jetzt funktioniert er auch bei mir.

                            Model : AMD Ryzen 7 8745HS w/ Radeon 780M Graphics
                            Cores: 1 × 8 = 8 cores
                            Threads: 16
                            mit Proxmox
                            LXC Container mit Iobroker

                            mickymM 1 Antwort Letzte Antwort
                            0
                            • stefu87_CHS stefu87_CH

                              @mickym Hab jetzt deinen neuen Aktuellen Code genommen und jetzt funktioniert er auch bei mir.

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

                              @stefu87_ch So und nun noch unter Deinem Button - den Sichtbarkeitspunkt entsprechend angeben und einfach mal die 473 in 47 eingeben und umgekehrt. Den JSON String liest Du natürlich aus Deinem Datenpunkt ein.

                              Ach und in der Function noch das kleiner gleich in kleiner ändern:

                              ef6cd52d-ee72-4d9e-b4a4-ae7394b25b8c-image.png

                              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.

                              stefu87_CHS 1 Antwort Letzte Antwort
                              0
                              • mickymM mickym

                                @stefu87_ch So und nun noch unter Deinem Button - den Sichtbarkeitspunkt entsprechend angeben und einfach mal die 473 in 47 eingeben und umgekehrt. Den JSON String liest Du natürlich aus Deinem Datenpunkt ein.

                                Ach und in der Function noch das kleiner gleich in kleiner ändern:

                                ef6cd52d-ee72-4d9e-b4a4-ae7394b25b8c-image.png

                                stefu87_CHS Online
                                stefu87_CHS Online
                                stefu87_CH
                                schrieb am zuletzt editiert von stefu87_CH
                                #15

                                @mickym sagte in Button verstecken aus JSON Angaben:

                                einfach mal die 473 in 47 eingeben und umgekehrt

                                Das habe ich noch nicht ganz verstanden, wo ich das eingeben muss.

                                Aber das ist ja ein Textfeld. Wie wird den das aktualisiert?
                                ff787737-1786-4f47-b770-e22d656531db-grafik.png

                                Model : AMD Ryzen 7 8745HS w/ Radeon 780M Graphics
                                Cores: 1 × 8 = 8 cores
                                Threads: 16
                                mit Proxmox
                                LXC Container mit Iobroker

                                mickymM 1 Antwort Letzte Antwort
                                0
                                • stefu87_CHS stefu87_CH

                                  @mickym sagte in Button verstecken aus JSON Angaben:

                                  einfach mal die 473 in 47 eingeben und umgekehrt

                                  Das habe ich noch nicht ganz verstanden, wo ich das eingeben muss.

                                  Aber das ist ja ein Textfeld. Wie wird den das aktualisiert?
                                  ff787737-1786-4f47-b770-e22d656531db-grafik.png

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

                                  @stefu87_ch Du kannst doch den manuell verändern und statt der 473 die 3 löschen aus dem Text.
                                  Das wird auch nicht aktualisiert, sondern ich habe doch Dein Beispiel genommen. Du wirst natürlich den Inhalt Deines Datenpunktes der den JSON String enthält in die Variable JSON zuweisen.

                                  Also bei Dir wird es statt dem Textfeld dann irgendwie so aussehen:

                                  b57473e0-8e52-439d-aaab-6c9c96ad2b2d-image.png

                                  Ich weiß ja nicht in welchem Datenpunkt DEin JSON String steht. Ich habe nur an dem Text Deines Beispiels getestet, ob der Sichtbarkeits-Datenpunkt true und false ausgibt.

                                  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.

                                  stefu87_CHS 1 Antwort Letzte Antwort
                                  0
                                  • mickymM mickym

                                    @stefu87_ch Du kannst doch den manuell verändern und statt der 473 die 3 löschen aus dem Text.
                                    Das wird auch nicht aktualisiert, sondern ich habe doch Dein Beispiel genommen. Du wirst natürlich den Inhalt Deines Datenpunktes der den JSON String enthält in die Variable JSON zuweisen.

                                    Also bei Dir wird es statt dem Textfeld dann irgendwie so aussehen:

                                    b57473e0-8e52-439d-aaab-6c9c96ad2b2d-image.png

                                    Ich weiß ja nicht in welchem Datenpunkt DEin JSON String steht. Ich habe nur an dem Text Deines Beispiels getestet, ob der Sichtbarkeits-Datenpunkt true und false ausgibt.

                                    stefu87_CHS Online
                                    stefu87_CHS Online
                                    stefu87_CH
                                    schrieb am zuletzt editiert von
                                    #17

                                    @mickym Funktioniert.
                                    Vielen Dank trotz allem, das du mich so kräftig unterstützt hast.

                                    Model : AMD Ryzen 7 8745HS w/ Radeon 780M Graphics
                                    Cores: 1 × 8 = 8 cores
                                    Threads: 16
                                    mit Proxmox
                                    LXC Container mit Iobroker

                                    mickymM 1 Antwort Letzte Antwort
                                    0
                                    • stefu87_CHS stefu87_CH

                                      @mickym Funktioniert.
                                      Vielen Dank trotz allem, das du mich so kräftig unterstützt hast.

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

                                      @stefu87_ch Na das freut mich und das mit mir - als Puzzle-Legastheniker. ;)

                                      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.

                                      1 Antwort Letzte Antwort
                                      0

                                      Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                      Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                      Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                      Registrieren Anmelden
                                      Antworten
                                      • In einem neuen Thema antworten
                                      Anmelden zum Antworten
                                      • Älteste zuerst
                                      • Neuste zuerst
                                      • Meiste Stimmen


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      440

                                      Online

                                      32.8k

                                      Benutzer

                                      82.8k

                                      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