Taster im Webfront mit genau einer Funktion

Hallo zusammen,
bin blutiger Anfänger in Symcon und PHP und habe ein wahrscheinlich lächerlich einfaches Problem. Ich will im Webfront einen Taster haben, der beim Drücken genau einen Wert auf eine KNX-Gruppenadresse sendet. Es soll einfach immer beim Drücken des Tasters eine Variable auf den Wert „1“ gesetzt werden. Status-Rückmeldung ist nicht erforderlich erfolgen. Auch kein „Toogle“. Im Webfront soll dabei nur EINE Schalterfläche (=Taster) angezeigt werden.

Habe mir schon alles mögliche hier im Forum durchgelesen, kriege es aber nicht hin. Aktuell behelfe ich mir mit einem Standard-Variablen-Profil und habe auf die „0“-Schaltfläche einfach mit ein paar Zeichen eine Art Pfeil draufgelegt. Hat aber keine Funktion diese Schaltfläche und sollte deshalb gar nicht erscheinen im Webfront. Sieht derzeit so aus:
image

Kann mir evtl. jemand auf die Sprünge helfen?

Danke und viele Grüße

Rainer

Integer Variable mit Benutzerdefiniertem Profil. Dieses bei Schrittweite auf 0. Min/Max jeweils auf 0. Assoziation für ‚0‘ festlegen.
Darunter ein Action Script mit dem Inhalt:
RequestAction($knxWertVariable, true);

Ergänzend zur der Kurzfassung von @tobiasr, hatten wir hier das Thema erst:

Michael

1 „Gefällt mir“

Hallo zusammen.
Vielen Dank für die Tipps. Insbesondere @Nall-chan, denn mit der „Kurzfassung“ wäre ich mit meinen Anfängerkenntnissen (noch) nicht klargekommen. Aber mit dem Link von Michael habe ich es wie gewünscht hinbekommen. Echt vielen Dank dafür, denn da habe ich ein paar Stunden drauf rumgekaut vorher. Aber jetzt viel gelernt (und verstanden.) :slight_smile:

Nochmals vielen Dank, viele Grüße und ein schönes Rest-Weihnachten.

Rainer

P.S.: Ach doch noch eine Frage: @tobiasr schreibt ich soll im Actionscript „RequestAction($knxWertVariable, true)“ verwenden. Ich setze den gewünschten Wert jetzt mittels „KNX_WriteDPT…“. Was ist da der Unterschied und was ist empfehlenswert? Gibt es vielleicht irgendwo eine Doku der KNX-Script-Befehle? Ich habe da bisher in der Online-Doku nur die „EIB_…“-Befehle gefunden. Habe ich etwas übersehen?

Die EIB_ Befehle sind veraltet und für die Legacy Instanzen noch vorhanden.

Aktuell sind die KNX_WriteDPT Instanzenz.
RequestAction abstrahiert im Hintergrund jeweils zu passenden Variable die entsprechende Instanz Funktion.

Über die Vor- und Nachteile davon wurde schon mehrfach im Forum diskutiert.

Das ist nicht ganz korrekt.
RequestAction führt einfach die Aktion einer Statusvariable aus. Das kann auch eine eigene Aktion (Aktionsskript) und somit keine Instanz-Funktionen sein.

@Nall-chan : Das ist natürlich genauer, aber für die Frage wieso konkret HIER RequestAction oder KNX_Write… noch unerheblich.

Wo genau muss man das Action Script einfügen? Ich finde darunter keine Möglichkeit, Danke Tobias

Ich habe es mal so gemacht:
Screenshot 2023-01-03 at 08-30-31 IP-Symcon Verwaltungskonsole

Aber wo gebe ich das zu schaltende Objekt an also meine Gruppenadresse für den Ausgang (Licht)?

Danke

Bei eigene Aktion drückst du auf das Plus.
Es wird dann im Objektbaum unterhalb der Variable ein Script erzeugt.
In dieses schreibst du etwas wie:

KNX_WriteDPT...($InstanzID, true); // oder false je nachdem

Hi „hirn“,
ich habe auch ein wenig gebraucht, bis ich die erforderliche Mimik verstanden habe. Ist nicht selbsterklärend und ein bischen „von hinten durch die Brust ins Auge“. Wenn du nicht klarkommst, poste ich gerne ausführlich wie ich das jetzt gemacht habe. Meld dich einfach, falls erforderlich.
Viele Grüße
Rainer

Ist deine Variable die Statusvariable einer EIB-Instanz? Dann gibst du die GA in der EIB-Instanz ein, nicht in der untergeordneten Statusvariable.

(Falls du eine einzelne Variable erzeugt hast, die nicht Teil einer EIB-Instanz ist, dann wäre das falsch.)

Hallo Tobias,

ok jetzt habe ich das mit dem Script gefunden. Ich habe folgendes eingetragen:

<?php //Dokumentation: https://www.symcon.de/service/dokumentation/konzepte/skripte/aktionsskripte/ SetValue($_IPS['VARIABLE'], $_IPS['VALUE']); KNX_WriteDPT...($37453, true);

Bekomme aber dann folgenden Fehler (sorry ich bin kein Programmierer, für mich sind das alles spanische Dörfer)

Parse error: syntax error, unexpected ‚…‘ (T_ELLIPSIS) in /var/lib/symcon/scripts/11596.ips.php on line 5

Danke an alle für Eure Hilfe, Thomas

steht stellvertretend für die korrekte KNX DPT Instanz. Vervollständigt in der Konsole mit STRG+Leertaste

Vermutlich musst du KNX_WriteDPT1 verwenden.

Hallo,

ja die Instanz/Variable ist DPT 1.001

KNX_WriteDPT1($37453, true);

Leider aber immer noch der gleiche Fehler.

Du musst NUR die ID übergeben. Also entweder ist sie in eienr Variable gespeichert wie $instanceID = 12345, dann schreibst du …DPT1($instanceID, true); oder du trägst sie direkt ein, dann schreibst du nur …DPT1(12345, true);

Hallo zusammen, super jetzt hat es geklappt, vielen Dank noch für den Hinweis Tobias.