FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: CoolTux am 02 Oktober 2015, 08:29:38

Titel: AttrList abhängig vom Internalwert
Beitrag von: CoolTux am 02 Oktober 2015, 08:29:38
Hallo,

Ich möchte gerne einen AttrList Befehl anbieten, welcher aber nur Sichtbar ist wenn die Instanz ein entsprechendes Internal besitzt


$hash->{AttrList} .= "expertMode:1 " if( $modules{AMAD}{defptrs}{BRIDGE} );


Sowas in der Art.
Nun musste ich feststellen das das in der Initialize untergebracht zwei Fehler hat. Der Kleinere ist das man bei der erst Definition das Modul noch mal laden muß da ja erst die Initialize Sub aufgerufen wird und dann erst die define Sub. Also ist die Instanz mit dem internal eh noch nicht vorhanden.
Das größere ist das es eh nicht geht  ;D  Das Attribut wird mir auch in Instanzen angezeigt welche nicht das Internal besitzen.

Jemand ne Idee?



Grüße
Leon
Titel: Antw:AttrList abhängig vom Internalwert
Beitrag von: rudolfkoenig am 02 Oktober 2015, 09:09:01
Instanzabhaengige Attributnamen sind nur ueber den Umweg von Instanz-userattr moeglich.
Alternative: set Befehl zum Aendern (ist Instanz-Spezifisch), und Reading zum Speichern.
Titel: Antw:AttrList abhängig vom Internalwert
Beitrag von: CoolTux am 02 Oktober 2015, 10:08:17
Hallo Rudi,

Sowas hatte ich mir schon gedacgt. Hattest es vor ner Weile schon mal in einem anderen Thread erwähnt. Das mit dem Set und dem Reading ist mir dann auch auf Klo eingefallen (lach)

Ich weiß das hörst Du bestimmt nicht gerne, aber wäre nur ne theoretische Frage. Kann ich der Instanz nicht ein Attribut unterjubeln. Set befehl anbieten und dann hart als Attribut eintragen lassen


$attr{$name}{expertMode} = "1";


Oder geht das nur wenn die Modul AttrList das Attribut auch anbietet?
Titel: Antw:AttrList abhängig vom Internalwert
Beitrag von: rudolfkoenig am 02 Oktober 2015, 10:15:09
Unterjubeln kann man immer.
Welche Auswirkungen das im Frontend hat, weiss ich nicht genau, vmtl. wird es zu kleineren Problemen fuehren, da auf der Detail-Seite im <select> expertMode nicht vorhanden ist.
Titel: Antw:AttrList abhängig vom Internalwert
Beitrag von: CoolTux am 02 Oktober 2015, 10:16:19
Ok. Vielen Dank für Deine Antworten. Ich werde mein Anliegen nun über ein set mit Reading lösen.


Grüße und ein schönes Wochenende gewünscht
Titel: Antw:AttrList abhängig vom Internalwert
Beitrag von: justme1968 am 02 Oktober 2015, 10:17:43
das gibt beim neu start eine warn meldung falls das 'untergejubelte' attribut mit gespeichert wurde.
Titel: Antw:AttrList abhängig vom Internalwert
Beitrag von: rudolfkoenig am 02 Oktober 2015, 10:20:46
Ist mir auch gerade eingefallen: beim Save wird das Attribut zwar gespeichert, aber beim Start gibt es eine Fehlermeldung, und das Attribut wird nicht wieder gesetzt.
Titel: Antw:AttrList abhängig vom Internalwert
Beitrag von: Markus Bloch am 02 Oktober 2015, 10:42:57
Hallo zusammen,

Vorschlag:

Man gibt in der Modul-Initialize-Funktion ein weiteres Array an "optionalen Attributen" an. Diese kann man dann bei jeder Definition durch setzen eines bestimmten Wertes in $hash für den User in FHEMWEB freischalten.

Beim einlesen der Konfig werden diese Attribute generell von fhem.pl angenommen, da sie als "optionale Attribute" im Modul erlaubt sind.

Viele Grüße

Markus
Titel: Antw:AttrList abhängig vom Internalwert
Beitrag von: CoolTux am 02 Oktober 2015, 11:22:10
Ich finde ehrlich gesagt das lösen über set und Reading besser. Betateilchen hatte das mal ganz gut ausgedrückt das Attribute in User Hände gehören und nicht vom Entwickler beeinflusst werden sollten. Das gilt natürlich Modulweit nicht Instanzweit.