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. Mehrere on()-Abfragen, mit vorheriger State-Abfrage

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.3k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

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

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
3 Beiträge 2 Kommentatoren 591 Aufrufe
  • Ä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.
  • PaSiP Offline
    PaSiP Offline
    PaSi
    schrieb am zuletzt editiert von
    #1

    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 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      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);
      });
      
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • PaSiP Offline
        PaSiP Offline
        PaSi
        schrieb am zuletzt editiert von
        #3

        Herzlichen Dank,

        auf die Idee bin ich keinesfalls gekommen.

        Werde ich gleich mal ausprobieren :)

        Gesendet von meinem SM-G955F mit Tapatalk

        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

        649

        Online

        32.7k

        Benutzer

        82.3k

        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