Erste Schritte mit PHP und nun Stillstand

MEGA! Lieben Dank dafür! Da gehe ich morgen Vormittag gleich mal bei und gebe feedback
Das war mal ein super Nikolaus! Danke! :+1:

Hey Michael,

nochmals vielen Dank für Deine Hilfestellung gestern zu später Stunde! Ganz groß!

Ich habe das jetzt mal so, wie von Dir super beschrieben. eingerichtet. Nur leider gab mir auch diese Lösung in der App, keinen „Taster“, sondern wieder „nur“ den Link zu diesem Untermenü, in dem ich den Taster dann drücken kann. (Ziel für mich war es, die Betätigung auf der ersten Ebene zu haben.) Dennoch hat das Lesen zu (Status)variablen und Variablenaktionen und Deine Erläuterungen etwas bewirkt.

Ich habe nun nochmal etwas experimentiert und glaube ich bin zu einer Lösung gekommen. Ähnlich dem Weg wie am Anfang, nur das ich die Statusvariable nicht durch die Automation zu beschreiben versuche, sondern den Wert der Instanz. (Ich hoffe ich drücke mich jetzt richtig aus… )

Ich habe, da ich ja aus der KNX Welt komme, einfach eine DTP 001.x - 1 Bit KNX Instanz angelegt. Dieser habe ich einfach eine „Dummy“ Gruppenadresse verpasst, die sonst nicht genutzt wird. (Wenn das überhaupt notwendig war?!?)

Nun habe ich erst mal in der App einen Schlater ein/aus, der auf aus steht.

Unter der Variable, habe ich eine Automation hinzugefügt, welche diese Variable als auslösende heranzieht, sofern diese auf „true“ steht.

image

Diese Automation habe ich in den Eigenschaften Zur VISU ausgeblendet, so dass sie nicht in der App erscheint…

Als Automation, schalte ich jetzt das KNX-Objekt „zentral Aus“ (Im Beispiel ist es nur die Büroleuchte) AUS, und anschließend schalte ich die Instanz der Variable wieder zurück auf „false“

In der App sehe ich jetzt auf den ersten Blick einen Schiebeschalter, betätige ich diesen, geht dieser auf „ON“, die Büroleuchte schaltet aus, und der Schiebeschalter springt zurück auf OFF (false).

Die Frage ist nur, „brennt“ mir das irgendwann ab, da ich was nicht berücksichtigt habe?
Ich denke aber das kann man so machen oder?

Danke!
Ralf

Hallo Ralf,

richtig, den Button nach Bauanleitung von Michael würde man im Browser sehen. In der App wird es leider anders dargestellt, so wie du es beobachtet hast.

Deine Lösung mit der KNX-Instanz und darunterliegender Boolean-Variable ist unnötig kompliziert, sofern es dir nur um die Variable geht. Du könntest eine Boolean-Variable auch direkt anlegen ohne KNX-Instanz, die benötigt dann ebenfalls Profil und Aktion analog zum Beispiel von Michael. Beim Profil gibt es dann True und False, so wie bei deinem KNX DPT1 auch.

Viel Erfolg!
Volker

Einfach das Aktionsskript in den Bereich verlinken wo die App es sehen kann, und du kannst das Script mit einem Tipp starten ohne das eine Auswahl kommt.
Michael

1 „Gefällt mir“

Dann kann man sich den Zirkus mit der Variablen doch eigentlich sparen und dort einfach nur ein „normales“ Script anlegen, oder übersehe ich was?

Ausgangssituation war "Ich benötige einen Taster als Trigger " und das ist gar nicht der Fall, oder?

Warum soll das Icon bei einem Script kein Taster darstellen? Nur weil man so eine bunte Box wie beim Variablen Profilen haben will?
Im Thema zur Frage der Darstellung in der App hatte ich geschrieben das meine Variante mit der Variable keine Taster in der App darstellt.
Siehe hier:

Klar kann man sich den ganzen Zirkus sparen und direkt Skripte aus dem WebFront starten :slight_smile:
Michael

Icon? Ich hatte es so verstanden dass xinix nur deshalb einen Button (für Variablenwert) plaziert um irgendwas im GUI zu haben was dann ein Script auslösen kann.

Es war mir gar nicht bewusst, wie einfach und gut das in der App funktioniert.

Das ist für diese Aufgabenstellung (Zentral aus senden) vermutlich die beste und einfachste Lösung, gerade bei Verwendung aus der App. Einen sinnvollen Status gibt’s bei „Zentral aus“ ja ohnehin nicht.

Der ‚Ausführen‘ Pfeil ist für mich ein Icon :grin:

Michael

Schon klar. Mit Button meinte ich ein anklickbares Element mit dem man in der App das Script ausführen kann, egal wie das grafisch dargestellt wird.

Die entscheidende Info für xinix dürfte sein, dass er mit einem „nackten“ Script bereits am Ziel ist weil das in der App erscheint und sich per Klick ausführen lässt. Da braucht’s gar keine Hilfsvariable, die hier ohnehin keinen Nutzen hat. So trivial das ist, mir war das vorher nicht klar.

Ich kann den Threadhersteller gut verstehen. Das her- und darstellen eines Tasters ist meiner Meinung nach nicht sehr intuitiv für einen IPS Starter obwohl es zur Standardbedienung in Bussystemen gehört. Das sich hier zwei alte Hasen so lange unterhalten und helfen wollen :+1: bestätigt es. Ich bin leider länger nicht an meiner Anlage und kann deshalb hier nicht konstruktiv helfen.

Doch ist es, wenn du den Link in den Beitrag zur Dokumentation der Visualisierung von dem Objekt ‚Script‘ gefolgt wärst.
Nur ist diese Darstellung halt nicht was die ‚meisten‘ wollen.
Da wird gerne für das WebFront ein Button wie bei den Assoziation einer Variable gewünscht. Und das geht ja auch sehr einfach. Nur macht sich leider kaum einer die Mühe die Dokumentation nicht nur zu lesen, sondern es auch einfach Mal live auszuprobieren.
Sobald man verstanden hat wie die Variablenprofile funktionieren, ist das sehr einfach umsetzbar.
Darum verlinke ich auch immer gerne die Dokumentation.
Michael

Es freut mich sehr, das sich so rege daran beteiligt wird, eine technisch gute Lösung dafür zu finden.
Der eine Part wäre damit ja so gut wie geklärt, jetzt muss ich nur noch auf Spur kommen, wie ich das Script formuliere, damit bin ich nach wie vor etwas überfordert, liegt wohl aber auch daran, das der Groschen noch nicht so richtig gefallen ist. Ich werde die Dokumentation mal weiter lesen. Es wird sich schon das eine oder andere daraus ergeben. Vielen Dank erst mal!

Was soll es den machen? Oder genauer, worauf bezieht sich deine Frage?
Das hier in Beitrag 7 brauchst du so alles nicht. Kannst es natürlich mit dem Ablaufplan so machen, aber die Pseudo KNX Instanz brauchst du auf jeden Fall nicht.
Und es geht auch ohne Automation oder Ereignis.

Wenn du eine Bool haben willst, statt einer Integer Variable, machst du das fast genauso.
Variable anlegen, Profil wäre dann ~Switch, Aktionsskript erzeugen.
Und das Script z.b. so:

//Nur Variable setzen, damit die checkbox aktiv wird bzw der Zustand auf EIN geht.
SetValue($_IPS['VARIABLE'], true);
RequestAction (12345,true); // Schalte Variable 12345
IPS_Sleep(500);
//Nur Variable auf aus setzen, damit die checkbox inaktiv wird bzw der Zustand auf AUs geht.
SetValue($_IPS['VARIABLE'], false);

Michael

1 „Gefällt mir“

Ich versuche auch eine Beschreibung - auf einem anderen Wege als Nall-Chan, weil ich deinen ursprünglichen Ansatz mit Hilfsvariable zur Bedienung für unnötig kompliziert halte.

Wenn ich es richtig verstehe möchtest du einfach eine Zentral-AUS auf den KNX-Bus senden. Also nur AUS senden, niemals EIN. Das geht ohne Hilfsvariable mit einem Einzeiler-Script.

In meinem Beispiel ist 51907 die KNX-Instanz für Zentral-Aus und Variable 14117 ist der zugehörige Wert der GA.

Nun habe ich ein Script erzeugt mit einer einzigen Zeile, das beim Aufruf ein AUS (false) sendet auf die zur Variable 14117 gehörige Gruppenadresse:

RequestAction(14117, false);

Im Editor ergänzt IPS den Namen, dort sieht es so aus:

Im Webfront fügen wir nur das Script (oder einen Link darauf) ein. Das sieht dann im Browser so aus:

und in der App etwas anders, funktioniert aber in beiden Fällen.

Die KNX-Instanz für Zentral-AUS und deren Wert brauchen wir zwar, wollen sie aber im Webfront nicht anzeigen, denn das würde bei diesem konkreten Wert wenig Sinn ergeben. Eine Notwendigkeit den Wert nach 500ms zurückzusetzen gibt es deshalb auch nicht, weil der Wert im Webfront gar nicht dargestellt wird. Es wird einfach nur beim Klick auf das Script ein AUS gesendet und das war’s. Die zum Senden des Wertes benötigte Instanz 51907 können wir in den Eigenschaften unsichtbar schalten oder auf andere Weise dafür sorgen, dass die Im Webfront gar nicht erscheint. Im Webfront wollen wir nur das Script sehen, das wir anklicken können.

1 „Gefällt mir“

Hier würde ich die Variante „oder“ bevorzugen. Ein WebFront legt man idealerweise als Kategorie an und arbeitet ab dort mit Dummys und Links.

Ja, absolut! Ich wollte hier keine Nebenthemen aufmachen, weil es ohnehin schon unübersichtlich genug ist.

Versuch einer Zusammenfassung:

  1. Wenn man einen Taster für Zentral-AUS realisieren möchte, so soll der immer nur ein AUS senden, niemals ein EIN.
  2. Mit der direkten Darstellung von KNX DPT1 (Boolean) stösst man in der iOS App nun auf das Problem, dass es dort als Schiebeschalter realisiert ist. Man kann also nur AUS senden, wenn der Zustand vorher EIN war. Das verbietet sich aber bei einem Zentral-AUS, weil man nicht alle Lichter im Haus auf einmal einschalten möchte…
  3. Der Umweg den xinix zu Beginn des Threads gewählt hat ist eine Hilfsvariable, die nach Betätigung selbst zurückspringt in den anderen Zustand, um dem Schiebeschalter-Konzept in der App gerecht zu werden. Die Hilfsvariable wird dann so verarbeitet, dass nur in einem der beiden Zustände etwas auf den Bus gesendet wird.
  4. Die Lösung von Nall-chan mit Hilfsvariable = Integer der nur einen Zustand kennt ist super, soweit es das Webfront im Browser betrifft. In der iOS-App erzeugt das aber eine weitere Ebene bei der Bedienung, man kann also nicht direkt klicken sondern muss in der App erst in das „Untermenü“:

  1. Wenn man stattdessen ein Script im Webfront „sichtbar“ macht, so kann man es in Browser und App direkt anklicken, ohne weitere Bedienebenen öffnen zu müssen.
  2. Wenn man sich für das Anzeigen des Scriptes im Webfront entscheidet, so ist dies bereits das Bedienelement. Man benötigt dann gar keine Hilfsvariable mehr und der Aufwand diese Hilfsvariable zurückzusetzen (siehe Punkt 3) entfällt. Man kann einfach im Script den gewünschten AUS-Befehl über die KNX-Instanz senden und das war’s.

Ende Versuch der Zusammenfassung :slight_smile:

Hey Michel,

es soll genau das machen, wie du es schon richtig interpretiert hast. Mit Deinem Beispiel und den Erläuterungen dahinter, hast du mir den ersten Grundstein gelegt, wie ein Skript aufgebaut werden kann. Das hat mir sehr geholfen einmal die „Grammatik“ zu verstehen. Vielen Dank dafür! Jetzt kommt langsam Licht ins Dunkel!

MEGA!
Ralf

Hey „volkerm“,

auch Dir vielen Dank für die klare Ausführung zu deinem Vorschlag, welcher für diesem Fall natürlich sehr komfortabel ist. Ich denke es wird für diesem Fall wohl die Lösung werden. Die Anwendung, speziell für „Zentral_Aus“ wird bei mir dann wohl als „Volkermschaltung“ eingehen… :sweat_smile:

Danke
Ralf

Hey,

ja, so habe ich es zum glück auch von Anfang an gemacht. Bisher hat es sich sehr bewerht… :ok_hand:

1 „Gefällt mir“

Hallo Michael,
nicht falsch verstehen aber wenn man als IPS Neuling aus der KNX Welt kommt ist es eben nicht so intuitiv. Einen Schalter zu „bauen“ ist meiner Meinung wesentlich einfacher als einen Taster.
Man hat eine KNX-Gruppenadresse die man bedienen möchte, entweder mit einer 1 oder halt einer 0 oder beides. Parallel sollte der Taster optisch auch reagieren damit man weiß der Befehl angenommen wurde.
Ich möchte hier nicht rumgrollen sondern nur meine ehrliche Erfahrung mitteilen und vielleicht gibt es ja von Seiten IPS ein Vereinfachungs- oder Verbesserungsgedanken um den Einstieg zu erleichtern. Tastbedienung ist doch letzendlich die Hauptbetätigung in einem Bussystem.