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

[Help] Winkel steuerung ohne Oscillation nicht möglich #306

Open
softwarecrash opened this issue Jun 23, 2024 · 10 comments
Open

[Help] Winkel steuerung ohne Oscillation nicht möglich #306

softwarecrash opened this issue Jun 23, 2024 · 10 comments

Comments

@softwarecrash
Copy link

softwarecrash commented Jun 23, 2024

Hallo,
ich hab glaube ein kleine verstädnis problem.
ich hab den tp07 den man ja über die app auf eine bestimmte winkelpossition bringen kann ohne oscillation,
wie bekommt man das über die datenpunkte hin?

hintergrund ist das der lüfter eine bestimmte possition hat (manuell) er soll dann per trigger in den auto modus mit maximaler drehung usw. später soll er dann wieder seine ursprügliche possition etc einnehmen, das funktioniert mit zwischenspeichern der states soweit, nur die possition bekomme ich nicht wieder hin.

wenn ich oscillationangle auf 0 setze, und dann einen winkel eingebe springt er automatisch auf 90grad oscillation mit irgendeinem winkel wo er halt grad ist

@Grizzelbee
Copy link
Owner

Hi @softwarecrash !

Mein dyson spielt gerade nicht mit mir, deshalb kann ich es gerade nicht ausprobieren, aber es müsste so gehen:

OscillationLeft und OscillationRight beide auf den selben Winkel und OscillationAngle auf CUST einstellen.
Dadurch sollte keine Bewegung mehr stattfinden. Durch die CUST Einstellung kann man dann auch beliebige Oscillationswinkel einstellen - abweichend von den Vorgabewerten (45°, 90°, 180°, 350°). 0° sollte prinzipirll auch möglich sein, vielleicht habe ich da noch einen Bug in der Funktion.

@softwarecrash
Copy link
Author

@Grizzelbee
ich hab das grad nochmal manuel probiert, mit custom, wenn man bei left dann einen winkel angibt springt oscillation auf IDLE, der right wert lässt sich nicht eingeben bzw wird irgnoriert.

hintergrund der ganzen sache ist eigentlich das der lüfter irgendeine posstition und stufe hat und an aus ist (aktueller status eben) dann soll durch ein trigger das ganze teil auf automatik gehen mit voller drehung. und danach wieder in den vorhergehenden zustand, dafür hab ich einfach alle (meine ich) wichtigen datenpunkte genommen in blockly und zwischengespeichert, diese werte werden danach wieder zurück geschrieben, also eigentlich identisch mit dem was er geliefert hatte vorher, nur genau das geht irgendwie nicht.
anbei mal als beispiel mein blockly wie ich dachte das es gehen könnte
image
Ventilator.zip

@Grizzelbee
Copy link
Owner

Grizzelbee commented Jun 30, 2024

So!
Ich habe endlich Zeit gefunden das zu verifizieren.
Mit diesem Code funktioniert das bei mir einwandfrei (ich setze eine Funktion zu dem Zweck ein):

image

Deine steuere-Elemente funktionieren ebenfalls. Du musst nur die werte analog übergeben.
Ach ja: Die Pause ist nicht nötig und deshalb deaktiviert.

@softwarecrash
Copy link
Author

danke,
der OscillationAngle steht bei mir immer auf Custom wenn ich in der app oder mit der fb den lüfter in eine bestimmte stellung bringe, wenn ich dann die werte zurückschreibe nimmt er warum auch immer 90° drehung an, manuell geht es, da muss ich den wert auf 0° setzen.
der OscillationAngle datenpunkt steht als lesbarer wert immer auf custom und ändert sich nicht wenn man von lüfterseite aus was manipuliert

@Grizzelbee
Copy link
Owner

Hmmm. 🤔 Ich verstehe deine Ausführungen nicht so richtig.
Funktioniert mein Code bei Dir und die Frage ist damit erledigt, oder gibt es nach wie vor ein Problem?

@softwarecrash
Copy link
Author

dein Code funktioniert soweit.
mein problemchen ist das ich die werte die der adapter liefert zwischenspeichern kann, aber beim zurückschreiben der custom wert sich seltsam verhält, hab es auch probiert die werte nochmal analog zu schreiben als zahl und string. aber er nimmt nicht wieder die einstellungen ein die er vorher hatte.
sprich oscillationAngle und oscillation angle lower, in eine variable schubsen, lüfter verstellen und dann wieder zurückschreiben, da macht er immer eine bewegung dann statt das zu machen was er vorher gemacht hat

@Grizzelbee
Copy link
Owner

Okay - dann sehen wir mal ob ich die Fragestellung richtig verstanden habe:

  1. Dein Lüfter soll auf einer beliebigen festen Position stehen
  2. Dann kommt ein Trigger, der den Lüfter in vollem Umfang (350°) oszillieren lässt
  3. Dann kommt ein neuer Trigger, der wieder die Position von 1. einstellen soll.

dazu müsstest Du doch nur OscillationLeft (OscillationAngleLowerBoundary) in einer Variablen speichern.
Dann die Oszillation starten und zum Schluss mit setAngle(storedValue, 0) wieder die alte Positionn herstellen.

Oder habe ich etwas falsch verstanden oder übersehen?

@softwarecrash
Copy link
Author

fast richtig,

  • der lüfter hat irgendeinen zustand an/aus feste richtung/oscillation auto/manuelle stufe
  • der trigger schubst ihn in 350grad drehung bei auto mode
  • wenn der trigger zurück schaltet soll der lüfter wieder den zustand wie vorher einneehmen

@Grizzelbee
Copy link
Owner

Okay - JETZT verstehe ich.
Das ist unter anderem deswegen ein Problem, weil der Adapter, wenn er den OscillationAbgle CUST bekommt, annimmt das damit 90° gemeint sind.

Ich muss mir mal ansehen ob ich das vielleicht besser machen kann.

Aber es wird auf jeden Fall tricky - weil CUST ja nun leider alles zwischen 0° und 350° sein kann. Da der Adapter aber immer nur die Änderung EINES Datenpunktes (Angle, Left, Right) zur selben Zeit verarbeiten und betrachten kann und nicht weiß ob noch eine weitere Änderung nachkommt kann er nicht 100% sicher beurteilen was mit CUST gemeint sein könnte. Aber vielleicht ist eine bessere Näherung als 90° möglich.

@softwarecrash
Copy link
Author

nur eine dumme idee, aber wäre eine ableitung der beiden winkel und eine custom winkel berechnung anhand der werte möglich oder sinvoll?
in der app kann man ja die vorgegebenen breiten zur oscillation wählen, die spiegeln sich aber im angle nicht wieder, das war eigentlich mein script/bastel gedanke der so nicht geht.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants