Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. [Test] Adapter ioBroker.mihome-vacuum v5.x

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Test] Adapter ioBroker.mihome-vacuum v5.x

    This topic has been deleted. Only users with topic management privileges can see it.
    • haselchen
      haselchen Most Active @D3ltoroxp last edited by

      @d3ltoroxp

      Ich frage es trotzdem, über Github upgedatet?
      Screenshot mal bitte machen von der Adapterkachel.

      D3ltoroxp 1 Reply Last reply Reply Quote 0
      • D3ltoroxp
        D3ltoroxp @haselchen last edited by

        @haselchen Nope, ist ja zumindest heute normal im Beta Branch.

        48cc5d8a-9e47-4926-a4d1-dd23c2ab330b-image.png

        59157d8a-3180-42cb-9a7c-27e9b0efc824-image.png

        D 1 Reply Last reply Reply Quote 0
        • D
          dirkhe Developer @D3ltoroxp last edited by

          @d3ltoroxp in die settings gehen, einmal geräte laden, modell auswählen, speichern

          D3ltoroxp 1 Reply Last reply Reply Quote 0
          • D3ltoroxp
            D3ltoroxp @dirkhe last edited by

            @dirkhe Genau da geht es bei mir nicht weiter, wenn ich auf Get Device gehe kommt eben dieser HTTP Error.

            D 1 Reply Last reply Reply Quote 0
            • D
              dirkhe Developer @D3ltoroxp last edited by

              @d3ltoroxp da hat sich aber nichts verändert... lösche mal den token vorher raus, obwohl das eigentlich nichts bringt. Dein passwort und der server passt alles noch?

              D3ltoroxp 1 Reply Last reply Reply Quote 0
              • D3ltoroxp
                D3ltoroxp @dirkhe last edited by D3ltoroxp

                @dirkhe Habe grade noch mal Benutzer und PW eingetragen. Server -> Germany.

                Leider kommt auch nichts nach dem löschen des Tokens.

                D 1 Reply Last reply Reply Quote 0
                • D
                  dirkhe Developer @D3ltoroxp last edited by

                  @d3ltoroxp hab jetzt auch gerade den Eintrag auf der github seite gesehen. Da scheint es probleme mit der xiaomi cloud bei dir zu geben. Ggf. Werbeblocker an?
                  Wenn all stricke reissen, gehe in dein backup vor dem update und suche mal in der json nach dem token,der steht da im klartext drin. Den kannst du dann manuall eingeben

                  D3ltoroxp 1 Reply Last reply Reply Quote 0
                  • D3ltoroxp
                    D3ltoroxp @dirkhe last edited by

                    @dirkhe Ohej, das geht schon eine weile nicht mehr meine ich. Ist mir nur halt letztens aufgefallen, das die Instanz nicht grün ist. Uff da muss ich mal schauen. Ist ja nen Linux System, wüssten nicht das da Werbeblocker aktiv sind. Oder gilt das für den Browser den man benutzt um auf das Webinterface von io zu gelangen ?

                    D 2 Replies Last reply Reply Quote 0
                    • D
                      dirkhe Developer @D3ltoroxp last edited by

                      @d3ltoroxp schau mal hier https://github.com/iobroker-community-adapters/ioBroker.mihome-vacuum/issues/438

                      florian1984 created this issue in iobroker-community-adapters/ioBroker.mihome-vacuum

                      closed HTTP error when getting token cookie{} => manual Login not helps.... #438

                      D3ltoroxp 1 Reply Last reply Reply Quote 0
                      • D3ltoroxp
                        D3ltoroxp @dirkhe last edited by

                        @dirkhe Hm dann muss ich das mal probieren. Beim Anmelden über die Seite direkt, hab ich davon nichts gesehen. Muss ich eben noch mal schauen.

                        1 Reply Last reply Reply Quote 0
                        • D
                          dirkhe Developer @D3ltoroxp last edited by

                          @d3ltoroxp ich dachte, du höttest vlt pihole oder so laufen.
                          Der token wird erst ab der 5.0 verschlüsselt, davor war er halt unverschlüsselt gespeichert. Wenn der sauger aber schon länger nicht mehr geht, nützt dir der alte token auch nichts

                          D3ltoroxp 1 Reply Last reply Reply Quote 0
                          • D3ltoroxp
                            D3ltoroxp @dirkhe last edited by

                            @dirkhe Ich weiß nicht warum, es ging jetzt. Hatte mich noch mal auf MiHome angemeldet, dann bin ich dort auf Kontoeinstellungen und dort auf eine anderen Seite gelandet, dort musste ich noch mal mein PW eingeben. Bin jetzt einfach noch mal spaßhalber auf Get Device und dann hats kurz gedauert. Hat das Token und den richtigen Robo ausgewählt. 😊

                            1 Reply Last reply Reply Quote 1
                            • E
                              eve11 last edited by

                              Hallo zusammen,

                              ich wollte wieder einmal meinen Xiaomi Sauger benutzen, dabei ist mir aufgefallen, dass dieser nicht mehr mit dem WLAN verbunden war.
                              Als auch das die Sprache wieder auf Chinesisch war. Ich habe ihn dann zurück gesetzt und wieder in der Mi-Home App aufgenommen. Soweit so gut => In der App funktioniert er wieder.
                              Nur der Adapter will nicht. Ich kann mich auch nicht in der Xiaomi Cloud anmelden innerhalb des Adapter. In der App als auch mit dem Browser kann ich mich anmelden.
                              In der GetToken Windows App kann ich mich auch nicht anmelden.

                              
                              mihome-vacuum.0
                              2025-06-29 14:00:51.431	debug	Startup: setGetConsumable Answer: false
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:51.431	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:51.276	debug	Time difference between Mihome Vacuum and ioBroker: -2 sec
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:51.275	debug	Receive <<< Helo <<< 213100200000000004eb3cb668612af1ffffffffffffffffffffffffffffffff
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:49.430	debug	Message= {"id":20,"method":"get_consumable"}
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:49.430	debug	Startup: setGetCleanSummary Answer: false
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:49.430	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:47.429	debug	Message= {"id":19,"method":"get_clean_summary"}
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:47.428	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:45.428	debug	Message= {"id":18,"method":"get_sound_volume"}
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:45.427	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:43.426	debug	Message= {"id":17,"method":"get_network_info"}
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:43.425	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:41.425	debug	Message= {"id":16,"method":"get_status"}
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:41.424	debug	get params for stock Vacuum
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:41.273	debug	Time difference between Mihome Vacuum and ioBroker: -2 sec
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:41.272	debug	Receive <<< Helo <<< 213100200000000004eb3cb668612ae7ffffffffffffffffffffffffffffffff
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:31.270	debug	Time difference between Mihome Vacuum and ioBroker: -2 sec
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:31.270	debug	Receive <<< Helo <<< 213100200000000004eb3cb668612addffffffffffffffffffffffffffffffff
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:21.424	debug	Startup: setGetConsumable Answer: false
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:21.424	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:21.265	debug	Time difference between Mihome Vacuum and ioBroker: -2 sec
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:21.265	debug	Receive <<< Helo <<< 213100200000000004eb3cb668612ad3ffffffffffffffffffffffffffffffff
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:19.423	debug	Message= {"id":15,"method":"get_consumable"}
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:19.423	debug	Startup: setGetCleanSummary Answer: false
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:19.422	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:17.421	debug	Message= {"id":14,"method":"get_clean_summary"}
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:17.421	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:15.420	debug	Message= {"id":13,"method":"get_sound_volume"}
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:15.420	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:13.420	debug	Message= {"id":12,"method":"get_network_info"}
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:13.419	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:11.418	debug	Message= {"id":11,"method":"get_status"}
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:11.418	debug	get params for stock Vacuum
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:11.261	debug	Time difference between Mihome Vacuum and ioBroker: -2 sec
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:11.261	debug	Receive <<< Helo <<< 213100200000000004eb3cb668612ac9ffffffffffffffffffffffffffffffff
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:01.259	debug	Time difference between Mihome Vacuum and ioBroker: -2 sec
                              
                              mihome-vacuum.0
                              2025-06-29 14:00:01.257	debug	Receive <<< Helo <<< 213100200000000004eb3cb668612abfffffffffffffffffffffffffffffffff
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:51.417	debug	Startup: setGetConsumable Answer: false
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:51.417	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:51.191	debug	Time difference between Mihome Vacuum and ioBroker: -2 sec
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:51.191	debug	Receive <<< Helo <<< 213100200000000004eb3cb668612ab5ffffffffffffffffffffffffffffffff
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:49.416	debug	Message= {"id":10,"method":"get_consumable"}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:49.416	debug	Startup: setGetCleanSummary Answer: false
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:49.415	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:47.414	debug	Message= {"id":9,"method":"get_clean_summary"}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:47.413	debug	Startup: Delete getMultiMapsList
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:47.413	debug	Startup: getMultiMapsList Answer: true
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:47.413	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:45.413	debug	Message= {"id":8,"method":"get_multi_maps_list"}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:45.412	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:43.412	debug	Message= {"id":7,"method":"get_sound_volume"}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:43.411	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:41.410	debug	Message= {"id":6,"method":"get_network_info"}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:41.410	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:41.187	debug	Time difference between Mihome Vacuum and ioBroker: -2 sec
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:41.187	debug	Receive <<< Helo <<< 213100200000000004eb3cb668612aabffffffffffffffffffffffffffffffff
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.770	info	settest next timer: not available
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.408	debug	Message= {"id":5,"method":"get_status"}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.408	debug	get params for stock Vacuum
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.407	debug	Create State done!
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.407	debug	Create State for map: loadMap
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.407	debug	Create State for map: mapURL
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.407	debug	Create State for map: mapStatus
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.407	debug	Create State for map: actualMap
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.407	debug	Create State for map: map64
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.364	debug	Create State for map:
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.319	debug	Create State for Queue: queue
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.230	debug	Create State for control: {"id":"mihome-vacuum.0.control"}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.200	debug	Search can't be optimized because wildcard not at the end, fallback to keys!: function(doc) { if (doc.type === 'state') emit(doc._id, doc) }
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.191	info	select standard vacuum protocol....
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.190	debug	DeviceModel set to: rockrobo.vacuum.v1
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.190	warn	No Answer for DeviceModel use model from Config
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.190	error	YOUR DEVICE IS CONNECTED BUT DID NOT ANSWER YET - CONNECTION CAN TAKE UP TO 10 MINUTES - PLEASE BE PATIENT AND DO NOT TURN THE ADAPTER OFF
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.190	debug	Get Device data..4
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.190	debug	GETMODELFROMAPI:Data: {}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:39.189	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:37.189	debug	Message= {"id":4,"method":"miIO.info"}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:37.189	debug	Get Device data..3
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:37.188	debug	GETMODELFROMAPI:Data: {}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:37.188	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:35.187	debug	Message= {"id":3,"method":"miIO.info"}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:35.187	debug	Get Device data..2
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:35.187	debug	GETMODELFROMAPI:Data: {}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:35.187	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:33.186	debug	Message= {"id":2,"method":"miIO.info"}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:33.186	debug	Get Device data..1
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:33.186	debug	GETMODELFROMAPI:Data: {}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:33.185	debug	your device is connected, but didn't answer yet - sometime connection is broken and can take up to 10 Minutes
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.184	debug	Message= {"id":1,"method":"miIO.info"}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.183	debug	Get Device data..0
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.183	debug	GETMODELFROMAPI:Data: {}
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.183	debug	Time difference between Mihome Vacuum and ioBroker: -2 sec
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.183	debug	your device is not connected, but this could be temporary
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.182	debug	MAIN: Connected to device, try to get model..
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.181	debug	Receive <<< Helo <<< 213100200000000004eb3cb668612aa1ffffffffffffffffffffffffffffffff
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.178	debug	server started on 0.0.0.0:53421
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.176	info	IOT disabled, delete state
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.174	debug	MIIO: Config: ip:192.168.178.44 token: 766e4a7754XXXXXXXXX
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.173	debug	Create State for deviceInfounsupported
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.173	debug	Create State for deviceInfowifi_signal
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.173	debug	Create State for deviceInfofw_ver
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.173	debug	Create State for deviceInfomodel
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.172	debug	Create State for deviceInfomac
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.172	debug	Create State for deviceInfo
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.158	error	SyntaxError: "undefined" is not valid JSON
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:31.148	info	starting. Version 5.2.0 in /opt/iobroker/node_modules/iobroker.mihome-vacuum, node: v20.19.1, js-controller: 7.0.3
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:30.984	debug	Plugin sentry Initialize Plugin (enabled=true)
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:30.939	debug	States connected to redis: 127.0.0.1:9000
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:30.853	debug	States create User PubSub Client
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:30.853	debug	States create System PubSub Client
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:30.819	debug	Redis States: Use Redis connection: 127.0.0.1:9000
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:30.774	debug	Objects connected to redis: 127.0.0.1:9001
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:30.771	debug	Objects client initialize lua scripts
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:30.699	debug	Objects create User PubSub Client
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:30.699	debug	Objects create System PubSub Client
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:30.698	debug	Objects client ready ... initialize now
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:30.658	debug	Redis Objects: Use Redis connection: 127.0.0.1:9001
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:26.364	info	terminating
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:25.865	info	Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:25.864	info	terminating
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:25.864	error	Socket Close
                              
                              mihome-vacuum.0
                              2025-06-29 13:59:25.863	info	Got terminate signal TERMINATE_YOURSELF
                              

                              Hat jemand das selbe Problem ?

                              Danke

                              Heiko

                              1 Reply Last reply Reply Quote 0
                              • E
                                eve11 last edited by eve11

                                FYI

                                Ich denke hier gibt es ein generelles Problem

                                https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/issues/131

                                @dirkhe: Sollte das Login im Adapter noch funktionieren ?

                                Salothereal created this issue in PiotrMachowski/Xiaomi-cloud-tokens-extractor

                                closed Cant connect #131

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                472
                                Online

                                31.9k
                                Users

                                80.2k
                                Topics

                                1.3m
                                Posts

                                4
                                33
                                1012
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo