Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Popup und Counter bei Bewegung

    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

    Popup und Counter bei Bewegung

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

      Hallo Pix,

      ich habe grade versucht dein Script für mich umzuändern. Leider stecke ich momentan fest. Vielleicht kannst du mir ja weiterhelfen.

      Mein Ziel ist es das am Tablet (also in Vis) ein Popup öffnet wenn der Briefträger einen Brief einwirft (möglichst mit der Einwurfzeit). Das Popup soll erst geschlossen werden, wenn es bestätigt wird. Oder wenn der Briefkasten geleert wird.

      Bisher habe ich dein Script wie folgt geändert:

      /* Oeffnungen zaehlen und in VIS anzeigen
      
      für hofi77 http://forum.iobroker.net/viewtopic.php?f=21&t=1703#p14520
      
      Bitte var idBewegungsmelder = 'hm-rpc.0.MEQ0215699.1', anpassen mit eigener Seriennummer
      
      erstellt: 14.11.2015 von Pix
      */
      
      createState('VIS.Briefkasten_voll_zeigen', false, {
         read: true,
         write: true,
         type: 'boolean',
         name: 'Briefkasten voll in VIS Widget anzeigen',
         desc: 'Steuervariable für VIS Widget Sichtbarkeit'
      });
      
      createState('VIS.Briefwürfe_zaehlen', 0, {
         read: true,
         write: true,
         type: 'number',
         name: 'Briefwürfe zählen',
         desc: 'Counter für Briefwürfe, wird mit schedule zurückgesetzt'
      });
      
      var idBewegungsmelder = 'hm-rpc.0.MEQ0215699.1',
          idCountMotion = 'VIS.Briefwürfe_zaehlen',
          idShowMotion = 'VIS.Briefkasten_voll_zeigen';
      
      on({
          id: idBewegungsmelder,
          val: true
      }, function (obj) {
          var counter = getState(idCountMotion).val; // bisherige Zahl aus Variable einlesen
          setState(idCountMotion, ++counter); // eins hochzählen
          setState(idShowMotion, true); // Steuerung VIS-Widget Sichtrbarkeit auf wahr
          setStateDelayed(idShowMotion, false, 10000); // nach 10.000 ms wieder ausblenden
      
      });
      
      // Mitternacht Zähler zurücksetzen
      schedule('0 * * * *', function () {
          setState(idCountMotion, 0);
      });
      

      Die IdBewegungsmelder habe ich in die ID von der Schließerkontaktschnittstelle geändert.

      Die beiden Variablen Briefwürfe_zaehlen, und VIS.Briefkasten_voll_zeigen sind angelegt und stehen auf 0 bzw. auf false.

      Dann habe ich das View Briefkasten angelgt und im View in dem es nachher angezeigt werden sooll eingebunden.

      Leider ändert sich die Variable nicht von null auf 1 beim öffnen des Briefkastens und die Zweite Variable geht auch nicht von false auf true.

      Hier der Widget Text für die Einbindung:

      [{"tpl":"tplContainerView","data":{"visibility-cond":"==","visibility-val":"true","gestures-offsetX":0,"gestures-offsetY":0,"gestures-swiping-value":"","gestures-rotating-value":"","gestures-pinching-value":"","gestures-swipeRight-value":"","gestures-swipeLeft-value":"","gestures-swipeUp-value":"","gestures-swipeDown-value":"","gestures-rotateLeft-value":"","gestures-rotateRight-value":"","gestures-pinchIn-value":"","gestures-pinchOut-value":"","contains_view":"Briefkasten","visibility-oid":"javascript.1.VIS.Briefkasten_voll_zeigen"},"style":{"left":"340px","top":"130px","width":"600px","height":"600px","z-index":"10"},"widgetSet":"basic"}]
      
      

      Und hier der Text für den View:

      {
        "settings": {
          "style": {
            "background": "orange",
            "background-size": "auto",
            "color": "white",
            "background_class": ""
          },
          "theme": "redmond",
          "sizex": "600",
          "sizey": "600",
          "gridSize": ""
        },
        "widgets": {
          "e00001": {
            "tpl": "tplHtml",
            "data": {
              "hm_id": 65535,
              "digits": "",
              "factor": 1,
              "min": 0,
              "max": 1,
              "step": 0.01,
              "html": "Die Post ist da :-)",
              "visibility-cond": "==",
              "visibility-val": 1,
              "refreshInterval": "0",
              "views": [
                "OG",
                "Garten"
              ],
              "gestures-offsetX": 0,
              "gestures-offsetY": 0,
              "gestures-swiping-value": "",
              "gestures-rotating-value": "",
              "gestures-pinching-value": "",
              "gestures-swipeRight-value": "",
              "gestures-swipeLeft-value": "",
              "gestures-swipeUp-value": "",
              "gestures-swipeDown-value": "",
              "gestures-rotateLeft-value": "",
              "gestures-rotateRight-value": "",
              "gestures-pinchIn-value": "",
              "gestures-pinchOut-value": ""
            },
            "style": {
              "left": "106px",
              "top": "102px",
              "width": "400px",
              "height": "69px",
              "text-shadow": "",
              "color": "darkred",
              "font-size": "45px",
              "font-family": "",
              "line-height": "",
              "font-weight": "700",
              "padding": ""
            },
            "widgetSet": "basic"
          },
          "e00002": {
            "tpl": "tplValueTimestamp",
            "data": {
              "oid": "hm-rega.0.16540",
              "visibility-cond": "==",
              "visibility-val": 1,
              "gestures-offsetX": 0,
              "gestures-offsetY": 0,
              "gestures-swiping-value": "",
              "gestures-rotating-value": "",
              "gestures-pinching-value": "",
              "gestures-swipeRight-value": "",
              "gestures-swipeLeft-value": "",
              "gestures-swipeUp-value": "",
              "gestures-swipeDown-value": "",
              "gestures-rotateLeft-value": "",
              "gestures-rotateRight-value": "",
              "gestures-pinchIn-value": "",
              "gestures-pinchOut-value": "",
              "format_date": "DD.MM.YYYY hh:mm:ss"
            },
            "style": {
              "left": "128px",
              "top": "174px",
              "width": "350px",
              "height": "58px",
              "color": "darkred",
              "font-size": "xx-large"
            },
            "widgetSet": "basic"
          },
          "e00003": {
            "tpl": "tplImage",
            "data": {
              "visibility-cond": "==",
              "visibility-val": 1,
              "refreshInterval": "0",
              "refreshOnWakeUp": "false",
              "refreshOnViewChange": "false",
              "gestures-offsetX": 0,
              "gestures-offsetY": 0,
              "gestures-swiping-value": "",
              "gestures-rotating-value": "",
              "gestures-pinching-value": "",
              "gestures-swipeRight-value": "",
              "gestures-swipeLeft-value": "",
              "gestures-swipeUp-value": "",
              "gestures-swipeDown-value": "",
              "gestures-rotateLeft-value": "",
              "gestures-rotateRight-value": "",
              "gestures-pinchIn-value": "",
              "gestures-pinchOut-value": "",
              "src": "/icons-mfd-png/message_mail_open.png"
            },
            "style": {
              "left": "169px",
              "top": "214px",
              "width": "218px",
              "height": "193px"
            },
            "widgetSet": "basic"
          },
          "e00004": {
            "tpl": "tplValueFloat",
            "data": {
              "oid": "javascript.1.VIS.Briefwürfe_zaehlen",
              "visibility-cond": "==",
              "visibility-val": 1,
              "is_comma": "true",
              "is_tdp": "false",
              "factor": "1",
              "gestures-offsetX": 0,
              "gestures-offsetY": 0,
              "gestures-swiping-value": "",
              "gestures-rotating-value": "",
              "gestures-pinching-value": "",
              "gestures-swipeRight-value": "",
              "gestures-swipeLeft-value": "",
              "gestures-swipeUp-value": "",
              "gestures-swipeDown-value": "",
              "gestures-rotateLeft-value": "",
              "gestures-rotateRight-value": "",
              "gestures-pinchIn-value": "",
              "gestures-pinchOut-value": ""
            },
            "style": {
              "left": "224px",
              "top": "420px",
              "width": "107px",
              "height": "58px",
              "color": "darkred",
              "font-size": "45px"
            },
            "widgetSet": "basic"
          }
        },
        "name": "Briefkasten",
        "rerender": false,
        "filterList": []
      }
      
      

      Kannst du mir sagen was falsch ist, das sich die Variablen nicht ändern?

      Und was muss ich noch hinzufügen, damit das Popup immer offen bleibt bzw. bis zu Bestätigung?

      Und wie bekomme ich den Bestätigen Button?

      Über deine Hilfe würde ich mich sehr freuen.

      Danke Gruß Sven

      1 Reply Last reply Reply Quote 0
      • P
        pix last edited by

        Hallo,

        da fehlt der komplette Datenpunkt.

        Statt````
        var idBewegungsmelder = 'hm-rpc.0.MEQ0215699.1',

        muss da````
        var idBewegungsmelder = 'hm-rpc.0.MEQ0215699.1.STATE',
        ````rein.
        
        In dieser Zeile````
        setStateDelayed(idShowMotion, false, 10000); // nach 10.000 ms wieder ausblenden
        ````wird noch festgelegt, dass das Popup nach 10s wieder verschwindet. Wenn das nicht sein soll, einfach auskommentieren ("//" an den Zeilenanfang schreiben)
        
        Gruß
        
        Pix
        [655_img_20190206_160552.jpg](/assets/uploads/files/655_img_20190206_160552.jpg)
        1 Reply Last reply Reply Quote 0
        • S
          Sven2013 last edited by

          Danke Pix,

          das ging ja wirklich sehr schnell. Ich habe es geändert und jetzt funktioniert es perfekt.

          Jetzt bleiben mir noch 2 Fragen übrig:

          1. Wie kann ich einen "Schließen" Button einfügen? Wenn ich das richtig verstehe, müsste das ja ein widget sein, das die Variable auf false setzt oder? Welche nehme ich da am besten?

          2. Wenn ich die Briefkastentür öffne, muss die Variable und der Zähler ja wieder auf null gesetzt werden. Wie bekomme ich das hin?

          Grus Sven

          1 Reply Last reply Reply Quote 0
          • P
            pix last edited by

            Hallo,

            freut mich, dass es klappt.

            zu 1)

            Du kannst ein Metro Tiel State Widget nehmen und false in "Wert" eintragen.

            zu 2)

            Dazu muss der Sensor, der die Tür überwacht, abgefragt werden. Wenn der true/false geht, dann Zähler auf 0.

            Gruß

            Pix

            1 Reply Last reply Reply Quote 0
            • S
              Sven2013 last edited by

              Hallo Pix,

              zu 2 klar wird die tür überwacht und zwar mit der gleichen Schnittstelle ist ja extra mit 3 Anschlüssen.

              Hier zielte meine Frage ganu darauf, welches widget mir diese Möglichkeit bietet sowohl die Variable auf false und den Zähler auf null zu stzen?

              Gruß Sven

              1 Reply Last reply Reply Quote 0
              • P
                pix last edited by

                Hallo,

                also, wenn es der gleiche Sensor, mit anderem Kanal ist, dann einfach den anderen Kanal in das Widget eintragen: hm-rpc.0.MEQ0215699.2.STATE oder hm-rpc.0.MEQ0215699.3.STATE

                Und zum Setzen von Werten eignet sich - wie gesagt - das Metro Tile State Widget. In OID dann zB "javascript.0.VIS.Briefkasten_voll_zeigen" eintragen und in Wert "false". Beim Drücken des Widgets wird der Wert gesetzt, das Popup verschwindet. Für das Zurücksetzen des Zählers beim Öffnen der Tür (ich gehe einfach von hm-rpc.0.MEQ0215699.2.STATE für die Tür aus) diesen Code mit ins Skript schreiben:

                on({
                    id: "hm-rpc.0.MEQ0215699.2.STATE",
                    val: true // hier ggf. false eintragen. Abhängig davon, ob Tür offen = true oder false
                }, function (obj) {
                    setState(idCountMotion, 0); // reset
                    setState(idShowMotion, false); // Steuerung VIS-Widget Sichtrbarkeit auf aus
                });
                
                
                1 Reply Last reply Reply Quote 0
                • S
                  Sven2013 last edited by

                  Hallo Pix,

                  Sorry für die verspätete Antwort. 1000 dank für deine Hilfe es funktioniert wunderbar.

                  Ich freue mich über die schnelle und fachlich super gelungene Unterstützung.

                  Kannst du mir vielleicht auch noch einen Tipp geben was in das Script muss, damit bei der Briefkastenöffnung automatisch in das passende View (in dem mein popup geöffnet wird) gewechselt wird.

                  Gruß Sven

                  Gesendet von iPhone mit Tapatalk

                  1 Reply Last reply Reply Quote 0
                  • P
                    pix last edited by

                    Hallo Sven,

                    dafür gibt es in vis.0 die Datenpunkte control.instance, control.data und control.command (auch als Objekt), Beschreibung https://github.com/ioBroker/ioBroker.vis/blob/master/README.md#control-interface

                    Allerdings nutze ich das nicht, da es auf dem iPad im Vollbildmodus http://forum.iobroker.de/viewtopic.php?f=30&t=1477&p=19858&hilit=ipad+instanz&sid=23758ed301991316f9ef1b6d59c7fc9a#p19858 nicht funktioniert :?

                    Du kannst auf den Bewegungsmelder reagieren

                    deklariert ist ja bereits

                    <size size="85">var idBewegungsmelder = 'hm-rpc.0.MEQ0215699.1.STATE'</size>

                    Dann geht

                    on(idBewegungsmelder, function (obj) {
                        log('Briefkasten betätigt, View wird gewechselt');
                        setState (vis.0.control.command, {instance: 'FFFFFFFF', command: 'cmd', data: 'name_der_view'}); // hier den Namen der Ziel-View eintragen
                    });
                    
                    

                    Gruß

                    Pix

                    1 Reply Last reply Reply Quote 0
                    • S
                      Sven2013 last edited by

                      Hallo Pix,

                      leider klappt das mit dem View wechsel bei mir leider nicht.

                      Wenn ich das Script um deinen angegebenen Text erweitere, hat das Script ein Problem mit der Zeile: … vis.0. usw. wenn ich die 0 lösche, erscheint folgender fehler im Log.

                      javascript.1 2016-03-05 21:06:29 error ReferenceError: vis is not defined at Object. (script.js.Briefkasten:58:15) at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1190:48) at /op

                      javascript.1 2016-03-05 21:06:29 error message hm-rpc.0.MEQ0215699.1.STATE [object Object] vis is not defined

                      javascript.1 2016-03-05 21:06:29 info javascript.1 script.js.Briefkasten: Briefkasten betätigt, View wird gewechselt

                      javascript.1 2016-03-05 21:06:28 error ReferenceError: vis is not defined at Object. (script.js.Briefkasten:58:15) at Object.subs.callback (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1190:48) at /op

                      javascript.1 2016-03-05 21:06:28 error message hm-rpc.0.MEQ0215699.1.STATE [object Object] vis is not defined

                      javascript.1 2016-03-05 21:06:28 info javascript.1 script.js.Briefkasten: Briefkasten betätigt, View wird gewechselt

                      javascript.1 2016-03-05 21:06:26 info javascript.1 script.js.Betriebsstundenzähler: Licht_Haustür.STATE;Betriebsstundenzaehler.System.Grp00MSec;false ; 000:00:01:48 ; 108360 ; 001:12:42:29 ; 132149522

                      javascript-1 2016-03-05 21:05:23 info script.js.Briefkasten: registered 3 subscriptions and 1 schedule

                      javascript-1 2016-03-05 21:05:23 info Start javascript script.js.Briefkasten

                      Wofür steht denn die "0" mit der das Script das Problem hat?

                      Vielleicht ist noch wichtig zu wissen, das bei mir die Javascript Instanz javascript.1 heißt.

                      Gruß en

                      1 Reply Last reply Reply Quote 0
                      • P
                        pix last edited by

                        Hallo, schreib mal 'vis.0.control.command' in Anführungszeichen.

                        Gruß,

                        Pix

                        Gesendet mit Tapatalk

                        1 Reply Last reply Reply Quote 0
                        • S
                          Sven2013 last edited by

                          Ok,

                          jetzt erscheint kein Fehler mehr im Log, aber das View wechselt leider auch nicht. 😞

                          Gibt es noch eine Möglichkeit den Fehler zu finden?

                          Gruß Sven

                          1 Reply Last reply Reply Quote 0
                          • S
                            Sven2013 last edited by

                            Hallo Pix, bisher habe ich es leider noch nicht hinbekommen den View automatisch zu wechseln. Kannst du mir nochmal helfen?

                            Vielleicht hilft mir das auch bei meinem anderen Fred 🙂

                            Gruß Sven

                            Gesendet von iPhone mit Tapatalk

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            944
                            Online

                            31.9k
                            Users

                            80.2k
                            Topics

                            1.3m
                            Posts

                            3
                            15
                            4294
                            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