Blindenfisch und neues Projekt (Zeitschaltuhr)

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

Moderator: Co-Administratoren

blindenfisch
Beiträge: 43
Registriert: 28.01.2011, 19:04

Blindenfisch und neues Projekt (Zeitschaltuhr)

Beitrag von blindenfisch » 16.11.2011, 13:30

Hi alle zusammen,
ich habe mir mal wieder ein kleines Projekt ausgedacht:
Ich möchte mit einem Virtuellen Objekt "Zeitschaltuhr" drei meiner Funkschaltsteckdosen zur Weinachtszeit mit dieser "Zeitschaltuhr" alle zugleich ein und ausschalten.

Also habe ich das Virtuelle Objekt "Zeitschaltuhr" angelegt und als Typ schalter defeniert. Dann noch als Startwert ausgeschaltet hinterlegt und unter der Registerkarte Zeittabelle, 2 ein und ausschaltzeiten festgelegt, für einen Test.
Dann habe ich folgendes Macro geschrieben:

code:
DoseMitZeitschaltuhr1 := Zeitschaltuhr
DoseMitZeitschaltuhr2 := Zeitschaltuhr
DoseMitZeitschaltuhr3 := Zeitschaltuhr
wenn monat > 01 und monat < 12 dann
deaktivieren(ZEITSCHALTUHR)
endewenn
wenn monat > 11 und monat < 02 dann
aktivieren(ZEITSCHALTUHR)
endewenn
wenn Zeitschaltuhr ausgeschaltet dann
** DoseMitZeitschaltuhr ausschalten
Sprachausgabe ("Zeitschaltuhr aus")
endewenn
wenn Zeitschaltuhr eingeschaltet dann
** DoseMitZeitschaltuhr einschalten
Sprachausgabe ("Zeitschaltuhr an")
endewenn


So jetzt funktioniert es auch im Prinzip, aber es wird meine zeitliche Einschränkung ignoriert.
Also es ist egal welcher Monat auch immer ist die 3 Steckdosen funktionieren immer als Zeitschaltuhr.
Ich will aber nur zur Weinachtszeit die Beleuchtung damit ein und ausschalten und für den Rest des Jahres sollen die Steckdosen wieder normal ohne Zeitschaltfunktion sein.

Also hat mein Ego wieder einen Dämpfer bekommen und ich muss feststellen das es wohl nicht so einfach ist.

Kann mir noch mal jemand auf die Sprünge helfen?

Wäre sehr nett.

Danke schon mal
Gruß Michael

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

Re: Blindenfisch und neues Projekt (Zeitschaltuhr)

Beitrag von buempi » 16.11.2011, 14:03

Hallo Michael

1. Das Deaktivieren des Objektes hat keine Auswirkungen auf die in der Zeittabelle hinterlegten Schaltzeiten. Diese werden auch im deaktivierten Zustand ausgeführt.

Es gibt aber die Möglichkeit, die Zeittabelle selbst ein- und auszuschalten. Dazu muss man im betreffenden Objekt eine Variable vom Typ Schalter mit dem Namen "Zeittabelle" anlegen und kann dann die folgenden Anweisungen verwenden:

Code: Alles auswählen

Zeitschaltuhr.Zeittabelle einschalten
Zeitschaltuhr.Zeittabelle ausschalten
2. Die Bedingung

Code: Alles auswählen

wenn monat > 11 und monat < 02 dann
kann nie eintreten.

3. Wenn dein Makro abläuft, werden zuerst die Lichter geschaltet und erst dann erfolgt der Test, ob Weihnachtszeit ist, oder nicht.
blindenfisch hat geschrieben:Kann mir noch mal jemand auf die Sprünge helfen?
Genug "auf die Sprünge" geholfen? Willst du es jetzt selber weiter versuchen?

Viele Grüsse
Bümpi

blindenfisch
Beiträge: 43
Registriert: 28.01.2011, 19:04

Re: Blindenfisch und neues Projekt (Zeitschaltuhr)

Beitrag von blindenfisch » 16.11.2011, 14:32

Hi buempi,

danke für Deine schnelle Antwort! So ganz kappiert habe ich es noch nicht, warum erst geschaltet wird und dann die Prüfung auf den Zeitraum erfolgt.
Aber ich gehe mal in mich und probiere einige Tage etwas rumm
Ich bin leider nicht so der Denker und kann mir nur schwer vorstellen wie etwas ablaufen muss.
aber wenn ich durchs testen rausgefunden habe wie es sein muss, dann kann ich es auch auf andere Beispiele übertragen.
Also ich gebe noch nicht auf!

In 3 Wochen kommt meine tante da muss es gehen!
Danke gruß Michael

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

Re: Blindenfisch und neues Projekt (Zeitschaltuhr)

Beitrag von buempi » 16.11.2011, 15:13

blindenfisch hat geschrieben:So ganz kappiert habe ich es noch nicht, warum erst geschaltet wird und dann die Prüfung auf den Zeitraum erfolgt.
Makros laufen von oben nach unten ab. Wenn du sagst: "Licht ein- oder ausschalten" und erst weiter unten "Im Sommer nichts tun" (deaktivieren) ist es eben schon passiert, und das Licht brennt oder wurde ausgemacht!
blindenfisch hat geschrieben:In 3 Wochen kommt meine tante da muss es gehen!
Das schaffen wir bestimmt! Wenn du einen Schritt weiter bist, und es wieder klemmt, melde dich einfach...

Viele Grüsse
Bümpi

blindenfisch
Beiträge: 43
Registriert: 28.01.2011, 19:04

Re: Blindenfisch und neues Projekt (Zeitschaltuhr)

Beitrag von blindenfisch » 16.11.2011, 19:19

Hi buempi,

dann müsste es doch so besser sein:

code:

DoseMitZeitschaltuhr1 := Zeitschaltuhr
DoseMitZeitschaltuhr2 := Zeitschaltuhr
DoseMitZeitschaltuhr3 := Zeitschaltuhr
wenn monat > 01 und monat < 12 dann
Zeitschaltuhr.Zeittabelle ausschalten
endewenn
wenn monat < 2 und monat > 11 dann
Zeitschaltuhr.Zeittabelle einschalten
endewenn
wenn Zeittabelle ausgeschaltet dann
** DoseMitZeitschaltuhr ausschalten
Sprachausgabe ("Zeitschaltuhr aus")
endewenn
wenn Zeittabelle eingeschaltet dann
** DoseMitZeitschaltuhr einschalten
Sprachausgabe ("Zeitschaltuhr an")
endewenn
.........

Ich weiß jetzt noch nicht wann und ob man noch verlassen verwendet?

Einfach unten zum schluß noch verlassen drunter? Oder braucht man es hier nicht?

Und wie mache ich es wenn das Macro einmal durchgelaufen ist, damit alles weiter korrekt abläuft? Starte ich da das Macro immer wieder neu?
Der PC läuft ja immer und im günstigsten Fall will ich ja auch nichts manuell machen.
Also muss man doch sicherlich das Macro immer wieder neu laufen lassen? Und wann? Jedes Macro, oder nur bestimmte?

Das sind so Fragen die einem völligen Anfänger auf dem Gebiet durch den Kopf gehen.

Ich bin schon früher zu MSDOS Zeiten immer an den Batch Dateien verzweifelt.

Jedenfalls Danke erst einmal und vielleicht gehts ja schon????
Gruß Michael

dondaik
Beiträge: 12929
Registriert: 16.01.2009, 18:48
Wohnort: Steingaden
Hat sich bedankt: 1604 Mal
Danksagung erhalten: 222 Mal

Re: Blindenfisch und neues Projekt (Zeitschaltuhr)

Beitrag von dondaik » 16.11.2011, 19:28

siehe oben :-) ....wenn monat < 2 und monat > 11 dann .... wird wohl nie zutreffen ! oder ?
-------
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso :mrgreen: !!!
wer schreibfehler findet darf sie behalten.

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

Re: Blindenfisch und neues Projekt (Zeitschaltuhr)

Beitrag von buempi » 16.11.2011, 19:52

Hallo Michael

Du hast wieder die Schaltungen VOR die Monatsauswahl eingetragen und nach wie vor kann ein Monat nicht gleichzeitig kleiner als 2 und grösser als 11 sein. Da muss man mit ODER verbinden!

Ich will dich aber nicht länger zappeln lassen! - Immerhin: Mit deiner Frage nach der Anweisung "verlassen" denkst du schon mal in die richtige Richtung. Und auch die Tatsache, dass du dir Gedanken machst, wann und wie oft denn das Makro ablaufen soll, zeigt, dass du die Zusammenhänge einigermassen erfasst hast.

Es gibt mehrere Möglichkeiten, das Problem anzugehen. Ich zeige hier eine auf, die nicht unbedingt die eleganteste ist, weil sich das Makro-Objekt das ganze Jahr über "vergeblich" hin und her schaltet. Es braucht aber den geringsten Programmieraufwand, funktioniert ohne besondere Vorkehren auch nach einem Neustart der Anwendung und .... benötigt nicht mal den oben beschriebenen Schalter "Zeittabelle".

Du hast ja das Objekt "Zeitschaltuhr" vom Typ Schalter angelegt. In der Zeittabelle dieses Objektes sind die Schaltzeiten für die Weihnachtsbeleuchtung eingetragen. Im Makro-Bereich aktivierst du nun die Option "Ausführung bei Änderung" und trägst folgendes Makro ein:

Code: Alles auswählen

** Dieser WENN-Block bewirkt, dass in den Monaten Februar bis November
** abgebrochen wird, bevor die 3 Steckdosen ein-/oder ausgeschaltet werden:

wenn Monat > 1 und Monat < 12 dann

   ** Diese Zeile ist nur "Kosmetik":
   Zeitschaltuhr ausschalten

   ** das Makro wird hier abgebrochen
   verlassen

endewenn


** Nur in den Monaten Januar und Dezember läuft jetzt dieser Teil ab:

** Die drei Steckdosen werden so geschaltet, wie die "Zeitschaltuhr"
DoseMitZeitschaltuhr1 := Zeitschaltuhr
DoseMitZeitschaltuhr2 := Zeitschaltuhr
DoseMitZeitschaltuhr3 := Zeitschaltuhr
Jedes Mal, wenn nun aus der Zeittabelle deines Objektes "Zeitschaltuhr" eine Umschaltung erfolgt, läuft dieses Makro ab (weil "Ausführung bei Änderung" aktiviert ist). In den Monaten 2 bis 11 passiert nichts; im Januar und Dezember werden die 3 Schaltsteckdosen in den gleichen Zustand versetzt wie das Objekt "Zeitschaltuhr".

Viele Grüsse
Bümpi

blindenfisch
Beiträge: 43
Registriert: 28.01.2011, 19:04

Re: Blindenfisch und neues Projekt (Zeitschaltuhr)

Beitrag von blindenfisch » 18.11.2011, 15:02

Hi Ihr beide,
vielen Dank und nicht das Ihr denkt ich mache nichts, weil ich nicht gleich reagiere......

Ich habe noch ein wenig hinzugefügt, damit ich wieder höre was passiert, hab ich jetzt das Macro wie folgt:

Code:

** Dieser WENN-Block bewirkt, dass in den Monaten Februar bis November
** abgebrochen wird, bevor die 3 Steckdosen ein-/oder ausgeschaltet werden:

wenn Monat > 1 und Monat < 12 dann

** Diese Zeile ist nur "Kosmetik":
Zeitschaltuhr ausschalten
Sprachausgabe ("Zeitschaltuhr deaktiviert")
** das Makro wird hier abgebrochen
verlassen

endewenn


** Nur in den Monaten Januar und Dezember läuft jetzt dieser Teil ab:

** Die drei Steckdosen werden so geschaltet, wie die "Zeitschaltuhr"
DoseMitZeitschaltuhr1 := Zeitschaltuhr
DoseMitZeitschaltuhr2 := Zeitschaltuhr
DoseMitZeitschaltuhr3 := Zeitschaltuhr

Wenn Zeitschaltuhr ausgeschaltet dann
Sprachausgabe("Zeitschaltuhr aus")
sonst
Sprachausgabe("Zeitschaltuhr an")
endewenn
** Jedes Mal, wenn nun aus der Zeittabelle deines Objektes "Zeitschaltuhr" eine Umschaltung erfolgt, läuft dieses Makro ab (weil "Ausführung bei Änderung" aktiviert ist). In den Monaten 2 bis 11 passiert nichts; im Januar und Dezember werden die 3 Schaltsteckdosen in den gleichen Zustand versetzt wie das Objekt "Zeitschaltuhr".

.......

Ich Grübele jetzt nur warum alle Ansagen drei mal kommen???
Vermutlich, weil drei Schaltsteckdosen geschaltet werden?
Ich werde es in den nächsten Tagen dann noch mal mit der "Zeittabelle" versuchen, ich habe eine vage Hoffnung das dann die Ansagen nur jeweils einmal kommen????

Ich gebe bescheid.
Vielen Dank!
Gruß Michael

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

Re: Blindenfisch und neues Projekt (Zeitschaltuhr)

Beitrag von buempi » 18.11.2011, 15:34

blindenfisch hat geschrieben:Ich Grübele jetzt nur warum alle Ansagen drei mal kommen???
Bist du dir da sicher? Wenn du so vorgegangen bist, wie ich das oben beschrieben habe, ist das nicht möglich. - Oder wird das Makro noch aus anderen Makros oder Zeittabellen gestartet?

In einem Fall, kommt die Ausgabe tatsächlich nicht nur einmal: So, wie du es mit den Sprachausgaben gelöst hast, müsste die Ansage "Zeitschaltuhr deaktiviert" immer dann zweimal kommen, wenn sie aus der Zeittabelle heraus eingeschaltet wurde, aber nicht Januar oder Dezember ist. Das deshalb, weil wir ja "Ausführung bei Änderung" aktiviert haben, aber zur "Kosmetik" die Zeitschaltuhr - wenn sie über die Zeittabelle eingeschaltet wurde - wieder ausschalten. Dieses Ausschalten ist ja auch wieder eine Änderung, weshalb das Makro gleich nochmals ausgeführt wird.

Du kannst entweder die Zeile "Zeitschaltuhr ausschalten" auskommentieren oder den ganzen WENN-Block wie folgt ändern:

Code: Alles auswählen

** Dieser WENN-Block bewirkt, dass in den Monaten Februar bis November
** abgebrochen wird, bevor die 3 Steckdosen ein-/oder ausgeschaltet werden:

wenn Monat > 1 und Monat < 12 dann

   wenn geschaltet(Zeitschaltuhr) dann
      Sprachausgabe ("Zeitschaltuhr deaktiviert")
   endewenn

   ** Diese Zeile ist nur "Kosmetik":
   Zeitschaltuhr ausschalten

   ** Das "erledigt" bewirkt - zusammen mit dem obigen "geschaltet" - dass beim nächsten
   ** Durchgang keine Ansage mehr kommt!
   erledigt(Zeitschaltuhr)

   ** das Makro wird hier abgebrochen
   verlassen

endewenn
So bekommst du aber das ganze Jahr über jeden Tag zu den Schaltzeiten der Weihnachtsbeleuchtung eine Ansage. - Willst du das wirklich?

Viele Grüsse
Bümpi

blindenfisch
Beiträge: 43
Registriert: 28.01.2011, 19:04

Re: Blindenfisch und neues Projekt (Zeitschaltuhr)

Beitrag von blindenfisch » 18.11.2011, 16:37

Hi buempi,

oh Wahnsinn! Du bist ja schneller als die Polizei erlaubt!

Bist du dir da sicher? Wenn du so vorgegangen bist, wie ich das oben beschrieben habe, ist das nicht möglich. - Oder wird das Makro noch aus anderen Makros oder Zeittabellen gestartet?

In einem Fall, kommt die Ausgabe tatsächlich nicht nur einmal: So, wie du es mit den Sprachausgaben gelöst hast, müsste die Ansage "Zeitschaltuhr deaktiviert" immer dann zweimal kommen, wenn sie aus der Zeittabelle heraus eingeschaltet wurde, aber nicht Januar oder Dezember ist. Das deshalb, weil wir ja "Ausführung bei Änderung" aktiviert haben, aber zur "Kosmetik" die Zeitschaltuhr - wenn sie über die Zeittabelle eingeschaltet wurde - wieder ausschalten. Dieses Ausschalten ist ja auch wieder eine Änderung, weshalb das Makro gleich nochmals ausgeführt wird.


Naja dann glaube ich ich habe Recht, da in meiner Zeittabelle 3 Ein und Ausschaltzeiten hinterlegt sind.


So bekommst du aber das ganze Jahr über jeden Tag zu den Schaltzeiten der Weihnachtsbeleuchtung eine Ansage. - Willst du das wirklich?

Viele Grüsse

Oh nein, später dann nicht mehr. Ich wollte jetzt nur sehen oder hören ob alles geht. Und verstehen warumdie Meldungen doppelt kommen.
Und vielleicht mit meinen Leihenkentnissen probieren ob ich es lösen kann.

Aber Du hast mir ja schon eine Lösung gezeigt
Danke, da ergibt sich gleich noch die Frage:
Wo finde ich denn alle Befehle und Variablen die man verwenden kann?
Und auch so Programmierbeispiele und die Anwendung der Schreibweise?
Die kleine Textdatei die man beim Kauf der Software bekommt, gibt da ja nicht so viel her.
Danke Gruß Michael

Antworten

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