Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Ecovacs Bereiche auswählen und ansteuern

    NEWS

    • Amazon Alexa - ioBroker Skill läuft aus ?

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    Ecovacs Bereiche auswählen und ansteuern

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

      Hallo,

      ich möchte mit einzelne Bereiche zuerst anwählen und anschließend die Reinigung starten.
      Habe das Thema in letzter Zeit aufgeschoben, da ich immer wieder in der Luft hänge, aber jetzt möchte ich es angreifen 😉

      Habe mal für jeden Raum einen Datenpunkt (boolean) erstellt, wenn ich diesen anwähle wird der Button Grün.
      Ich möchte also zuerst jeden Raum anwählen (diese werden Grün) und anschließend die Reinigung in diesen ausgewählten Räumen starten (Buttons sollten wieder grau werden).

      Kann mir dabei eventuell jemand weiterhelfen?
      Brauche ich dazu etwa ein Blockly?

      staubsauger.png

      C 1 Reply Last reply Reply Quote 0
      • C
        Chrunchy @Hans_M last edited by

        @hans_m Ja, Blockly oder JavaScript.

        Vorgehen: Die Bereiche als Toggle-Button, damit du den Datenpunkt schalten kannst.

        Zusätzlich brauchst du einen Start-Button, womit du mitteilst, dass deine Auswahl fertig ist und der Bot losfahren soll.

        Wenn Startbutton gedrückt wird, dann suchst du dir alle Datenpunkte der Bereiche mit True zusammen und schreibst die IDs der Bereiche in die Reinigungsliste.

        Noch ein Tip: Ich lösche die Bereichsliste, sobald der Bot in die Ladestation zurück fährt.

        H 1 Reply Last reply Reply Quote 0
        • H
          Hans_M @Chrunchy last edited by

          @chrunchy habe mich jetzt mal an einem Blockly versucht, leider funktioniert es nicht so richtig...
          staubsauger.png staubsauger 2.png

          C 1 Reply Last reply Reply Quote 0
          • C
            Chrunchy @Hans_M last edited by

            @hans_m ich kenne mich mit Blockly nicht wirklich aus.

            Du reagierst aber auf die Änderung deiner Datenpunkte sofort... Soweit ich weiß, fährt der Bot los, sobald der Datenpunkt spotArea sich ändert.

            Du schreibst den ersten Wert rein, sobald sich der Zustand deines Objekts ändert und, sobald der Bot auf Status cleaning springt, setzt du alle eigenen IDs, wieder zurück. Damit lässt sich keine Liste abarbeiten.

            Nochmal zur Erklärung, wie ich es bei mir nutze.
            Ich habe folgende eigene Datenpunkte erstellt:

            • Typ Bool für jeden "Bereich" einen
            • Typ Bool für meinen "Start" nach erfolgter Bereichauswahl
            • Typ String für "Liste der zu reinigenden Bereiche"

            In der Vis wähle ich meine "Bereiche" aus, setzte also z.B. meine Datenpunkte für Flur und Küche jeweils auf TRUE.
            Anschließend setzte ich meinen Datenpunkt für Start auf TRUE.

            Mein Script triggert, sobald mein eigener Datenpunkt für Start auf True springt.
            Dann gucke ich die einzelnen Datenpunkte für die "Bereiche" nacheinander durch. Ist der aktuell geprüfte Datenpunkt TRUE, schreibe ich die ID in den String von meinem Datenpunkt "Liste der zu reinigenden Bereiche". Vorher ist zu prüfen, ob bereits etwas in "Liste der zu reinigenden Bereiche" drinsteht, dann muss vor die ID noch ein Komma gesetzt werden. Dasselbe für den nächsten Datenpunkt meiner Bereiche.
            Nachdem dann die ID-Liste mit Kommata getrennt in meinem Datenpunkt "Liste der zu bereinigenden Bereiche" steht, übergebe ich den String an den Bot-Datenpunkt spotArea.

            Sobald sich der Datenpunkt beim Bot ändert, startet dieser das Cleaning ohne weiteres zutun.

            Wenn der Status des Bot sich auf returning ändert, setzte ich meine eigenen Datenpunkte wieder auf False. Auch dies geschieht über den Trigger auf den Datenpunkt vom Bot.

            H 1 Reply Last reply Reply Quote 0
            • H
              Hans_M @Chrunchy last edited by

              @chrunchy habe jetzt nach mehreren Stunden Tüfteln ein funktionierendes Blocky gebaut...auch dank deiner Hilfe habe ich es geschafft.
              Einziges Problem ist, dass der device Status manchmal nicht von "charging" zu "cleaning" wechselt. Ebenso bleibt dann die Position auf "unkown". Scheint ein Bug zu sein?!

              Hier noch das Blockly für Nachahmer:

              staubsauger.png
              staubsauger 2.png

              C 1 Reply Last reply Reply Quote 0
              • C
                Chrunchy @Hans_M last edited by

                @hans_m freut mich, dass ich dir helfen konnte einen Schritt weiter zu kommen.

                Ich glaube mich zu erinnern, dass es ein Problem ist, wenn die Zeichenkette für den Datenpunkt start cleaning multiple spot area mit einem Komma endet.

                Verbesserungsvorschlag:
                Die erste falls... mache Reihe kannst du dir sparen. Die Zahlen (bzw. IDs) für die Räume ändern sich nicht, die kannst du in Variablen oder Konstanten einmal definieren.
                Zusätzlich definierst du eine Variable Raumliste o.ä. vom Typ String mit leerem DEFAULT.
                Nun passen wir noch deine Oder-Verschachtelung an.
                Dazu erstellst du pro Raum folgenden Ablauf:
                (Beispiel erfolgt anhand von Speis)
                Falls Wert von ObjectID Speis = wahr
                mache
                Falls Länge von Variable Raumliste > 1, setzte Wert von Raumliste mit Wert von Raumliste + "," (Hier bitte gucken wie Blockly eine String-Verkettung braucht)
                Setzte Wert von Raumliste mit Wert von Raumliste + Wert von Variable/Kostante für Speis
                (Ende Beispiel)
                Das o.g. dann für jeden Raum.
                Zum eigentlichen Starten:
                Steuere start multiple clean area mit Wert von Raumliste

                Zum Ende hin, würde ich dann alle wahr-Datenpunkte wieder auf false setzten, das machst du schon und zusätzlich die Variable Raumliste wieder leeren.

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

                Support us

                ioBroker
                Community Adapters
                Donate
                FAQ Cloud / IOT
                HowTo: Node.js-Update
                HowTo: Backup/Restore
                Downloads
                BLOG

                755
                Online

                32.3k
                Users

                81.0k
                Topics

                1.3m
                Posts

                2
                6
                406
                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