Schalten in eigener Seite

Wieder was zum testen.

Schalten FS20 in eigener Seite ohne neu zuladen.

Eigene Seite erstellen oder einbinden.
Horst hatte unlängst Code für update von Variablen veröffentlicht, diesen habe ich hier mit eingebaut und entsprechend angepasst.

Alles gehört ins user Verzeichniss.

Hier muss die Status ID eingetragen werden.

getIPSValue.php?id=21167",

und hier die Aktor ID.

.value = 41478}} 

getIPSValue.php

<?php
header("Last-Modified: ".gmdate("D, d M Y H:i:s", time())." GMT");
header("Pragma: no-cache");
header("Expires: 0");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: pre-check=0, post-check=0, max-age=0");

    //echo GetValue((int)$_GET['id']);


if(GetValue((int)$_GET['id'])== 1)echo "<div class='SwitchBasic SwitchBasicOn'> <div class='deviceStateContent'>Ein</div>"; else echo "<div class='SwitchBasic SwitchBasicOff'> <div class='deviceStateContent'>Aus</div>";?></div></div>

toggleIPS.php

<?
if((int)$_GET['id'])
{
FS20_SwitchMode((int)$_GET['id'], !GetValue(IPS_GetStatusVariableID((int)$_GET['id'], "StatusVariable")));  
}
?>

Webseite xyz.php

<!--
<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-->

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">

<style type="text/css">@import "../dojo-release-1.3.0/dijit/themes/nihilo/nihilo.css";</style>
<style type="text/css">@import "webfront.css";</style>
<style type="text/css">
html, body { margin: 5px; padding: 0; }
</style>

<script type="text/javascript" src="../dojo-release-1.3.0/dojo/dojo.js" djConfig="parseOnLoad:true"></script>
<script type="text/javascript"> 

dojo.require("dijit.form.Slider");
dojo.require("dojo.parser"); 


var refreshPeriodically = function (node, url, interval) { dojo.addOnLoad( function () { var req = function () { dojo.xhrGet( { url: url, node: dojo.byId(node), load: function (data, xhr) { if (xhr.args.node) { xhr.args.node.innerHTML = data; } } } ); }; req(); window.setInterval(req, interval); }); };
    
   refreshPeriodically("Chromoflex", "getIPSValue.php?id=21167", 1000);
   
   function doRequest(value) { dojo.xhrGet( { url:'./toggleIPS.php', content: {slider: dojo.byId('horizontalSlider').value = value}} ); } 
                
  dojo.addOnLoad(function(){ dojo.query("#Chromoflex").connect("onclick",function(value){ dojo.xhrGet( { url:'./toggleIPS.php', content: {id: dojo.byId('Chromoflex').value = 41478}} ); });    });   
                

</script>  
</head><body class="nihilo">


       <center><h1 id="Text">Testseite Schalten</h1></center>        
        <div id="contentNode"> </div>


<br><br>

<div class="variablesContainer" style="height: auto;">
            <div class="variableContainer" style=" background: transparent url(img/icons/png/GluehbirneAn.png) no-repeat scroll 10px 4px;">
         <div class="deviceTitle">
           <div class="deviceTitleContent">Chromoflex</div>
           <div id="Chromoflex" class="deviceStateExtended"></div>
           <div class="deviceExtender variableExtenderExtended"></div>
        </div>

<div class="variablesContainer" style="height: auto;">
            <div class="variableContainer" style="height: 50px; background: transparent url(img/icons/png/Intensity.png) no-repeat scroll 10px 8px;">
         <div class="deviceTitle">
           <div class="deviceTitleContent"style="top: 5px;">Helligkeit</div>
        </div>
            <div id="horizontalSlider" class="deviceState" style="left: 250px; width: 75%;" dojoType="dijit.form.HorizontalSlider" 
    value="30" minimum="0" maximum="100" discreteValues="21"
    intermediateChanges="true"
    onChange="doRequest"
    showButtons="true">
  <ol dojoType="dijit.form.HorizontalRuleLabels" container="topDecoration" style="height:1.5em; font-size:75%; color:white;">
    
    <li>0%</li>
    <li>20%</li>
    <li>40%</li>
    <li>60%</li>
    <li>80%</li>
    <li>100%</li>
    
  </ol></div>
  
   </div>
 </div>
</div>

</head><body>  

Viel Spass damit.

Hallo Rainer,

nicht das ich auch Firefox nützen würde, aber die Seite funktioniert gleich NULL im Internet Explorer. :rolleyes:

Trotzdem vielen Dank, an dem schalten ohne refresh habe ich auch schon gebastelt, aber Du warst wieder schneller.

Wie immer „Great work“

Hallo Werner,

Habs mal oben angepasst.

Gib mir mal einen Tip was Du angepasst hast.

Ich habe schon ein paar Modifikation bezgl. Schaltskript vorgenommen und will nicht einfach rüberkopieren.

Ach ja, wer den Slider für einen Dimmer ala FS20 nutzen will

<div id="horizontalSlider" class="deviceState" style="left: 250px; width: 75%;" dojoType="dijit.form.HorizontalSlider" 
    value="30" minimum="0" maximum="15" discreteValues="21"
    intermediateChanges="true"
    onChange="doRequest"
    showButtons="true">

maximum = 15 da der Dimmer von FS20 nur 16 Stufen hat (0-15) und im entsprechenden toggleIPS.php (oder wie die Datei heißt in dem der Slider umgesetzt wird) ein lockeres

FS20_SetIntensity(37503,(int)$_GET['slider'], 2); // ID anpassen

@Rainer: kannst Du das Skript noch Multi-Sliderfähig machen. Ich denke Du arbeitest bereits daran da es ja für dein Chromo ist :smiley:

Hallo Werner,

dem IE hat das Wörtchen switch nicht gefallen. Habe es durch id ersetzt.

4x ändern !

Slider in mehrfach Ausführung kommt, ebenso das der letzte Wert übernommen wird. Ist ja blöd wenn der 70 ist und der Slider steht dann irgendwo nur nicht da wo er hingehört. :slight_smile:

Der IE wieder :rolleyes:

Slider in mehrfach Ausführung kommt, ebenso das der letzte Wert übernommen wird. Ist ja blöd wenn der 70 ist und der Slider steht dann irgendwo nur nicht da wo er hingehört. :slight_smile:

Freu mich schon drauf. Mal sehen, vielleicht kann ich meine WebCam mit 2 Slidern steuern. 1x Horizontal, 1x Vertikal.

Hallo Werner,

so sieht es aus. Ich denke ich pack die Variablenwerte noch mit rein.

Hallo Rainer,

langsam bin ich es leid Dich immer wieder zu loben :smiley:

Geniale Arbeit. Bin auf den Quellcode gespannt.

Ich habe es hier mal abgeändert.