Sollte die Lösung so einfach sein?
Ankündigung
Einklappen
Keine Ankündigung bisher.
Programm aus EibPC-Schulung
Einklappen
X
-
Zitat von enertegus Beitrag anzeigenEine andere Idee wäre die sleep()-Funktion zu nutzen und erst so nach 10 Sekunden, den EibPC wieder online schalten (das hab ich aber noch nicht getestet):
if systemstart() then {
read()....
sleep(EIN)
}
if after(systemstart(),10000u64) then sleep(AUS) endif
D.h. Aktionen, die man nicht unterdrücken bräuchte, müssen durch Freigaben unterdrückt werden, z.B. Fehler der Teilnehmer des DALI GW abfragen geht über: 1. Teilnehmer senden und 2. Daten lesen. Da geht dann nichts raus und die Antwort ist immer die gleiche (BTW auch wieder ein Beispiel für Schleifen und Felder).BR
Marc
Kommentar
-
Eine andere Möglichkeit ist, wenn man die Sytemstart abfragen zusammenstellt und nur von der letzten die Antwort über change abfragt und eine Variable steuern läßt, die man bei beliebigen kritischen Ausgaben mit abfragt:
If systemstart() then read '1/1/1'; \\
read '1/2/2'; \\
.
.
.
.
.
'read 2/3/1' endif
if change ('2/3/1'), then Startende=1 endif
oder: if after (change ('2/3/1'), 2000) then Startende=1 endif
"startende" kann man nun in alle kritischen Anweisungen beliebig mit and verknüpfen.
Im Busmonitor kann man sehen, welche als lezte abgefragt wird, neue setzt man immer vorher dazwischen.Der schöne Niederrhein läßt Grüssen
Andreas
Alter Hof mit neuer Technik
Kommentar
-
Da sleep() 'nur' das Senden der Telegramme unterbindet und nicht die Verarbeitung bzw. Abarbeitung des Codes
Ich sitze zwar noch auf Arbeit und konnte nicht wirklich viel darüber nachdenken, aber...
Das hinzufügen bei jeder Abfrage würde mich persönlich nerven.
Da möcht ich es einfacher haben. Auch wenn es für Michael mehr arbeit bedeutet.
Marcs Ansatz finde ich gut. Wenn auch schon wieder etwas "überladen" (nicht böse gemeint).
- Temperaturabhängige Aktionen können einen 'neutralen' Default Wert erhalten oder einen alternativen Messwert
- Uhrzeit könnte aus dem Zeitmodul gelesen werden
- Lampe war ein, aber DALI meldet Fehler und somit ist der Zustand AUS
Wobe ies vermutlich nur ein wenig Programmierung im extra Abschnitt ist, oder?
Dir würde es ja dann auch genügen, wenn einfach die normale Programmverarbeitung NACH der Abarbeitung eines bestimmten Abschnitts beginnen würde, stimmts?Gruß
Volker
Wer will schon Homematic?
Kommentar
-
Die Verknüpfung ist doch nur bei sehr wenigen Sachen überhaupt erforderlich.
Die Default-Werte bei Systemstart sind doch 0, das heißt viele Funktionen werden erst geschaltet, wenn eine 1 oder ein positiver Wert vorhanden sind.
Ausserdem habe ich z.B. auch so an vielen Stelle "if change" auch für den normalen Betrieb verwendet um Berrechnungen im normalen Validierungsschema anzustoßen. Bei den meisten dieser Verknüpfungen gibt es überhaupt kein Problem.
Ich habe inzwischen meinen EibPC mit 3% Programm voll und es ist erst 2 Mal aufgetreten, das ich mit einem Zusatz über "after systemstart" arbeiten mußte.
Den Weg über sleep sehe ich auch nicht, denn wie trigger ich anschließend die bereits "verschlafenen" Write-Anweisungen. Das wird noch umständlicher.Der schöne Niederrhein läßt Grüssen
Andreas
Alter Hof mit neuer Technik
Kommentar
-
Ich selbst benötige die auch nicht oft.
Vielleicht so 2-3 mal.
Ich kann nur den Wunsch nachvollziehen.
Ich glaube, dass wäre auch für viele Elektriker einfacher.
Wenn die ständig überlegen müssen, ob das jetzt wichtig beim Systemstart ist, dann nervt das. Das reduziert die Akzeptanz.
Kann man einfach sagen: Das hier wird beim Boot gemacht, danach geht´s los mit der Verarbeitung. Dann steigert das den Komfort, reduziert die Denkarbeit und im Endeffekt auch die Arbeitszeit.
Zumindest stelle ich mir das so vor, wenn ich mich in "meinen" Elektriker versetze.Gruß
Volker
Wer will schon Homematic?
Kommentar
-
Zitat von SnowMaKeR Beitrag anzeigenIch kann nur den Wunsch nachvollziehen.
Ich glaube, dass wäre auch für viele Elektriker einfacher.
Dann steigert das den Komfort, reduziert die Denkarbeit und im Endeffekt auch die Arbeitszeit.
Zumindest stelle ich mir das so vor, wenn ich mich in "meinen" Elektriker versetze.Der schöne Niederrhein läßt Grüssen
Andreas
Alter Hof mit neuer Technik
Kommentar
-
Gast
Das ist eine neues Programm für eine weitere geplante Aktivität.
Kompiler meckert bei Helligkeit komme nicht weiter. Wer hat eine Idee.
//Steuerung Rollo Essen EG
Sommer=month(01,04) and !month(31,10)
Hoch=("Helligkeit.Süd-1/0/22">200.0) and Zeit
Zeit=AUS
if wtime(08,30,00,WOCHENENDE) then Zeit=EIN endif
if wtime(05,30,00,WERKTAGS) then Zeit=EIN endif
Werktags=wtime(5,30,00,MONTAG) or wtime(5,30,00,DIENSTAG) or wtime(5,30,00,MITTWOCH)\\
or wtime(5,30,00,DONNERSTAG) or wtime(5,30,00,FREITAG)\\
if Hoch and Sommer and Werktags then \\
write("%Pos.anfahren Rollo Essen Ost OG-3/2/105",0%); \\
write("%Pos.anfahren Rollo Essen Süd OG-3/2/115",0%); \\
write("%Pos.anfahren Rollo Essen West OG-3/2/125",0%); endif
Zeit=AUS endif
Danke
Kommentar
-
Zitat von redstar Beitrag anzeigenSommer=month(01,04) and !month(31,10)
Das mit dem Sommer kommt mir spanisch vor.
Es soll doch von bis sein oder?
Vielleicht liegt da der Fehler.
Du bist natürlich schon viel weiter als ich mit den Programmierungen, respekt.
Da muss ich noch durch.Grüsse Bodo
Fragen gehören ins Forum, und nicht in mein Postfach;
EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;
Kommentar
-
Zitat von redstar Beitrag anzeigenKompiler meckert bei Helligkeit komme nicht weiter. Wer hat eine Idee.
Hoch=("Helligkeit.Süd-1/0/22">200.0) and Zeit
Helligkeit ist Fließkommawert, die Klammer ist somit 1 oder 0 und die Zeit hast du mit EIN/AUS definiert. Versuch mal die Zeit mit 1 bzw. 0 zu definieren.
und ausserdem bei:
write("%Pos.anfahren Rollo Essen West OG-3/2/125",0%); endif
endif ist zuviel statt dessen fehlt \\
Die Zeile:
or wtime(5,30,00,DONNERSTAG) or wtime(5,30,00,FREITAG)\\
ist das Ende der Aufzählung da darf kein \\ mehr stehen.Der schöne Niederrhein läßt Grüssen
Andreas
Alter Hof mit neuer Technik
Kommentar
-
Zitat von Bodo Beitrag anzeigenHoi Karl-Heinz
Das mit dem Sommer kommt mir spanisch vor.
Es soll doch von bis sein oder?
Vielleicht liegt da der Fehler.
nee, das stimmt. Schau doch mal im Handbuch auf Seite 49 unten.
Kommentar
-
Zitat von redstar Beitrag anzeigenKompiler meckert bei Helligkeit komme nicht weiter. Wer hat eine Idee.offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
Kommentar
-
Gast
Die Programmierung stammt aus den ersten Beta-Tagen des EibPC und lief mal.
Wurde allersdings immer wieder mal angepasst und jetzt kommt Fehler
Deklaration der Variable muss eindeutig sein in >Hoch="Helligkeit.Süd-1/0/22">200.0andZeit<
Kommentar
Kommentar