übergebene Attributwerte verändern

Begonnen von Byte09, 30 Januar 2018, 20:11:57

Vorheriges Thema - Nächstes Thema

Byte09

hie zusammen ,

laut 'DevelopmentModuleIntro' ist es ja möglich , übergebene Attr werte zu verändern:

ZitatZusätzlich ist es möglich auch übergebene Attributwerte zu verändern bzw. zu korrigieren, indem man im Parameterarray @_ den ursprünglichen Wert anpasst. Dies erfolgt im Beispiel über die Modifikation des Wertes mit Index 3 (entspricht dem 4. Element) im Parameterarray, also $_[3].

Da das Attribut zum Zeitpunkt des Aufrufs der Attr-Funktion noch nicht gespeichert ist, wird der neue Wert zu diesem Zeitpunkt noch nicht via AttrVal() zurückgegeben. Erst, wenn die Attr-Funktion mit undef beendet ist, wird der neue Wert in FHEM gespeichert und steht dann via AttrVal() zur Verfügung.

Nutzte ich bisher auch in einem Modul . Nach meinem Letzten Fhemupdate scheint das aber nicht mehr zu Funktionieren - ich bin der Meinung nichts am Modul geändert zu haben. Gab es ggf. eine Änderung, die mir entgangen ist ?

gruss Byte09

Markus Bloch

Hallo Byte09,

ja, das Problem ist bereits erkannt: https://forum.fhem.de/index.php/topic,83541.msg757953.html#msg757953 ff.

Wird sich Rudi anschauen.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Byte09

Zitat von: Markus Bloch am 30 Januar 2018, 20:14:45
Hallo Byte09,

ja, das Problem ist bereits erkannt: https://forum.fhem.de/index.php/topic,83541.msg757953.html#msg757953 ff.

Wird sich Rudi anschauen.

Viele Grüße

Markus
Ok , sry ... hatte ich nicht gelesen.

Danke und Gruss Byte09

Gesendet von meinem SM-G900F mit Tapatalk


Markus Bloch

Hallo Byte09,

das Problem wurde soeben im SVN gefixt.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Byte09

Zitat von: Markus Bloch am 30 Januar 2018, 22:03:55
Hallo Byte09,

das Problem wurde soeben im SVN gefixt.

Gruß
Markus

gerade probiert, geht wieder. Super !

Danke und Guss Byte09

Byte09

hi,

ich muss doch nochmal nachhaken.
bisher war es auch möglich  $_[2] sprich den Namen des Attributs zu 'korrigieren'. Dieses scheint nun nicht mehr möglich zu sein . Sehe ich das richtig , und falls ja ... ist das beabsichtigt ?

gruss Byte09

Byte09

Nachtrag .. kein edit über tapatalk möglich.

Konkret geht es jetzt nicht um das setzen von attributen , sondern um das ändern des namens bei delete Attribut.  Dort War es bisher möglich den Namen zu ändern , scheinbar jetzt nicht mehr

Gruss byte09

Gesendet von meinem SM-G900F mit Tapatalk


rudolfkoenig

ZitatDort War es bisher möglich den Namen zu ändern , scheinbar jetzt nicht mehr
Erstens faellt mir dafuer keine sinnvolle Anwendung ein, zweitens meine ich, dass sich diesbezueglich nichts geaendert hat.

Markus Bloch

Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Byte09

Zitat von: rudolfkoenig am 03 Februar 2018, 21:55:25
Erstens faellt mir dafuer keine sinnvolle Anwendung ein, zweitens meine ich, dass sich diesbezueglich nichts geaendert hat.
Ob es auf diese art sinnvoll ist oder nicht weiss ich nicht , aber ich habe nicht wirklich eine alternative gefunden .
Da es keine Deviceübergreifenden attribute ( modulweit ) gibt , habe ich ein normales Attribut dafür .. nennt es wegen mir 'missbraucht', da ich dieses übergreifende Attribut brauchte .
Wenn dieses Attribut nun gelöscht wurde in einem Device musste ich dem Namen beim Löschen in den anderen devices einen Zusatz mitgeben , wenn aus diesem Device das Attribut in allen anderen devices gelöscht wurde,  um nicht eine Endlosschleife auszulösen . Dieser Zusatz wurde dann von jedem Device erkannt , entfernt und das eigentliche Attribut gelöscht . Den Zusatz brauchte ich , damit nicht jedes Device erneut das löschen für alle Attribute in allen anderen devices auslöst.

.... klingt wohl etwas konfus , kann es aber nicht besser beschreiben.

Auf jedenfalls geht es nicht mehr. Naja,  egal , ich überlege mir was anderes.

Wünschenswert wären da Modulweite Attribute , ist aber wohl ein Einzelfall.

Gruss Byte09

Gesendet von meinem SM-G900F mit Tapatalk


Phill

Versteh ich wirklich nicht, aber du meinst nicht $hash->{AttrList}? Die sind Global verfügbar. Kannst du das vielleicht etwas genauer erklären was das ziel dieser Attribute ist?
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

Byte09

Zitat von: Phill am 03 Februar 2018, 23:36:39
Versteh ich wirklich nicht, aber du meinst nicht $hash->{AttrList}? Die sind Global verfügbar. Kannst du das vielleicht etwas genauer erklären was das ziel dieser Attribute ist?

letztendlich will ich nur das  bei änderung eine best. ATTRIBUTES eines Devices alle entsprechenden Attribute aller devices desselben moduls nachgezogen werden , analog löschen dieses Attributes.

Hatte mit meinem Code funktioniert, nach Update nicht mehr .

Ich werde das jetzt aber anders lösen ?

Gruss Byte09

Phill

#12
Ah verstehe, eine modulspezifische Eigenschaft, sozusagen. Aber warum der Umweg über das Umbenennen der Attribute?

Geht das nicht?
attr TYPE=[module] [attribute] [wert]
Oder deleteattr TYPE=[module] [<attrname>]
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

Byte09

Zitat von: Phill am 04 Februar 2018, 01:12:50
Ah verstehe, eine modulspezifische Eigenschaft, sozusagen. Aber warum der Umweg über das Umbenennen der Attribute?

Geht das nicht?
attr TYPE=[module] [attribute] [wert]
Oder deleteattr TYPE=[module] [<attrname>]


oh mann, es kann ja so einfach sein. War mir nicht bewusst, dass ich so Modulweit ändern kann.

danke und gruss Byte09