Funktion SENDEWERT

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

Moderator: Co-Administratoren

Antworten
Funkmaus
Beiträge: 96
Registriert: 17.02.2008, 11:59

Funktion SENDEWERT

Beitrag von Funkmaus » 22.01.2011, 19:21

Hallo,

ich habe mal eine grundsätzliche Frage zu der Funktion sendewert (Objekt):

Angenommen ich habe folgendes Makro mit Namen "Lampe", welches ich alle 5 sek ausführe:

Code: Alles auswählen

Wenn Lampe eingeschaltet dann
Wenn Stoppzeit Lampe grösser 2 Minuten und Stoppzeit Schalter grösser 2 Minuten dann
Lampe ausschalten
warte 1 sek
sendewert (Lampe)
endewenn
endewenn
Frage: Wird der Befehl Sendewert nur bei dem Makrodurchlauf im Moment des Ausschalten der Lampe ausgeführt? Wenn die Lampe aus oder an ist doch nicht? Wird sendewert innerhalb einer wenn.....endewenn Funktion überhaupt ausgeführt?

Danke

Funkmaus
*******************************************
HM/ HMIP/ Addons/ 242 Geräte
Never touch a running system!!

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

Re: Funktion SENDEWERT

Beitrag von buempi » 23.01.2011, 10:05

Hallo Funkmaus

Die Anweisungen innerhalb eines WENN-Blocks werden nur dann ausgeführt, wenn die Bedingung zutrifft. Das gilt für alle Anweisungen, die dort stehen; also auch für SENDEWERT(). Das kannst du mit deinem Makro auch sehr gut überprüfen, wenn du die LED der FHZ-Schnittstelle beobachtest. - Es wird nur im Moment des Ausschaltens gesendet werden! - 2 mal!

Dass die Syntax in deinem Beispiel nicht korrekt ist, weisst du bestimmt?

Es gibt übrigens noch eine andere Möglichkeit, sicherzustellen, dass in einem periodisch ablaufenden Makro mit SENDEWERT() nicht zu häufig gesendet wird:

Code: Alles auswählen

wenn Uhrzeit zwischen Sonnenuntergang und Sonnenaufgang dann
   Licht einschalten
sonst
   Licht ausschalten
endewenn

wenn geschaltet(Licht) dann
   warte("00:00:01")
   Sendewert(Licht)
   warte("00:00:01")
   Sendewert(Licht)
   warte("00:00:01")
   Sendewert(Licht)
   erledigt(Licht)
endewenn
Das ERLEDIGT() ist in diesem Fall sehr wichtig. - Lies dazu mal die Beschreibung in der Homeputer-Hilfe.

Viele Grüsse
Bümpi

Funkmaus
Beiträge: 96
Registriert: 17.02.2008, 11:59

Re: Funktion SENDEWERT

Beitrag von Funkmaus » 23.01.2011, 18:30

Hallo buempi,

Danke für die Erklärung und den Hinweis mit geschaltet (Objekt). Die Funktion verwende ich zwar schon in meinem Projekt, aber in einem anderen Zusammenhang.. Man lernt immer dazu. :D

Ja, dass die Syntax nicht OK war, wusste ich. Es ging mir nur um die grundsätzliche Funktion.

Schönen Abend.

Funkmaus
*******************************************
HM/ HMIP/ Addons/ 242 Geräte
Never touch a running system!!

Antworten

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