ich schon wieder … ich verwende dieses Beispiel bisher unter 3.4 ohne Probleme um IPS im Browser „anzusprechen“. Funktionierte bisher ohne Probleme. Nach Update auf die 4.0 geht es nicht mehr. Was hat sich in diesem Bereich geändert bei der 4.0er? Was müsste ich ändern?
Eben gerade mit Chrome ausprobiert. Läuft einwandfrei.
Schau mal im Browser in die Entwicklertools… Dort gibt es bestimmt mehr Infos. Kann gut sein, dass dein Browserhersteller was geändert hat und es dir erst jetzt im Zuge der 4.0 Tests auffällt
Ja, hast ja recht hatte Probleme beim hinzufügen … mal was aus einem anderen Thread geklaut … kann es das sein … also auf den ersten Post bezogen ? Bin schon wieder auf 3.4 - deswegen Trockenübungsfrage.
An alle, was mag an dem unterstehen Auszug (halte es hier kurz und knackig - die if´s usw. erspare ich Euch aber es tut auch in reduzierter Form net) IPS 4.0 net? (Ja, user und pw sind mit korrekten Werten im echten Skript drin).
Danke und Grüsse,
MaLu
$oncolor ='<span style="color:rgb(13%,70%,67%)">';
$offcolor ='<span style="color:rgb(49%,99%,0%)">';
$val = "
<script type=\"text/javascript\">
window.xhrGet=function xhrGet(o) {
var HTTP = new XMLHttpRequest();
HTTP.open('GET',o,true);
HTTP.send(NULL);
}
window.xhrPost=function xhrPost(o, data) {
var HTTP = new XMLHttpRequest();
HTTP.open('POST',o,true);
HTTP.send(data);
}
window.xhrRPC=function xhrRPC(o, name, params) {
var HTTP = new XMLHttpRequest();
HTTP.open('POST',o,true);
var rpc = JSON.stringify({\"jsonrpc\":\"2.0\", \"method\":name, \"params\":params, \"id\":0});
HTTP.setRequestHeader(\"Content-type\", \"application/json\");
HTTP.setRequestHeader(\"Authorization\", \"Basic \" + btoa(\"user:pw\"));
HTTP.send(rpc);
}
</script>
<table border=1 width=100% cellspacing=0 cellpadding=30>
<tr><td>Alarm</td><td onclick=window.xhrRPC('/api/','SetValue',[15812,\"FALSE\"]);>$oncolor AN</td><td></td></tr>
<tr><td>Alarm</td><td onclick=window.xhrRPC('/api/','SetValue',[15812,\"TRUE\"]);>$offcolor AUS</td><td></td></tr>
</table>
";
SetValue(17976 /*[HTML Web Front Steuerung\Alarm\Alarm An Aus String]*/, $val);
?>
So auf den ersten Blick von unterwegs, ohne es am Rechner zu testen…
Warum stehen true und false da in " ?
Das ist doch kein String. IPS 4 ist bei Json sehr penibel.
Und wenn du nur xhrRPC nutzt, dann wirf die anderen Funktionen doch raus. Paresy hat drei verschiedene Funktionen vorgestellt, aber du nutzt ja nur eine.
Michael
Von welches Datentyp ist denn deine Variable 15812? Sofern es Boolean ist, hat Michael Recht, dass du true/false ohne " nutzen müsstest, um das Problem zu lösen
false und true sind nun klein … und es geht immer noch nicht unter 4.0. Habe aber weitere Aspekte aufgetan.
SetValueBoolean sollte ja wie Setvalue mit den genannten Bedingungen funktionieren -
unter 3.4 geht aber „nur“ Setvalue - bei Änderung auf SetValueBoolean funktioniert es auch nicht mehr.
So nun habe ich das ganze mal mit einer Integer probiert. Hier gehen alle Kombinationen und alles wie erwartet unter 3.4 und 4.0.
Buttons abzufragen. Ging bist gestern. Habe gestern den Compatibilitätsmodus deaktivert, weil ich dachte ich alle Altlasten abgearbeitet zu haben, offensichtlich jedoch nicht. Wenn der Comp.-Modus aus ist gehts nicht, wieder einschalten gehts?!
Ist das das selbe Problem, wenn nicht bin ich dennoch an Hilfe interessiert?
Der Aufruf findet auch statt. Anschließend wird das urspungsscript (in dem die html-Zeile erzeugt wurde) aufgerufen und die Variable (array) $action ausgewertet.
switch ($_IPS['SENDER']) // hier werden eventuelle ONCLICK-Ereignisse aus der Tabelle heraus (WF) abgefrag und weitergeleitet
{
case 'RunScript':
switch (@$action)
{
case 'PREISLINK': // Auf Einstellungsseite für Strompreise springen
WFC_SwitchPage(46366 /*[WebFront]*/,"Strom");
break;
case 'GRAPHwp12MOSLINK': //
IPS_RunScript(27169 /*[Gebäude\Technik L\Stromverbrauch\Stromverbrauchsdaten\Verbrauchsdaten anzeigen\Diagramm letzte 12 Monate WP]*/);
break;
case 'GRAPHwpVorJahrLINK': //
IPS_RunScript(14086 /*[Gebäude\Technik L\Stromverbrauch\Stromverbrauchsdaten\Verbrauchsdaten anzeigen\Diagramm Vorjahr WP]*/ );
break;
case 'GRAPHpraxis12MOSLINK': //
IPS_RunScript(56037 /*[Gebäude\Technik L\Stromverbrauch\Stromverbrauchsdaten\Verbrauchsdaten anzeigen\Diagramm letzte 12 Monate Praxis]*/ );
break;
case 'GRAPHpraxisVorJahrLINK': //
IPS_RunScript(29464 /*[Gebäude\Technik L\Stromverbrauch\Stromverbrauchsdaten\Verbrauchsdaten anzeigen\Diagramm Vorjahr Praxis]*/ );
break;
case 'GRAPHallesOwp12MOSLINK': //
IPS_RunScript(23505 /*[Gebäude\Technik L\Stromverbrauch\Stromverbrauchsdaten\Verbrauchsdaten anzeigen\Diagramm letzte 12 Monate alles ohne WP]*/ );
break;
case 'GRAPHallesOwpLJLINK': //
IPS_RunScript(56238 /*[Gebäude\Technik L\Stromverbrauch\Stromverbrauchsdaten\Verbrauchsdaten anzeigen\Diagramm Vorjahr Alles ohne WP]*/ );
break;
}
break;
}
Dieses Array liefert aber nichts mehr zurück seit dem ich den Compatibilitätsmodus abgeschaltet habe (wenn ich ihn wieder aktiviere gehts wieder…)