Thermostat mit Threshold und Dummy

Begonnen von Klinki, 03 Dezember 2014, 09:19:24

Vorheriges Thema - Nächstes Thema

Klinki

Hallo,

Ich habe bereits versucht ein Raumthermostat FS20 STR2 in fhem einzubinden. Aber dieses Teil ist 1. sehr unflexibel und wird 2. nicht sauber vom fhem empfangen. Der zu schaltende Aktor empfängt dagegen tadellos. Aber das ist ein anderes Thema...

Die Funktionalität habe ich jetzt mittels Threshold und einem Dummy nachgebaut:

define TH_Regler THRESHOLD HMS_WZ:temperature:0.6 KV_Schalter3 | { Log 3, "KV3 Aus" } | { Log 3, "KV3 An " }
attr TH_Regler number_format %.1f
attr TH_Regler state_format _m _dv
attr TH_Regler room Heizung

define TH_Anzeige dummy
attr TH_Anzeige setList desired-temp:on,off,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0
attr TH_Anzeige webCmd desired-temp
attr TH_Anzeige room Heizung

define SetzeTH_Regler notify TH_Anzeige { fhem("set TH_Regler desired $EVTPART1") ;; Log 3, "Setze TH_Regler % $EVTPART1 $EVTPART0" }


Das funktioniert auch soweit recht gut: Über die DropDown des Dummys wird die Soll-Temperatur eingestellt und per Notify an das Threshold übermittelt. Dieser schaltet dann die Heizungspumpe an bis Soll erreicht, bzw. wenn Soll-Hyterse, unterschritten wird.
2 Problem(chen):
1. Wenn ich den Wert im Dummy eingestellt habe (z.B. 21.5), springt die DropDown immer auf ihren Default-Wert zurück (20)
2. Die Schalt-Befehle des Threshold werden offensichtlich nur 1 x gesendet. Falls der Aktor das nicht mitbekommen sollte, wäre das ja nicht so gut.... Ist bisher aber nicht passiert.
(http://fhem_threshold.jpg)


Ein FHT-Modul ist schon etwas benutzerfreundlicher. Hier erfolgt ja, wie bei einem PID-Regler, eine permanenter Soll/Ist-Abgleich. Beim Threshold (2Punkt-Regler) gibt es nur Ein und Aus.

Habt ihr vielleicht noch eine Anregung für mich?
VG


Damian

Zitat von: Klinki am 03 Dezember 2014, 09:19:24
Ein FHT-Modul ist schon etwas benutzerfreundlicher. Hier erfolgt ja, wie bei einem PID-Regler, eine permanenter Soll/Ist-Abgleich. Beim Threshold (2Punkt-Regler) gibt es nur Ein und Aus.

Auch beim THRESHOLD-Modul erfolgt ein permanenter Soll/Ist-Abgleich (so oft wie deine Ist-Temperatur gesendet wird). Natürlich wird nur dann geschaltet, wenn sich der Zustand ändert. Wenn du jedes mal schalten willst, brauchst du nur ein notify mit einer if-Abfrage, da du offenbar die Zustandsverwaltung nicht nutzen willst, die im THRESHOLD-Modul eingebaut ist, um unnötiges Schalten zu vermeiden.

Gruß

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

Klinki

Hi,
ja, klar, notify geht immer. Dass der Soll/Ist-Vergleich stattfindet, ist eigentlich auch klar. Aber es gibt ja nur den einen Befehl "An", bzw. "Aus" - oder sehe ich das falsch?
Wenn der Aktor den Befehl "verpennt", kann es doch Probleme geben, oder?

Die Zustandsverwaltung in Threshold? Wie meinst Du das?
hm...das Setlist in das Threshold einsetzen?

ich schau wohl besser noch mal in die Referenz....

vg

Damian

Zitat von: Klinki am 03 Dezember 2014, 10:41:57
Hi,
ja, klar, notify geht immer. Dass der Soll/Ist-Vergleich stattfindet, ist eigentlich auch klar. Aber es gibt ja nur den einen Befehl "An", bzw. "Aus" - oder sehe ich das falsch?
Wenn der Aktor den Befehl "verpennt", kann es doch Probleme geben, oder?

Die Zustandsverwaltung in Threshold? Wie meinst Du das?
hm...das Setlist in das Threshold einsetzen?

ich schau wohl besser noch mal in die Referenz....

vg
Mit Zustandsverwaltung meine ich, dass sich das Modul den letzten Zustand merkt und damit eine Zustandsveränderung erkennen kann und danach schaltet.

Wenn dir die Zuverlässigkeit des einmaligen Schaltens nicht ausreicht, dann kannst du auch z. B. über ein notify in regelmäßigen Abständen das entsprechende Schalten mit set TH_Regler active wiederholt erzwingen.

Gruß

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

Klinki

Ich muss gestehen, dass ich nicht recht verstehe wie mir die Zustandsverwaltung da weiterhelfen soll.
Was ich ja letzten Endes will, ist die Funktionaltität eines FHT nachbauen. Nur das der Aktor kein Stellantrieb, sondern ein Schalter für eine Heizungspumpe ist.
Die Bedienung des FHT im Web soll sich von den realen FHTs möglichst nicht unterscheiden.

Vielleicht kannst Du mir einen Weg skizzieren  ::)

Bisher habe ich leider kein Beispiel gefunden, welches ich adaptieren kann....

VG

Damian

Zitat von: Klinki am 03 Dezember 2014, 11:59:58
Ich muss gestehen, dass ich nicht recht verstehe wie mir die Zustandsverwaltung da weiterhelfen soll.
Was ich ja letzten Endes will, ist die Funktionaltität eines FHT nachbauen. Nur das der Aktor kein Stellantrieb, sondern ein Schalter für eine Heizungspumpe ist.
Die Bedienung des FHT im Web soll sich von den realen FHTs möglichst nicht unterscheiden.

Vielleicht kannst Du mir einen Weg skizzieren  ::)

Bisher habe ich leider kein Beispiel gefunden, welches ich adaptieren kann....

VG
Vergiss das Wort "Zustandsverwaltung" denke einfach an "unnötiges Schalten".

Warum sollte man eine Heizung einschalten, wenn man sie vor paar Sekunden/Minuten schon eingeschaltet hat.

Man kann einen Zweipunktregler auch so programmieren, dass er jedes mal (auch unnötig) schaltet, dann muss man aber damit rechnen (je nach dem wie oft der Temperaturfühler sendet), dass aufgrund der 1 %-Regel bei dem einen oder anderen die Bude zu Weihnachten kalt bleibt ;)

Gruß

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

Klinki

Soweit klar. Bisher hatte ich den Fall auch noch nicht, dass der Schaltbefehl nicht empfangen wurde. Da könnte ich mir mit einem Halb-Stunden-Notify, oder einem WasAuchImmer, helfen.

Was ich aber toll finden würde, wäre der Bedien-Komfort der FHT-Module: .z.B. Man stellt die desired-Temp über einen Slider, Drop-Down oder wasauchimmer ein, und der eingestellte Wert bleibt auch nach dem Aktualisieren des Browsers.

Die eigentliche Funktion ist ja gegeben. Der Threshold macht was er soll...
Nur wäre es halt schön, auf der Webseite ein "weiteres FHT" zu haben. Der WAF spielt hier auch eine Rolle...
..if you know what I mean  ;)

Damian

Zitat von: Klinki am 03 Dezember 2014, 13:01:18
Soweit klar. Bisher hatte ich den Fall auch noch nicht, dass der Schaltbefehl nicht empfangen wurde. Da könnte ich mir mit einem Halb-Stunden-Notify, oder einem WasAuchImmer, helfen.

Was ich aber toll finden würde, wäre der Bedien-Komfort der FHT-Module: .z.B. Man stellt die desired-Temp über einen Slider, Drop-Down oder wasauchimmer ein, und der eingestellte Wert bleibt auch nach dem Aktualisieren des Browsers.

Die eigentliche Funktion ist ja gegeben. Der Threshold macht was er soll...
Nur wäre es halt schön, auf der Webseite ein "weiteres FHT" zu haben. Der WAF spielt hier auch eine Rolle...
..if you know what I mean  ;)

ok. Das kann ich nachvollziehen. Leider habe ich noch ein paar andere Baustellen und werde erst mal nicht dazu kommen das Modul zu erweitern.

Gruß

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

Klinki

Dann wünsche ich ein frohes Schaffen!
Dringend ist meine Problematik eh nicht - die Konfiguration mit dem Dummy funktioniert ja.
So weiß ich zumindest, dass ich bei der Benutzung des Moduls keine grundlegenden Fehler mache.

Vielen Dank für Deine Mühe & Geduld!

Klinki

Nachtrag:

mit der folgenden Konfiguration bin ich schon sehr zufrieden:


define TH_Regler THRESHOLD HMS_WZ:temperature:0.6 KV_Schalter3
attr TH_Regler group Heizung
attr TH_Regler number_format %.1f
attr TH_Regler room Wohnzimmer
attr TH_Regler state_cmd1_gt off
attr TH_Regler state_cmd2_lt on
attr TH_Regler state_format _m _dv
attr TH_Regler webCmd desired-temp

define TH_Anzeige dummy
attr TH_Anzeige alias Heizung_Wohnzimmer
attr TH_Anzeige group Heizung
attr TH_Anzeige room Wohnzimmer
attr TH_Anzeige setList state:0,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0
attr TH_Anzeige webCmd state
define SetzeTH_Regler notify TH_Anzeige { fhem("set TH_Regler desired $EVENT") ;; Log 3, "Setze TH_Regler % $EVENT" ;; DebianMail('HEINBLOED@api.pushover.net','FHEM Thermostat','Setze TH_Regler ' . $EVENT)  }



- Die eingestellte Temperatur wird nun auch in der DropDown-Box von der "Anzeige-Einheit" angezeigt.
- Kriege jetzt per Pushover-App (Klasse!) eine Message, wenn Frau die, von der niemals irrenden Automatik eingestellte, Temperatur ändert!
Natürlich nur Spielerei  :P