Sollwert verändern?

Hallo und guten Abend :wink:

Zur Zeit versuche ich mal wieder meine Forms für den Designer ein wenig zu verändern. Unter anderem soll eine Möglichkeit eingebaut werden, mit der ich die Soll-Vorgabewerte für die Heizung verändern kann.
Viele Beispiele hier im Forum zeigen ein Feld mit dem Wert und darüber bzw. darunter dann ein Dreieck-Button. Dieser Button verändert dann den Wert.
Nur wie ist das gelöst? Habt ihr für jeden Button dann noch ein eigenes Script angelegt oder gibt es eine andere Möglichkeit? Denn dann müßte ich ja für 8 Stellantriebe 16 zusätzliche Scripte anlegen … :confused:

Gruß
Jens

Hallo Jens,

Du brauchst dafür natürlich nur ein Script. Dazu legst Du Dir z.B. 8 Label Felder im Designer an. Die Labelfelder enthalten die Caption der Sollwertvariable. Jedem dieser Labelfelder ordnest Du zwei Pfeilsymbole als Image zu. Jedes Image hat einen IPSYMID Wert z.B. hoch1 und runter1, dann hoch2 und runter2 usw. Das jeweilige Image wird per OnClick Event auf ein Script getriggert. In diesem Script kannst Du per:


switch ($IPS_COMPONENT)
{
  case 'hoch1':
  //was gemacht werden soll
  break;
  
  case 'runter1':
  //was gemacht werden soll
  break;
  
  //usw.
}

dann die Sollwerte handeln.:wink:

Hallo Thomas,

danke für den Tip. Irgendwie hatte ich da so etwas im Hinterkopf … bin aber nicht von allein auf die Lösung gekommen :(.

Werde dann wohl mal mit der IPSYMID experimentieren müssen …

Gruß
Jens

Hallo,

ich möchte diese Frage noch einmal herauskramen und erweitern, weil auch ich im Designer gerade die Heizung visualisieren möchte.

Ist es denn auch möglich, mehr als einen Wert an IPS zu übergeben? Ich denke da zum Beispiel daran, dass ich die ID und den neuen Sollwert übergebe. Dann müsste man nicht 10 mal klicken, wenn man die Heizung um 5°C höher einstellen möchte, sondern könnte den neuen Wunschwert direkt über einen Schieberegler oder ein Texteingabefeld an IPS übergeben.

Oha, da fällt mir gerade noch eine Zusatzfrage ein:
Kann ich denn überhaupt den neuen Wert eines Schiebereglers als IPSYMID an IPS übergeben oder nur Konstanten?

Gruß Ralf

So ganz verstehe ich Dein Problem nicht, der Schiebereglerwert wird vom Designer in einer Variable abgelegt, dieser kann doch von einem Script abgefragt werden…

z.B. über Event OnChange

Schieberegler geht … aber Eingabefeld wüßte ich jetzt nicht wie das gehen soll. Kann man per Designer/Dashboard ein Inputfeld erzeugen??

Jens

Ja. Dafür gibt es das Editfeld. Steht in der Doku.:wink:

Ehhm kleine aufmerksamkein bei seite …
Wenn du uber ein schiebe regler deine Soll wert ändertst - dan uberschwimmt der sende-buffer in keine Zeit.
Jeden Wert die den Schieberegler annimmt wird dadurch gesendet
also : 18 -> 21, da wird 19, 20 und 21 gesendet under dauert bis zu 6 minuten bis das ankommt.

Bessere lösung:
eine art ‚set‘ knopf neben den Schieberegler.
Schieben und dann drucken -> das script lauft nur nach drucken vom ‚set‘ knopf.

Meine 2 cents,
Fredje

Hallo Fredje,

das stimmt so nicht. Du kannst den Schieber mehrfach hin und her schieben. Erst beim Loslassen des Schiebers wird der erreichte Wert übernommen. Es wird also nur ein einzelner Wert gesendet. Eine Überschwemmung findet nicht statt.

Trotzdem ist es die bessere Lösung so vorzugehen, wie Du es beschrieben hast: :slight_smile: mit einem zusätzlichen Button. Damit wird sicher gestellt, dass nicht Werte übertragen werden, die durch versehentliches kurzes Loslassen des Schiebers erzeugt wurden.

Gruß
HJH

Hallo,

diese Erfahrung, die ihr hier beschreibt, habe ich auch schon gemacht.
Daher habe ich das genau so gelöst :wink: Klappt gut!

Gruß Ralf

Muss das hier noch mal nach Oben holen … kann ich den Wert von IPSYMID auch als „Array“ übergeben, also mehrere Werte mit Trennzeichen??

Gruß
Jens

IPSYMID ist immer ein String. Du kannst daraus aber ohne Probleme ein array machen. In dem Du, wie schon angesprochen, Trennzeichen verwendest und den String mittels explode in ein array überträgst.

Supi, danke für die Antwort :slight_smile: