Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Script: Alle Taster bzw. alle Bewegungsmelder abfragen

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    5
    1
    108

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    150

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    865

Script: Alle Taster bzw. alle Bewegungsmelder abfragen

Scheduled Pinned Locked Moved JavaScript
3 Posts 2 Posters 2.6k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • P Offline
    P Offline
    pix
    wrote on last edited by
    #1

    Hallo,

    ich habe nochmals festgestellt, dass ich einige Skripts aus CCU.IO nicht ohne weiteres in iobroker portieren kann. Die nächste Baustelle: Alarmanlage. Wenn die Alarmanlage scharf ist, soll jeder Tastendruck auf einem Wandtaster (PRESS_LONG und PRESS_SHORT) zu einer Pushnachricht führen. Wenn die Alarmanlage nicht scharf ist, dann soll nur geloggt werden.

    Bisher sah das in CCU.IO so aus (eigenes Gewerk "Taster"):

    var idAnwesenheit = 100000,   // CCU.IO Variable Anwesenheit (abwesend; anwesend)
        idAlarmanlage = 100003;      // CCU.IO Variable Alarmanlage ValueList: 'unscharf;scharf')
    
    subscribe( {
        deviceType: /HM-PB-4-WM|HM-PB-2-WM/,
        val: true
    }, function (obj) {
        var alarmanlage = getState(idAlarmanlage),
            room = obj.channel.roomNames[0],
            dauer,
            druck = obj.name,
            msg;
        if (alarmanlage == 1) { // Alarmanlage scharf (Teil 1)
            msg = obj.channel.name + ' wurde bei scharfer Alarmanlage gedrückt.';
            if (msg.indexOf('Statistik') != -1) { // "Statistik" im Namen enthalten
            } else { // "Statistik" NICHT im Namen enthalten
                log(msg);
                // ALARMIERUNG bei Bewegung und Abwesenheit
                prowl.push(msg, 'CCU.IO Alarm', {
                    // providerkey: 'my-provider-key',
                    priority: 2,
                    // url: 'http://www.ccu.io'
                }, function( err, remaining ){
                    if( err ) throw err;
                    log( 'Prowl Nachricht verschickt. In dieser Stunde können noch ' + remaining + ' Nachrichten verschickt werden.' );
                });
                email({
                    to: "xxx@xxxx.com",
                    subject: "Alarm - Einbruchmeldung",
                    text: 'Achtung! ' + msg
                });
                // Ende Alarmierung
            }
        } else if (alarmanlage == 0) { // Alarmanlage unscharf (Teil 2)
            if (druck.indexOf('PRESS_SHORT') != -1) {
                dauer = 'kurz';
            } else if (druck.indexOf('PRESS_LONG') != -1) {
                dauer = 'lang';
            }
            msg = obj.channel.name + ' wurde ' + dauer + ' gedrückt';
            if (msg.indexOf('Statistik') != -1) { // "Statistik" im Namen enthalten
            } else { // "Statistik" NICHT im Namen enthalten
                log(msg);
                // log('Datenpunkt-Name: '+obj.name);
                // log('Kanal-Name: '+obj.channel.name);
                // log('Geräte-Name: '+obj.device.name);
            }
        }
    });
    
    

    Wenn im Kanalnamen "Statistik" enthalten ist, handelt es sich um ein CUxD Wrapper State Device. Das soll nicht gemeldet werden, daher die Abfrage.

    Ich habe an anderer Stelle im Forum schon mal nach einem Skript zur Fensterüberwachung gefragt. Leider hilft es mir bei diesem Problem nicht weiter, da ich wissen möchte, wie ich an Kanalname, Devicename und Objektname herankomme.

    Das Skript wird dann später dupliziert und auf die Nutzung mit Bewegungsmeldern angepasst ( deviceType: /HM-Sec-MDIR|HM-Sen-MDIR-WM55/, name: /MOTION/, func: Sicherheit)

    Kann mir jemand helfen?

    Gruß

    Pix

    ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

    1 Reply Last reply
    0
    • P Offline
      P Offline
      pix
      wrote on last edited by
      #2

      Habe nun mal selbst etwas rumgebastelt und bin ganz zufrieden. Fast. :D

      createState('Optin_IR_melden', 0, {/*forceCreation: 'true', */name: 'Optin IR Bewegung melden', /*desc: 'Soll Bewegung bei scharfer Alarmanlage gemeldet werden?',*/ type: 'number', states:['nicht melden','melden']});
      
      var idAnwesenheit = "javascript.0.Anwesenheit"/*Status Anwesenheit*/, // (abwesend; anwesend)
          idAlarmanlage = "javascript.0.Alarmanlage"/*Status Alarmanlage (r)*/, // (unscharf;scharf)
          idMeldenPush = "javascript.0.Optin_IR_melden"/*Optin IR Bewegung melden*/; // (nicht melden;melden)
      
      $('channel[state.id=*.MOTION](functions=Sicherheit)').on(function (obj) {
          // log('New state ' + obj.id + ' = ' + obj.newState.val, 'info'); // Jede Status wird gemeldet (auch false)
          if (obj.newState.val === true) { // Wenn Bewegung erkannt
              var alarmanlage = getState(idAlarmanlage),
                  optin_push = getState(idMeldenPush),
                  nachricht = 'bisher undefiniert';
              if (alarmanlage == 1) { // Alarmanlage scharf
                  nachricht = 'Gerät '+ obj.id + ' hat Bewegung bei scharfer Alarmanlage erkannt';
                  if (optin_push == 1) {
                      // Alarmierung bei Bewegung und Alarmanlage scharf
                      sendTo("pushover", {
                          message: nachricht,
                          title: 'Alarm',
                          priority: 1
                      });
                  }
                  log(nachricht,'info');
              } else { // Alarmanlage unscharf -> nur Log
                  nachricht = 'Gerät '+ obj.id + ' hat Bewegung erkannt';
                  log(nachricht, 'info');
                  /* // Alter Code aus CCU.IO
                  log('Datenpunkt-Name: '+obj.name, 'info');
                  log('Kanal-Name: '+obj.channelName, 'info');
                  log('Geräte-Name: '+obj.deviceName, 'info');
                  */
              }
         } // Ende Bewegung erkannt
      });
      

      ergibt z.B. diesen Logeintrag:

      `2015-03-29 19:35:19.926  - [32minfo[39m: javascript.0 script.js.Alarm_PIR_Bewegung: Gerät hm-rpc.0.GEQ0007961.1.MOTION hat Bewegung erkannt[/code]`
      
      Ich möchte natürlich gern die Bezeichnung des Gerätes anzeigen lassen, nicht die id mit Seriennummer. Habe schon einiges probiert, aber komme nicht weiter. Was muss ich also statt _~~[i]~~obj.id[/i]_ nehmen?
      
      Gruß
      
      Pix
      

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Reply Last reply
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        wrote on last edited by
        #3

        obj.id gibt bei mir die id aus.

        Dann habe ich obj.name getestet, wie es bei Dir im auskommentierten Teil (ccu.io Script) steht.

        Dann wird bei mir der Name ausgegeben.

        In der hm-rega Instanz ist CUxD bei mir nicht angeklickt (nur rfd).

        $('channel[state.id=*.MOTION](functions=Bewegung)').on(function (obj) {
            // log('New state ' + obj.id + ' = ' + obj.newState.val, 'info'); // Jede Status wird gemeldet (auch false)
            if (obj.newState.val === true) { // Wenn Bewegung erkannt
              log('New state ' + obj.name + ' = ' + obj.newState.val, 'info'); 
                    }
            });
        

        Log mit obj.id:

        javascript-0 2015-04-18 12:47:59 info script.js.Bewegung: New state hm-rpc.0.GEQ0003759.1.MOTION = true

        Log mit obj.name:

        javascript-0 2015-04-18 12:59:19 info script.js.Bewegung: New state Gäste Bewegungsmelder Waschtisch:1.MOTION = true

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Reply Last reply
        0

        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

        With your input, this post could be even better 💗

        Register Login
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        Support us

        ioBroker
        Community Adapters
        Donate

        514

        Online

        32.8k

        Users

        82.7k

        Topics

        1.3m

        Posts
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Home
        • Recent
        • Tags
        • Unread 0
        • Categories
        • Unreplied
        • Popular
        • GitHub
        • Docu
        • Hilfe