FHZ 1300 PC + totaler Anfänger

Servus!

Also folgendes Problem: ich bin absoluter IP-Symcon-Anfänger. Dementsprechend klappt bei mir gar nichts. Habe schon sämtliche Anleitungen durchgelesen, stehe aber trotzdem auf dem Schlauch. Hoffe, ihr könnt mir helfen.

Also: ich habe hier FHZ 1300 PC + IP-Symcon. Desweiteren habe ich einen FHT 80B-2 Heizungsregler sowie einen STA 800C-2 Ventilantrieb.

So, dann habe ich Folgendes gemacht: habe alle Geräte miteinander verbunden, alle Codes aufgeschrieben. Wenn ich alles manuell mache, dann funktioniert’s auch. D.h, wenn ich am Rad drehe, dann reagiert der Ventilantrieb auch. So, und jetzt kommt IP-Symcon ins Spiel.

Ich habe folgende Variablen erstellt:

  • Komforttemperatur, Type Float, Value 22
  • Auto, Type Integer, Value 0
  • Stellantrieb_Komfort, Type Float, Value 30

So, dann habe ich die Instances erstellt, s. Bild 01. Die Variablen habe ich bei FHT auch hinzugefügt, s. Bild 02.

So, im Test Center funktioniert’s einwandfrei: ich kann die Temperatur und Mode ändern, ca. 3 minuten später werden die Werte auch auf der FHT gezeigt. Wenn ich aber die Variablen „Komforttemperatur“ und „Stellantrieb“ ändere (habe versucht, diese zu erhöhen), dann passiert gar nichts. Wenn ich IPS neustarte, dann werden die Werte von diesen Variablen wieder auf ursprüngliche Werte gesetzt.

Die Frage lautet: was mache ich falsch? Und die nächste Frage: wie mache ich’s richtig?

MfG Wlad

P.S: Sorry, wenn ich in „Allgemeine Diskussion“ falsch bin, muss mich noch aufs Forum gewöhnen :slight_smile:

01.jpg

Hallo Wlad,

erstmal willkommen im Forum.

Also die Variable Stellantrieb zu erhöhen bring nichts. Dort wird nur der Wert reingeschrieben der vom FHT kommt. Du kannst an den FHT senden wie warm Du es haben möchtest und dann wird entsprechend der Ist Raum Temperatur und der gewünscheten Temperatur der Stellantrieb um X% Prozent geöffnet.

Hast Du Dir dies mal angesehen?

http://www.ipsymcon.de/wiki/index.php/FHT

Hallo,

also bei den FHT’s ist es so dass du hier nur Einfluss auf die TARGET Temperatur und den TARGET Mode. Und weiterhin, die TARGET Temperatur wird auch nur noch indirekt beeinflusst über die TARGET Request Variable.
Das ist alles nachzulesen hier. Kuck dich auch mal hier um.

Zum Stellantrieb: Darauf hast du keinen Eingriff. Du kannst lediglich den Stellwert lesen, sonst nix. Du kannst nur indirekt die Stellposition des Ventils beeinflussen, und zwar wenn du die SollTemp. auf 5,5 Grad setzt, dann ist das Ventil 0% und 30,5 ist es voll auf, also 100%

Es sein denn, du hast dieses Board, damit kannst du Stellventile direkt vom computer aus steuern, ohne FHT’s !

Franz

Hallo, Jungs!

Erstmal vielen Dank für die schnelle Antwort. Also Wiki habe ich selbstverständlich gelesen, bin aber nicht schlau geworden - steht ja nicht viel über Variablen drin.

Also brauche ich dann für den Anfang nur Variablen „Komforttemperatur“ und „Auto“, und zwar nur im Abschnitt „Status Variables (target state FHT Response)“? Habe das jetzt ausprobiert, läuft aber wie vorher: im Test Center funktioniert’s, mit den Variablen nicht.

MfG Wlad

Aber Achtung: du solltest in den Abschnitten (FHT-Instanz):

[ul]
[li]target state IPS requested
[/li][li]actual state FHT responce
[/li][li]target state FHT responce
[/li][/ul]
unterschiedliche Variablen eintragen und nicht 3mal dieselbe Variable für die Temperatur und den Mode.

Gruß
Günter und willkommen im Forum.

Hallo Wlad,

ich kann nur immer wieder betonen:

„Finger weg von Status-Variablen!“

Wie der Name schon sagt, sollen Statusvariablen über den aktuellen Zustand (Status) der betreffenden Modul-Instanz Auskunft geben.

D.h. Diese Variablen werden ausschließlich vom Modul gesetzt und niemals vom User oder von einem Skript.

Status-Variablen sind daher immer als Read-Only Variablen anzusehen.

Soll die Temperatur geändert werden, so kann das nur mit dem IPS-Befehl FHT_SetTemperature(…) erfolgen. Entsprechendes gilt für den Modus: FHT_SetMode(…).

Wurde mit dem Befehl FHT_SetTemperature(…) eine neue Soll-Temperatur an die FHZ übergeben, so wird diese Wunschtemperatur in die entsprechende Variable im Feld „target sate IPS Request“ eingetragen. Wenn dann nach einigen Minuten der Befehl von der FHZ an den FHT weitergegeben worden ist, dann erscheint diese Temperatur auch im Feld „target sate FHT Response“. Mann kann jetzt davon ausgehen, dass der FHT nun auf die neue Temperatur einregeln wird. Wie weit er dabei schon gekommen ist, kann man an der aktuellen Ist-Temperatur im Feld „actual sate FHT Response“ sehen. Dieser Wert wird mehr oder weniger regelmäßig aktualisiert.

Aus diesem Ablauf erkennt man auch, dass es sich bei all den Variablen um verschiedene Variablen handelt.

Gruß
HJH

Wird „dieses Board“ direkt von IPS unterstützt?

Nein,

siehe hier http://www.ipsymcon.de/forum/showthread.php?t=3610

Nein. Wird es nicht. Aber wie du in dem Thread lesen kannst, den RWN verlinkt hat, heisst das nicht, dass man es nicht trotzdem einsetzen könnte. Das ist mit so einiger Hardware so und liegt daran, dass es in IPS so tierisch einfach ist selbst tätig zu werden.

Gruß,

Toni

Danke für die Hinweise. Ich denke, ich werde mich im Forum nach und nach besser zurechtfinden. Noch fehlt mir etwas die Übersicht.

Jeah! Das ist es! jetzt läuft alles einwandfrei, vielen Dank!

Also hier die kleine Anleitung für alle wie ich :):

Ich erstellte 4 Variablen:

  • Soll-Temperatur, Type Float
  • Ist-Temperatur, Type Float
  • FHT-zu-FHZ-Antwort, Type Float
  • Mode, Type Integer.

Dann habe ich sie unter „Instances“ -> „FHT“ -> „Configure“ eingetragen, s. Bild1.

So, dann habe ich unter „Event Scripts“ 3 neue Scripts erstellt:

  • SetKomforttemperatur
  • SetAbsenktemperatur
  • SetMode

So, im Quellcode-Fenster links habe ich dann Folgendes stehen:

  • SetKomforttemperatur:

<?
//Setzt 23.5°C
FHT_SetTemperature(XXXXX, 23.5);
?>

  • SetAbsenktemperatur:

<?
//Setzt 15.0°C
FHT_SetTemperature(XXXXX, 15.0);
?>

  • SetMode:

<?
//Setzt Mode: Auto = 0, Manual = 1
FHT_SetMode(XXXXX, 0);
?>

Statt XXXXX muss man die Nummer von FHT eintragen, die unter „Instances“ zu sehen ist, aber ohne #-Zeichen, nur die Zahlen ;).

So, dann kommt der Timer Wizard (F6 drücken). Dort klickt man auf „New“, dann bearbeitet man den Eintrag. Ist aber sehr gut erklärt im Wiki. Ich habe 2 Einträge erstellt, „Heizung ein“ und „Heizung aus“, s. Bild2. Und es funktioniert!

Vielen Dank an euch alle! Aber ich werde mich noch einige Male hier melden - werde das System ausbauen. Schönes Wochenende!

MfG Wlad

Servus, Leute!

Da bin ich wieder. Nun habe ich versucht, den TFK einzubinden. Ist mir auch gelungen, und zwar als Piri. So, und nun wird’s interessant.

Ich habe nach Möglichkeit gesucht, wenn ich das Fenster aufmache, dann soll die Heizung ausgehen. Also habe ich 2 Scripte angelegt:

  • SetFensterAufTemperatur (6 Grad)
  • SetFensterZuTemperatur (23,5 Grad)

Im Timer Wizard habe ich dann 2 Events angelegt:

  • Fenster auf, Heizung aus
  • Fenster zu, Heizung an

Die Variable „FS20_TFK1.Status“ wurde automatisch angelegt.

Die FHT80B, die ich verwende, kann man sie ganz ausschalten? Ich habe keine andere Möglichkeit gefunden, als bei „SetFensterAufTemperatur“ den Wert „6.0“ einzugeben, da dies die minimalste Temperatur ist, bei „0.0“ passiert nämlich gar nichts.

Wenn ich jetzt den Magnet wegnehme, dann habe ich meine 6 Grad. Wenn ich den wieder dazulege, dann kriege ich gar nichts - es bleibt bei 6 Grad. Obwohl in den Variablen sich der Status fleißig ändert:

  • Fenster auf (Magnet weg) -> TRUE
  • Fenster zu (Magnet da) - FALSE

Hier kommen die Fragen:

  1. Was fehlt mir noch? (Ich vermute, da sollte noch eine Variable rein (s.Bild1), aber welche?)

  2. Kann ich statt „SetFensterAufTemperatur“ die FHT80B doch ausschalten? Weil nämlich mit „homeputer Studio“ ist es früher gegangen.

  3. Kann ich statt „SetFensterZuTemperatur“ die Temperatur einschalten, die vorher war? Ich habe jetzt nämlich je nach Tageszeit entweder komforttemperatur oder Absenktemperatur. Wäre nicht schlecht, wenn ich es machen könnte.

MfG Wlad

Bild1.jpg

Hallo,

um das Ventil vollständig zuschliessen, musst Du 5.5 eingeben(Heizkörper aus).
Um einen Temperaturwert nach FHT zusenden benutze FHT_SetTemperature(FHT-ID, 5.5);
Einen Timer brauchst Du dafür nicht.
Die Variable vom TFK im Script einlesen, eventuell noch die Aktuelle Temperatur und dementsprechen setzen.

getriggert über die Variable vom TFK

als Beispiel


$StatusTFK = GetValueBoolean ("TFK");
if ($StatusTFK == false)
FHT_SetTemperature(44007, 5.5);
else
FHT_SetTemperature(44007, 23.5);


Hallo Wlad,

was zeigt die angehängte Grafik? Das Teil hat nichts mit der FHT zu tun!

Klar kannst Du die alte Temeratur nach dem Schliessen wieder einschalten. Dafür brauchst Du eine neue Variable. Dort legst Du den Wert von SollRead ab. Danach schickst Du den Temperaturwert für Fenster auf.

Wird das FensterZu-Skript ausgeführt, dann schreibst Du den alten SollRead-Wert zurück.

Aber jetzt mal was ganz anderes. Warum lässt Du die Steuerung nicht durch die FHT durchführen? Das klappt auf jeden Fall immer problemlos.

Ich wünsche einen schönenTag.

Christoph.

Servus!

Sorry, war eine Weile nicht da. Erstmal danke für die Antworten, hat teilweise geholfen.

@Christoph: die Steuerung mit der FHT klappt nicht, da ich die Anmeldung von TFKs an der FHT nicht zustande bringe. Und im Handbuch zu FHT steht was nur über FHT80TF und nichts über FS20 TFK. Das Bild zeigte die Eigenschaften von TFK, da ich eben dort den Fehler vermutet habe. Lag aber woanders :).

@RWN: So, ich habe also die Scripte „SetFensterAufTemperatur“ und „SetFensterZuTemperatur“ gelöscht. Stattdessen habe ich einen neuen erstellt, „FensterAuf-FensterZu“. Und da habe ich Deinen Code reingeschrieben, die entsprechende ID von FHT und die TFK-Variable eingetragen. Jetzt funktioniert alles.

Hier ist mein Code:

$StatusTFK_1 = GetValueBoolean („TFK_1.Status“);
if ($StatusTFK_1 == True)
FHT_SetTemperature(xxxxx, 5.5);
else
FHT_SetTemperature(xxxxx, 23.5);

@All: 1) Dann habe ich Folgendes versucht:

$temperatur = GetValueFloat („Soll-Temperatur“);
$StatusTFK_1 = GetValueBoolean („TFK_1.Status“);
if ($StatusTFK_1 == True)
FHT_SetTemperature(xxxxx, 5.5);
else
FHT_SetTemperature(xxxxx, $temperatur);
Bei dieser Variante funktioniert nur der erste Teil - also Fenster offen. Wie mache ich es richtig?

  1. Gibt es eine Möglichkeit, die FHT „schneller“ zu machen? Wenn ich jetzt den Magneten wegnehme (also „Fenster öffne“), ändert sich „TFK_1.Status“ nahezu sofort, 15-20 Sekunden später ändert sich auch die „Soll-Temperatur“. Und dann, einige Minuten später, ändert sich auch die „FHT-zu-FHZ-Antwort“. Fürs Zuhause wäre das in Ordnung, aber ich hocke hier in der Hochschule und da bräuchte ich schon etwas schnellere Reaktion, um die Sachen eben zu testen.

  2. Falls ich den Magneten wegnehme, wieder dazulege, wieder wegnehme und wieder dazulege - sammeln sich die Auträge zur Temperaturänderung dann irgendwo wie in der Druckerschleife? Falls ja, dann habe ich ein Problem :).
    3a) Gibt es eine Möglichkeit diese Befehle aus der FHT zu löschen (ähnlich wie beim Drucker die Druckaufträge löschen, falls er überfordert ist)?
    3b) Wieviel Befehle können überhaupt gespeichert werden?
    3c) Falls nein - welches Befehl von diesen 4 wird dann ausgeführt?

  3. Heißt es eigentlich „den Magneten“ oder „den Magnet“? :slight_smile:

MfG Wlad

So in etwa.

$temperatur = GetValueFloat ("Soll-Temperatur");
$StatusTFK_1 = GetValueBoolean ("TFK_1.Status");

if ($StatusTFK_1 == True)
FHT_SetTemperature(xxxxx, 5.5);

if ($StatusTFK_1 == False)
FHT_SetTemperature(xxxxx, $temperatur);

Ich korrigiere mich. Das dürfte so nicht gehen, da die Floatwerte mit „,“ eingelesen werden. Zum setzen aber ein „.“ nötig ist

Dann mach es mal so.

$temperatur = GetValueFloat ("Soll-Temperatur"); 
$temperatur = number_format($temperatur, 1, ".", ".");
$StatusTFK_1 = GetValueBoolean ("TFK_1.Status"); 

if ($StatusTFK_1 == True) 
FHT_SetTemperature(xxxxx, 5.5); 

if ($StatusTFK_1 == False) 
FHT_SetTemperature(xxxxx, $temperatur);

Hallo Wlad,

Dein Skript sollte so, wie es ist, funktionieren. Der „else“-Zweig ist ebenfalls OK. Du machst nichts falsch.

Es könnte allerdings sein, dass Du zu ungeduldig bist. Die FHTs sind auf extremes Energiesparen ausgelegt. Daher sind sie nur etwa alle zwei Minuten von außen (von der FHZ) ansprechbar. Manchmal dauert es auch noch länger.

Aus diesem Grund ist es auch nicht möglich die FHTs „schneller“ zu machen.

Jede Fenster-AUF oder Fenster-ZU Aktion stellt eine Ereignis dar und löst damit einen Trigger aus. Damit wird auch jedesmal ein Befehl in die FHZ-Queue eingereiht (max. 10). Alle Befehle werden abgearbeitet. Sie lassen sich nicht löschen.

Dieser Fall sollte daher tunlichst vermieden werden, da er nur Funkverkehr erzeugt, aber wegen der kurzen Aufeinanderfolge keine Temperatur-regelnde Wirkung haben kann.

Es ist grundsätzlich sinnvoll den Fenster-AUF Trigger möglichst sofort zu bedienen. Beim Fenster-ZU trigger dagegen, sollte man erst nach etwa 10 Minuten reagieren, da sich in dieser Zeit die Luft einigermaßen gleichmäßig durchmischt hat und somit energieverschwendende Überreaktionen des Reglers vermieden werden.

Zur Rechtschreibung:

Singular:               Plural:
Nominativ: der Magnet   die Magnete
Genitiv:   des Magnets  der Magnete
Dativ:     dem Magnet   den Magneten
Akkusativ: den Magnet   die Magnete

Daran sollte sich auch nach der neuen Rechtschreibung nichts geändert haben. Die Endung -en sieht man bei diesem Wort häufig, lässt sich aber nicht rechtfertigen.

Gruß
HJH

Hallo Rainer,

mit der Funktion number_format(…) wird der Float-Wert in einen String mit der angegebenen Formatierung umgewandelt!
An die Funktion FHT_SetTemperature(…) darf aber kein String übergeben werden, sondern es muss ein Float-Wert sein.

Wenn die Funktion GetValueFloat(…) den eingelesenen Wert ohne Fehlermeldung akzeptiert, dann enthält danach die Variable $temperatur auch tatsächlich einen gültigen Float-Wert. Es gibt keinen Grund daran zu zweifeln. Dieser Wert kann so, wie er ist, an den FHT übergeben werden.

Gruß
HJH

Servus!

Also vielen Dank für die Antworten. Wie schon gesagt, der letzte Code hat nicht funktioniert. Habe mich also für die erste Variante entschieden und dann festgestellt, daß es auch so funktioniert. Denn obwohl ich nach dem Fenster schließen die Temperatur auf 23.5 setze, springt irgendwann der Timer ein. Ist es noch die Zeit für die Komforttemperatur, so bleiben 23.5 Grad, ist es aber schon etwas spät, so wird die Absenktemperatur eingeschaltet.

So, nun komme ich zum nächsten Teil unseres Projektes. Ich habe hier die obengenannte Geräte. Es sind 3 Varianten nötig:

  1. Ich schalte das Licht per Schalter ein
  2. Ich schalte das Licht direkt per FS20 S20 (nicht über IPS) ein
  3. Ich schalte das Licht per FS20 S20 über IPS ein

Habe die Fernbedienung folgendermassen programmiert: Tastenpaar 1 für direkte Schaltung (Adresse 3111), Tastenpaar 2 für IPS (Adresse 3112). Die FS20 S20 ist im IPS mit Tastenpaar 2 angelegt.

Nun ist Folgendes passiert: ich schaltete das Licht mit Variante 1) ein. „FS20_SU.Status“ blieb auf „false“, dementsprechend ging das Licht ca. 40 Sekunden später aus. Das Gleiche passierte auch bei der Variante 2). Die Variante 3) ging überhaupt nicht. Nun habe ich folgenden Script und das dazu passende Event erstellt:

<?
$StatusFS20_S20 = GetValueBoolean („FS20_S20.Status“);

if($StatusFS20_S20 == True)
FS20_SwitchMode(XXXXX, True);

else
FS20_SwitchMode(XXXXX, False);
?>
Jetzt funktioniert zwar Variante 3), aber Varianten 1) und 2) behalten ihr Verhalten - das Licht geht später aus. Wie mache ich es richtig?

MfG Wlad