Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. LUPUSEC Alarmanlage einbinden

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

LUPUSEC Alarmanlage einbinden

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
204 Beiträge 22 Kommentatoren 50.8k Aufrufe 14 Watching
  • Ä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.
  • SchubiS Offline
    SchubiS Offline
    Schubi
    schrieb am zuletzt editiert von
    #10

    Hab gerade nix zum testen - probier mal in diese Richtung (is nicht fertig und auch noch nicht vollständig)

    Bin auch kein Blockly Experte :?
    1904_unbenannt.png

    / Synology DS716+ / Logitech Harmony Ultimate / Netatmo / ESP8266 / RPi 3 / 4* Möller Easy 820 / Lupusec XT2 Plus /

    1 Antwort Letzte Antwort
    0
    • T Offline
      T Offline
      Tagiwara
      schrieb am zuletzt editiert von
      #11

      :roll: Ich glaube ich hab noch ne Menge zu lernen.

      Ich habe dein "Script" jetzt mal nachgebaut und beim Zusammenstellen erschlägt mich die Logik des Systems. Ich glaube ich denke viel zu kompliziert.

      Auf jeden Fall danke für die Hilfe… es funktioniert nämlich jetzt 🙂

      LG

      Frank

      1 Antwort Letzte Antwort
      0
      • StuebiS Offline
        StuebiS Offline
        Stuebi
        schrieb am zuletzt editiert von
        #12

        Ich habe das Lupusec Script für die XT2 Plus nochmals angepaßt. Achtung die Namen der Objekte habe ich angepaßt! Daher einmal den Baum mit allen Objekten unter javascript.0.lupusec löschen.

        ! ```
        `// *******************************************************************************
        // Beschreibung: Script und die Lupusec Geräte anzuglegen und diese in
        // regelmäßigen auszulesen. Weiterhin kann die Alarmanlage und
        // die Steckdosen geschaltet werden
        // Voraussetzung, Firmware 0.0.2.19E
        //
        // Version: 1.1 - Abfrage von Token für Post APIs
        // Version: 1.2 - Logout hinzugefügt
        // Version: 1.3 - Objektstruktur geändert auf lupusec.devices.<id>.
        // *******************************************************************************
        ! var instanz = 'javascript.0.';
        var request = require('request');
        ! // *******************************************************************************
        // Folgende Variablen anpassen
        // *******************************************************************************
        var ipLupusec = "https://192.168.20.x"; // IP Adresse oder Hostname von der Lupusec XT2
        var username = "user"; // Lupusec Benutzername (Benutzer mit Schreibberechtigung, bei Steckdosen)
        var password = "xxxxx!"; // Lupusec Passwort
        var pollSec = 10; // Alle x Sekunden Status bei der Alarmanlage abfragen
        ! // *******************************************************************************
        // Sonstige Variablen
        // *******************************************************************************
        var urlDeviceList = ipLupusec + "/action/deviceListGet";
        var urlDevicePSSList = ipLupusec + "/action/deviceListPSSGet";
        var urlPanelCond = ipLupusec + "/action/panelCondGet";
        var urlDeviceSwitch = ipLupusec + "/action/deviceSwitchPSSPost";
        var urlPanelCondPost = ipLupusec + "/action/panelCondPost";
        var urlTokenGet = ipLupusec + "/action/tokenGet";
        var urlLogoutPost = ipLupusec + "/action/logout";
        var urlDeviceEditGet = ipLupusec + "/action/deviceEditGet"; // nicht implementiert
        var urlDeviceEditPost = ipLupusec + "/action/deviceEditPost"; // nicht
        ! var auth = "Basic " + new Buffer(username + ":" + password).toString("base64");
        var debug = false;
        ! // *******************************************************************************
        // sind die Strings a und b identisch
        // *******************************************************************************
        function logging(text, deb = false) {

        if(deb === true) {
        
            if(debug === true) { console.log("Debug: " + text) }
        
        } else {
        
            console.log(text);
        
        }
        

        }

        ! // *******************************************************************************
        // sind die Strings a und b identisch
        // *******************************************************************************
        function aContainsB (a, b) {

        if(a === null || b === null) { return 0; }
        return a.toLowerCase().indexOf(b.toLowerCase()) >= 0;
        

        }

        ! // *******************************************************************************
        // Neues Objekt anlegen wenn nicht vorhanden
        // *******************************************************************************
        function newStat(id, type, value) {

        if(getState(id).notExist === true) {
        
            createState(id, value, {
                name: '',
                desc: '',
                role: 'state',
                type: type
            });
        
        }
        

        }

        ! // *******************************************************************************
        // Sonderzeichen, wie tabs, LF etc. aus String entfernen
        // *******************************************************************************
        function delSonderzeichen(text) {

            text =  text.replace(/\r/g,'');
            text =  text.replace(/\n/g,'');
            text =  text.replace(/\t/g,' ');
            text =  text.replace(/\f/g,'');
            return text;  
        

        }

        ! // *******************************************************************************
        // Lupusec Logout
        // *******************************************************************************
        function lupusecLogout() {

        logging("Starting Request in lupusecLogout", true);
        

        ! request({ url : urlLogoutPost,
        rejectUnauthorized: false
        },
        function (error, response, body) {

                 if (error || response.statusCode !== 200) {
        
                    console.error("Fehler in funciton lupusecLogout: " + error);
        
                } else if(body) {
        
                    body =  delSonderzeichen(body);
                    logging("lupusecLogout : " + body,true);
                    try {
                        var j = JSON.parse(body);
                        logging("lupusecLogout (JSON.parse) : "  + JSON.stringify(j),true);
                        logging("lupusecLogout : " + j.message, true);  
                    } catch(e) {
                        console.error("lupusecLogout : " + e); // error in the above string (in this case, yes)!
                        return; 
                    }
        
                }
        
        });
        

        ! }
        ! // *******************************************************************************
        // Liefert den Zustand der Lupusec Zentrale
        // *******************************************************************************
        function lupusPanelCondGet() {

        if (lupusPanelCondGet.running === undefined) {  lupusPanelCondGet.running = false; }
        
        function parse(body) {
        
            logging("Starting Parsing in lupusPanelCondGet", true);
        
            body =  delSonderzeichen(body);
            logging("lupusPanelCondGet : " + body,true);
            try {
                var j = JSON.parse(body);
            } catch(e) {
                console.error("lupusPanelCondGet : " + e); // error in the above string (in this case, yes)!
                return;
            }
            logging("lupusPanelCondGet (JSON.parse) : "  + JSON.stringify(j), true);
            setLupusStatus(j, "lupusec.panelcond", "");
        
        }
        

        !
        function getRequest() {

            if(lupusPanelCondGet.running === false) {
        
                logging("Starting Request in lupusPanelCondGet", true);
        
                lupusPanelCondGet.running = true;
        

        ! request({ url : urlPanelCond,
        rejectUnauthorized: false,
        headers : { "Authorization" : auth }
        },
        function (error, response, body) {
        ! if(error) {
        console.error("Fehler in funciton lupusPanelCondGet: " + error);
        } else if(body) {
        parse(body);
        }
        });
        ! lupusPanelCondGet.running = false;

            }
        
        }
        
        getRequest();
        

        }

        ! // *******************************************************************************
        // Lupusec Get Token for Post calls
        // *******************************************************************************
        function lupusecTokenGet(callback) {

        logging("Starting Request in lupusecTokenGet", true);
        

        ! request({ url : urlTokenGet,
        rejectUnauthorized: false,
        headers : { "Authorization" : auth }
        },
        function (error, response, body) {

                 if (error || response.statusCode !== 200) {
        
                    console.error("Fehler in funciton lupusecTokenGet: " + error);
                    return callback(error || {statusCode: response.statusCode});
        
                } else if(body) {
        
                    body =  delSonderzeichen(body);
                    logging("lupusecTokenGet : " + body,true);
                    try {
                        var j = JSON.parse(body);
                        logging("lupusecTokenGet (JSON.parse) : "  + JSON.stringify(j),true);
                        callback(null, j.message);  
                    } catch(e) {
                        console.error("lupusecTokenGet : " + e); // error in the above string (in this case, yes)!
                        return callback(e);
                    }
        
                }
        
        });
        

        ! }
        ! // *******************************************************************************
        // Liefert eine Liste aller angelernten Funkschalter / Aktoren der Lupusec Zentrale
        // *******************************************************************************
        function lupusecDeviceListPSSGet() {

        if (lupusecDeviceListPSSGet.running === undefined) {  lupusecDeviceListPSSGet.running = false; }
        
        function parse(body) {
        
            logging("Starting Parsing in lupusecDeviceListPSSGet", true);
        
            body =  delSonderzeichen(body);
            logging("lupusecDeviceListPSSGet : " + body,true);
             try {
                var j = JSON.parse(body).pssrows;
            } catch(e) {
                console.error("lupusecDeviceListPSSGet : " + e); // error in the above string (in this case, yes)!
                return;
            }
            logging("lupusecDeviceListPSSGet (JSON.parse) : "  + JSON.stringify(j), true);
        
            for(var i=0; i < j.length; i++) {
        
                var sensor = j[i];
                setLupusStatus(sensor, "lupusec.devices." + sensor.id + ".info", sensor.name);
        

        ! }

        }
        
        function getRequest() {
        
            if(lupusecDeviceListPSSGet.running === false) {
        
                logging("Starting Request in lupusecDeviceListPSSGet", true);
        
                lupusecDeviceListPSSGet.running = true;
        

        ! request({ url : urlDevicePSSList,
        rejectUnauthorized: false,
        headers : { "Authorization" : auth }
        },
        function (error, response, body) {
        ! if(error) {
        console.error("Fehler in funciton lupusecDeviceListPSSGet: " + error);
        } else if(body) {
        parse(body);
        }
        });
        ! lupusecDeviceListPSSGet.running = false;

            }
        
        }
        
        getRequest();
        

        }

        ! // *******************************************************************************
        // Liefert eine Liste aller Sensoren der Lupusec Zentrale
        // *******************************************************************************
        function lupusecDeviceListGet() {

        if (lupusecDeviceListGet.running === undefined) {  lupusecDeviceListGet.running = false; }
        
        function parse(body) {
        
            logging("Starting Parsing in lupusecDeviceListGet", true);
        
            body =  delSonderzeichen(body);
            logging("lupusecDeviceListGet : " + body,true);
            try {
                var j = JSON.parse(body).senrows;
            } catch(e) {
                console.error("lupusecDeviceListGet : " +  e); // error in the above string (in this case, yes)!
                return;
            }
            logging("lupusecDeviceListGet (JSON.parse) : "  + JSON.stringify(j), true);
        
            for(var i=0; i < j.length; i++) {
        
                var sensor = j[i];
        
                setLupusStatus(sensor, "lupusec.devices." + sensor.sid + ".info", sensor.name);
        
            }
        
        }
        
        function getRequest() {
        
            if(lupusecDeviceListGet.running === false) {
        
                logging("Starting Request in lupusecDeviceListGet", true);
        
                lupusecDeviceListGet.running = true;
        

        ! request({ url : urlDeviceList,
        rejectUnauthorized: false,
        headers : { "Authorization" : auth }
        },
        function (error, response, body) {

                        if(error) {
                            console.error("Fehler in funciton lupusecDeviceListGet: " + error);
                        } else if(body) {
                            parse(body);
                        }
                });
        

        ! lupusecDeviceListGet.running = false;

            }
        
        }
        
        getRequest();
        

        }

        ! // *******************************************************************************
        // Lupus Status setzen // json, pfad in Instanzen, Device Name
        // *******************************************************************************
        function setLupusStatus(jsonobject, objektverz, devicename) {
        ! Object.keys(jsonobject).forEach(function(key) {
        ! var value = jsonobject[key];
        var type = typeof value;
        ! if(Object.prototype.toString.call(value) === '[object Object]') {

                 if(objektverz.length >0) { key = objektverz + "." + key; }
                 setLupusStatus(value, key, devicename);
        

        ! } else {
        ! var vdevicename = "";
        var id;
        ! if(devicename.length > 0) { vdevicename = devicename + " " + key; } else { vdevicename = ""; }
        if(objektverz.length > 0) { id = objektverz + "." + key; } else { id = key; }

                if(getState(id).notExist === true) {
        
                    logging("Create State: " + id + " (" + value + ")");
        

        ! createState(id, value, {
        name: vdevicename,
        desc: '',
        role: 'state',
        type: type
        });

                    // für Key alarm_status legen wir zusätzlichen key an
                    if(key == "alarm_status") { 
        
                        key = "alarm_status_ex"; 
        
                        if(devicename.length > 0) { vdevicename = devicename + " " + key; } else { vdevicename = ""; }
                        if(objektverz.length > 0) { id = objektverz + "." + key; } else { id = key; }
        
                        if(value == "") { value = 0; } else { value = 1; }
        
                        logging("Create State: " + id + " (" + value + ")");
        
                        createState(id, value, {
                            name: vdevicename,
                            desc: '',
                            role: 'state',
                            type: 'number'
                        });
        
                    }
        
                } else {
        
                    if(key == "resp_mode") { value = "[" + value + "]"; }
        
                    logging("setLupusStatus : id = " + id + " = " + value, true);
                    if(getState(id).val != value) {  setState(id, value, true); }
        
                    // für Key alarm_status gibt es einen  zusätzlichen Wert
                    if(key == "alarm_status") { 
        
                        key = "alarm_status_ex";
        
                        if(devicename.length > 0) { vdevicename = devicename + " " + key; } else { vdevicename = ""; }
                        if(objektverz.length > 0) { id = objektverz + "." + key; } else { id = key; }
        
                        if(value == "") { value = 0; } else { value = 1; }
        
                        logging("setLupusStatus : id = " + id + " = " + value, true);
                        if(getState(id).val != value) {  setState(id, value, true); }
        
                    }
        
                }
        
            }
        

        ! });
        ! }
        ! // *******************************************************************************
        // Liefert eine Liste aller Sensoren der Lupusec Zentrale
        // *******************************************************************************
        function lupusecDeviceEditGet() {

        if (lupusecDeviceEditGet.running === undefined) {  lupusecDeviceEditGet.running = false; }
        
        function parse(sid, name, body) {
        
            logging("Starting Parsing in lupusecDeviceEditGet", true);
        
            body =  delSonderzeichen(body);
            logging("lupusecDeviceEditGet : " + body,true);
            try {
                var j = JSON.parse(body);
            } catch(e) {
                console.error("lupusecDeviceEditGet : " +  e); // error in the above string (in this case, yes)!
                return;
            }
            logging("lupusecDeviceEditGet (JSON.parse) : "  + JSON.stringify(j), true);
            setLupusStatus(j, "lupusec.devices." + sid + ".edit", name);
        
        }
        
        function getRequest() {
        
          var selectorLupusecType =  $('state[state.id=' + instanz + 'lupusec.devices.*.info.sid]');
        
            if(lupusecDeviceEditGet.running === false) {
        
                logging("Starting Request in lupusecDeviceEditGet", true);
        
                lupusecDeviceEditGet.running = true;
        

        ! selectorLupusecType.each(function(id,i) {
        ! var valueId = getState(id).val;
        var idParent = id.split(".").slice(0,-1).join(".");
        var idName = idParent + ".name";
        var valueName = getState(idName).val;

                    request.post({ url : urlDeviceEditGet, 
                              rejectUnauthorized: false,
                              headers : { "Authorization" : auth },
                              form :    { id: valueId }
                            },
                             function (error, response, body) {
        
                            if(error) {
                                console.error("Fehler in funciton lupusecDeviceEditGet: " + error);
                            } else if(body) {
                                parse(valueId,valueName,body);
                            }
                    });
        

        ! });

                lupusecDeviceEditGet.running = false;
        
            }
        
        }
        
        getRequest();
        

        }

        ! // *******************************************************************************
        // Schaltet Steckdosen, Relais und Rolladenrelas der Lupusec
        // *******************************************************************************
        function lupusDeviceSwitchPost() {

        var selectorLupusecType =  $('state[state.id=' + instanz + 'lupusec.devices.*.info.id]');
        
        if (lupusDeviceSwitchPost.subcriber === undefined) {  lupusDeviceSwitchPost.subcriber = []; }
        
        function findNewSwitches() {
        
            logging("Starting find new switch in lupusDeviceSwitchPost", true);
        
            selectorLupusecType.each(function(id,i) {
        
                var valueId     = getState(id).val;
                var idParent    = id.split(".").slice(0,-1).join(".");
                var idStatusEx  = idParent + ".status_ex";
                var idLevel     = idParent + ".level";
                var newEvent    = true;
        

        ! for (i=0; i<lupusdeviceswitchpost.subcriber.length; 1/i++)/{/if(lupusdeviceswitchpost.subcriber[i]="=" idparent)/newevent="false;" }/if(newevent)/lupusdeviceswitchpost.subcriber.push(idparent);/subscribebyid(idstatusex);/subscribebyid(idlevel);/});/function/subscribebyid(id)/on({id:/id,/change:/'ne'},/(data)/var/value="data.state.val;" oldvalue="data.oldState.val;" lasttime="data.state.lc;" if(value/!="oldValue)" logging("change/status/for/"/+/true);/idparent="id.split(".").slice(0,-1).join(".");" idsid="idParent" ".id";/valuesid="getState(idSid).val;" idlevel="idParent" ".level";/valuelevel="getState(idLevel).val;" idswitch="idParent" ".status_ex";/valueswitch="getState(idSwitch).val;" lupusectokenget(function(err,/token)/if/(!err)/request.post({/url/:/urldeviceswitch,/rejectunauthorized:/false,/headers/"authorization"/auth,/"x-token"/token/},/form/id:/valuesid,/switch:/valueswitch,/level:/(error,/response,/body)/if(error)/console.error("fehler/in/funciton/lupuspanelcondget:/error);/else/if(body)/findnewswitches();/****************************************************************************/schaltet/zustände/der/zentrale/lupusec/lupuspanelcondpost()/(lupuspanelcondpost.subscriber="==" undefined)/lupuspanelcondpost.subcriber="false;" findnewswitches()/logging("starting/lupuspanelcondpost",/if(lupuspanelcondpost.subcriber="==" false)/subscribebyid(instanz/"lupusec.panelcond.forms.pcondform1.mode");/"lupusec.panelcond.forms.pcondform2.mode");/area="idParent.substr(idParent.length-1,1);" logging("lupuspanelcondpost:/change/to/area,/urlpanelcondpost,/area:/mode:/);/start/aller/komponenten/start()/lupusecdevicelistget();/lupusecdevicelistpssget();/lupusecdeviceeditget();/lupuspanelcondget();/lupusdeviceswitchpost();/lupuspanelcondpost();/alle/x/sekunden/sensoren/auslesen/schedule("/pollsec//",/()/minuten/lupuseclogout();/start();/<e=""></lupusdeviceswitchpost.subcriber.length;></id>`
        ! ~~[b]~~Bitte statt Script jetzt den Lupusec Adapter nutzen.[/b] ( https://github.com/schmupu/ioBroker.lupusec )[/i][/i][/i]

        ioBroker auf Synology DS216+II im Docker Container

        1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          defrostx
          schrieb am zuletzt editiert von
          #13

          Aktuelle Firmware:HPGW-G 0.0.2.19E

          Gerätemodell:XT2 Plus

          Installierte Version:0.0.2.19E

          XT2 Plus

          20:07:47.098	[error]	javascript.0 TypeError: Cannot read property 'length' of null at script.js.common.Lupusec:375:26 at Array.forEach (native) at setLupusStatus (script.js.common.Lupusec:360:29) at parse (script.js.common.Lupusec:461:9) at Request._callback (script.js.common.Lupusec:492:29) at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22) at emitTwo (events.js:106:13) at Request.emit (events.js:191:7) at Request. (/opt/iobroker/node_modules/request/request.js:1163:10) at emitOne (events.js:96:13)
          20:07:47.160	[error]	Caught by controller[0]: at script.js.common.Lupusec:375:26
          20:07:47.160	[error]	Caught by controller[0]: at setLupusStatus (script.js.common.Lupusec:360:29)
          20:07:47.160	[error]	Caught by controller[0]: at parse (script.js.common.Lupusec:461:9)
          20:07:47.161	[error]	Caught by controller[0]: at Request._callback (script.js.common.Lupusec:492:29)
          
          

          Ich hab nur die IP angepasst, user+passwort.

          Was muss ich noch ändern?

          Er legt zwar die Objekte an, aber keine Werte dazu. Also muss doch der Zugriff erstein mal funktioniert haben oder?

          Wäre ein Traum wenn das funktionieren würde.

          1 Antwort Letzte Antwort
          0
          • D Offline
            D Offline
            defrostx
            schrieb am zuletzt editiert von
            #14

            mhh, nach einem Reboot hat er die Werte ausgelesen…

            Das ist voll Irre ! Das wäre doch nur noch kein kleiner Schritt zu einem echten "Adapter" 🙂

            Ich teste ein wenig rum und berichte.

            1 Antwort Letzte Antwort
            0
            • D Offline
              D Offline
              defrostx
              schrieb am zuletzt editiert von
              #15

              Für alle die noch basteln habe ich für mich einen gangbaren Weg gefunden.

              In der Lupusec muss an jedem Sensor ein Sensoevent eingestellt werden.

              https://ibb.co/cUAchH ~~damit lässt sich dann eine Regel bei "Automatisierung" starten die dann eine Action URL auslöst und dann im ioBroker das .js triggert.

              https://ibb.co/hjx7hH ~~````
              http://ip_iobroker:1880/lupusec?Status=script_laden

              Regelwerk: Wenn der Sensor auf Bypass steht muss jeweils eine eigene Regel erstellt werden. offen_Bypass , geschlossen Bypass.
              
              Bei „scharfen“ Sensoren ist das nicht nötig. Für die Erkenntnis hats ein wenig gebraucht :-)
              
              nun sollte die URL angetriggert werden. Dies kann man mit einem netcat in der console leicht überprüfen.
              
              Im node-red des iobrokers gibt es dann ein kleines script welches das obere JS zum auslesen ermutigt. (javascript.0.scriptEnabled.common.Lupusec) muss natürlich an eure speicherposition angepasst werden.
              
              

              [{"id":"ec85eb23.a98858","type":"debug","z":"5dc650a8.915b7","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":430,"y":300,"wires":[]},{"id":"8e592a08.8f6ef8","type":"http in","z":"5dc650a8.915b7","name":"","url":"/lupusec","method":"get","upload":false,"swaggerDoc":"","x":170,"y":360,"wires":[["ec85eb23.a98858","76e429bc.3db278","dbb500c7.4f64e"]]},{"id":"76e429bc.3db278","type":"template","z":"5dc650a8.915b7","name":"page","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"\n \n \n

              OK

              \n \n","x":350,"y":400,"wires":[["a6458a79.81edd8"]]},{"id":"a6458a79.81edd8","type":"http response","z":"5dc650a8.915b7","name":"","statusCode":"","headers":{},"x":530,"y":380,"wires":[]},{"id":"dbb500c7.4f64e","type":"ioBroker out","z":"5dc650a8.915b7","name":"scriptEnabled.common.Lupusec","topic":"javascript.0.scriptEnabled.common.Lupusec","ack":"false","autoCreate":"false","x":450,"y":200,"wires":[]}]

              
              Mit dem Zusatz
              

              var polling = 0; //zeitliche Abfrage aktivieren 0,1

              
              im variablenteil uns einem
              
              

              if(polling == true) {
              }

              
              in der Funktion start() wird der automatische Start aller 10 Sekunden verhindert.
              
              Ob es irgendwie einfacher geht kann ich nicht sagen, aber man hat beim Schaltvorgang ca 1 sekunde Verzögerung bis es auf dem Tablet sichtbar wird.
              
              Damit kann ich ganz gut leben.
              
              Viel Spass~~~~
              1 Antwort Letzte Antwort
              0
              • StuebiS Offline
                StuebiS Offline
                Stuebi
                schrieb am zuletzt editiert von
                #16

                @defrostx:

                mhh, nach einem Reboot hat er die Werte ausgelesen…

                Das ist voll Irre ! Das wäre doch nur noch kein kleiner Schritt zu einem echten "Adapter" 🙂

                Ich teste ein wenig rum und berichte. `

                Ich bin gerade dabei einen Adapter für die Lupusec Alarmanlage zu erstellen. Du kannst gerne einmal testen. Es ist aber ein Alpha, Alpha, Alpha Version!

                https://github.com/schmupu/ioBroker.lupusec

                VG

                ioBroker auf Synology DS216+II im Docker Container

                1 Antwort Letzte Antwort
                0
                • SchubiS Offline
                  SchubiS Offline
                  Schubi
                  schrieb am zuletzt editiert von
                  #17

                  @tstueben:

                  Vielen Dank für deine Arbeit!

                  Hab leider im Moment keine Zeit zum Testen. Dein Script funktioniert ja schon wunderbar! 😄

                  Ich werde den Adapter bald installieren und berichten.

                  LG!

                  / Synology DS716+ / Logitech Harmony Ultimate / Netatmo / ESP8266 / RPi 3 / 4* Möller Easy 820 / Lupusec XT2 Plus /

                  1 Antwort Letzte Antwort
                  0
                  • StuebiS Offline
                    StuebiS Offline
                    Stuebi
                    schrieb am zuletzt editiert von
                    #18

                    @Schubi:

                    @tstueben:

                    Vielen Dank für deine Arbeit!

                    Hab leider im Moment keine Zeit zum Testen. Dein Script funktioniert ja schon wunderbar! 😄

                    Ich werde den Adapter bald installieren und berichten.

                    LG! `
                    Super Danke! Ich bin gespannt, was Du dann erzählst.

                    ioBroker auf Synology DS216+II im Docker Container

                    1 Antwort Letzte Antwort
                    0
                    • N Offline
                      N Offline
                      nousefor82
                      schrieb am zuletzt editiert von
                      #19

                      Hallo,

                      ich in absoluter IO Neuling. Habe mir gestern den Adapter geladen. Die Werte meiner Aktoren wurden alle ausgelesen. Beim Test jedoch, ob sich die Variablen ändern bei Türöffnung hat sich nichts geändert. Also der Türöffner hat nicht den „State“ von CLOSE auf OPEN gewechselt.

                      Muss ich hierzu an der XT2+ noch was zusätzlich einstellen?

                      VG

                      1 Antwort Letzte Antwort
                      0
                      • StuebiS Offline
                        StuebiS Offline
                        Stuebi
                        schrieb am zuletzt editiert von
                        #20

                        @nousefor82:

                        Hallo,

                        ich in absoluter IO Neuling. Habe mir gestern den Adapter geladen. Die Werte meiner Aktoren wurden alle ausgelesen. Beim Test jedoch, ob sich die Variablen ändern bei Türöffnung hat sich nichts geändert. Also der Türöffner hat nicht den „State“ von CLOSE auf OPEN gewechselt.

                        Muss ich hierzu an der XT2+ noch was zusätzlich einstellen?

                        VG `
                        Hallo,

                        hast Du auch den Adapter den Lupusec Adapter installiert oder nutzt das Skript aus dem Thread hier? Bitte nutze den Lupusec Adapter. Das Skript passe ich nicht mehr an.

                        Adapter: https://github.com/schmupu/ioBroker.lupusec

                        Welche Aktoren besitzt Du denn? Ich benötige einmal die Werte die in den Feldern type unter Objekte (Bsp. lupusec.0.devices.RFxxxxxx.type). Ist im Logfile ein Fehler zu erkennen? Der Status der Sensoren (Typ 4, Türsensoren) steht im Feld status (OPEN oder CLOSE) und status_ex (true oder false).

                        Ein Screenshot kann ich leider nicht hochladen, da ich den Fehler "Das Kontingent für Dateianhänge ist bereits vollständig ausgenutzt." erhalte.

                        VG

                        Stübi

                        ioBroker auf Synology DS216+II im Docker Container

                        1 Antwort Letzte Antwort
                        0
                        • N Offline
                          N Offline
                          nousefor82
                          schrieb am zuletzt editiert von
                          #21

                          Servus,

                          ja den Adapter. Vielen Dank dafür im übrigen 😉

                          Hier das Log mit den Fehlereinträgen:

                          2018-07-26 22:05:19.492 error Fehler in funciton DevicePSSListGet: Error: socket hang up

                          lupusec.0 2018-07-26 22:05:19.492 error Fehler in Service https://192.168.188.100:80/action/deviceListPSSGet: Error: socket hang up

                          lupusec.0 2018-07-26 22:05:19.490 error Fehler in funciton PanelCondGet: Error: socket hang up

                          lupusec.0 2018-07-26 22:05:19.489 error Fehler in Service https://192.168.188.100:80/action/panelCondGet: Error: socket hang up

                          lupusec.0 2018-07-26 22:05:19.488 error Fehler in funciton DeviceListGet: Error: socket hang up

                          lupusec.0 2018-07-26 22:05:19.487 error Fehler in Service https://192.168.188.100:80/action/deviceListGet: Error: socket hang up

                          Hier z.B. die Tür/Fenster-Sensor für die Terrassentür.

                          Diese steht aktuell offen, ist aber laut adapter auf state: CLOSE

                          type state Terrassentür Sensortypnummer state value 4

                          Aktuell sind 3 Tür/Fenster Sensoren und 2 Keypads installiert.

                          VG

                          Jörg

                          1 Antwort Letzte Antwort
                          0
                          • StuebiS Offline
                            StuebiS Offline
                            Stuebi
                            schrieb am zuletzt editiert von
                            #22

                            @nousefor82:

                            Servus,

                            ja den Adapter. Vielen Dank dafür im übrigen 😉

                            Hier das Log mit den Fehlereinträgen:

                            2018-07-26 22:05:19.492 error Fehler in funciton DevicePSSListGet: Error: socket hang up

                            lupusec.0 2018-07-26 22:05:19.492 error Fehler in Service https://192.168.188.100:80/action/deviceListPSSGet: Error: socket hang up

                            lupusec.0 2018-07-26 22:05:19.490 error Fehler in funciton PanelCondGet: Error: socket hang up

                            lupusec.0 2018-07-26 22:05:19.489 error Fehler in Service https://192.168.188.100:80/action/panelCondGet: Error: socket hang up

                            lupusec.0 2018-07-26 22:05:19.488 error Fehler in funciton DeviceListGet: Error: socket hang up

                            lupusec.0 2018-07-26 22:05:19.487 error Fehler in Service https://192.168.188.100:80/action/deviceListGet: Error: socket hang up

                            Hier z.B. die Tür/Fenster-Sensor für die Terrassentür.

                            Diese steht aktuell offen, ist aber laut adapter auf state: CLOSE

                            type state Terrassentür Sensortypnummer state value 4

                            Aktuell sind 3 Tür/Fenster Sensoren und 2 Keypads installiert.

                            VG

                            Jörg `

                            okay, ändere einmal beim Lupusec Adapter unter Instanzen den Port auf 443 wenn Du https nutzt, d.h. wenn Du die Alarmanlage im Browser unter https://192.168.188.100 aufrufst oder lasse den Port auf 80 und deaktiviere https wenn Du http nutzt, d.h. wenn Du die Alarmanlage im Browser mit http://192.168.188.100 aufrufst. Dann sollte es hoffentlich gehen. Ich bin gespannt!

                            ioBroker auf Synology DS216+II im Docker Container

                            1 Antwort Letzte Antwort
                            0
                            • N Offline
                              N Offline
                              nousefor82
                              schrieb am zuletzt editiert von
                              #23

                              Hi,

                              das war's!!!

                              SUPER!!! VIELEN VIELEN DANK!

                              Ist möglich das Key-Pad ebenfalls zu integriern, aso Eingaben über VIS zu machen und somit XT scharf bzw. unscharf zu schalten?

                              1 Antwort Letzte Antwort
                              0
                              • StuebiS Offline
                                StuebiS Offline
                                Stuebi
                                schrieb am zuletzt editiert von
                                #24

                                @nousefor82:

                                Hi,

                                das war's!!!

                                SUPER!!! VIELEN VIELEN DANK!

                                Ist möglich das Key-Pad ebenfalls zu integriern, aso Eingaben über VIS zu machen und somit XT scharf bzw. unscharf zu schalten? `

                                das geht jetzt schon. Du kannst mal den Wert für Area 1 unter folgenden Objekt ändern: lupusec.0.status.mode_pc_a1 (Hier muss 0 = Disarm, 1 = Arm, 2 = Home1, 3 = Home2, 4 = Home3 stehen). Den Zustand für Area 2 änderst Du unter lupusec.0.status.mode_pc_a2

                                Ist es das was Du gesucht hast?

                                ioBroker auf Synology DS216+II im Docker Container

                                1 Antwort Letzte Antwort
                                0
                                • N Offline
                                  N Offline
                                  nousefor82
                                  schrieb am zuletzt editiert von
                                  #25

                                  Hi,

                                  wahnsinn! Das heißt ich kann hier mir einem normalem Button den Status ändern…funktioniert hervorragend! Bin begeistert!

                                  Was ich aber eigentlich meinte, kann ich den Code, den ich ja normalerweise über das Keypad eingeben würde, über VIS eingeben?

                                  VG

                                  Jörg

                                  1 Antwort Letzte Antwort
                                  0
                                  • StuebiS Offline
                                    StuebiS Offline
                                    Stuebi
                                    schrieb am zuletzt editiert von
                                    #26

                                    @nousefor82:

                                    Hi,

                                    wahnsinn! Das heißt ich kann hier mir einem normalem Button den Status ändern…funktioniert hervorragend! Bin begeistert!

                                    Was ich aber eigentlich meinte, kann ich den Code, den ich ja normalerweise über das Keypad eingeben würde, über VIS eingeben?

                                    VG

                                    Jörg `

                                    Hmm, bisher geht es noch nicht. Ich schaue einmal ob ich das umsetzten kann. Schaffe ich aber erst am Wochenende.

                                    Nachteil ist aber, das ich den Code in einem Objekt speichern muss. Damit ist der PIN in ioBroker sichtbar.

                                    Gesendet von iPhone mit Tapatalk

                                    ioBroker auf Synology DS216+II im Docker Container

                                    1 Antwort Letzte Antwort
                                    0
                                    • N Offline
                                      N Offline
                                      nousefor82
                                      schrieb am zuletzt editiert von
                                      #27

                                      Ok, verstehe. Würdest du das bei dir integrieren?

                                      Bitte keine Eile….ich bin jetzt schon total happy, wie gut das hier funktioniert!

                                      VG

                                      jörg

                                      1 Antwort Letzte Antwort
                                      0
                                      • StuebiS Offline
                                        StuebiS Offline
                                        Stuebi
                                        schrieb am zuletzt editiert von
                                        #28

                                        @nousefor82:

                                        Ok, verstehe. Würdest du das bei dir integrieren?

                                        Bitte keine Eile….ich bin jetzt schon total happy, wie gut das hier funktioniert!

                                        VG

                                        jörg `

                                        Wenn es geht, werde ich es in den Adapter einbauen.

                                        Gesendet von iPhone mit Tapatalk

                                        ioBroker auf Synology DS216+II im Docker Container

                                        1 Antwort Letzte Antwort
                                        0
                                        • N Offline
                                          N Offline
                                          nousefor82
                                          schrieb am zuletzt editiert von
                                          #29

                                          Dann bin ich gespannt!

                                          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

                                          318

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe