Hallo,
ich habe einen Stellantrieb FHT8V, den ich mit den Befehlen (Beispiel) set COC raw T12340126FF oder set stellantrieb.01 valve 100
auf den Stellwert 100% einstellen kann. Dies funktioniert auch einwandfrei.
Ich möchte aber den Stellwert berechnen (aus verschiedenen Parametern) und den berechneten Wert einer Variablen zuweisen. Über diese Variable soll dann das Ventil gesteuert werden.
Also so ähnlich wie nachstehend:
set stellantrieb.01 valve stellwert (wobei stellwert die variable ist).
Beim Speichern kommt es jetzt zu der Fehlermeldung, daß hinter valve ein Wert zwischen 0 und 100 stehen muß, also keine Variable möglich ist.
Hat jemand eine Idee, wie das Ventil über eine Variable gesteuert werden kann ?
Zitat von: frankie93 am 28 Dezember 2013, 15:45:36
set stellantrieb.01 valve stellwert (wobei stellwert die variable ist).
set stellantrieb.01 valve $stellwert
Aber warum nimmst nicht das Modul PID zum rechnen?
mit
set stellantrieb.01 valve $stellwert
geht es auch nicht.
Hier kommt auch die Fehlermeldung:
Set valve needs a numeric parameter between 0 and 100
dann ist vermutlich ein gebrocherner Wert drin.
Stelle sicher, dass nur ganzzahlige Werte übergeben werden.
in der variable steht nur ein ganzzahliger Wert
schon beim Speichern der fhem.cfg kommt die beschriebene Fehlermeldung (also ein Syntaxfehler)
dann muss schon genauer beschreiben, wie die Anweisung verpackt ist, in notify, at, ... oder einfach nur so in der fhem.cfg
zum Ausprobieren habe ich es nur so in der fhem.cfg stehen.
also so:
define stellantrieb.01 FHT8V 1234
attr stellantrieb.01 room Heizungen
define stellwert dummy
set stellwert 30
set stellantrieb.01 valve $stellwert
na dann ists klar.
Vorab, ich weiss jetzt nicht, ob man ein "set xxx" jetzt so einfach in die fhem.cfg setzen kann.
Aber du könntest das in ein notify packen
etwa
define X_init notify global:INITIALIZED {\
fhem "set stellwert 30";;\
my $soll=ReadingsVal("stellwert","state","0")+0;;\
fhem "set stellwert $soll";;\
}
ja, aber wie bekomme ich jetzt den Inhalt der Variable $soll in den Stellantrieb
z.b. do oben in dem notify mit einem zusätzlichen
fhem "set stellantrieb.01 valve $soll"
Danke Bernhard für Deine Hilfe.
Es funktioniert