Seit dem heutigen Update (LiveUpdate: 07.03.2016, 839ce1914406)
Warning: bad lexical cast: source type value could not be interpreted as target
Betroffene Zeile 200
SetValue($locked_id, (string)$arr[$n]['locked']);
Ist das hier Schuld ??
-Fix: Kompatibilität zur 3.4 verbessert: String nach Boolean Konvertierung unter PHP (z.b. SetValue)
PS: Könntet ihr bitte in die Doku auch die Installation der Vorversion aufnehmen. Finde gerade nicht wie ich jetzt „zurückstalliere“
Gruß
Bruno
paresy
8. März 2016 um 23:23
2
Das könnte der Grund sein. Magst du mir verraten was in der Variable denn steht?
paresy
Da steht „Gesperrt“ und „Nicht gesperrt“ (ohne Anf.zeichen) im Variablenprofil
Gruß
Bruno
paresy
9. März 2016 um 10:51
4
Was ist denn $locked_id vom Variablentyp?
Und was gibt „echo (string)$arr[$n][‚locked‘]“ aus?
paresy
Hier mal ein Ausschnitt aus dem Programm (Plugwise Mibu). In diesem Prog ist noch eine zweite Bool, die geht auch nicht. (Online, Offline)
// Locked
$locked_id = @IPS_GetVariableIDByName('Schaltsperre', $pw_instance_ID);
if (!IPS_VariableExists($locked_id))
{
$locked_id = IPS_CreateVariable(0);
IPS_SetName($locked_id, 'Schaltsperre');
IPS_SetParent($locked_id, $pw_instance_ID);
IPS_SetVariableCustomProfile($locked_id, 'Schaltsperre');
IPS_SetInfo($locked_id, "PW-Locked");
}
SetValue($locked_id, (string)$arr[$n]['locked']);
Var ist Boolean
Der echo-Befehl bringt true (nach auskommentieren der eigentlichen Set-Value Geschichte, sonst Abbruch mit Fehler).
Der Fehler trat erst mit diesem Update auf.
Bruno
Sind noch Infos erforderlich ?
Gruß
Bruno
paresy
10. März 2016 um 22:50
7
Du hattest Recht, dass die Änderung es für deinen Fall verschlimmbessert haben. Ich werde das Problem zum nächsten Update korrigieren. Dann sollte sich die SetValue Funktion vollständig korrekt wie in der 3.4 verhalten. Danke für die Infos!
paresy
Danke schon mal für die Analyse und die Info. Habe die beiden Zeilen mal auskommentiert, der Rest des Progs läuft. Daher keine Eile
Gute Nacht
Bruno