Internal value bei PRESENCE Modul ändern?

Begonnen von cartzilla, 11 Dezember 2016, 19:27:58

Vorheriges Thema - Nächstes Thema

cartzilla

Hallo,
würde gerne abhängig von der Tageszeit die Ping-Häufigkeit bei meinen LAN-Abfragen in den PRESENCE-Definitionen ändern. Habe dazu ein NOTIFY abhängig vom TWILIGHT state erstellt. Leider ist mir aber nicht klar wie ich die Internals  TIMEOUT_NORMAL und  TIMEOUT_PRESENT von PRESENCE dann in dem NOTIFY ändern kann. Mit InternalValue kann ich sie auslesen, wie aber setzen???

Gruß,
Sascha

Otto123

Hallo Sascha,

ich denke da musst Du einfach mit defmod arbeiten.

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

cartzilla

Hallo Otto,

danke für den Hinweis. Den Befehl kannte ich noch gar nicht.! Habe in der Commandef immer nur nach set... Befehlen gesucht. Warum gibt's eigentlich keinen Befehl setInternal, das nachträgliche Modifizieren von define erscheint mir irgendwie etwas "gebastelt"...

Gruß,
Sascha

Otto123

Hallo Sascha,

Internals setzen wozu? Weil man meint es konfiguriert das Modul?
Der richtige Weg ist sicher solche Konfiguration oder Modifikation im laufenden Betrieb möglich zu machen, z.B. mit set Befehlen.
Die hat das Modul nicht, nicht vorgesehen, hat keiner gebraucht - ich habe keine Ahnung.  :-[

Da musst Du mit dem Modulauthor drüber philosophieren  ;)

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

cartzilla

Hallo nochmals,

mein notify-Eintrag mit defmod arbeitet wie gewünscht. Es gibt jetzt aber ein Problem mit FHEMWEB. Dort werden ständig ungesicherte Änderungen an der fhem.cfg angezeigt (rotes Fragezeichen am SAVE CONFIG-Button). Ist es möglich diese "Nebenwirkung" von defmod zu unterbinden?

Gruß, Sascha

viegener

Die Nebenwirkung kann man nicht verhindern - Du veränderst ja einen Device

Es gibt aber den Befehl save - der speichert die Änderungen

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

cartzilla

Hab ich befürchtet ;(
Fühl mich irgendwie bestätigt, daß defmod ein ziemlicher "Bastel"-Befehl ist. Hiermit ein HALLO+AUFGEPASST an die Entwickler des PRESENCE-Moduls: Bitte baut doch dort eine Set-Methode für das Timeout (sowohl für present als auch absent) ein. Die würde defmod in dem Falle dann überflüssig machen und wäre wesentlich eleganter!

Gruß, Sascha

viegener

Ich würde Dir nicht zustimmen:

defmod ist ein Befehl um eine definition zu verändern - bin mir nicht klar, wo hier gebastelt wird. Ein Define erfordert ja auch ein save und define ist ja wohl zentral und kein Gebastel.

Häufig wäre so etwas ein Attribut -> und damit wäre auch ein Save erforderlich, denn eine Konfiguration des Moduls soll ja normalerweise persistiert also abgespeichert werden

Ich sage jetzt mal nichts zu HALLO+AUFGEPASST  ;)

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

cartzilla

#8
Naja, mit defmod bastelt man eben an einer bereits erstellten Definition herum. Das ist nicht gerade so der elegante Programmierstil. Richtiger wäre das durch entsprechende Methoden / set-Befehle zu ermöglichen. So läuft das ja auch ansonsten in FHEM. Nur haben halt die Programmierer des PRESENCE-Moduls für das Einstellen des Timeouts leider sowas (bisher) noch nicht vorgesehen. Dafür gibt's eben ein HALLO+AUFGEPASST ;)

Gruß, Sascha

Markus Bloch

Zitat von: cartzilla am 14 Dezember 2016, 18:35:24
Nur haben halt die Programmierer des PRESENCE-Moduls für das Einstellen des Timeouts leider sowas (bisher) noch nicht vorgesehen. Dafür gibt's eben ein HALLO+AUFGEPASST ;)

Angenommen, man setzt das Timeout via Set-Kommando und nicht via define-Argument. Woher soll FHEM beim starten dann wissen, mit welchen Intervallen PRESENCE checken soll, wenn es nicht via define-Statement gesetzt wird?

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)

cartzilla

Das eine schließt doch das andere nicht aus. Über das define wird weiterhin der Start-Timeout-Wert festgelegt. Über set könnte dieser dann aber während der Laufzeit geändert werden (wäre jedenfalls mein Vorschlag).

Gruß, Sascha

viegener




Zitat von: cartzilla am 14 Dezember 2016, 18:35:24
Naja, mit defmod bastelt man eben an einer bereits erstellten Definition herum. Das ist nicht gerade so der elegante Programmierstil. Richtiger wäre das durch entsprechende Methoden / set-Befehle zu ermöglichen. So läuft das ja auch ansonsten in FHEM. Nur haben halt die Programmierer des PRESENCE-Moduls für das Einstellen des Timeouts leider sowas (bisher) noch nicht vorgesehen. Dafür gibt's eben ein HALLO+AUFGEPASST ;)

Gruß, Sascha

Was define und defmod mit programmieren zu tun hat erschielisst sich mir nicht

Save ist meine Lösung um definitionen oder veränderte Definition abzuspeichern (oder auch veränderte Attribute oder veränderten State)

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können