Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. kleines Alarscript benötigt Hilfe

    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

    kleines Alarscript benötigt Hilfe

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

      Hallo Gemeinde, ich habe hier versucht ein kleiner script zu schreiben was mich bei Abwesenheit per telegram benachrichtigt wenn ein fester geöffnet wurde. habe dazu aus dem Status Fenster script was hier sehr hoch im Umlauf ist den Datenpunkt der Anzahl Fenster auf als trigger verwendet. nur irgendwie löst es nicht aus wenn die Anwesenheit false ist?! kann mir jemand helfen?

      danke euch!

      //AW
      const idaw = 'hm-rega.0.950'
      const idaxel = "hm-rega.0.16372"
      const idlaura = "hm-rega.0.16371"
      
      var aw = getState(idaw).val;
      var axel = getState(idaxel).val;
      var laura = getState(idlaura).val;
      
      //Fenster/Türen
      const idfenster = 'javascript.0.Status.Fenster.Anzahl_auf'
      
      var fenster = getState(idfenster).val;
      
      //Funktion keine Anwesend
      function alarm() {
          var text = [];
          sendTo('telegram.0', {
              text:  text + ' wurde geöffnet !!!',
          });
      }
      
      on(idfenster, function(dp) {
          fenster = dp.state.val;
          if(!aw) alarm();
      });
      
      
      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @fischi87 last edited by

        @fischi87
        Es wird nicht auf Änderungen von Anwesenheit reagiert.
        Vorschlag:

        const idaw = 'hm-rega.0.950'
         
        var aw = getState(idaw).val;
         
        //Fenster/Türen
        const idfenster = 'javascript.0.Status.Fenster.Anzahl_auf'
         
        on(idaw, function(dp) {
            aw = dp.state.val;
        });
         
        on(idfenster, function(dp) {
            if(dp.state.val && !aw) {
                sendTo('telegram.0', {
                    text:  'Ein Fenster wurde geöffnet !!!',
                });
            }
        });
        
        fischi87 1 Reply Last reply Reply Quote 0
        • fischi87
          fischi87 @paul53 last edited by

          @paul53

          Hallo Paul, danke erstmal für deine antwort. Komm im Moment nicht an das Skript ran aber wieso muss ich auf die aw triggern?

          Danke

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

            @fischi87 sagte: wieso muss ich auf die aw triggern?

            Weil sonst der Anwesenheitsstatus verwendet wird, der bei Skriptstart vorliegt. Ohne Trigger ändert er sich nicht mehr.

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

              @paul53

              Aha okay. Noch eine Frage, würde ich jetzt jedesmal wenn sich der Fenster State ändert eine Nachricht bekommen also auch wenn das Fenster wieder geschlossen wurde? Möchte nämlich nur eine Nachricht bekommen wenn geöffnet wurde und nicht wieder eine wenn geschlossen wurde?!

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

                @fischi87 sagte: eine Nachricht bekommen also auch wenn das Fenster wieder geschlossen wurde?

                Es kommt nur eine Nachricht, wenn mind. ein Fenster offen ist (geöffnet wird). Wenn zwei Fenster offen sind und eines wird geschlossen, kommt allerdings auch eine Nachricht.
                Wenn nur beim Öffnen - egal wie viele Fenster - eine Nachricht kommen soll, ändere den Trigger:

                on({id: idfenster, change: 'gt'}, function() {
                    if(!aw) {
                        sendTo('telegram.0', {
                            text:  'Ein Fenster wurde geöffnet !!!',
                        });
                    }
                });
                
                fischi87 1 Reply Last reply Reply Quote 0
                • fischi87
                  fischi87 @paul53 last edited by

                  @paul53 sagte in kleines Alarscript benötigt Hilfe:

                  on({id: idfenster, change: 'gt'}, function() { if(!aw) { sendTo('telegram.0', { text: 'Ein Fenster wurde geöffnet !!!', }); } });

                  danke dir, nach kurzem test, funktioniert erstmal ganz gut. ich test weiter!

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  572
                  Online

                  31.8k
                  Users

                  80.0k
                  Topics

                  1.3m
                  Posts

                  2
                  7
                  253
                  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