Variblen
Moderator: Co-Administratoren
-
- Beiträge: 296
- Registriert: 13.12.2015, 14:04
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 2 Mal
Variblen
Hallo alle zusammen,
ich bin in Sachen CL Studio absoluter Anfänger und aktuell total überfordert. Nachdem ich bereits mich durch 1000 Verschiedene Themen gelesen haben und immer noch nicht schlauer bin stelle ich meine Frage nun jetzt mal hier.
Bis jetzt habe ich immer über die WebUI programmiert, was auch eigentlich gut geklappt hat. da ich die Möglichkeiten mal erweitern wollte habe ich mir nun cl Studio heruntergeladen. Jedoch komme ich damit nicht so ganz klar. Einfache Sachen wie einem Taster zusagen welche Lampe er schalten soll ist kein Problem jedoch komplexere Sachen sind das Problem.
Z.B. habe ich in der WebUI so programmiert das wenn ich den Taster "Verlassen" drücke, das dann alle Türen gesperrt werden und die Lichter nach einer bestimmten Reihenfolge ausgehen. nach 1 Minute Flur nach 2 Minuten Hof Licht nach 5 Minuten fährt das Tor zu. Ich habe bis jetzt mit Systemvariablen gelöst gehabt. Vorallem soll nach dem nächsten drücken des Taster "Verlassen" die Sperrung der Türen und auch einige Lichter wieder eingeschaltet werden. Daher habe ich mich jetzt bei CL Studio mit dem Thema Variablen befasst und auch ein Beispiel programmiert, jedoch will schon das einfache Beispiel nicht klappen.
Ich habe im Makro des Taster eine Variable angelegt die ich "Licht" genannt habe und Standard auf 0 steht.
nun habe ich dort folgendes programmiert:
wenn Taster = "kurz" dann
Licht:=1
endewenn
wenn Taster = "lang" dann
Licht:=0
endewenn
noch schöner wär es, wenn der Taster nur mit Tastendruck kurz die zustände wechseln würde. Eventuell könnte man ja es ja so Lösen jedoch habe ich mich damit noch nicht befasst, da es anderes ja noch nicht Mals funktioniert
wenn Taster = "kurz" und Licht= 0 dann
Licht:=1
endewenn
wenn Taster = "kurz" und Licht=1dann
Licht:=0
endewenn
im Makro des Aktors habe ich folgendes reingeschrieben
wenn Licht = 1 dann
Waschhalle_Licht einschalten
endewenn
wenn Licht = 0 dann
Waschhalle_Licht ausschalten
endewenn
wo ist mein fehler bitte hälft mir
danke schon mal !!!!
ich bin in Sachen CL Studio absoluter Anfänger und aktuell total überfordert. Nachdem ich bereits mich durch 1000 Verschiedene Themen gelesen haben und immer noch nicht schlauer bin stelle ich meine Frage nun jetzt mal hier.
Bis jetzt habe ich immer über die WebUI programmiert, was auch eigentlich gut geklappt hat. da ich die Möglichkeiten mal erweitern wollte habe ich mir nun cl Studio heruntergeladen. Jedoch komme ich damit nicht so ganz klar. Einfache Sachen wie einem Taster zusagen welche Lampe er schalten soll ist kein Problem jedoch komplexere Sachen sind das Problem.
Z.B. habe ich in der WebUI so programmiert das wenn ich den Taster "Verlassen" drücke, das dann alle Türen gesperrt werden und die Lichter nach einer bestimmten Reihenfolge ausgehen. nach 1 Minute Flur nach 2 Minuten Hof Licht nach 5 Minuten fährt das Tor zu. Ich habe bis jetzt mit Systemvariablen gelöst gehabt. Vorallem soll nach dem nächsten drücken des Taster "Verlassen" die Sperrung der Türen und auch einige Lichter wieder eingeschaltet werden. Daher habe ich mich jetzt bei CL Studio mit dem Thema Variablen befasst und auch ein Beispiel programmiert, jedoch will schon das einfache Beispiel nicht klappen.
Ich habe im Makro des Taster eine Variable angelegt die ich "Licht" genannt habe und Standard auf 0 steht.
nun habe ich dort folgendes programmiert:
wenn Taster = "kurz" dann
Licht:=1
endewenn
wenn Taster = "lang" dann
Licht:=0
endewenn
noch schöner wär es, wenn der Taster nur mit Tastendruck kurz die zustände wechseln würde. Eventuell könnte man ja es ja so Lösen jedoch habe ich mich damit noch nicht befasst, da es anderes ja noch nicht Mals funktioniert
wenn Taster = "kurz" und Licht= 0 dann
Licht:=1
endewenn
wenn Taster = "kurz" und Licht=1dann
Licht:=0
endewenn
im Makro des Aktors habe ich folgendes reingeschrieben
wenn Licht = 1 dann
Waschhalle_Licht einschalten
endewenn
wenn Licht = 0 dann
Waschhalle_Licht ausschalten
endewenn
wo ist mein fehler bitte hälft mir
danke schon mal !!!!
- Herbert_Testmann
- Beiträge: 11062
- Registriert: 17.01.2009, 11:30
- Danksagung erhalten: 7 Mal
Re: Variblen
hallo
bei der Fehlersuche in HomePuter ist es immer sinnvoll, die Anwendung VisuWin zu nutzen. Dort kannst Du recht einfach den Status der Geräte sehen.
Bei Tastern ist es wichtig, dass in dem Fenster der Modulauswahl die tasten des Tasters registriert werden.
Nach jeder Änderung hast Du das Projekt natürlich an die CCU übertragen ??
Bei jedem Objekt gibt es den haken "History schreiben"
In den Globalen Einstellungen gibt es einen "Hauptschalter" für Historydaten schreiben
Dadurch entsteht eine Textdatei, in der die Zuständer der Objekte geloggt werden, bei denen der haken gesetzt ist. Dann kann man sich entweder über das WebInterface die Textdatei auf den PC laden und rein sehen, oder mit dem Programm HistoryCL (Freeware) die daten als Diagramm darstellen.
Auch dort kann man sehen, ob ein Taster gedrückt wurde und ein Aktor geschaltet hat.
So weit die Diagnosemöglichkeiten.
Ich würde in den taster ein makro schreiben, dass einfach einen Aktor schaltet. Damit wäre erst mal klar, ob der Taster erkannt wird.
Kurz drücken schaltet an, lang drücken schaltet aus.
Die variable würde ich nicht "Licht" nennen. Einfach weil das mit vordefinierten Gruppennamen oder anderen Objekten kollidieren könnte.
Wie wäre es mit "varLicht"
Das sollte die Troggel Funktion realisieren
Das makro im Aktor nutzt nichts, weil es nicht gestartet wird. Die makros müssen immer in dern auslösenen Teil rein, in dem Fall also in die varLicht
bei der Fehlersuche in HomePuter ist es immer sinnvoll, die Anwendung VisuWin zu nutzen. Dort kannst Du recht einfach den Status der Geräte sehen.
Bei Tastern ist es wichtig, dass in dem Fenster der Modulauswahl die tasten des Tasters registriert werden.
Nach jeder Änderung hast Du das Projekt natürlich an die CCU übertragen ??
Bei jedem Objekt gibt es den haken "History schreiben"
In den Globalen Einstellungen gibt es einen "Hauptschalter" für Historydaten schreiben
Dadurch entsteht eine Textdatei, in der die Zuständer der Objekte geloggt werden, bei denen der haken gesetzt ist. Dann kann man sich entweder über das WebInterface die Textdatei auf den PC laden und rein sehen, oder mit dem Programm HistoryCL (Freeware) die daten als Diagramm darstellen.
Auch dort kann man sehen, ob ein Taster gedrückt wurde und ein Aktor geschaltet hat.
So weit die Diagnosemöglichkeiten.
Ich würde in den taster ein makro schreiben, dass einfach einen Aktor schaltet. Damit wäre erst mal klar, ob der Taster erkannt wird.
Code: Alles auswählen
wenn Taster_Anw = "kurz" dann
Aktor := 1
sonst
Aktor := 0
endewenn
Die variable würde ich nicht "Licht" nennen. Einfach weil das mit vordefinierten Gruppennamen oder anderen Objekten kollidieren könnte.
Wie wäre es mit "varLicht"
Code: Alles auswählen
wenn Taster_Anw = "kurz" und varLicht = 0
dann
varLicht := 1
sonst
varLicht := 0
endewenn
Das makro im Aktor nutzt nichts, weil es nicht gestartet wird. Die makros müssen immer in dern auslösenen Teil rein, in dem Fall also in die varLicht
Code: Alles auswählen
wenn varLicht = 1 dann
Waschhalle_Licht einschalten
sonst
Waschhalle_Licht ausschalten
endewenn
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig
-
- Beiträge: 296
- Registriert: 13.12.2015, 14:04
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 2 Mal
Re: Variblen
Ich muss doch die Variable im Makro vom Taster schreiben, da ich ja mehrere Aktoren damit Steuern will mit einer Variable
Ich habe jetzt im Makro vom Taster "Verlassen" folgendes geschrieben:
wenn Taster_Verlassen = "kurz" dann
Verlassen einschalten
Verlassen1 einschalten für "00:01:00"
Verlassen2 einschalten für "00:02:00"
Verlassen3 einschalten für "00:03:00"
Verlassen5 einschalten für "00:05:00"
endewenn
wenn Taster_Verlassen = "lang" dann
Verlassen ausschalten
Verlassen1 ausschalten
Verlassen2 ausschalten
Verlassen3 ausschalten
Verlassen5 ausschalten
endewenn
nun wollte ich im Makro der Lampe folgendes schreiben
wenn Taster_Verlassen.Verlassen="aus" dann
Test_Lampe einschalten
endewenn
wenn Taster_Verlassen.Verlassen1="aus" dann
Test_Lampe ausschalten
endewenn
damit will ich erreichen, das wenn ich nach Hause komme und den Taster drücke die Lampe sich einschaltet, wenn ich gehe und den Taster lang drücke, soll die Variable Verlassen1 für 1 Minute eingeschaltet sein, wenn die Variable nach 1 Minute ausgeht, soll die Lampe auch ausgehen. Klappt auch, jedoch kann ich jetzt wenn Verlassen aus ist die Lampe nicht ausschalten und wenn Verlassen1 aus ist nicht mehr einschalten. ich benötige eine Anweisung wie bei der Web UI nur bei Änderung ausführen. Die Beim Status Änderung nur den Befehl weiter gibt und dann trotzdem normal geschaltet werden kann.
Ich habe jetzt im Makro vom Taster "Verlassen" folgendes geschrieben:
wenn Taster_Verlassen = "kurz" dann
Verlassen einschalten
Verlassen1 einschalten für "00:01:00"
Verlassen2 einschalten für "00:02:00"
Verlassen3 einschalten für "00:03:00"
Verlassen5 einschalten für "00:05:00"
endewenn
wenn Taster_Verlassen = "lang" dann
Verlassen ausschalten
Verlassen1 ausschalten
Verlassen2 ausschalten
Verlassen3 ausschalten
Verlassen5 ausschalten
endewenn
nun wollte ich im Makro der Lampe folgendes schreiben
wenn Taster_Verlassen.Verlassen="aus" dann
Test_Lampe einschalten
endewenn
wenn Taster_Verlassen.Verlassen1="aus" dann
Test_Lampe ausschalten
endewenn
damit will ich erreichen, das wenn ich nach Hause komme und den Taster drücke die Lampe sich einschaltet, wenn ich gehe und den Taster lang drücke, soll die Variable Verlassen1 für 1 Minute eingeschaltet sein, wenn die Variable nach 1 Minute ausgeht, soll die Lampe auch ausgehen. Klappt auch, jedoch kann ich jetzt wenn Verlassen aus ist die Lampe nicht ausschalten und wenn Verlassen1 aus ist nicht mehr einschalten. ich benötige eine Anweisung wie bei der Web UI nur bei Änderung ausführen. Die Beim Status Änderung nur den Befehl weiter gibt und dann trotzdem normal geschaltet werden kann.
-
- Beiträge: 296
- Registriert: 13.12.2015, 14:04
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 2 Mal
Re: Variblen
Noch eine kurze Frage. Ich würde gerne das ich nicht unterscheiden muss zwischen land und kurzem Tasten druck sondern immer kurzer Tasten druck nehmen kann kann ich das so umsetzen ?
wenn Taster_Verlassen = "kurz" und Verlassen = "aus" dann
Verlassen einschalten
Verlassen1 einschalten für "00:01:00"
Verlassen2 einschalten für "00:02:00"
Verlassen3 einschalten für "00:03:00"
Verlassen5 einschalten für "00:05:00"
endewenn
wenn Taster_Verlassen = "kurz" und Verlassen="an" dann
Verlassen ausschalten
Verlassen1 ausschalten
Verlassen2 ausschalten
Verlassen3 ausschalten
Verlassen5 ausschalten
endewenn
wenn Taster_Verlassen = "kurz" und Verlassen = "aus" dann
Verlassen einschalten
Verlassen1 einschalten für "00:01:00"
Verlassen2 einschalten für "00:02:00"
Verlassen3 einschalten für "00:03:00"
Verlassen5 einschalten für "00:05:00"
endewenn
wenn Taster_Verlassen = "kurz" und Verlassen="an" dann
Verlassen ausschalten
Verlassen1 ausschalten
Verlassen2 ausschalten
Verlassen3 ausschalten
Verlassen5 ausschalten
endewenn
-
- Beiträge: 7151
- Registriert: 31.12.2006, 15:18
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Rhein-Main
- Danksagung erhalten: 35 Mal
Re: Variblen
Hi,
1. Du musst von der WebUI-Denke wegkommen:
Wenn Du eine Variable änderst, dann wird NICHTS deswegen getriggert, kein anderes Makro, wo diese Variable drin benutzt wird.
2. Deine Wenn's machen genau das, was sie sollen, aber Du hebelst sie selbst aus (das Beispiel macht das gleiche wie Dein Code):
Was passiert, wenn dieses Makro läuft? a wird auf 1 gesetzt, dann stimmt die Bedingung für das erste Wenn und es wird auf 2 gesetzt. Der Code läuft weiter, und die 2. Bedingung passt auch, deswegen wird es wieder auf 1 gesetzt, es hat alles funktioniert.
Deswegen gibt es Befehle wie SONST, oder VERLASSEN, die man in der Hilfe nachschauen kann.
Der Familienvater
1. Du musst von der WebUI-Denke wegkommen:
Wenn Du eine Variable änderst, dann wird NICHTS deswegen getriggert, kein anderes Makro, wo diese Variable drin benutzt wird.
2. Deine Wenn's machen genau das, was sie sollen, aber Du hebelst sie selbst aus (das Beispiel macht das gleiche wie Dein Code):
Code: Alles auswählen
a:=1
wenn a=1 dann
a:=2
endewenn
wenn a=2 dann
a:=1
endewenn
Deswegen gibt es Befehle wie SONST, oder VERLASSEN, die man in der Hilfe nachschauen kann.
Der Familienvater
-
- Beiträge: 296
- Registriert: 13.12.2015, 14:04
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 2 Mal
Re: Variblen
Das ist mein Haupt Problem es hat noch nicht so Richtig klick gemacht.
was ist den in CL Studio vergleichbar mit "bei Änderung auslösen" in der WEB UI.
Ich setze eine Variable auf Aus diese soll das Licht ausschalten. wenn ich jedoch jetzt manuell das licht einschalten will funktioniert dies nicht da die Variable immer noch den ausschalt Befehl sendet. in der WEB UI konnte man ja einstellen das die Variable nur bei der Änderung den Befehl gesendet hat ???
was ist den in CL Studio vergleichbar mit "bei Änderung auslösen" in der WEB UI.
Ich setze eine Variable auf Aus diese soll das Licht ausschalten. wenn ich jedoch jetzt manuell das licht einschalten will funktioniert dies nicht da die Variable immer noch den ausschalt Befehl sendet. in der WEB UI konnte man ja einstellen das die Variable nur bei der Änderung den Befehl gesendet hat ???
- Herbert_Testmann
- Beiträge: 11062
- Registriert: 17.01.2009, 11:30
- Danksagung erhalten: 7 Mal
Re: Variblen
Hallo
ich habe im Moment nicht die Geduld eine mehrschichtige Verschachtelung zu durchdenken.
Geundsätzlich ist es so, wie ich oben schon mal schieb. Du setzt in einem makro (im Taster) die Variable.
Soll durch die Veränderung etwas passieren, dann schreibst Du ein makro in das Objetzt der Variable und stellst "bei Aktualisierung" ein. Sobald sich die variable verändert, wird das makro gestartet. Dort kannst Du ein weiteres makro aufrufen, um alle Lichter nacheinander aus zu schalten oder das direkt im makro der variable tun.
Bitte lass uns das Schritt für Schritt entwickeln, wenn Du Hilfe brauchst.
Für den Taster, lang oder kurz ...
Ich bin mir nicht sicher, ob das Setzen einer Variable überhaupt notwengig ist. BZW, ob man micht alles in den Taster schreiben kann.
PS Wenn "Verlassen" eine lokale Variable im Objekt Taster ist, kannst Du da natürlich kein makro rein schreiben. Wenn Du ein makro beim Ändern der variable ausführen Willst, dann musst Du ein neues Objekt "Verlassen" anlegen, in das man dann auch ein makro schreiben kann.
Bei meinem letzten Beispiel oben reicht aber auch eine lokale Variable im Taster.
ich habe im Moment nicht die Geduld eine mehrschichtige Verschachtelung zu durchdenken.
Geundsätzlich ist es so, wie ich oben schon mal schieb. Du setzt in einem makro (im Taster) die Variable.
Soll durch die Veränderung etwas passieren, dann schreibst Du ein makro in das Objetzt der Variable und stellst "bei Aktualisierung" ein. Sobald sich die variable verändert, wird das makro gestartet. Dort kannst Du ein weiteres makro aufrufen, um alle Lichter nacheinander aus zu schalten oder das direkt im makro der variable tun.
Bitte lass uns das Schritt für Schritt entwickeln, wenn Du Hilfe brauchst.
Für den Taster, lang oder kurz ...
Code: Alles auswählen
Wenn Taster_Verlassen ="kurz" oder Taster_Verlassen = "lang" dann
...
Ich bin mir nicht sicher, ob das Setzen einer Variable überhaupt notwengig ist. BZW, ob man micht alles in den Taster schreiben kann.
Code: Alles auswählen
Wenn Taster_Verlassen ="kurz" oder Taster_Verlassen = "lang" dann
Wenn Verlassen = 0 dann
licht1 ausschalten
warte ("00:00:10")
licht2 ausschalten
warte ("00:00:10")
licht3 ausschalten
...
Verlassen := 1
sonst
licht5 einschalten
warte ("00:00:10")
Tür_unten auf
...
Verlassen := 0
endewenn
endewenn
Bei meinem letzten Beispiel oben reicht aber auch eine lokale Variable im Taster.
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig
-
- Beiträge: 296
- Registriert: 13.12.2015, 14:04
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 2 Mal
Re: Variblen
Perfekt du hast mich echt geholfen. Es klappt schon mal. zwar noch ausbaufähig aber es wird. habe es jetzt so realisiert
Das klappt beim Schalter hast du mich falsch verstanden. Ich wollte es so realisieren das beim 1 Tastendruck verlassen eingeschaltet wird beim nächsten Tasten druck wieder ausgeschaltet. Kann ich das mit einer Und Verknüpfung machen ? in dem ich bei jedem Tastendruck und die Variable Verlassen aktiv ist bzw nicht aktiv ist?
oder hast du eine bessere Idee ?
danke
Code: Alles auswählen
wenn Taster_Verlassen = "kurz" dann
Verlassen einschalten
Zentrale_Licht einschalten
Flur_Licht einschalten
Dispo_1 ausschalten
Dispo_2 ausschalten
Warte 60 Sekunden
Zentrale_Licht ausschalten
Warte 60 Sekunden
Flur_Licht ausschalten
Warte 60 Sekunden
Hoflicht_neue_Halle ausschalten
Hoflicht_Waschhalle ausschalten
endewenn
wenn Taster_Verlassen = "lang" dann
Verlassen ausschalten
Zentrale_Licht einschalten
Dispo_1 einschalten
endewenn
oder hast du eine bessere Idee ?
danke
- Herbert_Testmann
- Beiträge: 11062
- Registriert: 17.01.2009, 11:30
- Danksagung erhalten: 7 Mal
Re: Variblen
Hallo
das mit dem ein mal drücken AN und noch mal drücken AUS nennt sich TROGGELN und das hatte ich schon 2 mal beschrieben.
Bei langem Tastendruck wird in diesem Beispiel immer aus geschaltet.
das ist für Deinen Bedarf allerdings zu kurz gedacht. Ich hatte in meinem Beispiel oben schon eine Variante, die immer im Wechsel ein und Aus schaltet (hoffe ich)
Sieh Dir das Beispiel noch mal an.
das mit dem ein mal drücken AN und noch mal drücken AUS nennt sich TROGGELN und das hatte ich schon 2 mal beschrieben.
Code: Alles auswählen
wenn Taster_Verlassen = "kurz" und Verlassen = aus dann
Verlassen einschalten
sonst
Verlassen ausschalten
das ist für Deinen Bedarf allerdings zu kurz gedacht. Ich hatte in meinem Beispiel oben schon eine Variante, die immer im Wechsel ein und Aus schaltet (hoffe ich)
Sieh Dir das Beispiel noch mal an.
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig
-
- Beiträge: 296
- Registriert: 13.12.2015, 14:04
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 2 Mal
Re: Variblen
Ah gut der begriff hat mich nichts gesagt
es wird so langsam so schwer ist es nicht, aber halt extrem viel am Anfang bis man sich mal durch gekämpft hat.
hast du noch en Typ für mich, ich würde gerne, das wenn ich einen Taster betätige sowohl an der Station wie auch auf meinem Tablet das dann eine Audiodatei wiedergegeben wird. z.B ein Klingelton oder halt andere Sachen die ich dann mir noch überlegen muss
hast du dazu eine einfache Lösung ??
es wird so langsam so schwer ist es nicht, aber halt extrem viel am Anfang bis man sich mal durch gekämpft hat.
hast du noch en Typ für mich, ich würde gerne, das wenn ich einen Taster betätige sowohl an der Station wie auch auf meinem Tablet das dann eine Audiodatei wiedergegeben wird. z.B ein Klingelton oder halt andere Sachen die ich dann mir noch überlegen muss
hast du dazu eine einfache Lösung ??