Hauptmenü

Array

Begonnen von MisterEltako, 14 Februar 2013, 23:23:15

Vorheriges Thema - Nächstes Thema

Reinerlein

Hi MisterEltako,

leider nicht, deswegen dachte ich ja erst daran die andere Variante zu verwenden. Aber was du noch probieren kannst (ich kann das bei mir gerade nicht nachstellen):
define Speicher notify Temp:.* {\
  readingsBeginUpdate($main::defs{Temp});;\
  readingsBulkUpdate($main::defs{Temp}, '1_DrittletzteTemperatur', ReadingsVal('Temp', '2_VorletzteTemperatur', ''));;\
  readingsBulkUpdate($main::defs{Temp}, '2_VorletzteTemperatur', ReadingsVal('Temp', '3_LetzteTemperatur', ''));;\
  readingsBulkUpdate($main::defs{Temp}, '3_LetzteTemperatur', Value("Temp"));;\
  readingsEndUpdate($main::defs{Temp}, 1);;\
}

Damit wird das ganze als ein einziges Event erzeugt. Die "1" im "EndUpdate" ist nun der Marker für Event oder nicht...

Grüße Reinerlein

MisterEltako

Hi!

So habe das jetzt in der neuen Form ausprobiert. Die Readings werden so auch angelegt!!! Funktioniert!!!

Jetzt die blöde Frage: Wie teste ich jetzt ob tatsächlich ein Event ausgelöst wird???

Und Frage 2: Kann man die Readings auch wieder löschen??? Oder nur durch löschen des Device und Neuanlegen?

MfG, MisterEltako.

HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

Reinerlein

Hi MisterEltako,

naja, du kannst einfach den EventMonitor aufmachen, und auf ein entsprechendes Event warten. Das ist auf der Hauptseite links unten im Menübereich...
Alternativ kannst du natürlich einfach ein Notify definieren, was darauf reagiert:
define Test notify Temp:1_DrittletzteTemperatur.* set gong onSchaltet einen Gong an, wenn der Wert von "Temp:1_DrittletzteTemperatur" geändert wird...

Zu 2.: Eigentlich ist das nicht vorgesehen. Du kannst ein "undef" zuweisen. Dann hat das Teil, passend mit Zeitstempel versehen, halt keinen Wert mehr, aber es ist immer noch klar, zu welchem Zeitpunkt das mal passiert ist.

Natürlich kannst du direkt die interne Datenstruktur anfassen. Aber vorsicht, da passieren gerne mal so Fehler wie neulich mit der abgeschnittenen fhem.cfg-Datei :-)
Dafür könntest du folgendes probieren:
delete $main::defs{Temp}{READINGS}{1_DrittletzteTemperatur}; Damit würde das Reading "1_DrittletzteTemperatur" des Devices "Temp" komplett (also auch der Zeitstempel) aus der internen FHEM-Struktur entfernt werden.
Ich habe das jetzt nicht probiert, einfach mal auf einer Testmaschine mit gesicherten Konfigurationen ausprobieren...

Grüße Reinerlein

thunder

Eine kleine Frage zum Thema Fußbodenheizung:

ich wollte das in etwa so realisieren:

Der Wasserfluss wird per Pulsweitenmodulation mit einer Zykluszeit von 15 Minuten (900s) gesteuert. in diesem Zyklus läuft ein wiederkehrender at-job im FHEM. dieser at Job triggert den PID per Dummyvariable jedes Mal mit einem neuen Temperaturwert. der Output des PID (0-900) wird genutzt um den set-for timer für das Ventil anzusteuern.




    Ist es dann noch notwendig den Aufwand um die Mittelwertbildung der Temperatur wie in diesem Thread beschrieben zu treiben?
    Wäre es möglich Dummies generisch im PID bekannt zu machen?


Viele Grüße,
Uwe

My-FHEM

Die Temp Werte Historie dient zur Reduktion des Quantisierungsrauschen der Funk Temp Sensoren
Auflösung der ws300 0,1°. Mittelwertbildung über breitere Abtastspannen z.B 3-4 Abtastungen
reduziert das Rauschen. --> Regler stabiler.

Gruß