Mischersteuerung: Unterschied zwischen den Versionen
K (→Define: Beispiel für Schaltbefehlf) |
Epsrw1 (Diskussion | Beiträge) |
||
Zeile 72: | Zeile 72: | ||
|pollInterval ||||0.1||Zeitintervall nach dem FHEM prüft, ob die interne Stoppzeit erreicht wurde. Hier sollte mit einem möglichst kleinen Wert gestartet werden, der vorsichtig erhöht werden kann, falls FHEM zu langsam läuft wegen des Mischermotors. | |pollInterval ||||0.1||Zeitintervall nach dem FHEM prüft, ob die interne Stoppzeit erreicht wurde. Hier sollte mit einem möglichst kleinen Wert gestartet werden, der vorsichtig erhöht werden kann, falls FHEM zu langsam läuft wegen des Mischermotors. | ||
|- | |- | ||
|resetOtherDeviceAtCalibrate || string ||||Fhem Device das am Ende des Kalibriervorganges zusätzlich resettet wird. (command: set <resetOtherDeviceAtCalibrate> reset" wird abgesetzt) | |||
|- | |||
|STELLMOTORrltype ||[wechsel einzel]||wechsel||RL-Out-Port schaltet um zwischen R und L Lauf, und Start-Out-Port wird für jede Motorbewegung eingeschaltet. Bei "einzel" wird Start-Out-Port für Linkslauf einzeln geschaltet, und RL-Out-Port für Rechtslauf einzeln geschaltet. | |STELLMOTORrltype ||[wechsel einzel]||wechsel||RL-Out-Port schaltet um zwischen R und L Lauf, und Start-Out-Port wird für jede Motorbewegung eingeschaltet. Bei "einzel" wird Start-Out-Port für Linkslauf einzeln geschaltet, und RL-Out-Port für Rechtslauf einzeln geschaltet. | ||
Version vom 2. Juni 2014, 13:11 Uhr
---- noch nicht Teil von FHEM ---- | |
---|---|
Zweck / Funktion | |
Dieses Modul ist noch Entwicklung | |
Allgemein | |
Typ | undefiniert |
Details | |
Dokumentation | ModUndef |
Modulname | 98_STELLMOTOR.pm |
Ersteller | epsrw1 |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Das Fhem-Hilfsmodul STELLMOTOR bietet eine einfache Möglichkeit, mit zwei Relais den Rechts-/Linkslauf eines (Mischer)motors zu steuern.
Features
Modul und diese Bearbeitung sind noch in Entwicklung
- Wiedereintrittsfähig nach einem Neustart
- Wiederholungsgenauigkeit durch Ausgleich von Rundungs- und Laufzeitabweichungen
- Vermeiden von Blockade des FHEM während der Laufzeit des Motors
Thread im Forum:[1]
Beschreibung
Vorrangig ist dieses Modul für zwei Relais an eine GPIO oder an PIFace Pins eines Rasberrys gedacht; es bietet aber auch die Option, zwei Schaltaktoren per Funk (aus Timinggründen nicht empfohlen) oder 1-Wire anzusteuern.
Die Set-Befehle für die Mischerstellung kommen idealerweise aus der Bewertung der Vorlauftemperatur durch ein Modul wie PID20 [2]. Dieser berücksichtigt auch den zeitlichen Verlauf der Temperaturänderungen im Vorlauf und ist vielfältig anpassbar.
Aus den Werten MaxTics (Default=100, für Prozentanzeige) und MaxDriveSeconds (Laufzeit des Motors von 0 bis 100%) wird die Zeit berechnet, die der Motor nach rechts oder links laufen muss, um die mit set gewünschte Ventilstellung zu erreichen.
FHEM läuft dann weiter ohne einzufrieren, und prüft im Loop nur noch ob, die Stoppzeit im Cache erreicht ist. Da der Stopp nie exakt zur geplanten Zeit ausgeführt wird, liegt im Cache ein weiterer Wert der die Differenz zwischen geplanter und tatsächlicher Stoppzeit dem nächsten Kommando hinzurechnet. So werden sich addierende kleine Zeitdifferenzen vermieden.
Zum Kalibrieren (set calibrate) fährt der Motor einfach volle Zeit nach links/null. Hier wird der in Mischermotoren wie dem Honeywell Centra VMK eingebauten Entschaltetr genutzt, um den "Null-Punkt" sicher zu finden. Falls ein angeschlossener Motor solche Endschalter nicht hat, müssen die für diese Schaltungsweise unbedingt vorgesehen werden.
Define
define <name> STELLMOTOR <PiFace|Gpio|FhemDev> <RL-Out-Port> <Start-Out-Port>
Für den Schaltvorgang "baut" STELLMOTOR einen set-Befehl zusammen. Beispielsweise bei FhemDev
set <RL-OUT-Port> 0 sowie set <RL-OUT-Port> 1 zum Einschalten links
set <RL-OUT-Port> 0 sowie set <RL-OUT-Port> 0 zum Ausschalten links
Um die Wirkung auszuprobieren, ohne jedes Mal zum Mischer rennen zu müssen, bietet sich an zwei Dummys zu verwenden:
define Stellmotor2rl dummy
define Stellmotor2start dummy
set <name> 45
stellt den Mischer nun auf 45%. Angenommen, stand er bei 10%, wird er nun (45-10)*MaxDriveSeconds/MaxTics Sekunden lang nach rechts laufen und dann von STELLMOTOR gestoppt.
Attribute
Parameter | Wertebereich | Default | Beschreibung |
---|---|---|---|
MaxDriveSeconds | [0...n] | muss angepasst werden | gestoppte Zeit in Sekunden, die der Motor für die Fahrt von 0 bis 100 Prozent braucht |
MaxTics | [0...100] | 100 | Mischerstellung - bei Prozentangaben (PID20) 100, bei Winkelangaben anzupassen |
pollInterval | 0.1 | Zeitintervall nach dem FHEM prüft, ob die interne Stoppzeit erreicht wurde. Hier sollte mit einem möglichst kleinen Wert gestartet werden, der vorsichtig erhöht werden kann, falls FHEM zu langsam läuft wegen des Mischermotors. | |
resetOtherDeviceAtCalibrate | string | Fhem Device das am Ende des Kalibriervorganges zusätzlich resettet wird. (command: set <resetOtherDeviceAtCalibrate> reset" wird abgesetzt) | |
STELLMOTORrltype | [wechsel einzel] | wechsel | RL-Out-Port schaltet um zwischen R und L Lauf, und Start-Out-Port wird für jede Motorbewegung eingeschaltet. Bei "einzel" wird Start-Out-Port für Linkslauf einzeln geschaltet, und RL-Out-Port für Rechtslauf einzeln geschaltet.
ACHTUNG: falsche Einstellung kann zu Kurzschluß am Motor führen, bitte Einstellung genau überdenken oder mit dummy testen bei einzel: Rechtslauf: start=0 rl=1 Linkslauf: start=1 rl=0 Ruhe: start=0 rl=0 bei wechsel: Rechtslauf start=0 rl=1 Linkslauf: L start=1 rl=0 Ruhe: start=0 rl=0 |
readingFnAttributes | readingFnAttributes |
Settings
SET | Wertebereich | Beschreibung |
---|---|---|
set <name> N | [0...100] | stellt den Mischer auf N % Öffnung |
set <name> calibrate | stellt den Mischer auf 0 %; maximaler Linkslauf bis zur Endschalterpostion links | |
set <name> reset | Setzt die Position und die Werte im Cache auf Null. Verwendung ist intern (am Ende von calibrate) oder nach mechanischem Neueinbau des Motors (da reicht aber auch ein Calibrate) |
Readings
readings | Wertebereich | Beschreibung |
---|---|---|
position | [1..100%] | der Wert wird gesetzt am Beginn einer Mischerbewegung (anderer Wertebereich, wenn MaxTics nicht 100) |
state | active,error,position | Position wird beim Stopp der Motorbewegung gesetzt |
lastStart | Zeitstempel der letzten Motorbewegung | |
locked | [0 1] | Steht auf 1 während der Motor gerade läuft (Calibrate oder gewünsche Position per set).
Neue Kommandos werden während lock nur in eine Warteschleife genommen. Zeigt im im Frontend, dass der Motor gerade läuft. |
queue_lastdiff | abhängig von der FHEM-Last oder anderen blockierenden Kommandos wird das Stopp-Kommando mir nahe an der kalkulierten Stoppzeit ausgeführt, vermutlich nie exakt. STELLMOTOR merkt sich die Zeitdifferenz, zu der der Motor wirklich gestoppt weurde und addiert bei der nächsten Bewergung des motors die Differenz, um möglichst präzise die wirkliche Motorstellung zu erreichen. | |
rlport | Pin-Nr, gpio/piface oder fhem device name bei typ FhemDev | |
startport | Pin-Nr. gpio/piface oder fhem device name bei typ FhemDev | |
stopTime | Null oder die errechnete Zeit zum Stopp der Motorbewegung | |
command_queue | Position einer anstehenden neuen Motorposition, die angefordert wurde als die letzte Motorbewegung noch ausgeführt oder das Modul disabled war | |
OutType | Bei der Defintion gewählte Arbeitsart: PiFace,Gpio,FhemDev | |
DoResetAtStop | Zeitstempel des Ende der letzten Kalibrierfahrt |
Weblinks
- to be continued