Ds2408 abfragen

Hallo,
ich habe meinen DS2408 am computer angeschlossen und das geht auch alles so weit doch wenn ich jetzt die Variable mit php abfragen möchte tut sich nichts obwohl im Variablen-Tab sich der Wert ändert was ist denn an meinem winzigen Programm falsch?

$test = GetValueBoolean("taster");
if($test == True){
    echo "Taster ist geschlossen" ;
} else {
    echo "Taster ist offen" ;
}

Hallo bartjaysimpson,

wenn du im Debug-Tab des Fensters Kernel keine Fehlermeldung bekommst, läuft das Skript wahrscheinlich ordnungsgemäß.

Ich vermute du hast nicht berücksichtigt, dass der echo-Befehl nur dann funktioniert, wenn du das Skript von Hand startest, also über den Button Execute. Mach lieber eine TTS-Ausgabe (Text To Speech), die funktioniert immer.

Hast du auch nicht vergessen die Variable taster im Event-Fenster als Trigger OnChange einzutragen?

Gruß
HJH

Hallo bartjaysimpson,

hast Du am Ende von Deinem Script das ?>. Ohne diesem Endzeichen geht nix.

$test = GetValueBoolean("taster"); 
if($test == True){ 
    echo "Taster ist geschlossen" ; 
} else { 
    echo "Taster ist offen" ; 
} 
?>

woh die Antworten kamen aber schnell
Hier hab ich mal das komplette script

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : test123.ips.php
Trigger  : OnChange
Interval : 
*/

$test = GetValueBoolean("taster");
if($test == True){
    TTS_Speak(34469, "Taster ist geschlossen");
} else {
    TTS_Speak(34469, "Taster ist offen");
}


?>

Danke für eure Hilfe hab es jetzt hinbekommen.

Habe jetzt aber ein neues problem möchte gerne auf einem LCD-Dispay ein Menü durchlaufen lassen was ich mit einem Taster weiterklicke. doch das Menü bleibt immer am ersten Eintrag stehen. Ich habe es schon mit den verschiedenen Triggern versucht doch es will einfach nicht klappen.

Hier mal mein Skript

$InstanceID = 52622;
$ControllerType = "Standard";
$Zeilen = 2;
$Spalten = 20;


$includeFile =  IPS_GetScriptFile("LCD_Functions");
require_once $includeFile;
$lcd = new OneWireLCD($InstanceID, $ControllerType, $Zeilen, $Spalten);
$lcd->SendLCDInit();

$taster = GetValueBoolean("taster");
$taster1 = GetValueBoolean("taster1");
$test = GetValueBoolean("test");
if($taster == false) {
SetValueBoolean("test" , true);
$text = "Menü 1";
 $lcd->SendLCDScreen($text);
}


if(($test == true) && ($taster == true))
{
$text = "Menü 2";
 $lcd->SendLCDScreen($text);
}

Hallo bartjaysimpson,

Dein Script sollte eigentlich solange der Taster gedrückt ist den Text „Menu 2“ anzeigen. Sobald die Taste losgelassen wird und die Variable „taste“ aktuallisiert wird erscheint wieder „Menu 1“. Wenn Du die Taste allerdings nur solange drückst, dass Du innerhalb des Abfragezyklus der Instanz liegst, dann passiert nichts.

Leider komme ich erst heute Abend wieder an mein IPS ,dann kann ich mir das mal genauer anschauen. Bis dahin noch ein Paar Fragen:

hast Du den Event für das Script auf On_Change „taster“ gesetzt?
Ändern sich die Bool-Variablen entsprechend („test“ und „taster“)?
nutzt Du als Taster einen der zwei freien IO-Ports des Nano-Terminals?
wenn ja , in welchen Zyklus wird der 2408 abgefragt?

Gruß
Sven

Vielendank für deine Hilfe, habe es mittlerweile alleine hinbekommen konnte aber erst heute wieder an meinen Internetpc ran.

Woran hat’s gelegen oder wie hast’e es hinbekommen? Hilft ev. auch Anderen.