KNX: Wie Taster für Reset im Webfront erstellen

Ich brauche nocheinmal Eure Hilfe:

Für das Rücksetzen der MIN/MAX Werte meiner Raumthermostate benötige ich einen kurzen ‚1‘ Impuls auf die GA.

Wie kann ich denn einen einfachen Button im Webfront erstellen, der beim Betätigen eine 1 sendet und beim Loslassen eine 0?
Alternativ eine 1 beim Betätigen und nichts beim loslassen?

Wenn ich ein KNX Gerät anlege, bekomme ich immer Ein/Aus dargestellt und muss wieder auf Aus klicken.

Skript anlegen, welches den Impuls sendet :slight_smile:

paresy

Hier mal meine Lösung, gibt es noch einen eleganteren Weg? Evtl. eine Möglichkeit, das Skript nur einmal anzulegen und pro Funktion darauf zu verweisen?

Die Instanz ‚Wohnen_Reset‘ ist als EIS1-Switch konfiguriert, und hat die Gruppenadresse zugewiesen, auf der die 1 für den Reset gesendet werden soll.

Die Variable ‚Value‘ wurde mit der Instanz angelegt und ist vom Typ Boolean (Standardaktion ~Switch/Benutze Standardfunktion).

Die Variable ‚Reset‘ habe ich als Integer angelegt. Habe ein Profil ‚Heizung.Reset‘ erstellt, das den Wert 1 mit dem Text Reset verknüpft. Die Variable habe ich als Link mit dem Webfront verknüpft. Der Button Reset wird angezeigt.

Das Skript ‚Temp_MIN-MAX_Reset‘ habe ich angelegt und lasse es bei Aktualisierung der Variable ‚Reset‘ ausführen:

<?

$reset = GetValue(49691);
 
if ($reset == 1) {
	EIB_Switch(16485, true);
}
else {

}

?>

Hallo,

da ich nach der gleichen Funktion gesucht habe hole ich diesen Thread mal raus.
Ich möchte per IPS zwei Impulse (hoch und runter auf unterschiedliche GAs) auf meinen KNX Bus schicken. Da ich von Skripten noch nicht viel Ahnung habe wollte ich mal fragen was ich da genau machen soll.

Grüße

Was hast Du denn bisher versucht?

Am besten suchst Du in der Dokumentation nach EIB_Move.

Dann schaust Du, ob es klappt. Wenn nicht, zeigst Du hier, wie Du es lösen wolltest und irgendwer gibt Dir danach Tipps, wie es richtig geht.

Mit den EIB Shutter habe ich es zuerst auch versucht. In diesen habe ich aber nur eine GA für hoch und runter. Ich müsste einen Shutter haben wo ich zwei Adressen (für auf und ab) eintragen könnte.

Mit dem DriveMove habe ich es auch schon versucht. Hier kann ich auch nur eine Adresse eintragen. Laut der Anleitung steht da was von Richtung, so richtig kann ich mit der Anleitung aber nichts anfangen:/

Ein Shutter Modul und auch alle mir bekannten KNX Rollladebaktoren haben eine GA für die Richtung.

Dann Bau Dir ein Skript, welches Auf an die eine und gleichzeitig Ab an die andere GA schickt.

Frohes Neues Jahr!

Nur eine Anmerkung, keine direkte Lösung: Das „Auf“ und „Ab“ sind auch nur 1-bit Befehle. Auf=0, Ab=1. Man kann also normale 1-bit Schalt-GA nutzen, was es beim Berechnen der Logik vielleicht etwas einfacher/übersichtlicher macht. Ein IPS-Beispiel dazu habe leider ich nicht, weil ich diesen Teil im KNX-Logikmodul erledige.

Viele Grüße
Volker

Frohes Neues erst mal;)

Von Skripten habe ich noch keine Ahnung, also kann ich es damit schon mal nicht lösen:(

Eventuell noch mein Vorhaben:
Per Schaltaktor mit Strommessung fahre ich meine Leinwand runter und wieder hoch sobald eine Stromschwelle von meinen Projektor über bzw. unterschritten wird. Da ich keinen KNX Jalousiekanal mehr über habe schicke ich das Telegramm zu meiner Wago SPS, diese schaltet dann zwei Relais über einen Jalousie Funktionsbausten. Das funktioniert alles soweit super.

Nun möchte ich eine Möglichkeit haben über IPS die Leinwand einzeln zu steuern falls ich mal was an der Leinwand machen muss ohne den Projektor einzuschalten zu müssen.

Ich habe zwar eine Lösung mit einzelnen Instanzen, diese ist aber nicht so schön gelöst. Besser wäre es wenn es so aussehen würde wie bei den Rollläden;)

Grüße

Niemand hatte am Anfang seiner IPS Zeit Ahnung von Skripten. Ohne Skripte wird es nicht gehen und wenn Du es nicht mal versuchst, dann wirst Du auch nie Ahnung davon bekommen.

Ich denke auch, daß du etwas mehr selbst üben und nachdenken musst, damit „der Groschen fällt“ beim Scripting. Da du gar nichts geschrieben hast ist es schwer, zu erkennen, woran es fehlt?

Leg dir eine Variable „Leinwand“ im Webfront an. Keine EIB-Instanz, sondern nur eine einfache Variable vom Typ Boolean. Die braucht nun tatsächlich ein Aktionscript, um festzulegen, was passieren soll bei Bedienung. Um einfach nur die Statusvariable umzuschalten sähe das Aktionsskript so aus:

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

Du möchtest aber auch den Zustand prüfen, und je nach Zustand einen EIB-Befehl abschicken. Dazu haben die PHP-Götter das IF erschaffen: PHP: elseif/else if - Manual

Du möchtest also sowas machen (nur symbolisch, sind evtl. Fehler drin):

if ($_IPS[‚VALUE‘] == True) {
EIB_Switch (12345, True)
} else {
EIB_Switch (67890, True)
}

Wobei 12345 und 67890 die ID deiner beiden EIB-Instanzen der Relais sind.

~~

So ungefähr sollte es klappen, also Ärmel hoch und ran! Danach kannst du dem Schalter mit einer Instanz vom Typ „Dummy“ (heisst wirklich so) noch einen hübschen Gruppierungsrahmen im Webfront verpassen. Und mit dem Profil kannst du die Beschriftung des Tasters für die beinde Zustände ON/OFF <> HOCH/RUNTER festlegen

Ich mache ab Mitte Februar einen php/SQL Kurs an einer VHS mit. Ist eher was für Webdesign aber es wird sicher auch was für IPS hängen bleiben;)

Die ersten Skripte habe ich hier schon im Forum erfragt, darauf kann ich schon weiter aufbauen und an meine Bedürfnisse anpassen. Mit der Struktur von IPS muss ich auch noch besser klar kommen…

@volkern
Danke für die nächste Anleitung;)
Versuche es heute noch umzusetzen. Habe gestern gemerkt dass ich nicht einfach mit IPS auf die aktuellen GAs schreiben sollte. Da mehrere KOs in einer GA sind kommt ein wenig Chaos bei raus
Muss also erst an Codesys, dann ETS und anschließend IPS ran.

Mal eine Frage nebenbei:
Wie kann ich mit IPS einen Impuls auf eine GA schicken? Geht sicherlich mit einem true oder false Skript, ich weiß aber nicht wie ich es mir der GA verbinden soll. Will in der Visu später nur einen „Taster“ haben der von mir vorgegeben eine 0 oder 1 auf den Bus sendet.

Grüße

„Irgendwas“ auf bestehende GA zu senden ist natürlich nicht Sinn der Sache. Du kannst dir aber einen bisher unbenutzten Adressbereich zum Testen/Spielen festlegen, da sollten 10-20 GA ausreichen. Die GA muß in der ETS auch nicht zwingend angelegt sein, um sie von IPS aus zu testen: der Gruppenmonitor zeigt alles auch, auch unbekannte GA.

Brauchst du denn überhaupt zwischen den 1en jeweils eine 0? Oder reicht es dir, wenn bei Bedarf immer wieder eine 1 kommt, ohne 0 dazwischen? Gibt beide Fälle, darum frage ich.

Im KNX Logikmodul nutze ich für Impulse den Logikblock „Treppenlicht“, vielleicht gibt’s da auch was Fertiges für IPS.

Das mit dem Testbereich ist eine gute Idee. Ich habe zwar einen Bereich zum „Spielen“, wusste aber nicht dass der Busmonitor auch alles anzeigt wenn es nicht in einem Aktor oder Sensor parametriert ist.

Mir reicht ein einfaches 1 Signal. Momentan nutze ich per EIS1 einen Schaltbefehl der über den KNX Bus zur Wago geschickt wird. In der Visu steht ein An und Aus. Ich will aber nur ein An welches nach loslassen sofort wieder aus geht. Wie ein ganz normaler Taster halt;)

Hallo,

ich habe ein ähnliches Problem. Ich möchte nach Betätigung des Button im Webfront zunächst eine 1 und 0,5 sec später ein 0 auf die GA senden. Dazu habe ich folgendes Skript erstellt und dem Button zugewiesen:

<?

$taster*=*GetValue(47196 /*[Gerätemanager\Tore\Taster\Hoftor]*/); 
* 
if ($taster == 1) 
{ 
****EIB_Switch(45223 /*[Gerätemanager\Tore\Geräte\Hoftor]*/,*true);
    IPS_Sleep(500);                      
    EIB_Switch(45223 /*[Gerätemanager\Tore\Geräte\Hoftor]*/,*false);
} 

?>

Beim Ausführen des Skripts erhalte ich folgende Fehlermeldung:

Parse error: syntax error, unexpected ‚if‘ (T_IF) in /var/lib/symcon/scripts/25421.ips.php on line 5

Wo steckt mein Fehler?:confused: Kann mir jemand helfen?

Danke.

Moin… hast du mal die ganzen Sternchen entfernt und es dann erneut versucht?
Wofür sind die?!
Gruß,
Peter

Gesendet von iPhone mit Tapatalk

Die Sternchen sind im eigentlichen Skript nicht drin (sind erst beim Kopieren in den Thread rein gekommen). Im Skript sind das Leerzeichen.

Gruß
Sven

Das sind im Skript sicherlich keine Leerzeichen, sondern unsichtbare Sonderzeichen. Eine beliebte Ursache ist das Kopieren aus dem Edge Browser.

Entferne mal alle Leerzeichen vor dem If und gib sie neu ein. Wahrscheinlich wandert der Fehler dann weiter nach hinten zum nächsten Leerzeichen.

Gruß

Burkhard

:smiley: Prima, danke, das war es.