Hauptmenü

DOIF Zugriff auf Attribute

Begonnen von traxanos, 27 Juli 2015, 20:48:28

Vorheriges Thema - Nächstes Thema

traxanos

Gibt es eine Möglichkeit im DOIF statt auf Internal und Reading auf ein Attribute zuzugreifen? Möchte gerne 3-4 userAttr's als Konfiguration in einer "Bedingung" definieren und auslagern.
Im Einsatz:
FHEM: Latest auf RPi2
HM: vCCU, HMLAN, HMUSB2, HM-CC-RD-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-ES-PMWs1-Pl, HM-LC-Sw1PBU-FM, HM-PB-2-WM55-2, HM-RC-8, HM-BP-6-WM55
CUL: ESA2000, Intertechno

Loredo

Ich habe mir für diesen Fall User-Readings direkt im DOIF Device erzeugt und greife so auf die Values zu.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Damian

Zitat von: traxanos am 27 Juli 2015, 20:48:28
Gibt es eine Möglichkeit im DOIF statt auf Internal und Reading auf ein Attribute zuzugreifen? Möchte gerne 3-4 userAttr's als Konfiguration in einer "Bedingung" definieren und auslagern.

z. B. mit

AttrVal("Devicename","Attributname","")

dient nur der Abfrage ohne Triggerung.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

traxanos

So stelle ich mir das vor?

([Waschmaschine.Status:power] < AttrVal("Waschmaschine.Status", "configPowerDone", 3))

Geht das so?
Im Einsatz:
FHEM: Latest auf RPi2
HM: vCCU, HMLAN, HMUSB2, HM-CC-RD-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-ES-PMWs1-Pl, HM-LC-Sw1PBU-FM, HM-PB-2-WM55-2, HM-RC-8, HM-BP-6-WM55
CUL: ESA2000, Intertechno

traxanos

Zitat von: Loredo am 27 Juli 2015, 20:57:35
Ich habe mir für diesen Fall User-Readings direkt im DOIF Device erzeugt und greife so auf die Values zu.

Ja das war auch meine erste Idee. Aber ich finde das später für andere leichter wenn man das direkt bearbeiten kann (ohne setreading)
Im Einsatz:
FHEM: Latest auf RPi2
HM: vCCU, HMLAN, HMUSB2, HM-CC-RD-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-ES-PMWs1-Pl, HM-LC-Sw1PBU-FM, HM-PB-2-WM55-2, HM-RC-8, HM-BP-6-WM55
CUL: ESA2000, Intertechno

Loredo

Ich meinte das Attribut userReading zu nutzen. Dort die Values einfach als {return "value"} hinterlegen. Funktioniert bei mir
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

traxanos

Die Variante von Damian geht wunderbar. Die Frage ist, kann ich beim Wait vielleicht auch noch auf ein AttrVal eines anderen Objekts zugreifen?
Im Einsatz:
FHEM: Latest auf RPi2
HM: vCCU, HMLAN, HMUSB2, HM-CC-RD-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-ES-PMWs1-Pl, HM-LC-Sw1PBU-FM, HM-PB-2-WM55-2, HM-RC-8, HM-BP-6-WM55
CUL: ESA2000, Intertechno

Damian

Zitat von: traxanos am 27 Juli 2015, 21:16:39
Die Variante von Damian geht wunderbar. Die Frage ist, kann ich beim Wait vielleicht auch noch auf ein AttrVal eines anderen Objekts zugreifen?

ja, in der neuen Version des Moduls http://forum.fhem.de/index.php/topic,39070.0.html

z. B.

attr di_modul wait AttrVal("Devicename","Attributname","")

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

traxanos

ah ist also noch nicht vorm crash im svn gewesen. ok ich teste. danke
Im Einsatz:
FHEM: Latest auf RPi2
HM: vCCU, HMLAN, HMUSB2, HM-CC-RD-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-ES-PMWs1-Pl, HM-LC-Sw1PBU-FM, HM-PB-2-WM55-2, HM-RC-8, HM-BP-6-WM55
CUL: ESA2000, Intertechno

traxanos

Klappt leider nicht so:

wait AttrVal("Waschmaschine.Status", "configWaitOff", 0):0:0:AttrVal("Waschmaschine.Status", "configWaitDone", 0)

Getestet mit:

md5 Downloads/98_DOIF.pm
MD5 (Downloads/98_DOIF.pm) = 4c1dfc1ce52219d1d434a490d9309e42
Im Einsatz:
FHEM: Latest auf RPi2
HM: vCCU, HMLAN, HMUSB2, HM-CC-RD-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-ES-PMWs1-Pl, HM-LC-Sw1PBU-FM, HM-PB-2-WM55-2, HM-RC-8, HM-BP-6-WM55
CUL: ESA2000, Intertechno

Damian

#10
Zitat von: traxanos am 27 Juli 2015, 21:43:14
Klappt leider nicht so:

wait AttrVal("Waschmaschine.Status", "configWaitOff", 0):0:0:AttrVal("Waschmaschine.Status", "configWaitDone", 0)

Getestet mit:

md5 Downloads/98_DOIF.pm
MD5 (Downloads/98_DOIF.pm) = 4c1dfc1ce52219d1d434a490d9309e42


ok, es liegt an den Kommas - werde noch etwas nachprogrammieren müssen. Also erst demnächst.

Als kurzfirstige Lösung kannst du AttrVal.. in eigene Routine packen und diese ohne Parameter in wait angeben.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

traxanos

Ich arbeite erstmal ohne und warte. Solange muss der Rest auch warten. Dann kann ich auch noch etwas vertesten.
Im Einsatz:
FHEM: Latest auf RPi2
HM: vCCU, HMLAN, HMUSB2, HM-CC-RD-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-ES-PMWs1-Pl, HM-LC-Sw1PBU-FM, HM-PB-2-WM55-2, HM-RC-8, HM-BP-6-WM55
CUL: ESA2000, Intertechno

traxanos

@Damian

Gibt es hierzu schon Neuigkeiten? Ich habe das Problem übrigens nicht nur im wait sondern auch im DEF.

  setreading Trockner.Status totalCost {([Trockner.Status:totalEnergy]/1000*AttrVal("global", "energyCost", 0))},
Im Einsatz:
FHEM: Latest auf RPi2
HM: vCCU, HMLAN, HMUSB2, HM-CC-RD-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-ES-PMWs1-Pl, HM-LC-Sw1PBU-FM, HM-PB-2-WM55-2, HM-RC-8, HM-BP-6-WM55
CUL: ESA2000, Intertechno

Damian

#13
Zitat von: traxanos am 10 August 2015, 21:08:01
@Damian

Gibt es hierzu schon Neuigkeiten? Ich habe das Problem übrigens nicht nur im wait sondern auch im DEF.

  setreading Trockner.Status totalCost {([Trockner.Status:totalEnergy]/1000*AttrVal("global", "energyCost", 0))},

Kann es erst später umsetzen.

Dein Ausdruck geht schon, du musst wegen der Kommas setreading zusätzlich klammern, also

... (setreading Trockner.Status totalCost {([Trockner.Status:totalEnergy]/1000*AttrVal("global", "energyCost", 0))}),...

Wahrscheinlich werde ich Zugriff auf Attribute mit einem Sonderzeichen versehen z. B.

[global:§energyCost]

Das kaufmännische und-Zeichen & habe ich bereits für Internels eingebaut.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

traxanos

Die Idee mit dem § hört sich gut an. Ich frage jetzt mal nicht wann es kommt, nervt mich selber immer wenn ich gefragt werden :D
Im Einsatz:
FHEM: Latest auf RPi2
HM: vCCU, HMLAN, HMUSB2, HM-CC-RD-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-ES-PMWs1-Pl, HM-LC-Sw1PBU-FM, HM-PB-2-WM55-2, HM-RC-8, HM-BP-6-WM55
CUL: ESA2000, Intertechno