Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst]Datenpunkt 0_userdata.0.example_state vorhanden

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst]Datenpunkt 0_userdata.0.example_state vorhanden

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

      Den Datenpunkt 0_userdata.0.example_state lösche ich selbst weg. Doch wird er wahrscheinlich durch ein Update wieder erzeugt. Da er alle paar Wochen wieder unter den Objekten zu finden ist.
      Wie könnte ich mit Blockly prüfen wann er wieder neu angelegt wird? Ich möchte diesen nicht vorhandenen Datenpunkt abfragen und mir eine Nachricht senden wenn dieser neu angelegt wird.

      Chatgpt sagt für javascript:

      const dpId = "0_userdata.0.example_state";    // Ersetze diesen Wert durch den zu überwachenden Datenpunkt
      const telegramInstance = "telegram.0";     // Instanz des Telegram Adapters
      
      // Der Listener reagiert auf jegliche Änderungen an Objekten
      on('objectChange', (id, obj) => {
          // Prüfen, ob es sich um den gewünschten Datenpunkt handelt und ob ein Objekt vorhanden ist
          if (id === dpId && obj) {
              log("Der Datenpunkt " + dpId + " wurde erstellt oder geändert.", "info");
              
              // Sende eine Telegram-Nachricht
              sendTo(telegramInstance, {
                  text: "Achtung: Der Datenpunkt " + dpId + " wurde jetzt erstellt!"
              });
              
              // Optional: Eine Möglichkeit, nur einmal zu reagieren,
              // indem Du z.B. eine Variable setzt und weitere Reaktionen unterbindest.
          }
      });
      

      geht aber nicht.

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Shadowhunter23 last edited by paul53

        @shadowhunter23 sagte: geht aber nicht.

        Versuche es mal so:

        const dpId = "0_userdata.0.example_state";    // Ersetze diesen Wert durch den zu überwachenden Datenpunkt
        const telegramInstance = "telegram.0";     // Instanz des Telegram Adapters
        
        on({id: dpId}, () => {
            log("Der Datenpunkt " + dpId + " wurde erstellt oder geändert.");
                
            // Sende eine Telegram-Nachricht
            sendTo(telegramInstance, {
                    text: "Achtung: Der Datenpunkt " + dpId + " wurde jetzt erstellt!"
            });
        });
        
        S 1 Reply Last reply Reply Quote 0
        • S
          Shadowhunter23 @paul53 last edited by Shadowhunter23

          @paul53
          Das Script reagiert nicht auf die erstmalige Erstellung des Datenpunktes, nur auf eine manuelle Änderung.

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Shadowhunter23 last edited by paul53

            @shadowhunter23 sagte: Das Script reagiert nicht auf die erstmalige Erstellung des Datenpunktes

            Dann bleibt nur Polling (schedule).

            const dpId = "0_userdata.0.example_state";    // Ersetze diesen Wert durch den zu überwachenden Datenpunkt
            const telegramInstance = "telegram.0";     // Instanz des Telegram Adapters
            var exists = existsObject(dpId);
            if(exists) log("Der Datenpunkt " + dpId + " existiert bereits.");
            
            schedule('* * * * *', () => {
                if(!exists && existsObject(dpId)) {
                    exists = true;
                    log("Der Datenpunkt " + dpId + " wurde erstellt.");
                    
                    // Sende eine Telegram-Nachricht
                    sendTo(telegramInstance, {
                            text: "Achtung: Der Datenpunkt " + dpId + " wurde jetzt erstellt!"
                    });
                }
            });
            
            S 1 Reply Last reply Reply Quote 1
            • S
              Shadowhunter23 @paul53 last edited by Shadowhunter23

              @paul53

              // Konfiguration
              const dpId = "0_userdata.0.example_state";  // Ersetze diesen Wert durch den zu überwachenden Datenpunkt
              const telegramInstance = "telegram.0";   // Instanz des Telegram Adapters
              
              let notified = false; // Flag, um Mehrfachbenachrichtigungen zu vermeiden
              
              schedule("* * * * *", function () {
                  // Versuche, das Objekt des Datenpunktes abzurufen
                  let obj = getObject(dpId);
                  
                  // Falls der Datenpunkt existiert und noch keine Benachrichtigung gesendet wurde:
                  if (obj && !notified) {
                      log("Der Datenpunkt " + dpId + " wurde erstellt oder geändert.", "info");
                      
                      // Sende eine Telegram-Nachricht
                      sendTo(telegramInstance, {
                          text: "Achtung: Der Datenpunkt " + dpId + " wurde jetzt erstellt!"
                      });
                      
                      notified = true; // Verhindert weitere Benachrichtigungen (optional anpassen)
                  }
              });
              
              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @Shadowhunter23 last edited by

                @shadowhunter23
                getObject(id) erzeugt eine Warnung, wenn das Objekt nicht existiert. Deshalb habe ich existsObject(id) verwendet.

                S 2 Replies Last reply Reply Quote 1
                • S
                  Shadowhunter23 @paul53 last edited by

                  @paul53
                  Danke, habs geändert.

                  1 Reply Last reply Reply Quote 0
                  • S
                    Shadowhunter23 @paul53 last edited by

                    @paul53
                    Heute admin Adapter Update und der Datenpunkt wurde neu angelegt. Jetzt weiß ich welcher Adapter das immer wieder neu anlegt...

                    mcm1957 1 Reply Last reply Reply Quote 0
                    • mcm1957
                      mcm1957 @Shadowhunter23 last edited by

                      @shadowhunter23

                      Bitte erstell ein Issue beim Adapter

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      899
                      Online

                      31.9k
                      Users

                      80.3k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      391
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo