[kein bug] Problem mit Variablen (Berchnungen und Verwendungen)

Hallo,
ich habe ein „kleines“ Problem mit bestimmten Variablen-Typen.

Das Problem:
Ich muß mit der gleichen Variable rechnen (im Beispiel $neu_IST), die ich 1.) mit einem SetValue wegschreibe (um sie auch in anderen Scripten zur Verfügung zu haben)
und 2. mit der ich den IPS_SetScriptTimer setzten muß!

Ich kann entweder mit einem Integer den SetScriptTimer bedienen, oder mit einem Float rechnen und dann mit SetValueFloat wegschreiben.
Ich kann aber mit einem Float den ScriptTimer nicht bedienen, oder aber mit einem Integer rechnen und dann mit SetValue wegschreiben! Eine Mühle???

Bitte nicht nach dem WARUM fragen :wink: Ich steuere meine Jalousien mit einem memPIO an… Wenn die Applikation wärend der Jalousiefahrten nicht blockiert sein soll, da geht das ganz gut mit Start -und Stopp Scripts. Das Stoppscript möchte ich aus Sicherheitsgründen direkt beim starten antriggern und das wollte ich mit dem Scripttimer lösen. Die Berechnungen in dem Beispiel sind übrigens auch nur ein Beipiel. Wenn das alles mal läuft, dann werde ich die fertige Logik hier posten - bis dahin muss ich aber noch ein paar Dinge lösen :smiley:

<?
/*


IP-SYMCON Event Scripting


File : test.ips.php
Trigger :
Interval :
*/
//$start = GetValueInteger(„jalousie1_START“);
//$zeit_up = GetValueInteger(„jalousie1_TIMEUP“);
//$fahrzeit = $stoppzeit - $start ;

$start = GetValueInteger(„jalousie1_START“);
$ende = GetValueInteger(„jalousie1_STOPP“) ;

$fahrzeit = $start - $ende; //10 sek ist die jalousie bewegt worden
$zeit_up = 20; // 20 sek dauert die fahrt von 100%(zu) auf 0% (auf)
$jalousie_IST = 50; // letzter bekannter stand: 50% (halb auf)

$fahrwert = 100*($fahrzeit / $zeit_up) ; //Änderung der Position in % nach oben
$neu_IST = $jalousie_IST - $fahrwert ;

//SetValueInteger(„jalousie1_IST“,$neu_IST); Warning: Wrong parameter type…
SetValueFloat(„test“,$neu_IST); // geht
IPS_SetScriptTimer(„jalousie1_stopp“,$neu_IST); //Warning: Wrong parameter type for ips_setscripttimer() in line 26

Bitte um Unterstützung
Danke Marcus

Hi
die zwei Fehlermeldungen kommen weil Wert von $neu_IST kein Integer ist am besten du schreibst es so:


SetValueInteger("jalousie1_IST",(Integer)$neu_IST);
IPS_SetScriptTimer("jalousie1_stopp",(Integer)$neu_IST); 


Funktioniert! Vielen Dank… PHP Anfängerfehler. Ich habe mich schon gefragt, ab man die „neuen“ Variablen im Script nicht irgendwo deklarieren muss :rolleyes: (Komme aus der VB / VBA Ecke - Aber so etwas wie ein „Option Explicit“ gibts bei PHP wohl eher nicht?)

Grüße
Marcus

Nu gehts weiter :slight_smile: