0-100% Integer in 50-250m³ umwandeln

Hallo,

ich habe ein KNX 0-10V Ausgang mit dem ich meine Belüftungsanlage steuern möchte.

0% ergeben 0V am Ausgang, die eingestellte Belüftungsstufe beträgt dann 50m³/h.
100% ergeben 10V am Ausgang, die eingestellte Belüftungsstufe beträgt dann 250m³/h.

Mit einem Intensity.100 bekomme ich den Slider in der Visu und kann mit dem Balken die Stufe 0-100% vorgeben, was eine Lüftungsstufe zwischen 50 und 250m³/h ergibt.

Da ich aber nicht Prozent in m³/h im Kopf umrechnen möchte würde ich gerne den Wert zwischen 50 und 250 in der Visu angezeigt bekommen. Wie kann ich in IPS ein Profil erstellen mit den ich die Werte 50-250 angezeigt bekomme, aber Werte von 0-100% auf den Bus geschickt werden?

Grüße

Moin,
Du rechnest Deine 0-10V Variable (x) getriggert bei Veränderung und schreibst das Ergebnis in die Variable z.b. (V)…

x*20+50=V

Gruß
//Sven

Moin Sven,

das sollte wohl „x*2+50“ heißen. :stuck_out_tongue:

Danke für die Antworten. Verstehe aber nicht so richtig was damit gemeint ist. Mit Umrechnungen oder Skripten kenne ich mich noch nicht so gut aus. Muss die Umrechnung denn in einen Skript erfolgen oder kann man dass in einen Profil hinbekommen?

Grüße

Du kannst dafür auch unser tolles Umrechnen Modul verwenden: SymconMisc/Umrechnen at master · symcon/SymconMisc · GitHub

Dann der neuen Variable das passende Profil verpassen.

paresy

Danke, habe ich installiert. Aber wie bekomme ich den Integer 0% auf Float 50 und 100% auf 250 umgerechnet?

Im Screenshot sieht man den Balken mit 50%, da sollten jetzt ja 150m³ stehen.
Bei den Value habe ich nur eine 0 und keine Möglichkeit den Wert zu verändern.

Hallo,

gibt es eine Beschreibung wie ich die Werte umrechnen kann? Ich bekomme folgende Formel als Vorlage:
$Value/10*sin(30)*pi()
Damit kann ich momentan nicht viel anfangen.

Grüße

$value liefert den Eingabewert der Berechnung. Was ich gerade nicht weiß: ist der im Wertebereich 0-1 oder 0-100?
Umgesetzt auf deine Rechnung lautet der Code also:

$Value*2+50

oder

$Value*200+50

Hallo,

der Wertbereich ist 0-100% (KNX DPT5.001)
0%= 50
100%=250
als Einheit für 50-250 würde ich noch gerne m³/h dranhängen falls möglich.

Grüße

Macht es euch doch nicht so schwer :smiley:


function Scaling($In, $InUG, $InOG, $OutUG, $OutOG)
            {
            /*=============================================================
            Scaling - Martin Heinzel - 21.09.2011
            Version: 1.0

            Beschreibung:
            Diese Funktion scaliert einen Wert nach der Form:

                  ( ( In - In_Min )                            )
            Out = (------------------- x ( Out_Max - Out_Min ) ) + Out_Min
                  (( In_Max - In_Min )                         )
            ================================================================*/

            return ($In - $InUG) / ($InOG - $InUG) * ($OutOG - $OutUG) + $OutUG;

            }
$Out = Scaling($m³, 50, 250, 0.0, 100.0);

Hallo,

ich kann wohl halbwegs nachvollziehen was in den Skript steht, würde aber selber nie drauf kommen da ich von PHP noch kein Plan habe:/ (bin noch IPS Anfänger)

Jetzt mal eine Frage zum Skript: wie verknüpfe ich nun meinen Wert mit den Skript?

So müsste es gehen,


<?
function Scaling($In, $InUG, $InOG, $OutUG, $OutOG)
            {
            /*=============================================================
            Scaling - Martin Heinzel - 21.09.2011
            Version: 1.0

            Beschreibung:
            Diese Funktion scaliert einen Wert nach der Form:

                  ( ( In - In_Min )                            )
            Out = (------------------- x ( Out_Max - Out_Min ) ) + Out_Min
                  (( In_Max - In_Min )                         )
            ================================================================*/

            return ($In - $InUG) / ($InOG - $InUG) * ($OutOG - $OutUG) + $OutUG;

            }
 

$Prozent = getvalue(******); #Deinen Variable mit dem Faderwert 0-100%
$menge = Scaling($Prozent, 0, 100, 50, 250);

setvalue(******, $menge); #Deine variable für die m³/h
?>

Die Umrechnung funktioniert soweit, danke:)

Was aber noch nicht funktioniert ist die Anzeige in der Visu. Ich bekomme es nicht hin die Stufe mit der umgerechneten Variable zu steuern.

Erklär nochmal, was du im Webfront einstellen möchtest (Bedienung), in welcher Darstellung.

Momentan ist dein Bedienelement im Webfront der Wert, der genau so auch auf den Bus geht. Und die 50-250m3 sind ein Zusatzinfo im Webfront, ohne Auswirkung auf den Bus.

Also, wie soll’s denn werden?

Die Lüfterstufe unserer Belüftungsanlage wird per 0-10V Signal gesteuert. In der Anlage ist ein Arbeitsbereich von 50m³/h (0V) bis 250m³/h (10V) eingestellt .

Diesen Bereich kann ich ja mit IPS schon per EIS6 0-100% ansteuern und bekomme den Wert als Rückmeldung auch vom Bus zurück.

Da mich als User nicht die Prozente interessieren sondern die Luftmenge, wollte ich den Anzeigebereich von 0-100 auf 50-250 ändern.

Eine reine Anzeige hast du ja nun, das ist deine Variable „umgerechnet“ im Screenshot.

Möchtest du anstelle des 0-100% Schiebers (aus der KNX-Instanz) einen 50-500m3 Schieber im Webfront, der das in 0-100% umrechnet und auf den Bus schickt? Falls ja: Bedienung nur von IPS aus über den Volumen-Schieber, oder auch von anderswo über die 0-100%?

Genau, 50-250m³ Schieberegler im Webfront der 0-100% per DPT5 auf den KNX Bus schickt. Die Bedienung erfolgt nur von IPS aus.

Später kommen noch Sollwertvorgaben per DPT5 bei bestimmten Ereignissen noch dazu, davon bekommt man als Bewohner nichts mit.

Gut, das ist doch eine ganz andere Aufgabenstellung und man muß es anders angehen. In dem Fall brauchen wir erstmal das Bedienelement für das Volumen. Dazu braucht es ein passendes Profil und es muß eine Aktion zugewiesen sein, mit der der Wert gesetzt wird.

aktion.PNG

Für die Aktion nutze ich bei solchen selbstdefinierten Variablen ein Wert-setzen-Script

SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

Als Profil habe ich dieses genutzt, allerdings gibt’s dann keinen Schieberegler sondern nur unterschiedliche Werte zur Auswahl:

Damit kann man den Wert für das Volumen schon mal einstellen. Nun muss man noch den Wert umrechnen von m3 nach 0-100% und das Ergebnis per EIB_Scale() auf die Instanz der 0-10V GA senden. Versuch es mal selbst, das schaffst du mit den vorhandenen Infos!
Den 0-100% Schieber der KNX GA kannst du dann ausblenden (Häkchen bei „Objekt anzeigen“ entfernen)

Da wird’s komplizierter: In dem Fall hast du zwei Quellen für Wertänderungen, entweder vom Webfront über das Volumen oder vom Bus über die 0-100% GA. Für letztere brauchst du also Code, der beide Datenquellen unterscheiden kann und den jeweils anderen Wert berechnet und passend setzt, aber ohne dabei eine Endlosschleife zu bauen, in der sich die zwei Werte immer wieder gegenseitig aktualisieren.

Das Thema überlasse ich den IPS-PHP-Spezis, da stecke ich nicht tief genug drin.

Hallo,

vielen Dank für die ausführliche Hilfe!

Ich habe jetzt eine weitere Instanz (EIS6) für die Bedienung hinzugefügt. Als Variable habe ich einen Integer und diesen mit einem Profil versehen.

Im Webfront bekomme ich nun die Lüfterstufen zur Auswahl.
Irgend etwas stimmt mit einer Einstellung noch nicht. Wenn ich eine Lüfterstufe auswähle kommt eine Fehlermeldung (Screenshot).

Ich hoffe dass ich bis hierhin alles soweit richtig habe;)

Die späteren Sollwertvorgaben werden einfach auf den Bus geschickt, diese werden dann einfach in der Anzeige übernommen. Das Funktioniert schon mal.

Grüße