Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Javascript Probleme // Beim Fenster öffnen Telegram versenden

    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

    Javascript Probleme // Beim Fenster öffnen Telegram versenden

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

      Hardware

      Homematic CCU2

      Sensor Homematic IP optisch für versteckten Einbau

      IoBroker Visualisiert im NAS auf einem Ubuntu

      Ich habe folgende Script gemacht:

      // Fenster geöffnet
      on({id: 'hm-rpc.1.xxx.1.STATE', change:'gt'}, function (obj) {
          if (getState('variablen.0.xy').val){
          sendTo('telegram', "Das Fenster x wurde geöffnet");
      }});
      
      

      Wenn die Objekt-Variable xy auf true ist, funktioniert es eigentlich.

      mein Problemm ist, ich bekomme nicht eine Nachricht, sondern 100-500

      Ich habe es bei on auch schon mit val:1 versucht

      hat einer eine Idee oder soll ich versuchen das ganze nach der ersten Meldung zu "deaktivieren" für eine bestimmte Zeit.

      müsste es bei über 20 Sensoren machen, daher lieber eine einfachere Lösung.

      1 Reply Last reply Reply Quote 0
      • T
        tempestas last edited by

        Edit: Fehler korrigiert

        Der Sensor meldet 0 = geschlossen, 1 = offen?

        Du hast ja letztlich eine doppelte Abfrage drin. Probier es mal so:

        // Fenster geöffnet
        
        var idFenster =  'hm-rpc.1.xxx.1.STATE';
        
        on(idFenster, function (dp) {
        
            if (dp.state.val == 1 )
        
            sendTo('telegram', "Das Fenster x wurde geöffnet");
        
        });
        
        

        für false/true:

        
        // Fenster geöffnet
        
        var idFenster =  'hm-rpc.1.xxx.1.STATE';
        
        on(idFenster, function (dp) {
            if (dp.state.val)     sendTo('telegram', "Das Fenster x wurde geöffnet");
        });
        
        
        1 Reply Last reply Reply Quote 0
        • T
          tempestas last edited by

          Nachtrag:

          gibt es einen Grund, dass du zwanzig Fenster mit zwanzig Skripten überwachst (so habe ich es verstanden).

          Du könntest es auch einfach so tun:

          
          // ############### Aussenhülle überwachen ##################
          
          $('channel[state.id=*.STATE](functions="Verschluss")').on(function (obj) {		// Bei mir sind die TFK im Gewerk Verschluss
              if (obj.state.val) { // Wenn Bewegung erkannt
          
                  nachricht = obj.deviceName + ' wurde geöffnet';
                  if(getState(idAlarmanlage).val > 0){                            // Alarmanlage aktiv und Bewegung in Türen oder Fenstern, kannst du auch weglassen, wenn du immer informiert werden willst
                  sendTo('telegram.0', {                                          // Nachricht per Telegram
                      text: nachricht        
                      }); 
                  }
                  if(debug) log(nachricht);
              }
          });
          
          
          1 Reply Last reply Reply Quote 0
          • D
            dpt last edited by

            @tempestas:

            Der Sensor meldet 0 = geschlossen, 1 = offen?

            Du hast ja letztlich eine doppelte Abfrage drin. Probier es mal so: `
            Besten Danke, ich probier es.

            Ja, er hat 0 oder CLOSED für geschlossen und 1 oder OPEN für offen

            Warum habe ich eine doppelte Abfrage?

            on({id: 'hm-rpc.1.xxx.1.STATE', change:'gt'}......
            
            

            Der aktiviert wenn es auf 1 springt.

            if (getState('variablen.0.xy').val).......
            
            

            Die Meldung geht nur raus, wenn xy auf True gestellt ist. diese Zeile ist so bei jeder Abfrage.

            Oder mache ich ein Überelgungsfehler?

            @tempestas:

            gibt es einen Grund, dass du zwanzig Fenster mit zwanzig Skripten überwachst (so habe ich es verstanden). `
            Die Idee ist auch zur eigen Kontrolle, du weisst genau welches offen ist.

            @tempestas:

            Du könntest es auch einfach so tun: `
            8-) Das kann ich trotzdem gebrauchen, für allg. Überwachung

            1 Reply Last reply Reply Quote 0
            • T
              tempestas last edited by

              argh sorry, da habe ich zu schnell gelesen.

              Du hast recht. Ich korrigiere und behaupte fortan das Gegenteil.

              Ich glaube, es hängt mit dem "gt" zusammen. Genau kann ich es nicht sagen. Mir fällt nur auf, dass meine TFK ja auch 0/1 melden, was aber genau wie false/true zu funktionieren scheibnt (sonst würde meine Alarmanlage nicht funktionieren, tut sie aber)

              
              // Fenster geöffnet
              
              var idFenster =  'hm-rpc.1.xxx.1.STATE';
              var idVariable = 'variablen.0.xy';
              
              on(idFenster, function (dp) {
                  if (dp.state.val && getState(idVariable).val === true)     sendTo('telegram', "Das Fenster x wurde geöffnet");
              });
              
              

              so?

              1 Reply Last reply Reply Quote 0
              • D
                dpt last edited by

                Besten Dank, nochmals für deine Bemühungen

                Schande auf mein Haupt :roll:

                Ich habe das Script in ein vorhandenes geschrieben, leider vor anstatt nach der Abschlussklammer des scheudle Befehl.

                Jetzt hat er alle Minute 21 neu on "Befehle" erstellt.

                Positives daran, das System hat es weggesteckt ohne das es in die Knie ging :mrgreen:

                Jetzt trotzdem eine Frage

                warum gehst du über eine "script Variable" und schreibst den Befehl nicht direkt ins on(id…........

                oder macht man dies einfach wegen der Übersicht.

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

                Support us

                ioBroker
                Community Adapters
                Donate

                645
                Online

                31.7k
                Users

                79.8k
                Topics

                1.3m
                Posts

                2
                6
                682
                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