Super... Hat prima funktioniert ich Danke dir
Ankündigung
Einklappen
Keine Ankündigung bisher.
Formeln in Visu-Elementen -> Weitere PHP-Operatoren und Funktionen?
Einklappen
X
-
Hallo Christian,
zur Visualisierung von unstetigen Mechaniken aus Positionsmeldungen eines Antriebs wäre folgende Formel noch wünschenswert. Natürlich kann man das per iKO und Logiken abbilden, aber dies ist insbesondere für Visualisierungen spannend und würde so zusätzliche/unnötige Logiken und iKO vermeiden die keinen sonstigen Mehrwert haben. Auch scheint es mir nicht spezieller, als z.B. str_split. Der Anwendungsfall "Rollladen" macht es sicher auch für viele Nutzer interessant. Und um es vorweg zu nehmen: War jetzt keine Tecki-Idee, sondern kam von meiner Frau, die recht nüchtern auf eine Visu schaut, aber doch gerne die Position der Schlitze erkennen möchte ("wieviel Lüftung?")
Anwendungsfälle:- Mechaniken mit Kniehebeln, Nockewellen,...
- Rollläden: Breiter Wertebereich zur Abfahrt mit Schlitzen, schmaler Wertebereich zum Schließen der Schlitze
- ...?
Am Beispiel der Rollläden könnte man zwei gegenläufige Balken visualisieren, wobei der erste (nach unten) z.B. nur auf Werte zwischen 0-170 reagieren soll, der 2. (nach oben) nur auf Werte zwischen 170 und 255.
Vorschlag: spread(n,low,high)
Spreizt n in gegebenem Intervall [low,high] auf 0-255. Dient der abschnittsweisen Darstellung unstetiger Vorgänge
if ((low>=high)||n<low) { result=0; }
elseif (n>high) { result=255; }
else { result=(n-low)*(255/(high-low)); }
Beispiele:
spread(0,0,170) liefert 0
spread(100,0,170) liefert 150
spread(170,0,170) liefert 255
spread(255,0,170) liefert 255
spread(100,170,255) liefert 0
spread(200,170,255) liefert 90
spread(255,170,255) liefert 255
Danke für eine wohlwollende Prüfung...
Viele Grüße,
Carsten
NACHTRAG: Die Idee ist an sich gut, aber ich hab einen Denkfehler: Die Funktion nützt ja nichts für die Auslenkung des Elements (da wirkt das KO/GA wie es ist), sondern nur für die Beschriftung. Aber da ergibt es keinen Sinn.
--> vollständiger Rückzug, doch in eine Logik...
Kommentar
-
So sieht's aus...Ich habe einfach mal abgewartet, ob Du von selbst drauf kommst
Aber im Ernst: Natürlich geht das - Du könntest ja Deine spread()-Funktion in ein beliebiges "hellgrünes" Feld packen - nicht nur in die Beschriftung.EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)
Kommentar
-
Danke für die Chance mit dem Warten... das hat mir ein wunderbares Gefühl ermöglicht...
Zur Erklärung für mich selber: In jedem grünen Feld würde ja auch das KO-Feld meinen z.B: vom UniElement, aber da kann ich nur ein KO/GA wählen, richtig? Aber Du meinst die anderen, alle außer KO/GA. Ziel ist ja die DARSTELLUNG, also bräuchte ich die Funktion weiterhin von Dir, wenn - ja wenn - denn das nicht implizit mit den Farbverläufen gehen würde:
Also für den Rollladen abwärts z.B.
-webkit-linear-gradient(top,rgba(120,150,236,1) 0%,rgba(120,150,236,1) {#*1.41/2.55}%, rgba(120,150,236,0.1) {#*1,41/2.55}%, rgba(120,150,236,0.1) 100%)
und für die Schlitze
-webkit-linear-gradient(top,rgba(120,150,236,1) 0%,rgba(120,150,236,1) {(#-180)*3.4/2.55}%, rgba(120,150,236,0.1) {(#-180)*3.4/2.55}%, rgba(120,150,236,0.1) 100%).
Das ist insofern nicht wirklich schön, weil jede Rollladengröße im Haus an unterschiedlicher Stelle unten ankommt. Dann müsste man für jede Größe eigenen Farbverläufe definieren. <kröterwirdgeschluckt> Mit einer solchen - noch nicht existierenden - Spreiz-Funktion würden das nichts ändern, nur die Formel wäre aufgeräumter. Damit wäre die Funktion nicht sinnlos und vielleicht für anderes brauchbar, aber nicht wirklich nötig. Wäre was als Prio E auf der Liste...
An einer Stelle hake ich dennoch - allgemein und nicht konkret hierzu: Die Funktion gibt es ja nicht (von Dir). Wie sollte ich sie dann "in ein Feld packen"? Kann ich Funktionen selber bauen, die dort (z.B. in der Bezeichnung eines Elements oder einer wekit-Definition) nutzbar ist? Da wäre dann was an mir vorbei gegangen...
Kommentar
-
Nein, eigene Funktionen kannst Du nicht deklarieren. Allerdings möchte ich den Funktionsumfang auch nicht unnötig aufblähen, sonst kommen bald zig Funktions-Wünsche und das Ganze wird unübersichtlich... Sofern Du Dein Anliegen also auch diskret per Formel lösen kannst, soll's mir recht seinEDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)
Kommentar
Kommentar