Bad lexical cast

Seit dem heutigen Update (LiveUpdate: 07.03.2016, 839ce1914406) :banghead:

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“ :wink:

Gruß
Bruno

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

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

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 :wink:

Gute Nacht
Bruno