Ankündigung

Einklappen

Aufruf

Bitte helft bei unserer Spendenaktion: Spendenaktion Helmut Lintschinger
Mehr anzeigen
Weniger anzeigen

Plugin Xiaomi Saugroboter

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #31
    Na,schon jemand geschaut? Man kann in der originalen app über zone cleanup zonen erstellen, hab dies aber noch nicht ausprobiert, vl wäre das format mal mnteressant..

    https://github.com/jghaanstra/com.xi...zonecleanup.md
    Zuletzt geändert von Bonze; 11.11.2019, 20:47.

    Kommentar


      #32
      Vielen Dank für das Update! Gerade frisch gezogen und neu gestartet. Das WebIF scheint gut zu funzen und ist jedenfalls der richtige Weg zum Debuggen. Widget bastle ich mir für das Quad Design ein eigenes.

      Ich hab bei mir lediglich nach wie vor noch folgende Auffälligkeiten beim S5:
      Item roborock_eg.segment_status: value "unknown_method" reinigiungsdetails und ids sind alle auf None Schönen Abend!

      Kommentar


        #33
        Ja, das mit dem segmentstatus hab ich auch, das mit den reinigungsids, muss ich nochmal nachschauen..

        Kommentar


          #34
          Hallo,

          zum Struct:
          sollte in der item.yaml nicht vorbildlich nur ein
          Code:
          eg:
           wohnzimmer:
             struct: xiaomi.item_structs
          stehen?
          Oder wie ist die Syntax dafür?

          Und:
          Es fehlt noch ein Item *.befehl.zonen_reinigung, oder?

          Beim

          Gruß,
          Hendrik

          Kommentar


            #35
            Aus meiner Sicht könnte man die item.yaml auch löschen. Sowas ist bei keinem plugin mit struct dabei. Besser wäre das ins readme oder user_doc zu nehmen.

            syntax ist
            struct:
            - xiaomi_vac.live
            - xiaomi_vac.status etc.

            Kommentar


              #36
              Danke, das funktioniert.

              Das fehlt aber, oder:
              Zitat von henfri Beitrag anzeigen

              Es fehlt noch ein Item *.befehl.zonen_reinigung, oder?
              Gruß,
              Hendrik

              Kommentar


                #37
                Hallo,

                es funktioniert doch nicht mit dem Struct. Der Bot reagiert nicht mehr.
                Code:
                eg:
                 wohnzimmer:
                  robo:
                    live:
                     struct:
                      - xiaomi_vac.live
                    befehl:
                     clean_zone:
                      type: list
                      robvac: 'clean_zone'
                     struct:
                      - xiaomi_vac.befehl
                    statistik:
                     struct:
                      - xiaomi_vac.statistik
                    einstellungen:
                     struct:
                      - xiaomi_vac.einstellungen
                    stundenzaehler:
                     struct:
                      - xiaomi_vac.stundenzaehler
                Muss nicht auch bei jedem Item welches einen Befehl ausführt auch ein enforce_updates dazu?

                Diese Fehler habe ich im Log gefunden:
                Code:
                2019-11-12 20:11:14 ERROR    item         lib.item         Item eg.wohnzimmer.robo.befehl.clean_zone: problem running <bound method Robvac.update_item of <plugins.xiaomi_vac.Robvac object at 0x7f251abf3e48>>: 'Robvac' object has no attribute 'vakuum' -- item.py:__update:2226
                > Traceback (most recent call last):
                >   File "/usr/local/smarthome/lib/item.py", line 2224, in __update
                >     method(self, caller, source, dest)
                >   File "/usr/local/smarthome/plugins/xiaomi_vac/__init__.py", line 275, in update_item
                >     self.vakuum.clean_zone(item()[0], item()[1],item()[2], item()[3], item()[4])
                > AttributeError: 'Robvac' object has no attribute 'vakuum'
                2019-11-12 20:11:18 WARNING  item         lib.item         Item eg.wohnzimmer.robo.segment_status: value "unknown_method" does not match type bool. Via Xiaomi Robovac None -- item.py:__update:2185
                2019-11-12 20:11:56 WARNING  __init__     plugins.onewire  1-Wire: problem reading 26.A1B930010000 /26.A1B930010000/VDD: path '/uncached/26.A1B930010000/VDD' not found.. Trying to continue with next sensor -- __init__.py:_sensor_cycle:399
                2019-11-12 20:11:58 WARNING  item         lib.item         Item eg.wohnzimmer.robo.segment_status: value "unknown_method" does not match type bool. Via Xiaomi Robovac None -- item.py:__update:2185
                2019-11-12 20:12:27 WARNING  item         lib.item         Item eg.wohnzimmer.robo.segment_status: value "unknown_method" does not match type bool. Via Xiaomi Robovac None -- item.py:__update:2185
                2019-11-12 20:12:32 ERROR    item         lib.item         Item eg.wohnzimmer.robo.start: problem running <bound method Robvac.update_item of <plugins.xiaomi_vac.Robvac object at 0x7f251abf3e48>>: name 'data' is not defined -- item.py:__update:2226
                > Traceback (most recent call last):
                >   File "/usr/local/smarthome/lib/item.py", line 2224, in __update
                >     method(self, caller, source, dest)
                >   File "/usr/local/smarthome/plugins/xiaomi_vac/__init__.py", line 251, in update_item
                >     if data['pause'] == True:
                > NameError: name 'data' is not defined
                Im Webinterface wäre noch ein Status der Verbindung mit dem Bot gut. Ich weiß im Moment gar nicht, woran es liegt, dass er nix macht (vielleicht ist das Plugin gar nicht verbunden).

                Gruß,
                Hendrik
                Zuletzt geändert von henfri; 12.11.2019, 21:58.

                Kommentar


                  #38
                  Kann henfris Einwände bestätigen. Das Problem mit Pause scheint aber neu, da früher die Steuerung durchaus funktioniert hat.
                  Für die Structs brauchst du den Bindestrich übrigens nur bei Listen. Es reicht also
                  Code:
                     robo:    
                        live:      
                           struct: xiaomi_vac.live

                  Kommentar


                    #39
                    soo, hab das Plugin nochmals geupdatet:
                    - webif erweitert, damit man den verbindungsstatus auch sieht
                    - Items etwas angepasst
                    - last_clean_details 1-3 eingefügt

                    Kommentar


                      #40
                      Hallo,

                      vielen Dank!

                      Leider funktioniert es bei mir weiterhin nicht.
                      Find funktioniert.
                      Start z.B. funktioniert nicht.

                      Im log sehe ich:
                      Code:
                      2019-11-14 21:37:39 ERROR    item         lib.item         Item eg.wohnzimmer.robo.befehl.start: problem running <bound method Robvac.update_item of <plugins.xiaomi_vac.Robvac object at 0x7f9208830c88>>: 'pause' -- item.py:__update:2226
                      > Traceback (most recent call last):
                      >   File "/usr/local/smarthome/lib/item.py", line 2224, in __update
                      >     method(self, caller, source, dest)
                      >   File "/usr/local/smarthome/plugins/xiaomi_vac/__init__.py", line 262, in update_item
                      >     if self._data['pause'] == True:
                      > KeyError: 'pause'
                      Die Verbindung im Beb-Interface war zunächst grün, jetzt rot.

                      Ich glaube weiterhin, dass die "befehl" items ein enforce_updates brauchen.

                      Wie kann ich eigentlich den xiaomi_vac ordner per git aktualisieren? Ich habe bisher die Dateien einzeln per wget runtergeladen.

                      Gruß,
                      Hendrik

                      Kommentar


                        #41
                        Hab den fehler gefunden..
                        ja die verbindung wird ja immer versucht neu aufzubauenn. Ich habe z.b. das problem das ich ab und zu keine rückmeldung vom sauger erhalte., Dann wechselts auf rot und danach wieder auf grün.. muss wahrscheinlich mit js den Status noch automatisch aktualisieren lassen

                        Kommentar


                          #42
                          Moin,
                          es ist ja nicht nur ein Anzeigeproblem.
                          Er fährt nicht los...

                          Gruß,
                          Hendrik

                          Kommentar


                            #43
                            ja, habs im github geändert heut morgen, da war eine abfrage vorgeschaltet, die hatte ich mal reingemacht.. hab sie auskommentiert...


                            HTML-Code:
                            <div class="center">
                                  <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
                                    <div data-role="collapsible" data-collapsed="false">
                                      <h3>
                                        Status Saugsaugroboterter
                                      </h3>
                                    <div align="left">
                                        <b>Zustand: </b></br>
                                        Ladezustand:{{ icon.battery('icon12', '', 'saugroboter.live.batterie_status','0','100') }} {{ basic.value('batt', 'saugroboter.live.batterie_status') }}% |
                                        Lüftergeschwindigkeit: {{ icon.volume('luefterspeed', 'saugroboter.einstellungen.luefter_speed','0','100') }}
                                        {% if saugroboter.live.reinigt %}
                                                <b>Saugroboterter reinigt:</b></br>
                                                
                                                Fläche gereinigt: {{ basic.value('qmlive', 'saugroboter.live.area') }} |
                                                Reinigt schon: {{ basic.value('timelive', 'saugroboter.live.reinigungszeit', 'h') }} |
                                                Lüftergeschwindigkeit: {{ icon.volume('luefterspeed1', 'saugroboter.einstellungen.luefter_speed','0','100') }} |
                                                
                                                {{ robvac.carpet('carpetmode', 'saugroboter.live.carpetmode_enabled', 'saugroboter.live.carpetmode_low', 'saugroboter.live.carpetmode_integral', 'saugroboter.live.carpetmode_high') }}
                                                
                                        {% elseif saugroboter.live.errorcode != '' %}
                                             {{ basic.text('err', 'saugroboter.live.errorcode', 'saugroboter.live.errorcode', '') }}
                                        {% elseif saugroboter.live.dnd_status %}
                                            DND Modus aktiv
                                        {% elseif 'Charging' in saugroboter.live.zustand %}
                                            Saugroboter ist in der Ladestation
                                        {% elseif 'Pause' in saugroboter.live.zustand %}
                                            Reinigung pausiert
                                        {% elseif 'Charger disconnected' in saugroboter.live.zustand %}    
                                            saugroboterter steht irgendwo?
                                        {% elseif 'Pause' in saugroboter.live.zustand %}
                                            saugroboterter pausiert
                                        {% endif %}
                                    </div>
                                    <hr>
                                    <div >
                                        <div style="float:right; background-image:url(pages/hollaender/pics/sauger.png); opacity: 0.7; border-radius: 4px; z-index: 0; width: 180px; height: 150px;">
                                            
                                        </div>
                                        <div align="left">
                                            <b>Steuerung:</b>
                                            {{ basic.dual('start', saugroboter.befehl.start, 'audio_play.svg', 'audio_play.svg', '1') }}
                                            {{ basic.dual('stop', saugroboter.befehl.stop, 'audio_stop.svg', 'audio_stop.svg') }}
                                            {{ basic.dual('pause', saugroboter.befehl.pause, 'audio_pause.svg', 'audio_pause.svg') }}
                                            {{ basic.button('home', 'saugroboter.befehl.basis','', 'home', '0', 'mini') }}
                                            {{ basic.button('zone', 'saugroboter.befehl.spot_clean', 'Zone','', '0', 'mini') }}
                                            {{ basic.button('find', 'saugroboter.befehl.set_find', '? find ?','', '0', 'mini') }}
                                            <hr>    
                                                        
                                        
                                            
                                            <b>Gesamt:</b></bR>
                                            Fläche: {{ basic.value('qm', 'saugroboter.statistik.gereinigte_flaeche', 'm²') }} | Anzahl Reinigungen: {{ basic.value('anzsahl', 'saugroboter.statistik.anzahl_reinigungen') }} |
                                            Laufzeit: {{ basic.value('reinigungszeit', 'saugroboter.statistik.gesamtlaufzeit', 'h')}}</br>
                                            <b>Zeit Verbleibend:</b></bR>
                                            Bürste Seite: {{ basic.value('b_side', 'saugroboter.stundenzaehler.buerste_seite_verbleibend', 'h') }} | Hauptbürste: {{ basic.value('b_haupt', 'saugroboter.stundenzaehler.buerste_haupt_verbleibend', 'h') }} |
                                            Filter: {{ basic.value('filterzeit', 'saugroboter.stundenzaehler.filter_verbleibend', 'h') }} | Sensor: {{ basic.value('sensorzeit', 'saugroboter.stundenzaehler.sensor_reinigen_verbleibend', 'h') }}</br>
                                        </div>
                            
                                    </div>
                                  </div>
                            so sieht mein Anzeige Code aus..
                            aber jetzt ein widget draus zaubern .. das ist schwieriger als ich dachte.. vorallem, weil es so viele verschiedene Items sind..
                            Zuletzt geändert von Bonze; 15.11.2019, 20:04.

                            Kommentar


                              #44
                              Hallo,

                              leider funktioniert es bei mir noch immer nicht :-(
                              Code:
                              2019-11-15 21:06:55 ERROR    __init__     plugins.xiaomi_vac Xiaomi_Robvac: Error No response from the device -- __init__.py:_read:231
                              2019-11-15 21:07:01 ERROR    __init__     plugins.xiaomi_vac Xiaomi_Robvac: Error 'CleaningDetails' object does not support indexing -- __init__.py:_read:231
                              2019-11-15 21:07:03 ERROR    __init__     plugins.xiaomi_vac Xiaomi_Robvac: Error 'CleaningDetails' object does not support indexing -- __init__.py:_read:231
                              2019-11-15 21:08:01 ERROR    __init__     plugins.xiaomi_vac Xiaomi_Robvac: Error 'CleaningDetails' object does not support indexing -- __init__.py:_read:231
                              2019-11-15 21:08:11 ERROR    __init__     plugins.xiaomi_vac Xiaomi_Robvac: Error 'CleaningDetails' object does not support indexing -- __init__.py:_read:231
                              2019-11-15 21:08:23 ERROR    __init__     plugins.xiaomi_vac Xiaomi_Robvac: Error 'CleaningDetails' object does not support indexing -- __init__.py:_read:231
                              2019-11-15 21:08:28 ERROR    __init__     plugins.xiaomi_vac Xiaomi_Robvac: Error 'CleaningDetails' object does not support indexing -- __init__.py:_read:231
                              2019-11-15 21:08:59 ERROR    __init__     plugins.xiaomi_vac Xiaomi_Robvac: Error 'CleaningDetails' object does not support indexing -- __init__.py:_read:231
                              2019-11-15 21:09:25 ERROR    __init__     plugins.xiaomi_vac Xiaomi_Robvac: Error 'CleaningDetails' object does not support indexing -- __init__.py:_read:231
                              2019-11-15 21:09:29 ERROR    __init__     plugins.xiaomi_vac Xiaomi_Robvac: Error 'CleaningDetails' object does not support indexing -- __init__.py:_read:231
                              
                              Sh.py neustart
                              
                              2019-11-15 21:10:04 ERROR    __init__     plugins.xiaomi_vac Xiaomi_Robvac: Error No response from the device -- __init__.py:_read:231
                              2019-11-15 21:10:04 ERROR    __init__     plugins.xiaomi_vac Xiaomi_Robvac: Error 'CleaningDetails' object does not support indexing -- __init__.py:_read:231
                              Die Xiaomi-App und FloeVac funktionieren aber.

                              Gruß,
                              Hendrik

                              Kommentar


                                #45
                                Ich bekomme dafür den Fehler hier:
                                Code:
                                2019-11-15  23:10:14 ERROR    plugins.xiaomi_vac Xiaomi_Robvac: Error 'CleaningDetails' object is not subscriptable
                                2019-11-15  23:10:14 WARNING  lib.item          Item roborock_eg.statistik.reinigungsdetails1: value "<CleaningDetails: 2019-11-12 11:15:27 (duration: 0:48:34, done: True), area: 47.91>" does not match type str. Via Xiaomi Robovac None

                                Kommentar

                                Lädt...
                                X