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.
    • H
      hofi77 last edited by

      Hallo Pix!

      Entschuldige die verspätete Antwort!

      Vielen Dank für deine Hilfe ich werde es sofort versuchen.

      Noch mal vielen Dank!

      LG

      Manuel

      1 Reply Last reply Reply Quote 0
      • 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

                              941
                              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