Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Daten mit Blockly erheben und im Json Format speichern

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    456

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

Daten mit Blockly erheben und im Json Format speichern

Geplant Angeheftet Gesperrt Verschoben Blockly
6 Beiträge 2 Kommentatoren 451 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • david83D Offline
    david83D Offline
    david83
    schrieb am zuletzt editiert von david83
    #1

    Hallo zusammen,
    Ich bin dabei mir ein Blockly zu schreiben, das Adapter findet die offline sind. Dafür nutze ich den Daten-Punkt .alive . wenn dieser false ist, wird der Adapter vom Blockly als Json Datensatz in einem Datenpunkt hinterlegt. Nun kann ich mir mit Vis alle Daten in der Tabelle anzeigen lassen.

    Bis dahin funktioniert das Blockly einwandfrei.

    Nun der Teil der mich verzweifeln lässt:
    Sobald der Adapter wieder online ist und der Wert auf true steht, wird der Eintrag nicht wie von mir beabsichtigt entfernt. Dies klappt nur sporadisch.
    Das Problem wird die Angabe des Zeitstempels sein. Wie könnte ich das besser lösen? Jemand einen Tipp?

    Screenshot_2022-07-07-14-20-49-05_40deb401b9ffe8e1df2f1cc5ba480b12.jpg

    Screenshot_2022-07-07-14-39-48-67_200b0a05dbc45b1de60d6a2da09c9fd1.jpg

    Screenshot_2022-07-07-14-41-32-84_40deb401b9ffe8e1df2f1cc5ba480b12.jpg

    haus-automatisierungH 1 Antwort Letzte Antwort
    0
    • david83D david83

      Hallo zusammen,
      Ich bin dabei mir ein Blockly zu schreiben, das Adapter findet die offline sind. Dafür nutze ich den Daten-Punkt .alive . wenn dieser false ist, wird der Adapter vom Blockly als Json Datensatz in einem Datenpunkt hinterlegt. Nun kann ich mir mit Vis alle Daten in der Tabelle anzeigen lassen.

      Bis dahin funktioniert das Blockly einwandfrei.

      Nun der Teil der mich verzweifeln lässt:
      Sobald der Adapter wieder online ist und der Wert auf true steht, wird der Eintrag nicht wie von mir beabsichtigt entfernt. Dies klappt nur sporadisch.
      Das Problem wird die Angabe des Zeitstempels sein. Wie könnte ich das besser lösen? Jemand einen Tipp?

      Screenshot_2022-07-07-14-20-49-05_40deb401b9ffe8e1df2f1cc5ba480b12.jpg

      Screenshot_2022-07-07-14-39-48-67_200b0a05dbc45b1de60d6a2da09c9fd1.jpg

      Screenshot_2022-07-07-14-41-32-84_40deb401b9ffe8e1df2f1cc5ba480b12.jpg

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

      @david83 Also JSON manuell zusammen bauen würde ich eher nicht empfehlen. Du kannst ja scheinbar auch JavaScript - damit wäre das deutlich einfacher machbar. Brauchst Du dazu Input?

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

      1 Antwort Letzte Antwort
      0
      • david83D Offline
        david83D Offline
        david83
        schrieb am zuletzt editiert von
        #3

        @haus-automatisierung

        Ganz ehrlich gesagt bin ich grade dabei mir Javascript etwas genauer anzuschauen. Aber können... da bin ich Meilen von entfernt.
        Ich würde das gerne mit Blockly lösen, falls du einen Vorschlag in Js hast, schaue ich ihn mir sehr gerne an.

        haus-automatisierungH 2 Antworten Letzte Antwort
        0
        • david83D david83

          @haus-automatisierung

          Ganz ehrlich gesagt bin ich grade dabei mir Javascript etwas genauer anzuschauen. Aber können... da bin ich Meilen von entfernt.
          Ich würde das gerne mit Blockly lösen, falls du einen Vorschlag in Js hast, schaue ich ihn mir sehr gerne an.

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

          @david83 Ich bin mir nicht ganz sicher, wie das Ergebnis aussehen soll. Aber eventuell hilft Dir das ja als Basis:

          const aliveIds = Array.prototype.slice.apply($('system.adapter.*.*.alive'));
          
          function refreshList() {
              const resultList = [];
          
              for (var i in aliveIds) {
                  const aliveState = getState(aliveIds[i]);
          
                  // Offline instance
                  if (!aliveState.val) {
                      resultList.push({
                          'Adapter': aliveIds[i],
                          'Last-Contact': formatDate(aliveState.ts, 'TT.MM.JJJJ SS:mm:ss')
                      });
                  }
          
                  console.log(aliveState);
              }
          
              setState('0_userdata.0.test.myString', JSON.stringify(resultList), true);
          }
          
          on({id: aliveIds, change: 'ne'}, async (obj) => {
              refreshList();
          });
          
          // Initialisieren bei Script-Start
          refreshList();
          
          

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

          1 Antwort Letzte Antwort
          0
          • david83D david83

            @haus-automatisierung

            Ganz ehrlich gesagt bin ich grade dabei mir Javascript etwas genauer anzuschauen. Aber können... da bin ich Meilen von entfernt.
            Ich würde das gerne mit Blockly lösen, falls du einen Vorschlag in Js hast, schaue ich ihn mir sehr gerne an.

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

            @david83 Oder Du holst Dir noch den richtigen Namen des Adapters und packst den in die Tabelle:

            const aliveIds = Array.prototype.slice.apply($('system.adapter.*.*.alive'));
            
            function getAdapterName(obj) {
                if (typeof obj.common.titleLang === 'object') {
                    if (Object.prototype.hasOwnProperty.call(obj.common.titleLang, 'de')) {
                        return obj.common.titleLang.de;
                    } else {
                        return obj.common.titleLang.en;
                    }
                }
            
                return obj.common.title;
            }
            
            function refreshList() {
                const resultList = [];
            
                for (var i in aliveIds) {
                    const aliveStateId = aliveIds[i];
                    const aliveState = getState(aliveStateId);
            
                    // Offline adapters
                    if (!aliveState.val) {
                        const instanceObj = getObject(aliveStateId.replace('.alive', ''));
            
                        resultList.push({
                            'Adapter': getAdapterName(instanceObj),
                            'Last-Contact': formatDate(aliveState.ts, 'TT.MM.JJJJ SS:mm:ss')
                        });
                    }
            
                    console.log(aliveState);
                }
            
                setState('0_userdata.0.test.myString', JSON.stringify(resultList), true);
            }
            
            on({id: aliveIds, change: 'ne'}, async (obj) => {
                refreshList();
            });
            
            // Initialisieren bei Script-Start
            refreshList();
            
            

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

            david83D 1 Antwort Letzte Antwort
            0
            • haus-automatisierungH haus-automatisierung

              @david83 Oder Du holst Dir noch den richtigen Namen des Adapters und packst den in die Tabelle:

              const aliveIds = Array.prototype.slice.apply($('system.adapter.*.*.alive'));
              
              function getAdapterName(obj) {
                  if (typeof obj.common.titleLang === 'object') {
                      if (Object.prototype.hasOwnProperty.call(obj.common.titleLang, 'de')) {
                          return obj.common.titleLang.de;
                      } else {
                          return obj.common.titleLang.en;
                      }
                  }
              
                  return obj.common.title;
              }
              
              function refreshList() {
                  const resultList = [];
              
                  for (var i in aliveIds) {
                      const aliveStateId = aliveIds[i];
                      const aliveState = getState(aliveStateId);
              
                      // Offline adapters
                      if (!aliveState.val) {
                          const instanceObj = getObject(aliveStateId.replace('.alive', ''));
              
                          resultList.push({
                              'Adapter': getAdapterName(instanceObj),
                              'Last-Contact': formatDate(aliveState.ts, 'TT.MM.JJJJ SS:mm:ss')
                          });
                      }
              
                      console.log(aliveState);
                  }
              
                  setState('0_userdata.0.test.myString', JSON.stringify(resultList), true);
              }
              
              on({id: aliveIds, change: 'ne'}, async (obj) => {
                  refreshList();
              });
              
              // Initialisieren bei Script-Start
              refreshList();
              
              
              david83D Offline
              david83D Offline
              david83
              schrieb am zuletzt editiert von
              #6

              @haus-automatisierung

              funktioniert! Danke!

              [
                {
                  "Adapter": "Alexa2 (Amazon Echo)",
                  "Last-Contact": "07.07.2022 09:59:48"
                },
                {
                  "Adapter": "Device-Watcher",
                  "Last-Contact": "07.07.2022 18:45:01"
                },
                {
                  "Adapter": "Deutsche Feiertage",
                  "Last-Contact": "07.07.2022 10:36:11"
                },
                {
                  "Adapter": "iCal Kalender",
                  "Last-Contact": "07.07.2022 18:30:12"
                },
                {
                  "Adapter": "Tankerkönig Spritpreise",
                  "Last-Contact": "10.07.2021 15:24:51"
                },
                {
                  "Adapter": "Visualisierung",
                  "Last-Contact": "07.07.2022 10:35:52"
                },
                {
                  "Adapter": "Vorhersage Weatherunderground",
                  "Last-Contact": "07.07.2022 18:06:33"
                }
              ]
              
              1 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              903

              Online

              32.6k

              Benutzer

              81.9k

              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