Float Wert in Float Variable schreiben

Hallo zusammen,

ich nutze HmIP und steuere die Rollladen derzeit im Webfront über die LEVEL Variable der Rollladen-Aktoren (Schieberegler).

Nun habe ich mir testweise für einen Rollladen eine Variable Float angelegt (0%,25%,50%,75%,100%) um direkt gezielt auf diese Positionen fahren zu können.

Das funktioniert primär auch.

Nun möchte ich diese Float Variable aber auch mit dem aktuellen Wert beschreiben, da die Rollladen auch über Taster oder Automatiken bewegt werden.

Dazu habe ich ein Skript erstellt, welches per SetValueFloat die Variable setzt. Und zwar angetriggert über Änderung des Wert von Kanal3 des Aktors (reale Behanghöhe). Dann wird der Wert von Kanal3 in die Variable gesetzt.

Nun ist es aber so, das wenn das Rollo per Taster auf 20% gefahren wird, der Wert zwar in die Variable geschrieben wird, es wird aber nach wie vor der Button ‚0%‘ als aktiv markiert.
Erst wenn ich den Wert von 25% erreiche, wird auch ‚25%‘ in der Variable gesetzt.

Das gefällt mir gar nicht, denn steht das Rollo tatsächlich zwischen 0-24%, dann wird es als geschlossen angezeigt.

Gibt es dafür eine Lösung oder Abhilfe? Wie realisiert Ihr solche Vorhaben?

Vielen Dank vorab :slight_smile:

Hi,
wie wäre es mit (wert + 12) / 25 * 25 dann wird der nächste 25er Wert angezeigt.
Also 0…12 als 0, 13…37 als 25 usw.

Wie gezeigt geht es aber nur mit Int und nicht Float.

Ralf

Mir wäre es sehr lieb wenn erst bei geschlossen, also reale Behanghöhe 0%, auch erst 0% angezeigt werden würde.
Da ich mit den Aktoren Dachlukenfenster (Lichtkuppeln) steuere, wäre es schon wichtig, das 0% auch wirklich geschlossen ist. Die Zwischenwerte sind da nicht so wichtig.

Nur wenn es regnet und die Variable zeigt 0% an, in Wirklichkeit können es aber 0-12% sein, wäre das nicht so gut.

Hi,
pragmatischer Weg:
if ($Value == 0){
SetValue(ID, 0);
}
else if (value < 38){
SetValue(ID, 25);
}
usw.

Beim Fenster ist 0 natürlich am Wichtigsten und da solltest Du so oder so eine Ausnahme definieren das 0 wirklich nur bei 0 ist. Formel wird es da kaum geben.

Ralf

Die Anzeige liegt an der Darstellung von Profilen mit Assoziationen, siehe auch hier: Variablenprofile — IP-Symcon :: Automatisierungssoftware

Ein möglicher Ansatz wäre sonst, dass du das Profil duplizierst und in der neuen Variante eine zusätzliche Assoziation für 1% hinzufügst. Dann wird die 0 nur für Werte angezeigt, die kleiner als 1% sind, was geschlossen oder zumindest fast geschlossen ist. Wenn dir die Schrittgröße mit den 25%-Schritten allgemein nicht zusagt, kannst du dir natürlich auch ein komplett eigenes Profil definieren bzw. einfach ein anderes verwenden

@Dr. Niels:

Leider funktioniert das so nicht. Ich habe mir eine Variable angelegt, Float, mit den Werten 0, 0.25, 0.50, 0.75 und 1.0
Diesen Werten habe ich dann den Text „0%, 25%, 50%, 75%, 100%“ zugewiesen.
Schrittweite habe ich auf „0,25“ und Stellen auf „1“.

Füge ich nun 0.01 (1%) hinzu, dann wird das nach dem Speichern nicht übernommen.

Habe dann das Profil dupliziert, dann habe ich es irgendwie geschafft die 0.01 (1%) hinzuzufügen, aber erst nachdem ich Stellen auf „2“ geändert und danach wieder auf „1“ geändert habe.

Es ändert aber nichts am eigentlichen Problem. Die Anzeige bleibt bis zum Erreichen der 25% realen Behanghöhe auf 0% stehen.
Zudem habe ich nun 2x 0% im Webfront.

Irgendwie gefällt mir das alles überhaupt nicht und bringt mich so auch leider nicht weiter bzw. zum Ziel.

Vielleicht findest du für deinen Anwendungsfall das Profil ~Intensity.1 passender? Dann bekommst du keine Auswahl von 4 Punkten, sondern kannst die Höhe frei per Balken definieren und der Balken stellt auch die aktuelle Höhe dar?

Wenn du die 1% übrigens mit aufnehmen möchtest, dann musst du die Schrittweite auf 0 setzen, dann werden dir nämlich exakt die angebotenen Assoziationen angeboten.

@Dr Niels:

Genau aus dem Grunde habe ich mir ein eigenes Profil erstellt, weil ich den Schiebebalken nicht wollte, sondern komfortabel über fest definierte Punkte (0%, 25%, 50%, 75%, 100%) fahren wollte. Dieses finde ich praktischer, als mit dem Schieberegler.

Allerdings - wenn ich die 1% mit aufnehme - dann hätte ich 0%, 1%, 25%, 50%, 75%, 100% zur Auswahl. Das sieht ja recht dämlich aus (wegen dem Punkt 1%).

Ich dachte, hier gäbe es eine komfortable Möglichkeit, das in meiner selbst erstellten 0.25.50.75.100 Variable nur 0% gesetzt wird, wenn auch wirklich 0% erreicht ist und bei realerBehanghöhe von zB. 1% dann die ‚0%‘ nicht mehr als aktiv deklariert wird.

Nein, das ist so nicht möglich. Es wird immer auf die nächste Assoziation „abgerundet“