Autor Thema: Master Controller Code geht nicht  (Gelesen 1990 mal)

Fire1990

  • Gast
Master Controller Code geht nicht
« am: 15 August 2013, 00:25:12 »
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??

Offline UliM

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 2709
Aw: Master Controller Code geht nicht
« Antwort #1 am: 15 August 2013, 08:50:47 »
Vmtl wird das %-Zeichen durch den state ersetzt.
Lösung: aus % mache %%
Geht's dann?
Gruß, Uli
RPi2/Raspbian, CUL V3 (FS20, CUL_WS), HM-CFG-USB (ca. 30 HomeMatic-devices), LAN (HueBridge, iTunes, HarmonyHub etc.). Slave-Installation auf OSX.
Aktives Mitglied des FHEM e.V. (Marketing)

Fire1990

  • Gast
Aw: Master Controller Code geht nicht
« Antwort #2 am: 16 August 2013, 00:17:10 »
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")}}

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20776
Aw: Master Controller Code geht nicht
« Antwort #3 am: 16 August 2013, 07:59:15 »
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

  • Gast
Aw: Master Controller Code geht nicht
« Antwort #4 am: 16 August 2013, 09:51:50 »
es geht mit %% auch leider nicht

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20776
Aw: Master Controller Code geht nicht
« Antwort #5 am: 16 August 2013, 10:26:27 »
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

  • Gast
Aw: Master Controller Code geht nicht
« Antwort #6 am: 16 August 2013, 21:59:04 »
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.

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9828
Aw: Master Controller Code geht nicht
« Antwort #7 am: 16 August 2013, 22:04:58 »
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

  • Gast
Aw: Master Controller Code geht nicht
« Antwort #8 am: 01 September 2013, 18:20:17 »
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??