Skip to content
  • Home
  • 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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Bad besetzt Erkennung und dann Licht an

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    275

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    591

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.8k

Bad besetzt Erkennung und dann Licht an

Geplant Angeheftet Gesperrt Verschoben Blockly
9 Beiträge 6 Kommentatoren 972 Aufrufe 6 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.
  • A Offline
    A Offline
    Atredis
    schrieb am zuletzt editiert von
    #1

    Hallo.
    Ich bin ganz neu auf diesem Gebiet Blocky unterwegs.
    Einfache An aus Schaltungen usw fuktionieren ganz Gut.
    Jetzt möchte ich mein Bad inteligent machen.

    Wenn ich es betrete soll das Licht angehen und wenn ich es veralasse soll es ausgehen.
    Natürlich wenn ich es betreten habe und mich länger nicht bewege soll das Licht an bleiben (Badewanne)

    Hierfür habe ich jeweils einen Xiaomi Aqara Tür und Bewegungsmelder im Einsatz.

    Jetzt habe ich das Problem das ich es nicht schaffe meine Logik bei Blocky zu Integrieren

    Hier mal meine Gedanken

    Wenn Tür auf und Bewegung erkannt = Licht an
    Wenn Tür zu und Bewegung erkannt = Besetzt (Licht wurde ja oben schon eingeschaltet)
    Wenn Tür zu und nicht Besetzt = Licht aus

    Ich habe dort für die Besetzt und nicht Besetzt Erkennung einen Zähler Tür auf eingebaut da dieses ja größer als 1 sein muss wenn ich nicht mehr drinnen bin.

    Der Bewegungsmelder Ändert auch erst nach 60 sec wieder seinen Status also bleibt das Licht immer für mindestens 60 sec an was ja auch gut ist.

    Später soll noch zusätzlich rein

    Wenn Tür auf und Bewegung nicht mehr erkannt = Licht aus (Hier sind es ja beim Bewegungsmelder die 60sec bis zur Änderung)

    Hier mal mein momentanes Blocky.
    Momentan schaltet es nur noch ein aber nicht mehr aus.
    Es wird auch kein Besetzt mehr erkannt.

    Hoffe mal das jemand anderes schon einmal diese Idee hatte und eine Lösung kennt.

    Danke

    Atredis

    7cf385b1-1abc-4505-adbd-3358e6e95fb3-grafik.png

    var T_C3_BCr_auf, Last_Motion_Zeit, Bad_Besetzt;
    
    
    on({id: "mihome.0.devices.magnet_158d0002ca1368.state"/*Is opened*/, change: "any"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == true) {
        T_C3_BCr_auf = (typeof T_C3_BCr_auf == 'number' ? T_C3_BCr_auf : 0) + 1;
      }
    });
    on({id: new RegExp('mihome\\.0\\.devices\\.magnet_158d0002ca1368\\.state' + "|" + 'mihome\\.0\\.devices\\.sensor_motion_aq2_158d0002e2e584\\.state' + "|" + 'mihome\\.0\\.devices\\.sensor_motion_aq2_158d0002e2e584\\.no_motion'), change: "any"}, function (obj) {
        Last_Motion_Zeit = parseFloat('mihome.0.devices.sensor_motion_aq2_158d0002e2e584.no_motion');
      if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == true && getState("mihome.0.devices.sensor_motion_aq2_158d0002e2e584.state").val == true) {
        setState("HomeKit.0.Licht_Bad_Shelly"/*Licht Bad Shelly*/, true);
        console.log('Erstes einschalten');
      }
      if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == false && getState("mihome.0.devices.sensor_motion_aq2_158d0002e2e584.state").val == true && Bad_Besetzt == false) {
        Bad_Besetzt = true;
        console.log('Besetzt');
      }
      if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == false && getState("mihome.0.devices.sensor_motion_aq2_158d0002e2e584.state").val == false && Bad_Besetzt == false) {
        setState("HomeKit.0.Licht_Bad_Shelly"/*Licht Bad Shelly*/, false);
        console.log('Licht aus');
      }
      if (T_C3_BCr_auf > 1 && Last_Motion_Zeit > 59) {
        Bad_Besetzt = false;
        T_C3_BCr_auf = 0;
        console.log('Bad Besetzt zurücksetzen');
      }
    });
    M M L 3 Antworten Letzte Antwort
    0
    • A Atredis

      Hallo.
      Ich bin ganz neu auf diesem Gebiet Blocky unterwegs.
      Einfache An aus Schaltungen usw fuktionieren ganz Gut.
      Jetzt möchte ich mein Bad inteligent machen.

      Wenn ich es betrete soll das Licht angehen und wenn ich es veralasse soll es ausgehen.
      Natürlich wenn ich es betreten habe und mich länger nicht bewege soll das Licht an bleiben (Badewanne)

      Hierfür habe ich jeweils einen Xiaomi Aqara Tür und Bewegungsmelder im Einsatz.

      Jetzt habe ich das Problem das ich es nicht schaffe meine Logik bei Blocky zu Integrieren

      Hier mal meine Gedanken

      Wenn Tür auf und Bewegung erkannt = Licht an
      Wenn Tür zu und Bewegung erkannt = Besetzt (Licht wurde ja oben schon eingeschaltet)
      Wenn Tür zu und nicht Besetzt = Licht aus

      Ich habe dort für die Besetzt und nicht Besetzt Erkennung einen Zähler Tür auf eingebaut da dieses ja größer als 1 sein muss wenn ich nicht mehr drinnen bin.

      Der Bewegungsmelder Ändert auch erst nach 60 sec wieder seinen Status also bleibt das Licht immer für mindestens 60 sec an was ja auch gut ist.

      Später soll noch zusätzlich rein

      Wenn Tür auf und Bewegung nicht mehr erkannt = Licht aus (Hier sind es ja beim Bewegungsmelder die 60sec bis zur Änderung)

      Hier mal mein momentanes Blocky.
      Momentan schaltet es nur noch ein aber nicht mehr aus.
      Es wird auch kein Besetzt mehr erkannt.

      Hoffe mal das jemand anderes schon einmal diese Idee hatte und eine Lösung kennt.

      Danke

      Atredis

      7cf385b1-1abc-4505-adbd-3358e6e95fb3-grafik.png

      var T_C3_BCr_auf, Last_Motion_Zeit, Bad_Besetzt;
      
      
      on({id: "mihome.0.devices.magnet_158d0002ca1368.state"/*Is opened*/, change: "any"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == true) {
          T_C3_BCr_auf = (typeof T_C3_BCr_auf == 'number' ? T_C3_BCr_auf : 0) + 1;
        }
      });
      on({id: new RegExp('mihome\\.0\\.devices\\.magnet_158d0002ca1368\\.state' + "|" + 'mihome\\.0\\.devices\\.sensor_motion_aq2_158d0002e2e584\\.state' + "|" + 'mihome\\.0\\.devices\\.sensor_motion_aq2_158d0002e2e584\\.no_motion'), change: "any"}, function (obj) {
          Last_Motion_Zeit = parseFloat('mihome.0.devices.sensor_motion_aq2_158d0002e2e584.no_motion');
        if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == true && getState("mihome.0.devices.sensor_motion_aq2_158d0002e2e584.state").val == true) {
          setState("HomeKit.0.Licht_Bad_Shelly"/*Licht Bad Shelly*/, true);
          console.log('Erstes einschalten');
        }
        if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == false && getState("mihome.0.devices.sensor_motion_aq2_158d0002e2e584.state").val == true && Bad_Besetzt == false) {
          Bad_Besetzt = true;
          console.log('Besetzt');
        }
        if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == false && getState("mihome.0.devices.sensor_motion_aq2_158d0002e2e584.state").val == false && Bad_Besetzt == false) {
          setState("HomeKit.0.Licht_Bad_Shelly"/*Licht Bad Shelly*/, false);
          console.log('Licht aus');
        }
        if (T_C3_BCr_auf > 1 && Last_Motion_Zeit > 59) {
          Bad_Besetzt = false;
          T_C3_BCr_auf = 0;
          console.log('Bad Besetzt zurücksetzen');
        }
      });
      M Offline
      M Offline
      Muchul
      schrieb am zuletzt editiert von
      #2

      @Atredis
      Bitte auch Gedanken darüber machen, was passiert bzw. Ist der Ablauf wenn jemand im Bad ist und ein zweiter kommt rein.
      Der Zähler würde dann nicht helfen.

      1 Antwort Letzte Antwort
      0
      • W Offline
        W Offline
        Wizzo3
        schrieb am zuletzt editiert von
        #3

        Ein weiteres mögliches Logik-Problem:
        Was ist bei Tür zu und schön entspannt in der Wanne liegen, also recht bewegungslos? Momentan geht meiner Meinung nach das Licht aus...

        1 Antwort Letzte Antwort
        0
        • A Atredis

          Hallo.
          Ich bin ganz neu auf diesem Gebiet Blocky unterwegs.
          Einfache An aus Schaltungen usw fuktionieren ganz Gut.
          Jetzt möchte ich mein Bad inteligent machen.

          Wenn ich es betrete soll das Licht angehen und wenn ich es veralasse soll es ausgehen.
          Natürlich wenn ich es betreten habe und mich länger nicht bewege soll das Licht an bleiben (Badewanne)

          Hierfür habe ich jeweils einen Xiaomi Aqara Tür und Bewegungsmelder im Einsatz.

          Jetzt habe ich das Problem das ich es nicht schaffe meine Logik bei Blocky zu Integrieren

          Hier mal meine Gedanken

          Wenn Tür auf und Bewegung erkannt = Licht an
          Wenn Tür zu und Bewegung erkannt = Besetzt (Licht wurde ja oben schon eingeschaltet)
          Wenn Tür zu und nicht Besetzt = Licht aus

          Ich habe dort für die Besetzt und nicht Besetzt Erkennung einen Zähler Tür auf eingebaut da dieses ja größer als 1 sein muss wenn ich nicht mehr drinnen bin.

          Der Bewegungsmelder Ändert auch erst nach 60 sec wieder seinen Status also bleibt das Licht immer für mindestens 60 sec an was ja auch gut ist.

          Später soll noch zusätzlich rein

          Wenn Tür auf und Bewegung nicht mehr erkannt = Licht aus (Hier sind es ja beim Bewegungsmelder die 60sec bis zur Änderung)

          Hier mal mein momentanes Blocky.
          Momentan schaltet es nur noch ein aber nicht mehr aus.
          Es wird auch kein Besetzt mehr erkannt.

          Hoffe mal das jemand anderes schon einmal diese Idee hatte und eine Lösung kennt.

          Danke

          Atredis

          7cf385b1-1abc-4505-adbd-3358e6e95fb3-grafik.png

          var T_C3_BCr_auf, Last_Motion_Zeit, Bad_Besetzt;
          
          
          on({id: "mihome.0.devices.magnet_158d0002ca1368.state"/*Is opened*/, change: "any"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == true) {
              T_C3_BCr_auf = (typeof T_C3_BCr_auf == 'number' ? T_C3_BCr_auf : 0) + 1;
            }
          });
          on({id: new RegExp('mihome\\.0\\.devices\\.magnet_158d0002ca1368\\.state' + "|" + 'mihome\\.0\\.devices\\.sensor_motion_aq2_158d0002e2e584\\.state' + "|" + 'mihome\\.0\\.devices\\.sensor_motion_aq2_158d0002e2e584\\.no_motion'), change: "any"}, function (obj) {
              Last_Motion_Zeit = parseFloat('mihome.0.devices.sensor_motion_aq2_158d0002e2e584.no_motion');
            if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == true && getState("mihome.0.devices.sensor_motion_aq2_158d0002e2e584.state").val == true) {
              setState("HomeKit.0.Licht_Bad_Shelly"/*Licht Bad Shelly*/, true);
              console.log('Erstes einschalten');
            }
            if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == false && getState("mihome.0.devices.sensor_motion_aq2_158d0002e2e584.state").val == true && Bad_Besetzt == false) {
              Bad_Besetzt = true;
              console.log('Besetzt');
            }
            if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == false && getState("mihome.0.devices.sensor_motion_aq2_158d0002e2e584.state").val == false && Bad_Besetzt == false) {
              setState("HomeKit.0.Licht_Bad_Shelly"/*Licht Bad Shelly*/, false);
              console.log('Licht aus');
            }
            if (T_C3_BCr_auf > 1 && Last_Motion_Zeit > 59) {
              Bad_Besetzt = false;
              T_C3_BCr_auf = 0;
              console.log('Bad Besetzt zurücksetzen');
            }
          });
          M Offline
          M Offline
          MichaelG
          schrieb am zuletzt editiert von
          #4

          @Atredis
          Wenn man die Logik vereinfacht?

          Wenn Bewegung erkannt: Licht an
          Wenn keine Bewegung UND Tür auf: Licht aus

          Das würde doch alle Eventualitäten abdecken... sogar das Einschlafen in der Wanne :-)

          ???

          M 1 Antwort Letzte Antwort
          0
          • M MichaelG

            @Atredis
            Wenn man die Logik vereinfacht?

            Wenn Bewegung erkannt: Licht an
            Wenn keine Bewegung UND Tür auf: Licht aus

            Das würde doch alle Eventualitäten abdecken... sogar das Einschlafen in der Wanne :-)

            ???

            M Offline
            M Offline
            Muchul
            schrieb am zuletzt editiert von
            #5

            @MichaelG
            Wie schaffst du es zur Tür ohne Bewegungserkennung?

            M 1 Antwort Letzte Antwort
            0
            • rantanplanR Offline
              rantanplanR Offline
              rantanplan
              schrieb am zuletzt editiert von
              #6

              Apropo Badewanne:relaxed:
              Anwesenheitserkennung nach Badewannenprinzip

              Rantanplan

              CCU3 / MS Server 2019(VM) / Scripten mit Blockly

              1 Antwort Letzte Antwort
              0
              • M Muchul

                @MichaelG
                Wie schaffst du es zur Tür ohne Bewegungserkennung?

                M Offline
                M Offline
                MichaelG
                schrieb am zuletzt editiert von MichaelG
                #7

                @Muchul
                Verstehe die Frage nicht.

                Ich gehe ins Bad: Bewegung wird erkannt: Licht geht an
                Ich mache die Tür zu: Licht bleibt an ob ich mich bewege oder nicht
                Ich gehe aus dem Bad raus (und muss die Tür offen lassen): Licht geht aus nachdem keine Bewegung mehr erkannt wird.

                So hätte ich es gedacht.

                Oder in "Code"
                Wenn Objekt Bewegung wurde geändert...
                Wenn Bewegung = true dann Licht an
                Sonst Wenn Tür=auf dann Licht aus

                fertig. Denke ich zu simpel?
                Ich gehe davon aus, dass, wenn ich das Bad verlasse die Bewegung erkannt wird.

                M 1 Antwort Letzte Antwort
                0
                • M MichaelG

                  @Muchul
                  Verstehe die Frage nicht.

                  Ich gehe ins Bad: Bewegung wird erkannt: Licht geht an
                  Ich mache die Tür zu: Licht bleibt an ob ich mich bewege oder nicht
                  Ich gehe aus dem Bad raus (und muss die Tür offen lassen): Licht geht aus nachdem keine Bewegung mehr erkannt wird.

                  So hätte ich es gedacht.

                  Oder in "Code"
                  Wenn Objekt Bewegung wurde geändert...
                  Wenn Bewegung = true dann Licht an
                  Sonst Wenn Tür=auf dann Licht aus

                  fertig. Denke ich zu simpel?
                  Ich gehe davon aus, dass, wenn ich das Bad verlasse die Bewegung erkannt wird.

                  M Offline
                  M Offline
                  Muchul
                  schrieb am zuletzt editiert von
                  #8

                  Badezimmer Tür muss also immer offen bleiben damit das Licht ausgeschaltet wird?
                  Und wenn jemand versehentlich die Tür schließt?
                  Was ist mit Familie, Gästen, mir wäre das zu unsicher.

                  1 Antwort Letzte Antwort
                  0
                  • A Atredis

                    Hallo.
                    Ich bin ganz neu auf diesem Gebiet Blocky unterwegs.
                    Einfache An aus Schaltungen usw fuktionieren ganz Gut.
                    Jetzt möchte ich mein Bad inteligent machen.

                    Wenn ich es betrete soll das Licht angehen und wenn ich es veralasse soll es ausgehen.
                    Natürlich wenn ich es betreten habe und mich länger nicht bewege soll das Licht an bleiben (Badewanne)

                    Hierfür habe ich jeweils einen Xiaomi Aqara Tür und Bewegungsmelder im Einsatz.

                    Jetzt habe ich das Problem das ich es nicht schaffe meine Logik bei Blocky zu Integrieren

                    Hier mal meine Gedanken

                    Wenn Tür auf und Bewegung erkannt = Licht an
                    Wenn Tür zu und Bewegung erkannt = Besetzt (Licht wurde ja oben schon eingeschaltet)
                    Wenn Tür zu und nicht Besetzt = Licht aus

                    Ich habe dort für die Besetzt und nicht Besetzt Erkennung einen Zähler Tür auf eingebaut da dieses ja größer als 1 sein muss wenn ich nicht mehr drinnen bin.

                    Der Bewegungsmelder Ändert auch erst nach 60 sec wieder seinen Status also bleibt das Licht immer für mindestens 60 sec an was ja auch gut ist.

                    Später soll noch zusätzlich rein

                    Wenn Tür auf und Bewegung nicht mehr erkannt = Licht aus (Hier sind es ja beim Bewegungsmelder die 60sec bis zur Änderung)

                    Hier mal mein momentanes Blocky.
                    Momentan schaltet es nur noch ein aber nicht mehr aus.
                    Es wird auch kein Besetzt mehr erkannt.

                    Hoffe mal das jemand anderes schon einmal diese Idee hatte und eine Lösung kennt.

                    Danke

                    Atredis

                    7cf385b1-1abc-4505-adbd-3358e6e95fb3-grafik.png

                    var T_C3_BCr_auf, Last_Motion_Zeit, Bad_Besetzt;
                    
                    
                    on({id: "mihome.0.devices.magnet_158d0002ca1368.state"/*Is opened*/, change: "any"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == true) {
                        T_C3_BCr_auf = (typeof T_C3_BCr_auf == 'number' ? T_C3_BCr_auf : 0) + 1;
                      }
                    });
                    on({id: new RegExp('mihome\\.0\\.devices\\.magnet_158d0002ca1368\\.state' + "|" + 'mihome\\.0\\.devices\\.sensor_motion_aq2_158d0002e2e584\\.state' + "|" + 'mihome\\.0\\.devices\\.sensor_motion_aq2_158d0002e2e584\\.no_motion'), change: "any"}, function (obj) {
                        Last_Motion_Zeit = parseFloat('mihome.0.devices.sensor_motion_aq2_158d0002e2e584.no_motion');
                      if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == true && getState("mihome.0.devices.sensor_motion_aq2_158d0002e2e584.state").val == true) {
                        setState("HomeKit.0.Licht_Bad_Shelly"/*Licht Bad Shelly*/, true);
                        console.log('Erstes einschalten');
                      }
                      if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == false && getState("mihome.0.devices.sensor_motion_aq2_158d0002e2e584.state").val == true && Bad_Besetzt == false) {
                        Bad_Besetzt = true;
                        console.log('Besetzt');
                      }
                      if (getState("mihome.0.devices.magnet_158d0002ca1368.state").val == false && getState("mihome.0.devices.sensor_motion_aq2_158d0002e2e584.state").val == false && Bad_Besetzt == false) {
                        setState("HomeKit.0.Licht_Bad_Shelly"/*Licht Bad Shelly*/, false);
                        console.log('Licht aus');
                      }
                      if (T_C3_BCr_auf > 1 && Last_Motion_Zeit > 59) {
                        Bad_Besetzt = false;
                        T_C3_BCr_auf = 0;
                        console.log('Bad Besetzt zurücksetzen');
                      }
                    });
                    L Offline
                    L Offline
                    lustig29
                    schrieb am zuletzt editiert von
                    #9

                    @atredis Konntest du das Problem lösen?

                    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

                    738

                    Online

                    32.5k

                    Benutzer

                    81.9k

                    Themen

                    1.3m

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

                    • Du hast noch kein Konto? Registrieren

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