[gelöst] Globale Variable für PRESENCE absenceThreshold?

Begonnen von kroman, 24 Juli 2018, 21:45:31

Vorheriges Thema - Nächstes Thema

kroman


define d_settings dummy
setreading d_settings presence_lan-ping_absenceThreshold 2

define whatever PRESENCE lan-ping whatever 5
attr whatever absenceThreshold {ReadingsVal("d_settings","presence_lan-ping_absenceThreshold","1")}

absenceThreshold must be a valid integer number


Einzige Lösung wäre das PRESENCE Modul zu ändern, richtig?
Oder weiß jemand einen anderen Weg?

Danke und Gruß,
kroman

Otto123

#1
Hi kroman,

abgesehen davon, dass mich der Titel deiner Frage verwirrt.  :-[
So geht es sicher nicht wie Du bemerkt hast, siehe auch, da steht nix von Perl:
ZitatpresenceThreshold
(Nicht im Modus "event" anwendbar)
Die Anzahl an Checks, welche in "present" resultieren müssen, bevor der Status der PRESENCE-Definition auf "present" wechselt. Mit dieser Funktion kann man die Anwesenheit eines Gerätes verifizieren bevor der Status final auf "present" geändert wird. Wenn dieses Attribut auf einen Wert >1 gesetzt ist, werden die Readings "state" und "presence" auf den Wert "maybe present" gesetzt, bis der Status final auf "present" wechselt.

Standardwert ist 1 (keine Anwesenheitsverifizierung)

Aber userattr sollte gehen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

rudolfkoenig

Es ist nicht ueblich, dass "normale" Attribute Ihren Wert als Perl-Ausdruck auswerten, und ich meine es waere auch nicht sinnvoll damit anzufangen.

Man kann leicht die gleiche Funktionalitaet durch ein notify erreichen:define n notify d_settings:presence_lan-ping_absenceThreshold.* attr whatever absenceThreshold $EVTPART1

kroman

@Otto,

danke, aber ich bin nicht in der Lage zu durchschauen, wie global userattr meine Aufgabenstellung lösen kann.
Der Titel passt soweit denke ich  :)

@Rudi,

danke, das funktioniert sicher. Nur bräuchte ich für jedes lan-ping device wieder ein notify (bzw. müsste man das eine notify pflegen falls Ausbau möglich).
Dann konfiguriere ich es lieber manuell in jedem device, da es kaum bis nie Änderungen geben wird.
Wobei... hast du ein notify für mehrere Geräte parat (ala list TYPE=PRESENCE)?

Zitat
Es ist nicht ueblich, dass "normale" Attribute Ihren Wert als Perl-Ausdruck auswerten, und ich meine es waere auch nicht sinnvoll damit anzufangen.

agree (in aller Bescheidenheit, da <> perl Experte)

Otto123

warum verwendest Du ständig global? Unter global verstehe ich etwas anderes. Ich habe auch nix von global userattr gesagt.

Aber ich war im falschen Film und meinte userreadings - sorry.

Du kannst doch aber attr $NAME absenceThreshold $EVTPART1 verwenden und musst nur die Namen / den trigger fürs notify so machen, das er auf Deine Geräte anspricht.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

rudolfkoenig

ZitatWobei... hast du ein notify für mehrere Geräte parat (ala list TYPE=PRESENCE)?
Du meinst sowas wie define n notify d_settings:presence_lan-ping_absenceThreshold.* attr TYPE=PRESENCE absenceThreshold $EVTPART1
Ja, das geht laut commandref: https://fhem.de/commandref_modular.html#attr :)

kroman

So werd ich's machen, danke!

Der absenceThreshold schadet auch bei lan-bluetooth und shellscript nicht.