(iOS) Format error: Invalid profile association

Hallo!

Mit der neuen App habe ich folgenden Fehler:

Im Webfront zeigt er das nicht an.
Das zugehörige Profil sieht so aus:

Funktion ist zwar gegeben aber sieht nicht toll aus.
Woran könnte das liegen?

Welcher Wert steht denn in Quelle? Laut Profil sind 0 1 2 3 erlaubt.

Was zeigt das webfront an?

paresy

Hier mal noch das dazugehörige Skript:

<?

if($IPS_SENDER == "WebFront")
{
   SetValue($IPS_VARIABLE, $IPS_VALUE);
    switch($IPS_VALUE)
    {
        case 0:
        IPS_SetVariableProfileAssociation("AVR_Quelle", 0, "**Radio**", "", 0x33E500);
        break;
        case 1:
        IPS_SetVariableProfileAssociation("AVR_Quelle", 1, "****Sat****", "", 0x33E500);
        break;
        case 2:
        IPS_SetVariableProfileAssociation("AVR_Quelle", 2, "AppleTV", "", 0x33E500);
        break;
        case 3:
        IPS_SetVariableProfileAssociation("AVR_Quelle", 3, "CD-DVD", "", 0x33E500);
        break;

	 }
}

?>

Im Webfront ist alles fein:

Es sieht so aus, als ob der tatsächliche Wert nicht 0 1 2 oder 3 ist: im Webfront ist kein Eintrag hervorgehoben. Was zeigt die Konsole an?

Hö? Verstehe ich nicht.
Momentan ist ja auch nichts gewählt. Das passiert ja erst wenn ich eine Quelle auswähle.

Ahh, jetzt hast du mich auf eine Idee gebracht, der Fehler ist da wenn die Auswahl „leer“ ist… komisch, früher hat er da einfach nichts angezeigt.
Aber ich kann doch im Profil keine Definition für einen leeren Wert angeben!?

Der Wert ist vermutlich nicht „leer“, sondern -1 oder ähnlich. Und dafür gibt es im Profil kein Element. Daher „invalid Profile“.
Dazu kann vielleicht Paresy etwas sagen, ob es so gewollt ist/bleiben soll. Es ist zumindest uneinheitlich zum Webfront.

Hab mal das getestet.
Wenn man eine ProfileAssociation zB auf drei Werte eingrenzt (1,2,3).
Dann wird bei ueberschreiten der Variablen von 3 , der immer hoechste Wert (3) angezeigt.
Bei untenschreiten von 1 kommt auch im normalen Webfront dieser Fehler.
Nebenbei gesagt ist mir der Sinn des Script nicht ganz klar ??
Warum sollte man ueber das Webfront immer wieder die „ProfileAssociation“
auf den selben Wert setzen?

Also wenn nichts gewählt ist, ist der Wert -1.
Wär schon cool, wenn das wieder wie früher geht in der App!

Hallo,

dieses Problem habe ich auch im Sonos PHP Modul.

Ich definiere die Radiosender oder Playlisten in einem Profil.
Da ich ja die Limitation von 32 habe (auch eher unschön) nummeriere ich von 1-32 durch.
Per regelmäßigem Update lese ich aus, welcher Radiosender gespielt wird und setze die Variable dann auf den entsprechenden Wert.
Dann ist auch alles so wie ich es will.
Wenn der Sender allerdings nicht gefunden wird, setze ich den Wert auf „0“. Für mich der initiale Wert eines integer.
In der Konsole (kein Wert wird angezeigt) und im WebFront (kein Knopf markiert) hat das auch den gewünschten Effekt.
In der Mobile App bekomme ich allerdings genau diesen Fehler angezeigt:

Ich habe es aber auch schon mit „-1“ versucht, mit dem gleichen Ergebnis.

Mache ich da etwas mit dem Profil falsch?
Ich hatte schon mit dem Gedanken gespielt eine Association „0“ mit initialen Namen anzulegen. Das fände ich aber unschön, da dann ja auch ein Knopf im Webfront auftauchen würde…

Ich bin für jeden Rat dankbar, der mir einen Hinweis gibt wie man es besser machen sollte/könnte.

Gruß,
Thorsten

Moin!

Ich behelfe mir dabei immer mit der 99, welche als Namen nur ein Leerzeichen oder unsichtbares Zeichen hat. Dann taucht nur ganz rechts in der Auswahl im WebFront ein kleiner leerer Balken/Strich auf, wenn nichts gewählt ist (also die 99 aktiv ist). Nicht die perfekte Lösung, aber irgendwie muss man sich ja behelfen :slight_smile:

Grüße,
Chris

Hallo,

stimmt, das hört sich nach einem Workaround für einen Bug an.

Gruß,
Thorsten

Ich lebe seit längerem mit dem gleichen Problem. Früher hat die iOS App auch einfach nichts angezeigt, wenn es zu dem Profil keine Assoziation gab (wie erwünscht). Mittlerweile erhalte ich auch den unschönen Text.
Dabei ist es auch bei mir gewollt, dass der aktuelle Wert eventuell keinem Profil entspricht, ergo nichts ausgewählt bzw. aktiv ist. Im Webfront funktioniert das auch gut, nur unter iOS nicht. Vielleicht kann man die Meldung von IPS irgendwie unterdrücken?
Die Variante mit der „leeren“ Assoziation hatte ich auch schon einmal ausprobiert. Allerdings fand ich dies genauso wenig ansprechend wie die Fehlermeldung. :frowning:

Ich finde dieses abweichende Verhalten auch sehr unschön und immer wieder als ein Ärgernis.

Ich habe daher mal eine Fehlermeldung dazu erfasst.

Ich hoffe, dass sie Beachtung findet.

Viele Grüße

Burkhard

Ich möchte das Thema noch einmal hochholen.

Es hieß einmal, dass das ungleiche Verhalten gleichgezogen werden sollte. Leider finde ich die Aussage nicht mehr. Wahrscheinlich stand sie im Bugtracker.

Ist das Thema noch offen?

Gruß

Burkhard

Das Thema ist noch offen. Ich habe das Ticket auch mal korrekt hier im Forum verknüpft.

paresy

Leider ist das leidige Thema noch immer offen. Kommt da noch etwas zur 5.0?

Gruß

Burkhard

Inzwischen ist das Ticket mit ‚behoben‘ geschlossen, aber das Verhalten ist unverändert und es ist sogar in die WebKonsole eingezogen: auch dort wird im Objektbaum ein Wert, der nicht der Auflistung entspricht als ‚Invalid‘ dargestellt.

Wie soll es denn nun sein?

Gruß

Burkhard

Wenn eine Variable mit Assoziationen einen Wert ohne Assoziation annimmt, dann ist etwas schiefgegangen, daher wird in der Konsole korrekterweise ein Fehler angezeigt. Dieser sollte allerdings nicht über die Visualisierung weitergegeben werden. Sprich, in Visualisierungen und somit auch den Apps sollte ein leeres Feld oder dergleichen angezeigt werden, damit Gäste und Co nicht durch Fehlermeldungen gestört werden gegen die sie sowieso nichts tun können. In der Konsole wird aber auf den Fehler hingewiesen, damit dieser auch ausgebessert werden kann.

Das ist so aber noch nicht überall umgesetzt, wir sind aber dran.

Die Annahme ist meiner Meinung nach nicht richtig. Das bedeutet eigentlich nur, dass der Zustand nicht im Webfront angezeigt werden soll und dem Anwender nicht als Auswahl zur Verfügung steht

Zwei Beispiele aus dem Sonos Modul:

  • Die Statusvariable ‚Radio‘ hat im Profil die auswählbaren Sender (1 … n). Und zeigt damit an, welcher Sender gerade läuft und welche auswählbar sind. Ist die Box ausgeschaltet, dann bekommt Radio den Wert ‚0‘. Man sieht, dass kein Sender aktiv ist, kann aber zwischen den vorhandenen wählen.

  • Die Statusvariable ‚Status‘ hat im Profil die Einträge 0 … 4 zum Steuern (prev, play, pause …). Wird das Gerät aber gerade umgestellt, dann bekommt der Status kurzzeitig den Wert ‚transition‘, der aber nicht angezeigt werden soll. Denn man kann ihn nicht explizit setzen.

Zwei Beispiele, warum ich meine, dass die nicht im Profil enthaltenen Werte keine Fehler sind. Sie sind gewollt und sollten im Webfront und in der App nicht angezeigt werden. In der Konsole sollte der Originalwert angezeigt werden.

Da lassen sich noch zahlreiche andere Beispiele finden. Aber ich hoffe, es ist klar geworden, was ich meine.

Gruß

Burkhard