FHT80 Makro für Steckdose, Sendeprobleme

Programmierung der FHZ-Zentralen mit contronics homeputer Standard / homeputer Studio & WEB-Server

Moderator: Co-Administratoren

Antworten
olaf
Beiträge: 13
Registriert: 11.07.2009, 20:40

FHT80 Makro für Steckdose, Sendeprobleme

Beitrag von olaf » 16.10.2009, 16:08

Hallo,

ich steuere in meinem Badezimmer mit dem FHT80b eine Steckdose (für die Heizung).
Das Makro sieht so aus:

** Variable Obergrenze, Typ Zahl, Startwert 0,0
** Variable Untergrenze, Typ Zahl, Startwert 0,0

** Bad_Raumregler ist die augenblicklich im Raumregler gültige SOLL-Temperatur

Obergrenze := Bad_Raumregler + 0,2
Untergrenze := Bad_Raumregler - 0,2

Wenn Bad_Raumregler.Temperatur <= Untergrenze dann
Bad_Heizung einschalten
warte 5 Sekunden
Bad_Heizung einschalten
Endewenn
Wenn Bad_Raumregler.Temperatur >= Obergrenze dann
Bad_Heizung ausschalten
warte 5 Sekunden
Bad_Heizung ausschalten
Endewenn

Funktioniert soweit auch alles, nur hab ich ab und zu das Problem das ich keine Werte von meinem FHT80 in dem Homeputer Visualisierungsfenster angezeigt bekomme! Denke mal Sendeprobleme oder Störungen zwischen dem FHT80 und der FHZ.
Dann schaltet sich die Heizung immer an und das ist so ja nicht gewollt :)
Kann ich das irgendwie mit einem Makro lösen????

lg Olaf

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: FHT80 Makro für Steckdose, Sendeprobleme

Beitrag von buempi » 16.10.2009, 17:27

Hallo Olaf

Zunächst: Zweimaliges Ein- oder Ausschalten führt nur dann zu zwei Funksignalen, wenn "Senden auch bei Zuweisung ohne Änderung" ausgewählt ist. Das ist aber nicht empfehlenswert, weil so bei JEDEM Durchgang zwei Signale generiert werden. Auch wenn die Steckdose schon stundenlang EIN oder AUS ist!

Um ein zweites Signal zu erzeugen, solltest du SENDEWERT() verwenden; aber nur dann, wenn sich der Zustand der Steckdose auch tatsächlich geändert hat. Das kann man mit GESCHALTET() abfragen.

Beim Start dauert es immer eine Weile, bis Homeputer die Werte des Reglers übermittelt bekommt. Solange steht (intern) in "Temperatur" ein Wert von -99 oder so was. Das kann man am Anfang des Makros abfangen und das Makro nur ausführen, wenn ein vernünftiger Wert drin steht.

Code: Alles auswählen

** Variable Obergrenze, Typ Zahl, Startwert 0,0
** Variable Untergrenze, Typ Zahl, Startwert 0,0

** Bad_Raumregler ist die augenblicklich im Raumregler gültige SOLL-Temperatur

wenn Bad_Raumregler < 0 oder Bad_Raumregler.Temperatur < 0 dann
   verlassen
endewenn

Obergrenze  := Bad_Raumregler + 0,2
Untergrenze := Bad_Raumregler - 0,2

Wenn Bad_Raumregler.Temperatur <= Untergrenze dann
   Bad_Heizung einschalten
Endewenn
Wenn Bad_Raumregler.Temperatur >= Obergrenze dann
   Bad_Heizung ausschalten
Endewenn

Wenn geschaltet(Bad_Heizung) dann
   warte 5 Sekunden
   Sendewert(Bad_Heizung)
   ** Das Flag "geschaltet" zurücksetzen:
   erledigt(Bad_Heizung)
Endewenn
Problematischer wird es, wenn die FHZ den Regler plötzlich nicht mehr empfängt. Dann bleibt die Steckdose dauerhaft in ihrem aktuellen Zustand. Da könnte man höchstens verhindern, dass sie dauerhaft EIN bleibt, indem man sie immer nur für z.B. 30 Minuten einschaltet. Dann wird's eben einfach kalt, wenn der Regler nicht mehr empfangen wird.

In diesem Fall darf man aber SENDEWERT() nicht verwenden, weil diese Funktion dem EINSCHALTEN FÜR ein DAUER-EIN folgen liesse. Auch darf das Makro nur bei Empfang ausgeführt werden und in keinem Fall in einem Intervall!

Viele Grüsse
Bümpi

SoftBOOM
Beiträge: 32
Registriert: 23.04.2008, 17:38

Re: FHT80 Makro für Steckdose, Sendeprobleme

Beitrag von SoftBOOM » 18.10.2009, 00:35

Hallo, ich nutze für die selbe Zielstellung die Ventilposition. Diese wird wesentlich häufiger übertragen, als die Ist-Temperatur(Bei Änderung der Solltemperatur meist unmittelbar).
Außerdem kann man damit die Temperatur fast 10tel Grad genau regeln.

dafür verwende ich folgendes Makro, dass jede Minute ausgeführt wird.

Code: Alles auswählen


wenn HeizungKuecheMinZ <4 dann   (alle 5 Minuten ausführen)
  HeizungKuecheMinZ:=HeizungKuecheMinZ+1
  verlassen
sonst
  HeizungKuecheMinZ:=0
endewenn

wenn RaumreglerDiele.Ventilpos < 0 dann
  verlassen
endewenn
SchaltzeitDiele:=0,003472 * RaumreglerDiele.Ventilpos / 100      (Typ Zahl Startwert 0,0)
makHeizungDiele.SchaltztD := SchaltzeitDiele (Variable Typ Uhr)
SchaltzeitDieleT := makHeizungDiele.SchaltztD (Typ Text, nur für Visualisierung)
wenn RaumreglerDiele.Ventilpos > 0 dann
  wenn HeizungDiele1 eingeschaltet dann (Typ Schalter, als Hauptschalter gedacht)
   schaltDieleHZ  einschalten für SchaltzeitDiele
  endewenn
endewenn


Leider geht das so nicht mit allen FHZ's

Gruß

Mario

Antworten

Zurück zu „homeputer Studio / Standard: Programmierbeispiele“