Änderungen im Variablenmanager dauerhaft speichern

Hallo,
ich bin ja leider noch ganz frisch auf dem Gebiet hier und habe leider ein Verständnisproblem.
Ich habe von einigen Modulen hier z.B. bei einer Integer Variable ein neus Profil erstellt und zugewiesen, da ich die Variablen in Mediola visualisiere ändere ich z.B eine „1“ in „on“ oder ein „aus“ in ein „off“.
Wenn ich das Profil dann aktiv setze funktioniert das auch sofort wie gewünscht, aber scheinbar wird meine Änderung irgendwann (Neustart Symcon?) wieder zurückgesetzt auf das bisherige Profil.

An welcher Stelle kann ich das ändern? Welche Instanz veranlasst die Änderung?

Was willst Du denn genau ändern? Wenn Du ein Variablenprofil von einem Modul ändern willst wird dieses vom Modul bei einem Neustart von IPS während des Create Prozesses überschrieben.
Kannst Du nochmal genau beschreiben was Du schalten willst dann kann ich Dir vielleicht helfen das richtig in Mediola zu visualisieren.

Das kommt stark auf den Autor des Moduls an bzw. wie dieser die Variablen erstellt und verwaltet.

Wenn er die aktuellen Befehle nutzt, welche das SDK für die PHP-Module zur Verfügung stellt, so wird das Profil jedes mal zurückgesetzt und der Variable zugeordnet. (= wenn IPS neu startet, das Modul ein Update bekommt, oder du die Einstellungen einer Instanz mit ‚Übernehmen‘ bestätigst.)

Wenn es sich eine eigene Variablenverwaltung gebaut hat, kann es auch sein, dass das Profil nicht überschrieben bzw die Zuordnung der Variable nicht verändert wird.

Somit solltest du die Frage in dem Thread des Moduls noch mal stellen, vielleicht kann der Autor dir helfen :slight_smile:
Michael

In IP Symcon werden Werte in Variablen ablegt zum Beispiel als true, false bei Boolean oder als Zahl bei Integer. Angezeigt wird im Webfront das was im Variablenprofil zugeordnet worden ist. Bei NEO hast Du die Möglichkeit entweder den Wert so anzuzeigen wie er in der Variable hinterlegt ist also z.B. als true oder aber wenn Du formated in NEO auswählst als das was im Variablenprofil zugeordnet ist. Wenn Du in NEO also formated wählst bekommst Du dann an oder aus und nicht true oder false angezeigt. Was willst Du denn genau angezeigt bekommen weil Du das Variablenprofil anpassen willst?

Hallo Fonzo,
ok, das erklärt das Verhalten.
Konkret geht es z.B. um die Variable „Power-State“ in Bayaros feinem E2 Modul. Der Variable wurde das Profil E2BY.PowerState zugewiesen, welches die Zahlenwerte 0, 1 und 2 zu ausgeschaltet, eingeschaltet und Standby ändert.
Ich habe mir ein eigenes Profil DM500.Powerstate angelegt und ändere die Variablen dann in off, on und off.

Der Hintergrund liegt in meiner Statebuttonstruktur in Mediola. Einen State-Button nutze ich halt an mehreren Stellen weil das sind im angehangenen Bild beispielsweise nur die blauen „Leuchtstreifen“.
Mir ist klar, das ich einen weiteren Satz Buttons passen zu den Variablen anlegen kann, aber ich dachte es wäre so eleganter.

Also ich kann da jetzt nicht ins Variablenprofil reinschauen aber es ist in der Regel nicht notwendig dies zu ändern. Absehen davon wird das Profil sowieso wahrscheinlich vom Modul wieder überschreiben wenn dies den gleichen Profilnamen hat. Was genau passiert wenn man eine Variable ändert hängt von dem Aufbau des Moduls ab. In der Regel sollte aber nicht die Variable selber geändert werden sondern die Funktion für die Instanz ausgeführt werden die dies tut. In dem von dir genannten Bespiel wäre es also nicht richtig die Werte 1,2, 3 zu setzten sondern eine Funktion wird hier beschrieben aufzurufen.
BayaroX/BY_Enigma2BY · GitHub

Für Set State wäre dies
Enigma2BY_SetPowerState(integer $InstanzID, integer $PowerState);

Zum Darstellen in NEO ist dann formated zu wählen dann sollte der Werrt auch so wie im vorgegebenen Variablenprofil hinterlegt angezeigt werden.

Zum Darstellen in NEO ist dann formated zu wählen dann sollte der Wert auch so wie im vorgegebenen Variablenprofil hinterlegt angezeigt werden.

Ja, das macht es auch. Da wird wie im Profil-Manager hinterlegt statt eine 0 der Wert „ausgeschaltet“ angezeigt oder statt einer 1 „eingeschaltet“. Damot NEO aber bei einem Statebutton darauf reagiert, müsste ich dazu einen neuen Satz Buttons mit state_eingeschaltet.png - state_ausgeschaltet.png anlegen und die sehen dann optisch exakt wie die bereits vorhanden state_on.png und state_off.png aus :wink:
Das wollte ich mir halt ersparen. Dieser blaue Strich wird auch bei dem Mutebutton unten links vom Receiver benutzt und dort wird die Variable an und aus übergeben :smiley: Noch einen Satz weiterer Buttons :smiley:

Deshalb dachte als über die Variablenprofile gestolpert bin, dachte ich mir halt: Sehr schön hier einen neues Profil hinterlegen und die formatierte Variable zeigt mir meinen benötigten Wert an. Tut er auch, bis wie Nall Chan schrieb man z.B. IPS neu startet.

Ich denke es würde ja auch funktionieren wenn ich mir eine eigene Variable anlege, aber dann weiß ich kleine Leuchte ja noch nicht wie ich die befüllt bekomme :wink:
Aber ich arbeite daran.

Das ist zur Zeit aber eher ein Problem von NEO und nicht von IP-Symcon, so eine richtige Lösung habe ich dafür auch noch nicht aber ich kann verstehen das Du nicht für jeden Status Button eine eigene Grafik anlegen willst. Hier müste aber eher ein Feature Request bei NEO gestellt werden. Auch das Ausführen von Funktionen geht momentan nicht direkt aus NEO da ist noch dringend Nachbesserungsbebarf. Hier gilt momentan nur der Umweg über eine Webseite im User Verzeichnis in der man die Funktion aufruft. Und dann von NEO die Webseite als HTML Befehl aufruft.

Zur Zeit würde ich daher empfehlen den nicht erbaulichen Weg zu gehen die Bilder seperat anzulegen auch wenn diese identisch sind und sich nur im Namen unterscheiden. Aber eine Remoteoberfläche baut man ja auch nicht ständig neu und da ist das dann auch egal wenn es halt zur Zeit nur so geht.

Alternativ könntest Du das Variablenprofil in IP Symcon duplizieren und unter einem neuen Namen abspeichern und dann der Variable das neue Profil zuweisen. Bei jedem Update des Moduls wird aber wohl wieder das Original Profil zugewiesen so das dies dann wieder von Hand auf das eigene Profil geändert werden muss, daher würde ich den Weg über NEO und das zuweisen von eigenen Statusbuttons wählen.

YEAH!!!
Ich bin ganz stolz auf meiner einen lustigen welchen :smiley:

Ich habe mir nun ein Script gebastelt was bei Aktualisierung des Power-State die Variable ausliest, und in meine Neo.PowerState Variable schreibt, diese wiederum habe ich mit meinem Variablenprofil verknüpft und bekomme so in Neo den Status wie ich den brauche. Somit hat das auch bestand nach einem Neustart oder Update des Modules.
:smiley:
Es ist schön, wenn sich langsam der Nebel lichtet :wink: