Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Mehrere on()-Abfragen, mit vorheriger State-Abfrage

    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

    Mehrere on()-Abfragen, mit vorheriger State-Abfrage

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

      Hallo,

      bin neu was Thema ioBroker angeht, daher komme ich bei meinem Projekt nicht so wirklich weiter.

      Ein kleines bisschen Javascript kann ich, jedoch halt nicht all zu gut - für meine bisherigen Scripte reichte es aus 🙂

      Ich erstelle z.Z. eine Alarmanlage wie ich Sie von meiner HM-IP App kenne - sprich mit Hüllschutz, Vollschutz, Still und Laut.

      Habe sehr lange die APP benutzt, habe jedoch dann zum ioBroker gewechselt (natürlich mit CCU ;)), weil ich dann doch gerne eine Übersicht auf einem Tablet haben wollte.

      Mein Problem ist, dass ich ehrlich gesagt nicht weiß, wie ich es bewerkstellige mit der subscribe abfrage.

      Meine Tür-/Fensterkontakte sitzen im Gewerk "funcLock", mein Bewegungsmelder im Gewerk "funcSecurity".

      Jedoch möchte ich dann auch, dass noch abgefragt wird, ob eben der Hüllschutz oder der Vollschutz an ist, oder eben stiller bzw. lauter Alarm

      Vielleicht denke ich da zu kompliziert und mir kann da jemand helfen

      Mein bisheriger Versuch funktioniert leider kein Stück 😕

      ! ````
      if ( getState(idAlarmanlage).val >= 1 && getState(idTyp).val === 0) { // Hüllschutz

      $('channel[state.id=*.STATE](functions="funcLock")').on(function (obj) {
      	if (obj.state.val) {
      
      		if(getState(idAlarmanlage).val > 0) {
      			log('Fenster/Türen wurden geöffnet');
      			setState(idAlarm, 1);
      			setState(idStatus, 3);
      			if ( getState(idModus).val === 0 ) { // Lautlos
      				setState(idSirene, false);
      			}
              }
      	}
      });
      

      ! } else if ( getState(idAlarmanlage).val >= 1 && getState(idTyp).val === 1) { // Vollschutz
      ! $('channelstate.id=*.STATE').on(function (obj) {
      if (obj.state.val) {

      		if(getState(idAlarmanlage).val > 0) {  
      			log('Fenster/Türen wurden geöffnet');
      			setState(idAlarm, 1);
      			setState(idStatus, 3);
      			if ( getState(idModus).val === 0 ) { // Lautlos
      				setState(idSirene, true);
      			}
              }
      	}
      });
      $('channel[state.id=*.MOTION](functions="funcSecurity")').on(function (obj) {
      	if (obj.state.val) {
      
      		if(getState(idAlarmanlage).val > 0) {  
      			log('Fenster/Türen wurden geöffnet');
      			setState(idAlarm, 1);
      			setState(idStatus, 3);
      			if ( getState(idModus).val === 0 ) { // Lautlos
      				setState(idSirene, true);
      			}
              }
      	}
      });
      

      }

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

        Die Trigger nicht in eine Verzweigung packen, denn der Code ausserhalb der Trigger wird nur einmal bei Skriptstart ausgeführt.

        function pruefe(motion) { // Übergabe: Trigger war "MOTION"
           // Hier die Prüfung mit allen Verzweigungen rein
        }
        
        $('channel[state.id=*.STATE](functions="funcLock")').on(function (obj) {
        	if (obj.state.val) pruefe(false);
        });
        
        $('channel[state.id=*.MOTION](functions="funcSecurity")').on(function (obj) {
        	if (obj.state.val) pruefe(true);
        });
        
        
        1 Reply Last reply Reply Quote 0
        • PaSi
          PaSi last edited by

          Herzlichen Dank,

          auf die Idee bin ich keinesfalls gekommen.

          Werde ich gleich mal ausprobieren 🙂

          Gesendet von meinem SM-G955F mit Tapatalk

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

          Support us

          ioBroker
          Community Adapters
          Donate

          875
          Online

          31.9k
          Users

          80.2k
          Topics

          1.3m
          Posts

          2
          3
          484
          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