Master Controller Code geht nicht

Begonnen von Fire1990, 15 August 2013, 00:25:12

Vorheriges Thema - Nächstes Thema

Fire1990

Hallo will eine paar Buttons an einem fs 20 Sender zu Mastern machen die alles ansteuern (mehre Geräte funktionieren auch alles so weit bis auf den Rollladen Befehl
dieser laute ob auf dimmen oder anschalten wenn er 100 offen ist dann darf er herunter fahren:
define FS_20_schaltet_RollladenAlle_Runter notify FS20.Rollladen_Alle  {if ((Value("FS20.Rollladen_Alle") eq "dimup")||(Value("FS20.Rollladen_Alle") eq "Runter")&&(if(ReadingsVal("HM.Rollladen","level","99 %") eq "100 %"))) {fhem("set HM.Rollladen Runter")}}

der ander code runter dimmen oder ausschalten dan auf geht:
define FS_20_schaltet_RollladenAlle_Hoch notify FS20.Rollladen_Alle {if ((Value("FS20.Rollladen_Alle") eq "dimdown")||(Value("FS20.Rollladen_Alle") eq "Hoch")) {fhem("set HM.Rollladen Hoch")}}
was ist an dem ersten code falsch sehe leider keinen Fehler??

UliM

Vmtl wird das %-Zeichen durch den state ersetzt.
Lösung: aus % mache %%
Geht's dann?
Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Fire1990

hallo habe diesen befehl als zeitschaltur für automatische hoch und runter dort geht er *{sunset(-700,,)} {if (ReadingsVal("HM.Rollladen","level","99 %") eq "100 %") {fhem("set HM.RollladenRunter")}}

rudolfkoenig

Wenn ein Experte wie UliM was sagt, dann sollte man es einfach probieren, und danach mit der Diskussion anfangen. :)

Im at findet keine % Ersetzung statt (womit denn auch), im notify schon.
Es wird Zeit, dass aus deprecated "not implemented" wird.

Fire1990


rudolfkoenig

Vielleicht liegt es an den if(... && (if(...)))
Das innere if ist ueberfluessig bzw. vmtl. ein Syntax-Fehler.

Wenn es kompliziert wird, dann sollte man es in eine Funktion in 99_myUtils.pm auslagern, dann bekommt man deutlich bessere Fehlermeldungen.

Fire1990

wollte eh die Befehle von mir auslagern aber kann ich auch eine eigene 99Utils erstellen oder muss ich die von FHEM nehmen da ist ja schon ein bischen was drinnen damit ich meine eigenen besser kenntlich machen kann.

Puschel74

Hallo,

die 99_Utils.pm sollte, wenn möglich, so belassen werden wie sie ist.
Diese wird bei einem update überschrieben.

Eigenen Code sollte man in eine 99_myUtils.pm auslagern - siehe Wiki.
Dort bleibt der Code erhalten und wird durch ein update NICHT! überschrieben.

Die neue Routine muss nicht zwingend 99_myUtils.pm heissen - sie kann auch 99_meineRoutine.pm heissen.
Wichtig ist die 99 - alles mit 99 wird bei FHEM_Start automatisch geladen.
Der Name nach 99_ dient nur der Übersichtlichkeit für den Benutzer.
Wichtig ist der Inhalt - die Routinen innerhalb der "99_diegehörtmir.pm"

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.

Fire1990

ich bin es wieder nachdem ich keine Zeit hatte nun wieder versuche also eine 99utils ist nun angelegt und habe für den Rollladen diese Datei erstellt:
sub RollladenAlle_Runter() {
if ((Value("FS20.Rollladen_Alle") eq "Runter")||(Value("FS20.Rollladen_Alle") eq "dimup")&&(ReadingsVal("HM.Rollladen","level","99 %%") eq "100 %%")) {fhem("set HM.Rollladen_Runter")}


Ergebnis aus diesem er fährt immer herunter ober er oben ist oder nicht ist ihm egal??