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
    352

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

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

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 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 Offline
      stefu87_CHS Offline
      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 Offline
          stefu87_CHS Offline
          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 Offline
              stefu87_CHS Offline
              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 Offline
                  stefu87_CHS Offline
                  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 Offline
                      stefu87_CHS Offline
                      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 Offline
                          stefu87_CHS Offline
                          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 Offline
                              stefu87_CHS Offline
                              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 Offline
                                  stefu87_CHS Offline
                                  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

                                    321

                                    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