Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Erledigt] Hilfe bei einem Script Counter und Kamera schwenken

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Erledigt] Hilfe bei einem Script Counter und Kamera schwenken

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

      Hallo,

      habe nach einem Script gesucht um einen Counter für meine Türschelle zu finden.

      Wurde dann fündig bei einem Script von pix für einen Counter Bewegungsmelder http://forum.iobroker.net/viewtopic.php … 703#p14520.

      Mit diesem Beispiel habe ich es dann geschafft es so umzubauen das beim Klingeln an der Tür ein Counter hochgezählt wird und das im Hauptview die Kameraansicht auf die Eingangskamera wechselt und zum Preset Eingangstür wechselt, dies hatte ich vorher mit einem Programm in der CCU2 geregelt.

      Das tolle an dem Script ist, das er vorher die alte Kamera und Preset Einstellungen speichert und nach einer Zeit X wieder zurück geht auf die alten Einstellungen. Das hatte ich im CCU2 Programm nicht hinbekommen.

      Jetzt aber zu meinem Problem.

      Ich hätte gern das die Funktion nur einmal startet bis die Kameras wieder zurück sind. Also wenn geklingelt wird geht alles los, allerdings egal wie oft geklingelt wird, die Funktion soll erst wieder losgehen wenn die Kameras wieder zurückgeschwenkt sind. Hoffe es ist verständlich.

      ! /* Klingeln zaehlen und dementsprechende Kamera aktivieren und schwenken in VIS Hauptview
      ! basierend auf Script vom pix für hofi77 http://forum.iobroker.net/viewtopic.php … 703#p14520
      ! angepasst am 27.07.2016 von Zippolighter
      ! */
      ! createState('VIS.Klingeln_zaehlen', 0, {
      ! read: true,
      ! write: true,
      ! type: 'number',
      ! name: 'Klingeln zählen',
      ! desc: 'Counter für Auslösungen der Klingel, wird mit schedule zurückgesetzt'
      ! });
      ! var idCamera = 'hm-rega.0.12858',
      ! idCameraPresets = 'hm-rega.0.12415',
      ! idTuerklingel = 'hm-rpc.0.KEQ0767774.1.STATE',
      ! idCountKlingeln = 'VIS.Klingeln_zaehlen';
      ! on({
      ! id: idTuerklingel,
      ! val: true
      ! }, function (obj) {
      ! var counter = getState(idCountKlingeln).val; // bisherige Zahl aus Variable einlesen
      ! setState(idCountKlingeln, ++counter); // eins hochzählen
      ! var cameraIst = getState(idCamera).val; // Camera einlesen
      ! var presetIst = getState(idCameraPresets).val; // Preset einlesen
      ! setState(idCamera, 4); // Camera Eingangstür setzen
      ! setState(idCameraPresets, 1); // Camera Preset setzen
      ! setStateDelayed(idCamera, cameraIst, 30000); // nach 30 Sek wieder auf ursprüngliche Camera wechseln
      ! setStateDelayed(idCameraPresets, presetIst, 30000); // nach 30 Sek wieder auf ursprüngliche Preset wechseln
      ! });
      ! // Mitternacht Zähler zurücksetzen
      ! schedule('0 * * * *', function () {
      ! setState(idCountKlingeln, 0);
      ! });

      Danke schonmal für Eure Hilfe

      Gruß Zippolighter

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

        Schnell von unterwegs:

        Wenn es klingelt und neue Variable ungesetzt, dann neue Variable setzen. Variable wird erst vom rückschwenken der Kameras zurückgesetzt.

        Dann den Counter erst starten, wenn Variable an.

        Pix

        Gesendet mit Tapatalk

        1 Reply Last reply Reply Quote 0
        • Z
          Zippolighter last edited by

          @pix:

          Schnell von unterwegs:

          Wenn es klingelt und neue Variable ungesetzt, dann neue Variable setzen. Variable wird erst vom rückschwenken der Kameras zurückgesetzt.

          Dann den Counter erst starten, wenn Variable an.

          Pix

          Gesendet mit Tapatalk `
          Hi Pix,

          schonmal danke. An diesen Ansatz habe ich auch gedacht. Allerdings fehlt mir noch die und verknüpfung im Script. Da fehlt mir einfach die Erfahrung.

          on({
              id: idTuerklingel,
              val: true
          }, function (obj) {
          

          Dieses on startet (wenn ich das richtig verstehe) wenn die idTuerklingel den Wert true erhält, wie sage ich das zusätzlich variable idTuerklingel_Stop den wert false haben muss??

          Danke

          Gruß Zippolighter

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

            Hallo,

            jetzt wieder am Rechner. Hab es falsch verstanden. Ich dachte, der Counter zählt die Sekunden, nicht die Zahl der "Klingeldrücke".

            Wenn ich es richtig verstehe, soll bei einem ungeduldigen Besucher, der ständig die Klingel drückt, nicht alle paar Sekunden das Skript gestartet werden.

            Dafür eignet sich ein Timer, der dafür sorgt, dass X Sekunden lang, das Klingeln ignoriert wird. Solange der Timer nicht "undefined" ist, passiert nix.

            ! ````
            /* Klingeln zaehlen und dementsprechende Kamera aktivieren und schwenken in VIS Hauptview
            basierend auf Script vom pix für hofi77 viewtopic.php?f=21&t=1703#p14520
            ! angepasst am 27.07.2016 von Zippolighter
            ! */
            ! createState('VIS.Klingeln_zaehlen', 0, {
            read: true,
            write: true,
            type: 'number',
            name: 'Klingeln zählen',
            desc: 'Counter für Auslösungen der Klingel, wird mit schedule zurückgesetzt'
            });
            ! var idCamera = 'hm-rega.0.12858',
            idCameraPresets = 'hm-rega.0.12415',
            idTuerklingel = 'hm-rpc.0.KEQ0767774.1.STATE',
            idCountKlingeln = 'VIS.Klingeln_zaehlen';
            ! var schwenken;
            ! on({
            id: idTuerklingel,
            val: true
            }, function (obj) {
            if (!schwenken) {
            schwenken = true;
            setTimeout( function () {
            schwenken = undefined;
            }, 10 * 1000); // 10 Sekunden

                var counter = getState(idCountKlingeln).val; // bisherige Zahl aus Variable einlesen
                setState(idCountKlingeln, ++counter); // eins hochzählen
                var cameraIst = getState(idCamera).val; // Camera einlesen
                var presetIst = getState(idCameraPresets).val; // Preset einlesen
                setState(idCamera, 4); // Camera Eingangstür setzen
                setState(idCameraPresets, 1); // Camera Preset setzen
                setStateDelayed(idCamera, cameraIst, 30000); // nach 30 Sek wieder auf ursprüngliche Camera wechseln
                setStateDelayed(idCameraPresets, presetIst, 30000); // nach 30 Sek wieder auf ursprüngliche Preset wechseln
            }
            

            });

            ! // Mitternacht Zähler zurücksetzen
            schedule('0 * * * *', function () {
            setState(idCountKlingeln, 0);
            });
            ! ````
            Gruß

            Pix

            1 Reply Last reply Reply Quote 0
            • Z
              Zippolighter last edited by

              Super so klappt es.

              Ganz herzlichen Dank für die Hilfe Pix

              Gruß Zippolighter

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

              Support us

              ioBroker
              Community Adapters
              Donate

              975
              Online

              31.7k
              Users

              79.6k
              Topics

              1.3m
              Posts

              2
              5
              1365
              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