IPS Funktionen in einer HTMLBox nutzen

Moin zusammen,

da ich die Problematik habe in einer HTMLBox auf verschiedene Variablen per SetValue zuzugreifen, habe ich mich mal aufgemacht ein kleines Modul für die Allgemeinheit zu schreiben. Nix besonderes, nur ein paar Zeilen Code. Aber da es das bisher hier noch nicht richtig gab, dachte ich mir - stellste das mal ins Forum.

Und zwar geht es darum, dass ich Buttons oder Eingabefelder in einer HTMLBox habe, und trotzdem Variablen verändern, oder Skripte starten möchte.

Zur Verfügung stehen folgende IPS Kommandos

[ul]
[li]SetValue
[/li][li]SetValueFloat
[/li][li]SetValueString
[/li][li]SetValueInteger
[/li][li]SetValueBoolean
[/li][li]IPS_RunScript
[/li][li]IPS_Execute
[/li][/ul]

Wer ein wenig Ahnung von PHP und JS hat, kann eigene Befehle ganz leicht in den Skripten ergänzen.

Aber gut… nun zur Installation.

Archiv runterladen und die Dateien entsprechend in den folgenden Ordner kopieren

/webfront/user/IPSJS

Dann eine String Variable mit dem HTMLBox Profil erstellen und zum Test folgenden Code rein kopieren. Und per Link im Webfront sichtbar machen.


<link rel='stylesheet' href='/user/IPSJS/myButton.css'>
<script type="text/javascript" src="/user/IPSJS/ips_functions.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>

<div class='myButton' onclick='SetValue(12345,"Hahn");'>Hahn</div><div onclick='SetValue(12345,"Huhn");' style='background-color:blue;' class='myButton'>Huhn</div>

An den Stellen 12345 natürlich entsprechend eine Zielvariable eintragen.

Ich habe mir den Buttonstyle ausgeborgt und eine eigene CSS Datei kopiert, damit diese ein gleiches Aussehen haben. Über den Style und BackgroundColor kann dies nach deinen Wünschen angepasst werden.

Das müsste dann ungefähr so aussehen.

Wenn dies funktioniert, kann ganz einfach ein anderer Befehl eingesetzt werden. Z.B. ein IPS_RunScript(12345);

Was ich sehr interessant finde, ist die Tatsache das ein <input onchange=„SetValue(12345,this.value);“> einen Text ohne speichern drücken in eine Variable schreiben kann.

Viel Spass beim basteln.

Achja, wer kein Internet frei zugänglich am Webfront hat, wird Probleme mit JQuery bekommen. Am besten das File dann lokal speichern. Oder - wer es schon nutzt. Am besten weglassen.

Gruß
Kevin

IPSJS.rar (1.87 KB)

Hm … ich lese nur Webfront … aber geht das auch aus dem Dashboard ? Das scheint ja mit dem IE zu arbeiten

Ich hab das Dashboard noch nie genutzt. Kann da so nix zu sagen.

Moin!

Ist das nicht quasi das hier >> GET/POST/JSON-RPC Requests direkt aus HTMLBoxen senden

Was über die API alles funktioniert, und wie, sieht man hier:
Datenaustausch — IP-Symcon :: Automatisierungssoftware

Grüße,
Chris

Hallo Spoosie,

erst mal Danke für den DAU-fähigen Ansatz. Sowas hab ich schon ne Weile gesucht.

Nun meine Frage: kann man da irgend wie eine „Rückmeldung“ einbauen die die Buttonfarbe/Textfarbe nach dem Click ändert, damit man weiss was gewählt wurde? Sowas wie ein Optionbutton?

Hab leider zu wenig Ahnung. Evtl über die CSS?

Da die Buttons ja durch eine HTML Box simuliert werden, kann man natürlich jederzeit den Inhalt entsprechend ändern, und dann auch Farbe, Anzahl Buttons usw. flexibel anpassen.

Ich bin sehr an so einer Funktion interessiert. Leider habe ich es mit der hinbekommen. Funktioniert das noch mit der aktuellen IPS Version?

Das sollte immer noch funktionieren.

paresy

@Spoosie

arbeite grad mit deinem Code. Vielen Dank dafür.

das mit SetValue funktioniert ja super. Jetzt habe ich das Problem dass ich in einer javascript Funktion einen GetValue brauche.

function blabla()
{
let value = GetValue(‚12345‘);
}

ist das machbar? und wenn ja wie.

Danke erstmal