Keyboard Script läuft seit 4.0 nicht mehr

Hallo Gemeinde,

ich hatte mal vor geraumer Zeit ein script gefunden, mit der man einen schönen NUM-Block im Webfront hat.

Leider läuft das seit 4.0 nicht mehr…

Man darf ja nicht mehr salopp „SetValue“ schreiben. Das ist klar. Nur leider weiß ich gerade nicht, welche Typen von Variablen gebraucht werden.

Hier mal das Script :

<?

$value = $_GET['value'];
$id_IPSValue = $_GET['ipsValue'];

SetValue((int)$id_IPSValue, $value);

?>

Und hier die Fehlermeldungen :

05.06.2016 08:43:29*| PHP*| Error: Notice: Undefined index: value
Error in Script C:\Haussteuerung Installationspfad\IP-Symcon\webfront\user\keyboard\keyboard-receive.php on Line 3
134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
44 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
3 in webfront\user\keyboard\keyboard-receive.php (call IPSLogger_PhpErrorHandler)

05.06.2016 08:43:29*| PHP*| Error: Notice: Undefined index: ipsValue
Error in Script C:\Haussteuerung Installationspfad\IP-Symcon\webfront\user\keyboard\keyboard-receive.php on Line 4
134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
44 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
4 in webfront\user\keyboard\keyboard-receive.php (call IPSLogger_PhpErrorHandler)

05.06.2016 08:43:29*| PHP*| Error: Warning: Parameter for VariableID is not inside of the specified bounds (10000…59999)
Error in Script C:\Haussteuerung Installationspfad\IP-Symcon\webfront\user\keyboard\keyboard-receive.php on Line 6
134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
37 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
in IPSLogger_PhpErrorHandler
6 in webfront\user\keyboard\keyboard-receive.php (call SetValue)

Das ganze läuft auf einem Windows 10 64bit PC.

Habt ihr da eine Idee, was ich ändern müßte ?

Hier mal das weiterverarbeitende script :

<?
// Installationsanleitung des Javascript KeyPads
// 1. String-Variable erstellen mit Profil ~HTMLBox für Aufnahme der Tastatur ($id_KeyboardHTMLBox)
// 2. String-Variable erstellen ohne Profil für Aufnahme der Eingabe über die Tastatur ($id_Value)
// 3. Höhe des iFrames eintragen (anpassen an die Breite in der css-Datei)
// 4. Breite des iFrames eintragen (anpassen an die Breite in der css-Datei)
// 5. Ausführen zum befüllen der HTML-Box. Muss auch bei Änderung dieses Skriptes nochmals ausgeführt werden
// Das Aussehen der Tastatur kann komplett in der /webfront/user/keyboard/css/style geändert werden

// Anfang Config

// ID der String-Variable zur Aufnahme der Tastatur (Profil: ~HTML-Box)
$id_KeyboardHTMLBox  = 45024 /*[Entwicklungsbereich Sascha\Diät\Programm\Keyboard\Eingabe Gewicht (Keyboard)]*/;

// ID der String-Variable die den eingegebenen Passcode bekommt.
$id_Value     = 32049 /*[Entwicklungsbereich Sascha\Diät\Programm\Keyboard\Keyboard_werte]*/;

// Maße des iFrames wie es in der HTMLBox angezeigt wird.
$height_iframe       = 300;
$width_iframe        = 180;

// Ende Config

// String-Variable mit HTML-Code befüllen
SetValueString($id_KeyboardHTMLBox,'<center><iframe src="user/keyboard/index.html?ipsValue='.$id_Value.'" frameborder=0 height='.$height_iframe.'px width='.$width_iframe.'px></iframe></center>');


?>

Und hiermit schreibe ich dann die Werte in eine String :

<?

$date = date('d.m.Y');
$time = date('H:i');
date_default_timezone_set("Europe/Berlin");




IPS_Sleep(100);

$wert = GetValueString(32049 /*[Entwicklungsbereich Sascha\Diät\Programm\Keyboard\Keyboard_werte]*/);


SetValueFloat(55061 /*[Entwicklungsbereich Sascha\Diät\Programm\Gewicht Sascha]*/, floatval($wert));




SetValueString(38276 /*[Entwicklungsbereich Sascha\Diät\Programm\Aktualisierung]*/,"Die letzte Eingabe war mit ".$wert." Kg am ".$date." um ".$time." Uhr");

?>

Vielen Dank für eure Hilfe und liebe Grüße
Sascha

echo IPS_GetVariable($id)['VariableType'];

Typ feststellen und entsprechend handeln

Das ist ja super :slight_smile:

Das probier ich mal…dankeschön :slight_smile:

Ich denke Du nutzt mein „Universal KeyPad“ aus Universal KeyPad für Webfront.

Bitte in der "keyboad-receive.php die beiden $_GET nach $_POST ändern


<?
$value = $_POST['value'];
$id_IPSValue = $_POST['ipsValue'];
IPS_LogMessage("Key", "ipsValue ".(int)$id_IPSValue." / value ".(int)$value);
SetValue((int)$id_IPSValue, $value);
?> 

Ich nutze zwar die V4 noch nicht aber damit sollte es wieder laufen.

Hallo Werner,

ja, genau…das nutze ich :slight_smile:

Und vielen Dank, mit der Änderung von dir läuft es jetzt wieder :slight_smile:

Also voll 4.0 tauglich :slight_smile:

Liebe Grüße
Sascha

Freud mich das es wieder klappt.

Und Danke für die Rückmeldung zur V4.0