wie Befehle zusammenfügen

Begonnen von Vladi2010, 18 Januar 2013, 18:27:46

Vorheriges Thema - Nächstes Thema

Vladi2010

hallo, ich würde gerne die zwei Befehle zusammenfügen, ich komme aber mit den klammern noch nicht klar.

Es geht hier darum die P I D Werte auf 0 0 0  zu setzen wenn das Fenster auf ist, und zurück zu setzen auf die Werte  12 3 5 wenn Fenster wider  geschlossen ist.
Damit erreiche ich dass die Heizung ausschaltet  da pFactor=0 iFactor=0 dFactor=0 sind und  eine Multiplikation mit 0 = 0 ist, und somit  der PID den Stellantrieb auf 0% Stellt

Als zwei separate befehle funktioniert schon :-)

währe dankbar um Hilfe

define Fenster_AUF_Heizung_ZU_Kinderzimmer notify FS20_0dde00:on {fhem ("set heizung.2 factors 0 0 0")}
define Fenster_ZU_Heizung_AUF_Kinderzimmer notify FS20_0dde00:off {fhem ("set heizung.2 factors 12 3 5")}

grüße Andreas

Puschel74

Ungetestet aber sollte so (ähnlich) klappen.


define Fenster_Heizung_Kinderzimmer notify FS20_0dde00:.* {
  if ("%" eq "on") {
    fhem ("set heizung.2 factors 0 0 0");
  }
  else {
    fhem ("set heizung.2 factors 12 3 5");
  }
}

Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Zrrronggg!


Hab mal ne rein akademische Frage:

Warum
notify FS20_0dde00:.*
?

Wenn der Wert sowieso mit if ("%" ...) abgefragt wird (um später ELSE verwenden zu können)
warum dann FS20_0dde00 qualifizieren? (sofern man .* = beliebige Zeichenfolgen als qualifizieren bezeichnen kann)

Ich denke

define Fenster_Heizung_Kinderzimmer notify FS20_0dde00

reicht.

Oder irre ich mich da?

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Vladi2010

habe es jestzt so in die CFG eigefügt

define Fensterzustand_Heizung_Kinderzimmer notify FS20_0dde00:.* {if ("%" eq "on") {fhem ("set heizung.2 factors 0 0 0") } else { fhem ("set heizung.2 factors 12 3 5") }

die werte endern sich aber nicht :(

Fensterzustand_Heizung_Kinderzimmer return value: Missing right curly or square bracket at (eval 621) line 2, at end of line
syntax error at (eval 621) line 2, at EOF

Zrrronggg!

define Fensterzustand_Heizung_Kinderzimmer notify FS20_0dde00 {if ("%" eq "on") {fhem ("set heizung.2 factors 0 0 0") } else { fhem ("set heizung.2 factors 12 3 5") }  }
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Zrrronggg!

(du hast mindestens die letzte  }  vergessen, sagt er ja auch:
Missing right curly or square bracket)
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Puschel74

Hast recht Zrrronggg!
.* kann man hier auch weglassen
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Vladi2010

Jouuuuuuuuuuuuu   das Funktioniert ;)


kann mir von euch jemand sagen wie ich die Klammern Strichpunkte usw. anwende, oder fo ich es vertändlich nachlesen kann ?


basten Dank Andreas

Puschel74

Naja.
Klammern ist einfach.
Soviele du aufmachst musst du auch wieder schliessen.
( ) { }
Und die Strichpunkte -- welche?
; ist Abschluss von fhem-Zeilen
: ist ein Trenner
. ist ein beliebiges Zeichen
* und alles hinten dran

Ich hoff ich hab nix vergessen ;-)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Vladi2010

hmmm

wann benutze ich ( ) und wann { }?    einfach so wie früher im Matteuntericht ?

warum schrieben machne leute in mehreren Zeilen ?

Puschel74

Ich mach gern mehrere Zeilen weil es für mich übersichtlicher wird.
Geschmackssache sach ich mal
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Vladi2010

ok, dann werde ich mich jetzt mit den Klammern auseinandersetzn müssen  ;-)


habe aber noch eine Frage

ich würde gerne einen Schalter einschalten  wenn der Stellantrieb größer 0% ist, und wider Ausschalten sobalt der Wert gleich 0% ist.
Dafür vermute ich, muss ich nicht den PID verstellen so wie eben, sonder den PID auslesen....  hast du da eine Idee ?

Grüße Andreas

Puschel74

Du willst einen Schalter switchen wenn
a)der PID ungleich 0 ist oder
b)der Stellantrieb?
Da ich die 8v nicht direkt anspreche weiss ich nicht wie du die Ventilstellung abfragen kannst.
Wenn es aber ein Reading gibt wäre ReadingsVal dein Freund ;-)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Vladi2010

DEF   1234
NAME stellantrieb.2
NR 49
STATE 6 %
TYPE FHT8V
addr 1234
idx 02

set geht nur pair oder valve

Vladi2010

ReadingsVal giebt es soweit ich es als Anfänger sehen kan nicht :(