Es wurde auch mir mehrfach gesagt, dass die neue Software auch auf der alten Domovea laufen soll.
Allerdings war ich mir nie sicher, ob das dann auch so kommt.
Ein besserer Editor für die Sequenzen wäre wirklich wünschenswert.
Aber wenn sich die bisherigen Sequenzen nicht übernehmen lassen, weiss ich nicht ob ich da umsteigen werde.
Es steckt schon sehr viel Arbeit in meinen Sequenzen.
Schönen Abend,
Jörg
Ankündigung
Einklappen
Keine Ankündigung bisher.
Hager Domovea - Tipps & Tricks (Version 1.0: TJA 450, TJ 701A)
Einklappen
X
-
Aber sollte das Accessgateway dann nicht auch integriert sein? Also ein kompaktes Gerät ? Oder hab ich mich da verhört?
Einen Kommentar schreiben:
-
Die Livevorstellung war ein wenig kurz um wirklich viel sehen zu können. Die Oberflächengestaltung soll jedoch sehr viel flexibler sein. Ich werde mir jedenfalls eine bestellen sobald verfügbar. Das Domoveaportal gibt es hierfür nicht mehr. Verschlüsselung zum Endgerät über VPN. Es gibt jedoch hier die Möglichkeit intern(zu Hause) und extern zu unterscheidenZuletzt geändert von jurwa; 18.03.2018, 20:10.
Einen Kommentar schreiben:
-
Software benötigt neue Hardware. Dies war auch schon immer die Aussage die ich bekam. Es wird auch versucht die Konfigurationsdaten übernehmen zu können. Szenen und Logiken werden nicht übernommen.
Einen Kommentar schreiben:
-
jurwa
Prima, Danke für die Info.
Läuft die neue Software auch auf der "alten" Domovea? Das war ja immer versprochen worden.
Lassen sich ansonsten die Konfigurationen der "alten" Domovea in der Pro weiterverwenden?
Falls jemand auf der L+B danach fragen könnte, wäre prima!
Grüße,
Jörg
Einen Kommentar schreiben:
-
You do not have permission to view this gallery.
This gallery has 2 photos.
Einen Kommentar schreiben:
-
Wenn wir schon dabei sind, hier noch weitere Infos zum Thema "Auslösung von Sequenzen":
In den Auslösekriterien findet sich noch die Einstellung "kein Auslöser".
Was hat es damit auf sich?
Die Domovea Dokumentation schreibt dazu:
img_001.jpg
Nun, das ist kurz gesagt einfach falsch. Hier wurde in der Dokumentation etwas verwechselt:
Einen "Auslöser, der bei jeder Änderung des Eigenschaftswertes gestartet wird" gibt es eigentlich gar nicht.
Es gibt aber ein Auslösekriterium, das heisst "bei jeder Änderung", löst aber in Wirklichkeit nicht bei einer Änderung, sondern bei jedem Ereignis, also jedem beliebigen Datenpaket auf der angegebenen Gruppenadresse aus. Dabei ist es egal, ob sich zum Beispiel "0" und "1" abwechseln, oder mehrere "1"-en nacheinander empfangen werden, es löst einfach bei jedem Datenpaket aus. Daher wäre der Name "bei jedem Ereignis" wohl passender.
img_002.jpg
Nun, zurück zu der Einstellung "Kein Auslöser". Die hat tatsächlich eine sinnvolle Bedeutung:
Nehmen wir an, wir haben einen Präsenzmelder mit zwei Ausgängen:
1. der Helligkeit im Raum als 2-Byte Wert (Lux) sendet Werte von 0 bis 65535
2. dem Bewegungsauslöser als 1-Bit Wert (Alarm) sendet immer eine "1" bei Erkennung einer Bewegung
Folgende Aufgabe soll die Domovea dabei durchführen:
- schalte das Licht im Raum ein, wenn der Helligkeitswert im Raum < 50 Lux ist und eine Bewegung erkannt wird (ich ignoriere mal, dass ein Bewegungsmelder so eine Bedingung selbst abfragen kann, es geht hier nur um ein anschauliches Beispiel).
Man erstellt eine Domovea-Sequenz mit zwei Auslösekriterien:
1. Gruppenadresse Helligkeit (2-Byte Zahl) < 50 Lux
UND
2. Gruppenadresse Bewegungsauslösung (Wahrheitswert) = "Wahr"
In der Sequenz schaltet man dann das Licht ein.
Das funktioniert in einem ersten Versuch soweit auch schon mal.
Dummerweise schaltet sich später das Licht aber auch ein, wenn nur die Helligkeit kleiner 50 Lux wird, ohne dass jemand sich im Raum befindet.
Warum?
Solange der Bewegungsauslöser nur eine "1" sendet, gilt die erste Bedingung als erfüllt.
Die zweite Bedingung ist zudem erfüllt, wenn die Helligkeit < 50 Lux wird.
Beide Bedingungen funktionieren aber auch als aktive Auslöser, d.h. auch ein Helligkeits-Datenpaket kann die Sequenz auslösen. Und wenn vorher eine "1" bei der Bewegungsbedingung empfangen wurde (und nicht wieder durch eine "0" gelöscht), so gelten beide Kriterien als erfüllt und die Sequenz wird gestartet.
Hier kommt jetzt die Einstellung "kein Auslöser" ins Spiel:
Hiermit kann man die Auslösung der Sequenz für ein Kriterium (hier das Helligkeits-Signal) unterdrücken, d.h. dieser Eintrag löst die Sequenz nicht aus, gilt aber nach wie vor als Bedingung für eine Auslösung.
img_003.jpg
Zum Abschluss noch eine Information:
Liegen für eine abgefragte Gruppenadresse noch keine Daten vor (zum Beispiel wurde das Bewegungs-Ereignis noch nicht ausgelöst), so fragt die Domovea über den Bus nach dem aktuellen Wert. Deshalb sollte man darauf achten, dass solche Fragen auch beantwortet werden können (gegebenenfalls auch das L-Flag bei einem Kommunikationsobjekt setzen).
Die Domovea hört permament alles auf dem Bus mit und speichert die aktuellen Werte eine Zeitlang, damit nicht ständig Rückfrage gehalten werden muss. Nach einiger Zeit jedoch (20 Minuten?) werden die gespeicherten Werte verworfen.
Wichtig ist, dass die Datentypen genau stimmen. Erwartet die Domovea einen speziellen Datentyp (zum Beispiel 2-Byte) und kommt vom Bus etwas anderes, so wird die Sequenz *nicht* ausgeführt. Diese Fehler sind recht schwer zu entdecken, vor allem wenn der falsche Datentyp nicht von jeder Quelle falsch gesendet wird.
Grüße,
Jörg
Einen Kommentar schreiben:
-
azzkikrboy
Zum Thema "Aktion speichern" (Caching) siehe Dokumentation:
img_001.jpg
Also, wenn man hier auf "ignorieren" stellt, wird ein erneutes Auslöse-Ereignis während der Ausführung einer
Sequenz nicht gespeichert, d.h. die Sequenz wird nicht gleich darauf erneut ausgelöst.
Das macht insofern Sinn, als man ja gerade bereits das Ereignis abarbeitet, ein erneutes Auslösen also
nicht notwendig ist. Anders wäre das bei einem Zähler, hier möchte man jedes Ereignis mitbekommen
und wählt demzufolge "Speichern".
Grüße,
Jörg
Einen Kommentar schreiben:
-
Scrady
Hallo,
ich glaube bei Dir liegt noch eine ganz falsche Vorstellung über den Sinn von Variablen vor.
Es sind erstmal nur Speicherzellen für Daten jeglicher Art, die man Setzen, Verändern und Auslesen kann.
Das macht man immer innerhalb von Sequenzen.
Dass man mit einer Variable auch Sequenzen auslösen kann, ist ein nur sehr selten genutzter Mechanismus.
Am besten vergisst Du das mal zunächst.
So, was sollte unseren „Verarbeitungsprozess“ in der Domovea denn auslösen?
Da gibt es eigentlich nur zwei Möglichkeiten:
1. ein neuer Helligkeitswert, der vom PM gesendet wurde
2. eine zyklische Auslösung nach Zeit, zum Beispiel jede Minute
In unserem Fall scheint 1. die Auslösung per neuem Datenwert die richtige Lösung zu sein, wenn der Datenwert nicht zu oft gesendet wird, also nicht schneller als alle 20 Sekunden zum Beispiel. Sonst würde unsere Domovea durch die vielen Sequenzaufrufe irgendwann überlastet und man wählt besser Aufrufmethode 2.
Also, trage die Gruppenadresse der Helligkeitswerte als Auslöser für die neue Sequenz „RSF - Rolladen Steuerung Flur“ ein.
Achte dabei auf den richtigen Datentyp (vermutlich 1 Byte) und setze als Auslösekriterium „bei jeder Änderung“, d.h. bei jedem neuen Datenwert wird unsere Sequenz aufgerufen.
Dann vergleichst Du den Helligkeitswert (Gruppenadresse und erneut richtiger Datentyp) mit einer Konstante „Grenzwert PM Flur (4 Lux)“, die Du vorher angelegt hast (vom Typ 1 Byte und mit dem Datenwert „4“).
Jetzt benötigst Du eine verschachtelte Abfrage:
WENN der aktuelle Helligkeitswert < der Konstante ist, dann
WENN der Rolladen bisher nicht heruntergefahren worden (vorher angelegte Variable „RSF - (Binär) Status Rolladen Flur“ vom Typ „Wahrheitswert“ steht auf „unwahr“), so setze die Variable „RSF - (Binär) Status Rolladen Flur“ auf „wahr“ und fahre den Rolladen runter.
Im „sonst“-Zweig des ersten WENN (also Helligkeitswert nicht kleiner der Konstante) setzt Du die Variable wieder auf „unwahr“, damit der Rolladen wieder erneut gefahren wird, nachdem es dann auch mal wieder heller war.
Damit wäre die Aufgabe prinzipiell gelöst. Die Sequenz hat in der Praxis noch Schwächen, weil der Rolladen bei ständig schwankender Helligkeit immer wieder runtergefahren wird, das könnte man noch mit einem Zeitvergleich lösen (runterfahren nur einmal jede Stunde oder was auch immer man möchte). Noch eleganter wäre es, das automatische Fahren für eine bestimmte Zeit zu blockieren, nachdem man den Rolladen manuell betätigt hat, also der Mensch Vorrang vor der Maschine hat. Aber das ginge jetzt zunächst mal zu weit und macht die Lösung nur komplizierter.
So long,
Jörg
Einen Kommentar schreiben:
-
Hallo Jörg,
danke für das ausführliche Tutorial. Ich muss dich leider nochmal nerven bzgl. der Konstanten und Variablen.
1. Die Variable setze ich in der Sequenz "Rolladen bei Dämmerung runterfahren" als Auslöser..richtig?
2. Wie sage ich der Variablen, dass diese den Wert 1 bei Helligkeit < 4Lux bzw. Wert 0 bei Heligkeit >4Lux
Mein Problem ist, dass ich nicht verstehe wie ich eine Konstante bzw. variable auslöse. :-(
Einen Kommentar schreiben:
-
Scrady
Konstanten und Variablen funktionieren in der Domovea wie in anderen Programmiersprachen oder Skriptsprachen auch.
Hier also mal ein kleines Konstanten- und Variablen-Tutorial:
1.
alle Konstanten und Variablen sind immer global, d.h. sie gelten in allen Sequenzen. Wird eine Variable in einer Sequenz verändert, so gilt die Änderung auch in den anderen Sequenzen sofern dort diese Variable ebenfalls verwendet wird.
2.
der Inhalt von Variablen bleibt auch nach einem Neustart der Domovea erhalten.
3.
Domovea Sequenzen laufen gleichzeitig, parallel zueinander ab.
Die Variablen sind dabei nicht geschützt. Man kann zwar den Inhalt von Variablen in mehreren Sequenzen gleichzeitig auslesen, aber wenn man im gleichen Moment den Inhalt der Variable verändert, kann das zu einem Fehlerabbruch einer oder mehrerer Sequenzen führen. Es gibt Strategien, sich davor zu schützen. Wie das im Detail geht, würde hier jetzt zu weit führen.
Mit fehlerhaften Abbrüchen von Sequenzen muss man übrigens bei der Domovea immer mal rechnen. Deshalb sollten kritische Funktionen (wie Heizungssteuerung oder Alarmanlage etc.) möglichst nicht in der Domovea programmiert werden. Zumindest sollte man die Sequenzen fehlersicher programmieren und den Fehlerfall erkennen und darauf reagieren. Aber das geht jetzt zu sehr ins Detail, dass kann ich vielleicht ein andermal genauer erläutern.
4.
Alle Domovea Konstanten und Variablen haben eine interne Kennung, die ihnen direkt beim Anlegen zugewiesen wird. Damit wird in Wirklichkeit in den Sequenzen gearbeitet. Benennt man später eine Konstante oder Variable um, so wird nur der Name, aber nicht die Kennung verändert. Die Umbenennung damit automatisch gleichzeitig in allen Sequenzen statt.
Ich halte das für sehr praktisch, da man problemlos alle Konstanten und Variablen später noch umbenennen kann, ohne dabei durch jede Sequenz gehen und korrigieren zu müssen.
5.
wichtig: es gibt keine Möglichkeit zu sehen, in welcher Sequenz eine Konstante oder Variable verwendet wird.
Deshalb empfehle ich unbedingt, sich ein festes Namensschema für Konstanten und Variablen zuzulegen, so dass man sofort sieht für was sie verwendet werden. Sonst kommt es bei der Verwendung in mehreren Sequenzen ganz leicht zu Verwechslungen.
Folgendes Namensschema möchte ich empfehlen (wie man es dann macht ist jedem selbst überlassen):
1. Konstanten = <Name der Konstante> + (<Wert> + <Einheit>) Beispiel: Grenzwert PM Flur (4 Lux)
warum: will man die Konstante später einsetzen, sieht man auch gleich den Wert ohne nachschauen zu müssen. Änder sich mal der Wert, kann man einfach den Namen editieren, das steht dann ja gleich wieder richtig in allen Sequenzen.
2. Variablen = <Kürzel für Sequenz> - (<Typ>) <Name der Variablen> Beispiel: RSF - (Binär) Status Rolladen hochgefahren
Nennt man die Sequenz für die PM-Steuerung der Rolläden dann noch: "RSF - Rolladen Steuerung Flur", so ist eine eindeutige Zuordnung möglich.
Noch etwas: Es gibt in Sequenzen oft die Notwendigkeit für lokale Hilfsvariablen, die nur für Zwischenwerte benötigt werden und keine Bedeutung mehr haben, wenn die Sequenz durchlaufen wurde. Leider kennt die Domovea keine lokalen Variablen und damit entsteht eine Flut an extern nicht genutzten Globalvariablen.
Man kann sich hier mit einer speziellen Benennung helfen:
Lokalvariablen benennt man zum Beispiel so: <Kürzel für Sequenz> - (<Typ>) <Var n> Beispiel: RSF - (1 Byte) Var 1
Somit erkennt man lokale Variablen und kann sie innerhalb einer Sequenz auch mehrfach einsetzen.
Ok, ich hoffe das hilft ein wenig weiter.
Grüße, Jörg
- Likes 3
Einen Kommentar schreiben:
-
HM... leider schnale ich das noch nicht so ganz was die Kosntanten und die variablen bewirken sollen. Dachte zuerst, dass man mit deren Hilfe irgenwas simulieren kann, aber ist anscheinend nicht der Fall.
Einen Kommentar schreiben:
-
Scrady
Ja, ganz einfach:
ich setze voraus, Du hast in der Domo eine Sequenz programmiert, die auf den Helligkeitswert reagiert ("bei jeder Änderung").
Dann vergleichst Du den Helligkeitswert mit 4 Lux und fährst entsprechend die Rolläden runter.
Merke Dir doch einfach in einer Binärvariablen (vom Typ "Wahrheitswert"), ob der Luxwert beim letzten Aufruf der Sequenz bereits unter 4 Lux war.
Nur wenn das nicht der Fall ist, fährst Du die Rolläden.
Du musst das mit der Variablen nur richtig managen, dann klappt das so.
Falls Du die Steuerung nicht über die Domovea machst, melde Dich nochmal.
Viel Erfolg,
Jörg
Einen Kommentar schreiben:
Einen Kommentar schreiben: