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

  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Ecovacs Deebot Adapter: Status und Feedback

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

Ecovacs Deebot Adapter: Status und Feedback

Geplant Angeheftet Gesperrt Verschoben Entwicklung
deebotecovacsecovacs-deebotecovacs-deebot adaptersaugrobotervacuum
576 Beiträge 36 Kommentatoren 142.0k Aufrufe 31 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.
  • J jm3west

    @mrbungle64 mal was ganz vertrauensvolles.

    Wie wäre es wenn ich Dir eine Freigabe erteilen würde.
    Könntest Du dann bei Dir debuggen (Technisch gesehen).

    Nicht das ich kein Interesse mehr hätte. Aber es gibt da noch einiges an Datenpunkte die nicht funktionieren!
    Wie zB. Multiple spot-Reinigung (Nur Ess- und Wohnzimmer). Da spuckt der Debugger auch Warnungen aus.

    Andererseits will ich aber auch nicht das Deine Programmierarbeit was exklusives für meinen OMNI X1 wird!!!

    mrbungle64M Offline
    mrbungle64M Offline
    mrbungle64
    Developer
    schrieb am zuletzt editiert von mrbungle64
    #236

    @jm3west sagte in Ecovacs Deebot Adapter: Status und Feedback:

    @mrbungle64 mal was ganz vertrauensvolles.

    Wie wäre es wenn ich Dir eine Freigabe erteilen würde.
    Könntest Du dann bei Dir debuggen (Technisch gesehen).

    Das wäre eine gute Idee :+1:
    Geht das auch sogar direkt? Ich habe nämlich heute noch einen Tag frei - ab morgen nicht mehr.
    Du kannst das Passwort ja temporär ändern und mir die Zugangsdaten per PM (oder per E-Mail an [entfernt]) schicken.

    1 Antwort Letzte Antwort
    0
    • J jm3west

      @mrbungle64 mal was ganz vertrauensvolles.

      Wie wäre es wenn ich Dir eine Freigabe erteilen würde.
      Könntest Du dann bei Dir debuggen (Technisch gesehen).

      Nicht das ich kein Interesse mehr hätte. Aber es gibt da noch einiges an Datenpunkte die nicht funktionieren!
      Wie zB. Multiple spot-Reinigung (Nur Ess- und Wohnzimmer). Da spuckt der Debugger auch Warnungen aus.

      Andererseits will ich aber auch nicht das Deine Programmierarbeit was exklusives für meinen OMNI X1 wird!!!

      mrbungle64M Offline
      mrbungle64M Offline
      mrbungle64
      Developer
      schrieb am zuletzt editiert von
      #237

      @jm3west sagte in Ecovacs Deebot Adapter: Status und Feedback:

      @mrbungle64 mal was ganz vertrauensvolles.

      Wie wäre es wenn ich Dir eine Freigabe erteilen würde.
      Könntest Du dann bei Dir debuggen (Technisch gesehen).

      Nicht das ich kein Interesse mehr hätte. Aber es gibt da noch einiges an Datenpunkte die nicht funktionieren!

      Meinst du Datenpunkte die nicht funktionieren - oder Datenpunkte die fehlen (das ist ja ein Unterschied)?

      Wie zB. Multiple spot-Reinigung (Nur Ess- und Wohnzimmer). Da spuckt der Debugger auch Warnungen aus.

      Ja, diese Funktion wird recht neu sein

      Andererseits will ich aber auch nicht das Deine Programmierarbeit was exklusives für meinen OMNI X1 wird!!!

      Ist ja kein Problem - du bist ja nicht der einzige mit einem Deebot X1 ;)

      1 Antwort Letzte Antwort
      0
      • J Offline
        J Offline
        jm3west
        schrieb am zuletzt editiert von
        #238

        Freigabe ist raus

        1 Antwort Letzte Antwort
        0
        • J Offline
          J Offline
          jm3west
          schrieb am zuletzt editiert von
          #239

          Ich nehme aber an das es nicht funktioniert. Da die Freigabe ohne Passwort erfolgt! :-1:

          mrbungle64M 1 Antwort Letzte Antwort
          0
          • J jm3west

            Ich nehme aber an das es nicht funktioniert. Da die Freigabe ohne Passwort erfolgt! :-1:

            mrbungle64M Offline
            mrbungle64M Offline
            mrbungle64
            Developer
            schrieb am zuletzt editiert von
            #240

            @jm3west sagte in Ecovacs Deebot Adapter: Status und Feedback:

            Ich nehme aber an das es nicht funktioniert. Da die Freigabe ohne Passwort erfolgt! :-1:

            Ja, das hilft uns nur eingeschränkt weiter ;)

            1 Antwort Letzte Antwort
            0
            • J Offline
              J Offline
              jm3west
              schrieb am zuletzt editiert von
              #241

              Ich habe in einer ruhigen Stunde nochmal die iOS App zur Hand genommen und durchgeklickt.

              Optionen aus iOS App heraus
              Reinigungseinstellungen > Standard

              Wischmodus (Scheinbar Standard und Anpassen weil payload der gleiche ist)

              warn  got payload for unknown command 'onCustomAreaMode': {"sweepMode":0}
              

              Reinigungseinstellungen > Anpassen > Bevorzugter Bereich
              Da für jedes(n) Zimmer/Bereich drei Einstellmöglichkeiten gibt (Reinigen: 1x/2x; Saugkraft: Leise/Standard/Maximal/Maximal+; Wasserdurchflussrate: niedrig/mittel/hoch) werden diese immer als Gesamtes gespeichert, auch wenn zB. nur 2x reinigen ausgewählt wird.
              Somit sind die unbekannten payloads immer sie gleichen.

              warn  got payload for unknown command 'onSimpleARMapSet': {"type":"ar","speechVer":"2.0","mid":"732490256","msid":"1863920572","subsets":[{"name":"Esszimmer1","mssid":"1","subtype":"2","totalCount":0},{"name":"","mssid":"2","subtype":"1","totalCount":0},{"name":"Küche1","mssid":"3","subtype":"5","totalCount":0},{"name":"Schlafzimmer1","mssid":"6","subtype":"3","totalCount":0},{"name":"Flur1","mssid":"8","subtype":"12","totalCount":0},{"name":"Badezimmer2","mssid":"7","subtype":"6","totalCount":0}]}
              
              warn  got payload for unknown command 'onFwBuryPoint-areasInfo': "{\"header\":{\"pri\":1,\"tzm\":60,\"ts\":\"1674563558544\",\"ver\":\"0.0.1\",\"fwVer\":\"2.3.9\",\"hwVer\":\"0.1.1\",\"wkVer\":\"0.1.54\"},\"body\":{\"gid\":\"G1674563558521\",\"index\":\"0000000123\",\"ts\":\"1674563558521\",\"mid\":732490256,\"areas\":[{\"id\":1,\"name\":\"Esszimmer1\",\"type\":2,\"priority\":0,\"waterLevel\":1,\"fanLevel\":0,\"cleanCnt\":2},{\"id\":2,\"name\":\"\",\"type\":1,\"priority\":0,\"waterLevel\":0,\"fanLevel\":1,\"cleanCnt\":1},{\"id\":3,\"name\":\"Küche1\",\"type\":5,\"priority\":0,\"waterLevel\":1,\"fanLevel\":0,\"cleanCnt\":1},{\"id\":6,\"name\":\"Schlafzimmer1\",\"type\":3,\"priority\":0,\"waterLevel\":2,\"fanLevel\":1,\"cleanCnt\":2},{\"id\":8,\"name\":\"Flur1\",\"type\":12,\"priority\":0,\"waterLevel\":1,\"fanLevel\":0,\"cleanCnt\":2},{\"id\":7,\"name\":\"Badezimmer2\",\"type\":6,\"priority\":0,\"waterLevel\":1,\"fanLevel\":0,\"cleanCnt\":1}]}}"
              
              warn  got payload for unknown command 'onFwBuryPoint-bd_mapinfo': "{\"header\":{\"pri\":1,\"tzm\":60,\"ts\":\"1674563558803\",\"ver\":\"0.0.1\",\"fwVer\":\"2.3.9\",\"hwVer\":\"0.1.1\",\"wkVer\":\"0.1.54\"},\"body\":{\"gid\":\"G1674563558794\",\"index\":\"0000000124\",\"ts\":\"1674563558794\",\"mapinfos\":[{\"mapid\":0,\"name\":\"\",\"savemapType\":0,\"isActive\":0,\"isRecentMap\":0,\"cleanCount\":0,\"priority\":0},{\"mapid\":732490256,\"name\":\"OG Loft\",\"savemapType\":1,\"isActive\":1,\"isRecentMap\":1,\"cleanCount\":2,\"priority\":26},{\"mapid\":0,\"name\":\"\",\"savemapType\":2,\"isActive\":0,\"isRecentMap\":0,\"cleanCount\":0,\"priority\":0},{\"mapid\":0,\"name\":\"\",\"savemapType\":3,\"isActive\":0,\"isRecentMap\":0,\"cleanCount\":0,\"priority\":0}]}}"
              

              Das sind eingentlich alle payloads die unbekannt sind.
              Die die unbekannt waren hast Du/wir ja schon erörtert.

              Was mir noch aufgefallen ist.
              Der Datenpunkt ecovacs-deebot.0.control.extended.volume wird von Dir mit Wert 1-10 vorgegeben.
              Denoch lässt sich in der iOS App der Wert von 0-10 ändern.
              So wird es auch im datenpunkt ecovacs-deebot.0.control.extended.volume gesetzt.
              Mal angenommen ich stelle in der iOS App die Lautstärke auf 5 und setzte sie danach im Datenpunkt ecovacs-deebot.0.control.extended.volume auf 0 springt dieser nach einigen Sekunden wieder auf 5

              mrbungle64M 2 Antworten Letzte Antwort
              0
              • J jm3west

                Ich habe in einer ruhigen Stunde nochmal die iOS App zur Hand genommen und durchgeklickt.

                Optionen aus iOS App heraus
                Reinigungseinstellungen > Standard

                Wischmodus (Scheinbar Standard und Anpassen weil payload der gleiche ist)

                warn  got payload for unknown command 'onCustomAreaMode': {"sweepMode":0}
                

                Reinigungseinstellungen > Anpassen > Bevorzugter Bereich
                Da für jedes(n) Zimmer/Bereich drei Einstellmöglichkeiten gibt (Reinigen: 1x/2x; Saugkraft: Leise/Standard/Maximal/Maximal+; Wasserdurchflussrate: niedrig/mittel/hoch) werden diese immer als Gesamtes gespeichert, auch wenn zB. nur 2x reinigen ausgewählt wird.
                Somit sind die unbekannten payloads immer sie gleichen.

                warn  got payload for unknown command 'onSimpleARMapSet': {"type":"ar","speechVer":"2.0","mid":"732490256","msid":"1863920572","subsets":[{"name":"Esszimmer1","mssid":"1","subtype":"2","totalCount":0},{"name":"","mssid":"2","subtype":"1","totalCount":0},{"name":"Küche1","mssid":"3","subtype":"5","totalCount":0},{"name":"Schlafzimmer1","mssid":"6","subtype":"3","totalCount":0},{"name":"Flur1","mssid":"8","subtype":"12","totalCount":0},{"name":"Badezimmer2","mssid":"7","subtype":"6","totalCount":0}]}
                
                warn  got payload for unknown command 'onFwBuryPoint-areasInfo': "{\"header\":{\"pri\":1,\"tzm\":60,\"ts\":\"1674563558544\",\"ver\":\"0.0.1\",\"fwVer\":\"2.3.9\",\"hwVer\":\"0.1.1\",\"wkVer\":\"0.1.54\"},\"body\":{\"gid\":\"G1674563558521\",\"index\":\"0000000123\",\"ts\":\"1674563558521\",\"mid\":732490256,\"areas\":[{\"id\":1,\"name\":\"Esszimmer1\",\"type\":2,\"priority\":0,\"waterLevel\":1,\"fanLevel\":0,\"cleanCnt\":2},{\"id\":2,\"name\":\"\",\"type\":1,\"priority\":0,\"waterLevel\":0,\"fanLevel\":1,\"cleanCnt\":1},{\"id\":3,\"name\":\"Küche1\",\"type\":5,\"priority\":0,\"waterLevel\":1,\"fanLevel\":0,\"cleanCnt\":1},{\"id\":6,\"name\":\"Schlafzimmer1\",\"type\":3,\"priority\":0,\"waterLevel\":2,\"fanLevel\":1,\"cleanCnt\":2},{\"id\":8,\"name\":\"Flur1\",\"type\":12,\"priority\":0,\"waterLevel\":1,\"fanLevel\":0,\"cleanCnt\":2},{\"id\":7,\"name\":\"Badezimmer2\",\"type\":6,\"priority\":0,\"waterLevel\":1,\"fanLevel\":0,\"cleanCnt\":1}]}}"
                
                warn  got payload for unknown command 'onFwBuryPoint-bd_mapinfo': "{\"header\":{\"pri\":1,\"tzm\":60,\"ts\":\"1674563558803\",\"ver\":\"0.0.1\",\"fwVer\":\"2.3.9\",\"hwVer\":\"0.1.1\",\"wkVer\":\"0.1.54\"},\"body\":{\"gid\":\"G1674563558794\",\"index\":\"0000000124\",\"ts\":\"1674563558794\",\"mapinfos\":[{\"mapid\":0,\"name\":\"\",\"savemapType\":0,\"isActive\":0,\"isRecentMap\":0,\"cleanCount\":0,\"priority\":0},{\"mapid\":732490256,\"name\":\"OG Loft\",\"savemapType\":1,\"isActive\":1,\"isRecentMap\":1,\"cleanCount\":2,\"priority\":26},{\"mapid\":0,\"name\":\"\",\"savemapType\":2,\"isActive\":0,\"isRecentMap\":0,\"cleanCount\":0,\"priority\":0},{\"mapid\":0,\"name\":\"\",\"savemapType\":3,\"isActive\":0,\"isRecentMap\":0,\"cleanCount\":0,\"priority\":0}]}}"
                

                Das sind eingentlich alle payloads die unbekannt sind.
                Die die unbekannt waren hast Du/wir ja schon erörtert.

                Was mir noch aufgefallen ist.
                Der Datenpunkt ecovacs-deebot.0.control.extended.volume wird von Dir mit Wert 1-10 vorgegeben.
                Denoch lässt sich in der iOS App der Wert von 0-10 ändern.
                So wird es auch im datenpunkt ecovacs-deebot.0.control.extended.volume gesetzt.
                Mal angenommen ich stelle in der iOS App die Lautstärke auf 5 und setzte sie danach im Datenpunkt ecovacs-deebot.0.control.extended.volume auf 0 springt dieser nach einigen Sekunden wieder auf 5

                mrbungle64M Offline
                mrbungle64M Offline
                mrbungle64
                Developer
                schrieb am zuletzt editiert von
                #242

                @jm3west sagte in Ecovacs Deebot Adapter: Status und Feedback:

                Ich habe in einer ruhigen Stunde nochmal die iOS App zur Hand genommen und durchgeklickt.

                Optionen aus iOS App heraus
                Reinigungseinstellungen > Standard

                Wischmodus (Scheinbar Standard und Anpassen weil payload der gleiche ist)

                warn  got payload for unknown command 'onCustomAreaMode': {"sweepMode":0}
                

                Was ist es denn nun genau?

                Hier hattest du noch geschrieben, dass das die Werte "Standard" und "Tief" sind:
                https://forum.iobroker.net/post/933171

                So hatte ich es dann auch implementiert:
                https://forum.iobroker.net/post/933874

                J 1 Antwort Letzte Antwort
                0
                • mrbungle64M mrbungle64

                  @jm3west sagte in Ecovacs Deebot Adapter: Status und Feedback:

                  Ich habe in einer ruhigen Stunde nochmal die iOS App zur Hand genommen und durchgeklickt.

                  Optionen aus iOS App heraus
                  Reinigungseinstellungen > Standard

                  Wischmodus (Scheinbar Standard und Anpassen weil payload der gleiche ist)

                  warn  got payload for unknown command 'onCustomAreaMode': {"sweepMode":0}
                  

                  Was ist es denn nun genau?

                  Hier hattest du noch geschrieben, dass das die Werte "Standard" und "Tief" sind:
                  https://forum.iobroker.net/post/933171

                  So hatte ich es dann auch implementiert:
                  https://forum.iobroker.net/post/933874

                  J Offline
                  J Offline
                  jm3west
                  schrieb am zuletzt editiert von
                  #243

                  @mrbungle64 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                  @jm3west sagte in Ecovacs Deebot Adapter: Status und Feedback:

                  Ich habe in einer ruhigen Stunde nochmal die iOS App zur Hand genommen und durchgeklickt.

                  Optionen aus iOS App heraus
                  Reinigungseinstellungen > Standard

                  Wischmodus (Scheinbar Standard und Anpassen weil payload der gleiche ist)

                  warn  got payload for unknown command 'onCustomAreaMode': {"sweepMode":0}
                  

                  Was ist es denn nun genau?

                  Hier hattest du noch geschrieben, dass das die Werte "Standard" und "Tief" sind:

                  Damit meinte ich dass, wie schon beschrieben, der payload sowohl bei Standard und Anpassen immer gleich sind, mit gleichen Wertepaar.
                  So würde ich es auch von der optischen Aufteilung interpretieren.

                  Sprich beide werden mit den Werten Standard=0; Tief=1 beschrieben.

                  mrbungle64M 1 Antwort Letzte Antwort
                  0
                  • J jm3west

                    @mrbungle64 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                    @jm3west sagte in Ecovacs Deebot Adapter: Status und Feedback:

                    Ich habe in einer ruhigen Stunde nochmal die iOS App zur Hand genommen und durchgeklickt.

                    Optionen aus iOS App heraus
                    Reinigungseinstellungen > Standard

                    Wischmodus (Scheinbar Standard und Anpassen weil payload der gleiche ist)

                    warn  got payload for unknown command 'onCustomAreaMode': {"sweepMode":0}
                    

                    Was ist es denn nun genau?

                    Hier hattest du noch geschrieben, dass das die Werte "Standard" und "Tief" sind:

                    Damit meinte ich dass, wie schon beschrieben, der payload sowohl bei Standard und Anpassen immer gleich sind, mit gleichen Wertepaar.
                    So würde ich es auch von der optischen Aufteilung interpretieren.

                    Sprich beide werden mit den Werten Standard=0; Tief=1 beschrieben.

                    mrbungle64M Offline
                    mrbungle64M Offline
                    mrbungle64
                    Developer
                    schrieb am zuletzt editiert von
                    #244

                    @jm3west

                    Kannst du mir vielleicht doch noch mal für ne Stunde (oder so) deinen Bot freigeben, so dass ich mir mal das User Interface anschauen kann? Irgendwie verstehe ich das wohl noch nicht so ganz, wie Ecovacs das nun beim X1 aufgebaut hat ...

                    J 1 Antwort Letzte Antwort
                    0
                    • mrbungle64M mrbungle64

                      @jm3west

                      Kannst du mir vielleicht doch noch mal für ne Stunde (oder so) deinen Bot freigeben, so dass ich mir mal das User Interface anschauen kann? Irgendwie verstehe ich das wohl noch nicht so ganz, wie Ecovacs das nun beim X1 aufgebaut hat ...

                      J Offline
                      J Offline
                      jm3west
                      schrieb am zuletzt editiert von
                      #245

                      @mrbungle64 gerne!
                      Aber Du denkst nicht an heute noch?

                      mrbungle64M 1 Antwort Letzte Antwort
                      0
                      • J jm3west

                        @mrbungle64 gerne!
                        Aber Du denkst nicht an heute noch?

                        mrbungle64M Offline
                        mrbungle64M Offline
                        mrbungle64
                        Developer
                        schrieb am zuletzt editiert von
                        #246

                        @jm3west sagte in Ecovacs Deebot Adapter: Status und Feedback:

                        @mrbungle64 gerne!
                        Aber Du denkst nicht an heute noch?

                        Falls das für dich kein Problem ist wäre jetzt direkt ganz günstig für mich :)

                        J 1 Antwort Letzte Antwort
                        0
                        • mrbungle64M mrbungle64

                          @jm3west sagte in Ecovacs Deebot Adapter: Status und Feedback:

                          @mrbungle64 gerne!
                          Aber Du denkst nicht an heute noch?

                          Falls das für dich kein Problem ist wäre jetzt direkt ganz günstig für mich :)

                          J Offline
                          J Offline
                          jm3west
                          schrieb am zuletzt editiert von
                          #247

                          @mrbungle64 nun für mich nicht.
                          Aber für jemand anderen der hier sitzt :blond-haired-woman:

                          Wir hätten aber doch noch immer das debug-Problem. Da die Freigabe ja kein Passwort hat.
                          Man musste ja ein VPN-Tunnel erstellen

                          mrbungle64M 1 Antwort Letzte Antwort
                          0
                          • J jm3west

                            @mrbungle64 nun für mich nicht.
                            Aber für jemand anderen der hier sitzt :blond-haired-woman:

                            Wir hätten aber doch noch immer das debug-Problem. Da die Freigabe ja kein Passwort hat.
                            Man musste ja ein VPN-Tunnel erstellen

                            mrbungle64M Offline
                            mrbungle64M Offline
                            mrbungle64
                            Developer
                            schrieb am zuletzt editiert von
                            #248

                            @jm3west sagte in Ecovacs Deebot Adapter: Status und Feedback:

                            @mrbungle64 nun für mich nicht.
                            Aber für jemand anderen der hier sitzt :blond-haired-woman:

                            Alles klar ;) Für mich kein Problem - ich weiß auch ansonsten was mit meiner Zeit anzufangen ;)

                            Wir hätten aber doch noch immer das debug-Problem. Da die Freigabe ja kein Passwort hat.
                            Man musste ja ein VPN-Tunnel erstellen

                            Das verstehe ich gerade nicht, zwischen welchen Endpunkten du dafür einen VPN-Tunnel aufbauen willst ...
                            Ich muss mich mit deinen Zugangsdaten authentifizieren, damit ich mit deinem Bot sprechen und dazu eine Ausgabe über die Library bekomme ...

                            Wie bereits mitgeteilt habe ich ja sowieso schon ein paar Dinge für den X1 umgesetzt. Wir werden dann früher oder später sehen, ob es funktioniert ;)

                            J T 2 Antworten Letzte Antwort
                            0
                            • mrbungle64M mrbungle64

                              @jm3west sagte in Ecovacs Deebot Adapter: Status und Feedback:

                              @mrbungle64 nun für mich nicht.
                              Aber für jemand anderen der hier sitzt :blond-haired-woman:

                              Alles klar ;) Für mich kein Problem - ich weiß auch ansonsten was mit meiner Zeit anzufangen ;)

                              Wir hätten aber doch noch immer das debug-Problem. Da die Freigabe ja kein Passwort hat.
                              Man musste ja ein VPN-Tunnel erstellen

                              Das verstehe ich gerade nicht, zwischen welchen Endpunkten du dafür einen VPN-Tunnel aufbauen willst ...
                              Ich muss mich mit deinen Zugangsdaten authentifizieren, damit ich mit deinem Bot sprechen und dazu eine Ausgabe über die Library bekomme ...

                              Wie bereits mitgeteilt habe ich ja sowieso schon ein paar Dinge für den X1 umgesetzt. Wir werden dann früher oder später sehen, ob es funktioniert ;)

                              J Offline
                              J Offline
                              jm3west
                              schrieb am zuletzt editiert von
                              #249

                              @mrbungle64 ach so, das habe ich falsch verstanden.
                              OK. lass' uns morgen darüber quatschen.

                              Melde dich wenn du morgen bereit bist

                              1 Antwort Letzte Antwort
                              0
                              • mrbungle64M mrbungle64

                                @jm3west sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                @mrbungle64 nun für mich nicht.
                                Aber für jemand anderen der hier sitzt :blond-haired-woman:

                                Alles klar ;) Für mich kein Problem - ich weiß auch ansonsten was mit meiner Zeit anzufangen ;)

                                Wir hätten aber doch noch immer das debug-Problem. Da die Freigabe ja kein Passwort hat.
                                Man musste ja ein VPN-Tunnel erstellen

                                Das verstehe ich gerade nicht, zwischen welchen Endpunkten du dafür einen VPN-Tunnel aufbauen willst ...
                                Ich muss mich mit deinen Zugangsdaten authentifizieren, damit ich mit deinem Bot sprechen und dazu eine Ausgabe über die Library bekomme ...

                                Wie bereits mitgeteilt habe ich ja sowieso schon ein paar Dinge für den X1 umgesetzt. Wir werden dann früher oder später sehen, ob es funktioniert ;)

                                T Offline
                                T Offline
                                Thirty8763
                                schrieb am zuletzt editiert von
                                #250

                                Hallo zusammen,

                                Habe ein generelles Problem mit meinem T8 AIVI und Türen und ich versuche es derzeit mit diesem tollen Adapter zu lösen.

                                Ihr kennt es bestimmt:
                                Man schickt den Staubsauger in das Gangzimmer und lässt manche Türen lieber zu. Dies verringert die Lärmbelästigung.
                                Der Roboter aktualisiert aber blöderweise die Karte und zeichnet dort, wo die Türe geschlossen war nun eine Wand ein.
                                Bei der nächsten Reinigung findet der Roboter nicht mehr in den Raum hinter der Türe. Er versucht nicht mal in die Nähe zu fahren, um vl nachzusehen ob die Türe schon offen ist. Auch wenn man zusätzlich das Gangzimmer auch noch ins Reinigungsprogramm aufnimmt bringt das manchmal nichts weil die Karte scheinbar erst nach einener erfolgreichen Reinigung aktualisiert wird.

                                Nun meine Gedanken:

                                1. Kann man nicht irgendwie den Zustand einer Karte speichern und vor jedem Start auf diesen Stand zurücksetzen? Damit könnte man den Zustand mit offenen Türen immer wieder wiederherstellen.
                                2. Ich suche vergeblich noch immer einen "Move" Befehl. Mit ihm würde ich vor der Reinigung vor die Türe fahren. Damit schnallt er hoffentlich, dass die Türe offen ist und ich könnte das eigentliche Reinigungsprogramm ausführen. Die Abfolge ließe sich vl mit einem Javascript durch Statuspolls und entspechende Reaktionscommands implementieren.
                                3. Weil es ja keinen "Move" Befehl gibt könnte man statt Move auch z.B. eine 1x1m Bereichsreinigung vor der Türe ausführen. Sobald sich der Roboter auf den Heimweg machen will wird dann das eigentliche Programm ausgeführt, das den Raum hinter der Türe reinigt.

                                Was meint ihr?
                                Könnt ihr das Problem nachvollziehen?
                                Ist einer der Lösungsansätze umsetzbar?

                                mrbungle64M 1 Antwort Letzte Antwort
                                0
                                • T Thirty8763

                                  Hallo zusammen,

                                  Habe ein generelles Problem mit meinem T8 AIVI und Türen und ich versuche es derzeit mit diesem tollen Adapter zu lösen.

                                  Ihr kennt es bestimmt:
                                  Man schickt den Staubsauger in das Gangzimmer und lässt manche Türen lieber zu. Dies verringert die Lärmbelästigung.
                                  Der Roboter aktualisiert aber blöderweise die Karte und zeichnet dort, wo die Türe geschlossen war nun eine Wand ein.
                                  Bei der nächsten Reinigung findet der Roboter nicht mehr in den Raum hinter der Türe. Er versucht nicht mal in die Nähe zu fahren, um vl nachzusehen ob die Türe schon offen ist. Auch wenn man zusätzlich das Gangzimmer auch noch ins Reinigungsprogramm aufnimmt bringt das manchmal nichts weil die Karte scheinbar erst nach einener erfolgreichen Reinigung aktualisiert wird.

                                  Nun meine Gedanken:

                                  1. Kann man nicht irgendwie den Zustand einer Karte speichern und vor jedem Start auf diesen Stand zurücksetzen? Damit könnte man den Zustand mit offenen Türen immer wieder wiederherstellen.
                                  2. Ich suche vergeblich noch immer einen "Move" Befehl. Mit ihm würde ich vor der Reinigung vor die Türe fahren. Damit schnallt er hoffentlich, dass die Türe offen ist und ich könnte das eigentliche Reinigungsprogramm ausführen. Die Abfolge ließe sich vl mit einem Javascript durch Statuspolls und entspechende Reaktionscommands implementieren.
                                  3. Weil es ja keinen "Move" Befehl gibt könnte man statt Move auch z.B. eine 1x1m Bereichsreinigung vor der Türe ausführen. Sobald sich der Roboter auf den Heimweg machen will wird dann das eigentliche Programm ausgeführt, das den Raum hinter der Türe reinigt.

                                  Was meint ihr?
                                  Könnt ihr das Problem nachvollziehen?
                                  Ist einer der Lösungsansätze umsetzbar?

                                  mrbungle64M Offline
                                  mrbungle64M Offline
                                  mrbungle64
                                  Developer
                                  schrieb am zuletzt editiert von mrbungle64
                                  #251

                                  @thirty8763 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                  1. Ich suche vergeblich noch immer einen "Move" Befehl. Mit ihm würde ich vor der Reinigung vor die Türe fahren. Damit schnallt er hoffentlich, dass die Türe offen ist und ich könnte das eigentliche Reinigungsprogramm ausführen. Die Abfolge ließe sich vl mit einem Javascript durch Statuspolls und entspechende Reaktionscommands implementieren.

                                  Den gibt es (wenn ich deine Anforderung an den "Move" Befehl richtig verstehe) - inzwischen sogar mehrfach für Modelle ab dem T8 AIVI - der heißt nur nicht "move":

                                  • control.extended.goToPosition (nativ für Modelle ab dem T8 AIVI, seit Version 1.4.6)
                                  • control.spotArea_silentApproach (inkl. Reinigung, seit Version 1.4.12-alpha.x)

                                  Man kann die aktuelle Positionen vom Bot sogar dauerhaft als Datenpunkt bzw. Button speichern:

                                  • control.extended.goToPosition_saveCurrentDeebotPosition (seit Version 1.4.11)

                                  Weitere Varianten:

                                  • map.[mapID].spotAreas.[spotAreaID].goToCalculatedCenterPosition (seit Version 1.4.12-alpha.x)
                                  • map.[mapID].spotAreas.[spotAreaID].cleanSpotArea_silentApproach (inkl. Reinigung, seit Version 1.4.12-alpha.x)

                                  "control.extended.goToPosition" ist die einfache Variante, welche du wahrscheinlich gemeint hast.

                                  Ich werde das noch mal ausführlicher beschreiben - es ist jetzt für heute aber schon zu spät dafür ;)

                                  1. Weil es ja keinen "Move" Befehl gibt könnte man statt Move auch z.B. eine 1x1m Bereichsreinigung vor der Türe ausführen. Sobald sich der Roboter auf den Heimweg machen will wird dann das eigentliche Programm ausgeführt, das den Raum hinter der Türe reinigt.

                                  Punkt 3 sollte für den T8 AIVI und neuere Modelle mit den o.g. Funktionen nicht mehr notwendig sein

                                  1. Kann man nicht irgendwie den Zustand einer Karte speichern und vor jedem Start auf diesen Stand zurücksetzen? Damit könnte man den Zustand mit offenen Türen immer wieder wiederherstellen.

                                  Punkt 1 bin ich aktuell am untersuchen, ob das ab dem T8 oder T9 möglich ist.
                                  Ich würde da aber nicht zu viel Hoffnung rein stecken, weil die Ecovacs Deebot API offiziell undokumentiert ist und ich daher sehr vorsichtig bin mit solchen Sachen, welche auch "gesunde" Karten zerstören könnten.

                                  T 1 Antwort Letzte Antwort
                                  1
                                  • mrbungle64M mrbungle64

                                    @thirty8763 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                    1. Ich suche vergeblich noch immer einen "Move" Befehl. Mit ihm würde ich vor der Reinigung vor die Türe fahren. Damit schnallt er hoffentlich, dass die Türe offen ist und ich könnte das eigentliche Reinigungsprogramm ausführen. Die Abfolge ließe sich vl mit einem Javascript durch Statuspolls und entspechende Reaktionscommands implementieren.

                                    Den gibt es (wenn ich deine Anforderung an den "Move" Befehl richtig verstehe) - inzwischen sogar mehrfach für Modelle ab dem T8 AIVI - der heißt nur nicht "move":

                                    • control.extended.goToPosition (nativ für Modelle ab dem T8 AIVI, seit Version 1.4.6)
                                    • control.spotArea_silentApproach (inkl. Reinigung, seit Version 1.4.12-alpha.x)

                                    Man kann die aktuelle Positionen vom Bot sogar dauerhaft als Datenpunkt bzw. Button speichern:

                                    • control.extended.goToPosition_saveCurrentDeebotPosition (seit Version 1.4.11)

                                    Weitere Varianten:

                                    • map.[mapID].spotAreas.[spotAreaID].goToCalculatedCenterPosition (seit Version 1.4.12-alpha.x)
                                    • map.[mapID].spotAreas.[spotAreaID].cleanSpotArea_silentApproach (inkl. Reinigung, seit Version 1.4.12-alpha.x)

                                    "control.extended.goToPosition" ist die einfache Variante, welche du wahrscheinlich gemeint hast.

                                    Ich werde das noch mal ausführlicher beschreiben - es ist jetzt für heute aber schon zu spät dafür ;)

                                    1. Weil es ja keinen "Move" Befehl gibt könnte man statt Move auch z.B. eine 1x1m Bereichsreinigung vor der Türe ausführen. Sobald sich der Roboter auf den Heimweg machen will wird dann das eigentliche Programm ausgeführt, das den Raum hinter der Türe reinigt.

                                    Punkt 3 sollte für den T8 AIVI und neuere Modelle mit den o.g. Funktionen nicht mehr notwendig sein

                                    1. Kann man nicht irgendwie den Zustand einer Karte speichern und vor jedem Start auf diesen Stand zurücksetzen? Damit könnte man den Zustand mit offenen Türen immer wieder wiederherstellen.

                                    Punkt 1 bin ich aktuell am untersuchen, ob das ab dem T8 oder T9 möglich ist.
                                    Ich würde da aber nicht zu viel Hoffnung rein stecken, weil die Ecovacs Deebot API offiziell undokumentiert ist und ich daher sehr vorsichtig bin mit solchen Sachen, welche auch "gesunde" Karten zerstören könnten.

                                    T Offline
                                    T Offline
                                    Thirty8763
                                    schrieb am zuletzt editiert von
                                    #252

                                    @mrbungle64
                                    Ahhh... Der goToPosition Datenpunkt war nicht sicher weil "Einige weitere experimentelle Features ("control.extended" Kanal)" nicht aktiv gesetzt war.
                                    Ich dachte das ist mit " Native "goToPosition" Funktion benutzen (z.B. T8/T9/N8/X1 Serie)" erledigt aber scheinbar muss man beide experimentellen Features aktivieren.

                                    Super, damit kann ich arbeiten, dann werde ich versuchen immer vorher die entsprechenden Türpositionen anzufahren und erst dann direkt von dort die Reinigung aufnehmen.

                                    Die nächste Ausbaustufe könnte sein, auch noch Türsensoren anzubringen. Wenn eine Türe verschlossen ist braucht er es nicht mehr versuchen den/die dahinterliegenden Räume anzufahren.

                                    T mrbungle64M 2 Antworten Letzte Antwort
                                    0
                                    • T Thirty8763

                                      @mrbungle64
                                      Ahhh... Der goToPosition Datenpunkt war nicht sicher weil "Einige weitere experimentelle Features ("control.extended" Kanal)" nicht aktiv gesetzt war.
                                      Ich dachte das ist mit " Native "goToPosition" Funktion benutzen (z.B. T8/T9/N8/X1 Serie)" erledigt aber scheinbar muss man beide experimentellen Features aktivieren.

                                      Super, damit kann ich arbeiten, dann werde ich versuchen immer vorher die entsprechenden Türpositionen anzufahren und erst dann direkt von dort die Reinigung aufnehmen.

                                      Die nächste Ausbaustufe könnte sein, auch noch Türsensoren anzubringen. Wenn eine Türe verschlossen ist braucht er es nicht mehr versuchen den/die dahinterliegenden Räume anzufahren.

                                      T Offline
                                      T Offline
                                      Thirty8763
                                      schrieb am zuletzt editiert von
                                      #253

                                      @thirty8763

                                      Ich konnte das Vorhaben dank deiner Unterstützung umsetzen.
                                      Hier der erste Wurf meines Javascripts, vl kanns ja jemand brauchen:

                                      /* -------------------------------------------------------------------------------- */
                                      /* global status variables */
                                      var m_moveCommands = [];
                                      var m_cleanCommands = [];
                                      var m_forceNextCommand = false;
                                      var m_timeout = 0;
                                      
                                      
                                      /* -------------------------------------------------------------------------------- */
                                      /* trigger point to go back to charging */
                                      on({id: '0_userdata.0.Staubsauger.myCharge'}, function (obj) {
                                          console.log('myCharge Start');
                                      
                                          m_moveCommands = [];
                                          m_cleanCommands = [];
                                          
                                          setState('ecovacs-deebot.0.control.charge', "1");
                                      });
                                      
                                      
                                      /* -------------------------------------------------------------------------------- */
                                      /* trigger point to start a cleaning */
                                      on({id: '0_userdata.0.Staubsauger.mySpotArea'}, function (obj) {
                                          console.log('mySpotArea Start');
                                      
                                          /* clear old cleaning program */
                                          m_moveCommands = [];
                                          m_cleanCommands = [];
                                      
                                          /* get the input information where to clean */
                                          var cleanInput = getState('0_userdata.0.Staubsauger.mySpotArea').val.toString();
                                      
                                          /* parse the input */
                                          var cleanCommands = [];
                                          if (cleanInput.includes(","))
                                          {
                                              cleanCommands = cleanInput.split(",");
                                          }
                                          else
                                          {
                                              cleanCommands[0] = cleanInput.toString();
                                          }
                                      
                                          /* add the move commands if needed */
                                      
                                          /* Schlafzimmertüre */
                                          if (cleanCommands.includes("2"))    /* Schlafzimmer */
                                          {
                                              /* move to Schlafzimmertüre */
                                              m_moveCommands[m_moveCommands.length] = "304,-1037";
                                          }
                                      
                                          /* Vorzimmertüre */
                                          if (cleanCommands.includes("3") ||  /* Vorzimmer */
                                              cleanCommands.includes("4") ||  /* WC */
                                              cleanCommands.includes("6") ||  /* Badezimmer */
                                              cleanCommands.includes("7"))    /* Kammer */
                                          {
                                              /* move to Vorzimmertüre */
                                              m_moveCommands[m_moveCommands.length] = "-2012,2126";
                                          }
                                      
                                          /* WC Türe */
                                          if (cleanCommands.includes("4"))    /* WC */
                                          {
                                              /* move to WC Türe */
                                              m_moveCommands[m_moveCommands.length] = "-3368,1542";
                                          }
                                      
                                          /* Badezimmertüre */
                                          if (cleanCommands.includes("6"))    /* Badezimmer */
                                          {
                                              /* move to Badezimmer Türe */
                                              m_moveCommands[m_moveCommands.length] = "-5203,1354";
                                          }
                                      
                                          /* Kammer Türe */
                                          if (cleanCommands.includes("7"))    /* Kammer */
                                          {
                                              /* move to Kammer Türe */
                                              m_moveCommands[m_moveCommands.length] = "-5698,2844";
                                          }
                                      
                                          /* set the global clean commands variable */
                                          m_cleanCommands = cleanCommands;
                                      
                                          // force the continuation to start the next program step
                                          m_forceNextCommand = true;
                                      
                                          // print program
                                          console.log("New Cleaning Programm:");
                                          console.log(m_moveCommands);
                                          console.log(m_cleanCommands);
                                      });
                                      
                                      
                                      /* -------------------------------------------------------------------------------- */
                                      /* cyclicly check if the the next command shall be triggered */
                                      schedule('* * * * * *', function () {
                                      
                                          /* handle the timeout function */
                                          /* wait a moment to become the program active */
                                          if (0 < m_timeout)
                                          {
                                              if ("idle" != getState('ecovacs-deebot.0.info.cleanstatus').val)
                                              {
                                                  m_timeout = 0;
                                                  return;
                                              }
                                              
                                              m_timeout = m_timeout - 1;
                                              return;
                                          }
                                          
                                          /* find out if the robot is still busy or if we force the continuation */
                                          if ("idle" != getState('ecovacs-deebot.0.info.cleanstatus').val &&
                                              false == m_forceNextCommand) 
                                          {
                                              // console.log("Busy detected.");
                                              return;
                                          }
                                      
                                          m_forceNextCommand = false;
                                      
                                          // console.log("Continue with next step if available.");
                                          
                                          /* print program */
                                          // console.log(m_moveCommands);
                                          // console.log(m_cleanCommands);
                                      
                                          /* execute next move command if needed */
                                          if (0 != m_moveCommands.length)
                                          {
                                              /* get next move command parameter */
                                              const s_move = m_moveCommands.shift();
                                      
                                              console.log("goToPostion " + s_move);
                                      
                                              /* start the move command */
                                              setState("ecovacs-deebot.0.control.extended.goToPosition", s_move);
                                      
                                              m_timeout = 10;
                                      
                                              /* stop the execution of this loop */
                                              return;
                                          }
                                      
                                          /* execute next clean command if needed */
                                          if (0 != m_cleanCommands.length)
                                          {
                                              /* get next clean command parameter */
                                              var s_clean = "";
                                              for (var i = 0; i < m_cleanCommands.length; i++)
                                              {
                                                  s_clean = s_clean + m_cleanCommands[i] + ",";
                                              }
                                              s_clean.substring(0, s_clean.length - 1);
                                      
                                              /* remove the commands that will be processed */
                                              m_cleanCommands = [];
                                      
                                              console.log("spotArea " + s_clean);
                                      
                                              /* start the move command */
                                              setState("ecovacs-deebot.0.control.spotArea", s_clean);
                                      
                                              /* stop the execution of this loop */
                                              return;
                                          }
                                      });
                                      
                                      mrbungle64M 2 Antworten Letzte Antwort
                                      1
                                      • T Thirty8763

                                        @thirty8763

                                        Ich konnte das Vorhaben dank deiner Unterstützung umsetzen.
                                        Hier der erste Wurf meines Javascripts, vl kanns ja jemand brauchen:

                                        /* -------------------------------------------------------------------------------- */
                                        /* global status variables */
                                        var m_moveCommands = [];
                                        var m_cleanCommands = [];
                                        var m_forceNextCommand = false;
                                        var m_timeout = 0;
                                        
                                        
                                        /* -------------------------------------------------------------------------------- */
                                        /* trigger point to go back to charging */
                                        on({id: '0_userdata.0.Staubsauger.myCharge'}, function (obj) {
                                            console.log('myCharge Start');
                                        
                                            m_moveCommands = [];
                                            m_cleanCommands = [];
                                            
                                            setState('ecovacs-deebot.0.control.charge', "1");
                                        });
                                        
                                        
                                        /* -------------------------------------------------------------------------------- */
                                        /* trigger point to start a cleaning */
                                        on({id: '0_userdata.0.Staubsauger.mySpotArea'}, function (obj) {
                                            console.log('mySpotArea Start');
                                        
                                            /* clear old cleaning program */
                                            m_moveCommands = [];
                                            m_cleanCommands = [];
                                        
                                            /* get the input information where to clean */
                                            var cleanInput = getState('0_userdata.0.Staubsauger.mySpotArea').val.toString();
                                        
                                            /* parse the input */
                                            var cleanCommands = [];
                                            if (cleanInput.includes(","))
                                            {
                                                cleanCommands = cleanInput.split(",");
                                            }
                                            else
                                            {
                                                cleanCommands[0] = cleanInput.toString();
                                            }
                                        
                                            /* add the move commands if needed */
                                        
                                            /* Schlafzimmertüre */
                                            if (cleanCommands.includes("2"))    /* Schlafzimmer */
                                            {
                                                /* move to Schlafzimmertüre */
                                                m_moveCommands[m_moveCommands.length] = "304,-1037";
                                            }
                                        
                                            /* Vorzimmertüre */
                                            if (cleanCommands.includes("3") ||  /* Vorzimmer */
                                                cleanCommands.includes("4") ||  /* WC */
                                                cleanCommands.includes("6") ||  /* Badezimmer */
                                                cleanCommands.includes("7"))    /* Kammer */
                                            {
                                                /* move to Vorzimmertüre */
                                                m_moveCommands[m_moveCommands.length] = "-2012,2126";
                                            }
                                        
                                            /* WC Türe */
                                            if (cleanCommands.includes("4"))    /* WC */
                                            {
                                                /* move to WC Türe */
                                                m_moveCommands[m_moveCommands.length] = "-3368,1542";
                                            }
                                        
                                            /* Badezimmertüre */
                                            if (cleanCommands.includes("6"))    /* Badezimmer */
                                            {
                                                /* move to Badezimmer Türe */
                                                m_moveCommands[m_moveCommands.length] = "-5203,1354";
                                            }
                                        
                                            /* Kammer Türe */
                                            if (cleanCommands.includes("7"))    /* Kammer */
                                            {
                                                /* move to Kammer Türe */
                                                m_moveCommands[m_moveCommands.length] = "-5698,2844";
                                            }
                                        
                                            /* set the global clean commands variable */
                                            m_cleanCommands = cleanCommands;
                                        
                                            // force the continuation to start the next program step
                                            m_forceNextCommand = true;
                                        
                                            // print program
                                            console.log("New Cleaning Programm:");
                                            console.log(m_moveCommands);
                                            console.log(m_cleanCommands);
                                        });
                                        
                                        
                                        /* -------------------------------------------------------------------------------- */
                                        /* cyclicly check if the the next command shall be triggered */
                                        schedule('* * * * * *', function () {
                                        
                                            /* handle the timeout function */
                                            /* wait a moment to become the program active */
                                            if (0 < m_timeout)
                                            {
                                                if ("idle" != getState('ecovacs-deebot.0.info.cleanstatus').val)
                                                {
                                                    m_timeout = 0;
                                                    return;
                                                }
                                                
                                                m_timeout = m_timeout - 1;
                                                return;
                                            }
                                            
                                            /* find out if the robot is still busy or if we force the continuation */
                                            if ("idle" != getState('ecovacs-deebot.0.info.cleanstatus').val &&
                                                false == m_forceNextCommand) 
                                            {
                                                // console.log("Busy detected.");
                                                return;
                                            }
                                        
                                            m_forceNextCommand = false;
                                        
                                            // console.log("Continue with next step if available.");
                                            
                                            /* print program */
                                            // console.log(m_moveCommands);
                                            // console.log(m_cleanCommands);
                                        
                                            /* execute next move command if needed */
                                            if (0 != m_moveCommands.length)
                                            {
                                                /* get next move command parameter */
                                                const s_move = m_moveCommands.shift();
                                        
                                                console.log("goToPostion " + s_move);
                                        
                                                /* start the move command */
                                                setState("ecovacs-deebot.0.control.extended.goToPosition", s_move);
                                        
                                                m_timeout = 10;
                                        
                                                /* stop the execution of this loop */
                                                return;
                                            }
                                        
                                            /* execute next clean command if needed */
                                            if (0 != m_cleanCommands.length)
                                            {
                                                /* get next clean command parameter */
                                                var s_clean = "";
                                                for (var i = 0; i < m_cleanCommands.length; i++)
                                                {
                                                    s_clean = s_clean + m_cleanCommands[i] + ",";
                                                }
                                                s_clean.substring(0, s_clean.length - 1);
                                        
                                                /* remove the commands that will be processed */
                                                m_cleanCommands = [];
                                        
                                                console.log("spotArea " + s_clean);
                                        
                                                /* start the move command */
                                                setState("ecovacs-deebot.0.control.spotArea", s_clean);
                                        
                                                /* stop the execution of this loop */
                                                return;
                                            }
                                        });
                                        
                                        mrbungle64M Offline
                                        mrbungle64M Offline
                                        mrbungle64
                                        Developer
                                        schrieb am zuletzt editiert von
                                        #254

                                        @thirty8763 sagte in Ecovacs Deebot Adapter: Status und Feedback:

                                        setState('ecovacs-deebot.0.control.charge', "1");

                                        setState('ecovacs-deebot.0.control.charge', "1");
                                        

                                        Für den Wert solltest du einen boolean verwenden:

                                        setState('ecovacs-deebot.0.control.charge', true);
                                        

                                        Mich wundert, dass das überhaupt so funktioniert hat

                                        1 Antwort Letzte Antwort
                                        0
                                        • T Thirty8763

                                          @thirty8763

                                          Ich konnte das Vorhaben dank deiner Unterstützung umsetzen.
                                          Hier der erste Wurf meines Javascripts, vl kanns ja jemand brauchen:

                                          /* -------------------------------------------------------------------------------- */
                                          /* global status variables */
                                          var m_moveCommands = [];
                                          var m_cleanCommands = [];
                                          var m_forceNextCommand = false;
                                          var m_timeout = 0;
                                          
                                          
                                          /* -------------------------------------------------------------------------------- */
                                          /* trigger point to go back to charging */
                                          on({id: '0_userdata.0.Staubsauger.myCharge'}, function (obj) {
                                              console.log('myCharge Start');
                                          
                                              m_moveCommands = [];
                                              m_cleanCommands = [];
                                              
                                              setState('ecovacs-deebot.0.control.charge', "1");
                                          });
                                          
                                          
                                          /* -------------------------------------------------------------------------------- */
                                          /* trigger point to start a cleaning */
                                          on({id: '0_userdata.0.Staubsauger.mySpotArea'}, function (obj) {
                                              console.log('mySpotArea Start');
                                          
                                              /* clear old cleaning program */
                                              m_moveCommands = [];
                                              m_cleanCommands = [];
                                          
                                              /* get the input information where to clean */
                                              var cleanInput = getState('0_userdata.0.Staubsauger.mySpotArea').val.toString();
                                          
                                              /* parse the input */
                                              var cleanCommands = [];
                                              if (cleanInput.includes(","))
                                              {
                                                  cleanCommands = cleanInput.split(",");
                                              }
                                              else
                                              {
                                                  cleanCommands[0] = cleanInput.toString();
                                              }
                                          
                                              /* add the move commands if needed */
                                          
                                              /* Schlafzimmertüre */
                                              if (cleanCommands.includes("2"))    /* Schlafzimmer */
                                              {
                                                  /* move to Schlafzimmertüre */
                                                  m_moveCommands[m_moveCommands.length] = "304,-1037";
                                              }
                                          
                                              /* Vorzimmertüre */
                                              if (cleanCommands.includes("3") ||  /* Vorzimmer */
                                                  cleanCommands.includes("4") ||  /* WC */
                                                  cleanCommands.includes("6") ||  /* Badezimmer */
                                                  cleanCommands.includes("7"))    /* Kammer */
                                              {
                                                  /* move to Vorzimmertüre */
                                                  m_moveCommands[m_moveCommands.length] = "-2012,2126";
                                              }
                                          
                                              /* WC Türe */
                                              if (cleanCommands.includes("4"))    /* WC */
                                              {
                                                  /* move to WC Türe */
                                                  m_moveCommands[m_moveCommands.length] = "-3368,1542";
                                              }
                                          
                                              /* Badezimmertüre */
                                              if (cleanCommands.includes("6"))    /* Badezimmer */
                                              {
                                                  /* move to Badezimmer Türe */
                                                  m_moveCommands[m_moveCommands.length] = "-5203,1354";
                                              }
                                          
                                              /* Kammer Türe */
                                              if (cleanCommands.includes("7"))    /* Kammer */
                                              {
                                                  /* move to Kammer Türe */
                                                  m_moveCommands[m_moveCommands.length] = "-5698,2844";
                                              }
                                          
                                              /* set the global clean commands variable */
                                              m_cleanCommands = cleanCommands;
                                          
                                              // force the continuation to start the next program step
                                              m_forceNextCommand = true;
                                          
                                              // print program
                                              console.log("New Cleaning Programm:");
                                              console.log(m_moveCommands);
                                              console.log(m_cleanCommands);
                                          });
                                          
                                          
                                          /* -------------------------------------------------------------------------------- */
                                          /* cyclicly check if the the next command shall be triggered */
                                          schedule('* * * * * *', function () {
                                          
                                              /* handle the timeout function */
                                              /* wait a moment to become the program active */
                                              if (0 < m_timeout)
                                              {
                                                  if ("idle" != getState('ecovacs-deebot.0.info.cleanstatus').val)
                                                  {
                                                      m_timeout = 0;
                                                      return;
                                                  }
                                                  
                                                  m_timeout = m_timeout - 1;
                                                  return;
                                              }
                                              
                                              /* find out if the robot is still busy or if we force the continuation */
                                              if ("idle" != getState('ecovacs-deebot.0.info.cleanstatus').val &&
                                                  false == m_forceNextCommand) 
                                              {
                                                  // console.log("Busy detected.");
                                                  return;
                                              }
                                          
                                              m_forceNextCommand = false;
                                          
                                              // console.log("Continue with next step if available.");
                                              
                                              /* print program */
                                              // console.log(m_moveCommands);
                                              // console.log(m_cleanCommands);
                                          
                                              /* execute next move command if needed */
                                              if (0 != m_moveCommands.length)
                                              {
                                                  /* get next move command parameter */
                                                  const s_move = m_moveCommands.shift();
                                          
                                                  console.log("goToPostion " + s_move);
                                          
                                                  /* start the move command */
                                                  setState("ecovacs-deebot.0.control.extended.goToPosition", s_move);
                                          
                                                  m_timeout = 10;
                                          
                                                  /* stop the execution of this loop */
                                                  return;
                                              }
                                          
                                              /* execute next clean command if needed */
                                              if (0 != m_cleanCommands.length)
                                              {
                                                  /* get next clean command parameter */
                                                  var s_clean = "";
                                                  for (var i = 0; i < m_cleanCommands.length; i++)
                                                  {
                                                      s_clean = s_clean + m_cleanCommands[i] + ",";
                                                  }
                                                  s_clean.substring(0, s_clean.length - 1);
                                          
                                                  /* remove the commands that will be processed */
                                                  m_cleanCommands = [];
                                          
                                                  console.log("spotArea " + s_clean);
                                          
                                                  /* start the move command */
                                                  setState("ecovacs-deebot.0.control.spotArea", s_clean);
                                          
                                                  /* stop the execution of this loop */
                                                  return;
                                              }
                                          });
                                          
                                          mrbungle64M Offline
                                          mrbungle64M Offline
                                          mrbungle64
                                          Developer
                                          schrieb am zuletzt editiert von
                                          #255

                                          @thirty8763

                                          Löst das so schon Dein eigentliches Problem mit der als Wand behandelten Tür?

                                          T 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

                                          377

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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