Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OZMO 950: Saugkraft einstellen möglich? (#25 aus Adapter) #17

Closed
mrbungle64 opened this issue Mar 5, 2020 · 4 comments
Closed

OZMO 950: Saugkraft einstellen möglich? (#25 aus Adapter) #17

mrbungle64 opened this issue Mar 5, 2020 · 4 comments
Labels
Bug Something isn't working Deebot Ozmo 950 Deebot Ozmo 950

Comments

@mrbungle64
Copy link
Owner

@boriswerner

mrbungle64/ioBroker.ecovacs-deebot#25 (comment)

für waterLevel diesen Wert numerisch ganzzahlig rundet und auf den gewünschten Wert "low(1")
für cleanSpeed den Wert nicht auf "silent(1) sondern auf "high(3)" setzt

Für die nicht-950 Geräte hatte ich Strings für die WaterLevel Werte verwendet:

exports.WATER_LEVEL_TO_ECOVACS = {
    'low': '1',
    'medium': '2',
    'high': '3',
    'max': '4'
};

exports.WATER_LEVEL_FROM_ECOVACS = {
    '1': 'low',
    '2': 'medium',
    '3': 'high',
    '4': 'max'
};

Beim 950 ist es gemischt:

exports.FAN_SPEED_TO_ECOVACS = {
    1: 1000,  //silent
    2: 0,     //normal
    3: 1,     //high
    4: 2      //veryhigh
};

exports.FAN_SPEED_FROM_ECOVACS = {
    1000: 1, //silent
    0: 2,    //normal
    1: 3,    //high
    2: 4     //veryhigh
};

exports.WATER_LEVEL_TO_ECOVACS = {
    'low': 1,
    'medium': 2,
    'high': 3,
    'max': 4
};

exports.WATER_LEVEL_FROM_ECOVACS = {
    '1': 'low',
    '2': 'medium',
    '3': 'high',
    '4': 'max'
};

Das sollten wir einheitlich gestalten.

@mrbungle64 mrbungle64 added Bug Something isn't working Deebot Ozmo 950 Deebot Ozmo 950 labels Mar 5, 2020
@boriswerner
Copy link
Collaborator

Das hatte ich doch gerade auf Anfrage umgestellt. Ecovacs erwartet z.b. eine 1000 für den silent Mode.
Und der Adapter sollte eine 1 für silent liefern.
Wird für das waterlevel im Adapter nochmal gemappt von den Strings auf die numerischen Werte?
Irgendwie stecke ich da wohl noch nicht so drin... Ich implementiere jetzt nur noch nach Abnahme der Spezifikation von dir ;-)
Erst Dokumentation, dann Implementierung. Sollte ich eigentlich von der Arbeit kennen, da Belange ich das auch immer von den Entwicklern :-D

@mrbungle64
Copy link
Owner Author

mrbungle64 commented Mar 5, 2020

@boriswerner

Das hatte ich doch gerade auf Anfrage umgestellt. Ecovacs erwartet z.b. eine 1000 für den silent Mode.
Und der Adapter sollte eine 1 für silent liefern.
Wird für das waterlevel im Adapter nochmal gemappt von den Strings auf die numerischen Werte?

Nicht explizit. Im Object des Adapters ist das sogar als numerischer Wert definiert.
Das wird wohl irgendwie indirekt passieren.

Irgendwie stecke ich da wohl noch nicht so drin... Ich implementiere jetzt nur noch nach Abnahme der Spezifikation von dir ;-)

Deine Implementierung für die Saugkraft und die Anpassung war doch soweit ok 👍
Da gab es bisher auch noch gar keine fertige Implemetierung für die nicht-950 Geräte.

Mir war nur aufgefallen, dass es bei den Konstanten für

WATER_LEVEL_TO_ECOVACS

und

WATER_LEVEL_FROM_ECOVACS

einmal als String und einmal als numerischer Wert abgebildet ist.

Und dass wir schauen sollten, dass wir es soweit wie eben möglich einheitlich gestalten sollten.
Ich hoffe, dass Du das nicht als Kritik verstanden hast :)

Ich habe die Issues mal angelegt, damit wir das alles besser im Blick behalten können und natürlich auch Bugs geordneter angehen und nachvollziehen können.

Erst Dokumentation, dann Implementierung. Sollte ich eigentlich von der Arbeit kennen, da Belange ich das auch immer von den Entwicklern :-D

Ich implementiere jetzt nur noch nach Abnahme der Spezifikation von dir ;-)

Das können wir gerne so machen. Ich bin mir aber nicht sicher, ob wir das strikt einhalten können oder müssen :)

@boriswerner
Copy link
Collaborator

Hm, ich verstehe das immer noch nicht so richtig. Die Ecovacs API erwartet doch numerische Werte von 1-4 beim waterLevel, oder?
Der iobroker Adapter schickt bei mir folgenden Befehl an die API lt Log
set water level: 4
Was machen dann die Strings? Der vacBotCommand ersetzt ja nur, wenn der Lookup auch erfolgreich ist. Ich würde also denken, dass der einfach 1zu1 den Wert durchreicht und die Übersetzung eigentlich raus kann (außer man nutzt direkt die Library und möchte lieber Strings übergeben)?

class SetWaterLevel extends VacBotCommand_950type {
    constructor(level) {
        if (constants_type.WATER_LEVEL_TO_ECOVACS.hasOwnProperty(level)) {
            level = constants_type.WATER_LEVEL_TO_ECOVACS[level];
        }
        super('setWaterInfo', {
            'amount': level
        });
    }
}

@mrbungle64
Copy link
Owner Author

mrbungle64 commented Mar 5, 2020

@boriswerner

Was machen dann die Strings? Der vacBotCommand ersetzt ja nur, wenn der Lookup auch erfolgreich ist. Ich würde also denken, dass der einfach 1zu1 den Wert durchreicht und die Übersetzung eigentlich raus kann (außer man nutzt direkt die Library und möchte lieber Strings übergeben)?

Ja, Du hast recht! 👍

Ich schmeiße das gerade mal komplett raus :)

Done: 40f3cb1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working Deebot Ozmo 950 Deebot Ozmo 950
Projects
None yet
Development

No branches or pull requests

2 participants