Ankündigung

Einklappen
Keine Ankündigung bisher.

Methode vs. Action

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Methode vs. Action

    Hallo alle zusammen...

    ich habe bei mir ein OpenHab 2.x am laufen... Mit MQTT-Brocker...

    Läuft ganz ordentlich. Jetzt will ich aber etwas umstellen und da tut es nicht mehr...

    Ich habe in den RULE immer SendCommand ( SWITCH1 , ON ) verwendet....
    Ich will aber gerne aufgrund der Übersichtlichkeit SWITCH1.SendCommand ( ON ) verwenden...

    Da schalten die Regeln dann nicht mehr :-( Was kann das sein?

    Hatte schon einmal jemand ein ähnliches Problem?

    Viele Grüße

    Tino

    #2
    Beide Varianten die du dort beschreibst funktionieren nicht, da die korrekte Syntax in beiden Fällen

    Code:
    sendCommand
    ist.

    Kommentar


      #3
      Es ging mir nicht um irgendwelche syntaktischen Fehler, wenn ich etwas aus dem Kopf aufschreibe... Es ging mir darum beide Verfahren darzustellen und dann hatte ich die Frage, warum ein Verfahren nicht geht und das andere geht. Mich interessiert, ob man da irgend etwas zusätzliches einbinden muß, wenn man die Objektmethoden aufrufen will, etc...

      ob das nun SendCommand oder sendcommand oder sendCommand heißt, hatte ich als so wichtig angesehen.

      aber da ich ja geschrieben habe, daß das eine Verfahren geht, kannst Du davon ausgehen, das es sendCommand ist, was in den rules steht.
      da ich weiß das es funktioniert.

      Kommentar


        #4
        Zitat von TGloeckner Beitrag anzeigen
        Es ging mir nicht um irgendwelche syntaktischen Fehler
        Wenn du hier Codeschnipsel postest sollte es schon die exakte Syntax aus deinem aktuellen System sein, wir haben leider noch keine Glaskugel die uns in dein System schauen lässt. Und unnötige Zeit mit Antworten zu fehlerhaften geposteten Code zu verschwenden mag niemand. Oder du?

        Zitat von TGloeckner Beitrag anzeigen
        Mich interessiert, ob man da irgend etwas zusätzliches einbinden muß, wenn man die Objektmethoden aufrufen will
        Eine kurze Suche in diesem Forum hat das hervorgebracht:

        https://knx-user-forum.de/forum/supp...21#post1229121

        Du solltest nach weiteren Beiträgen von diesem User schauen, du kannst dann anschl. mit dem erworbenen Wissen ein Buch über openHAB schreiben.

        Kommentar


          #5
          Grundsätzlich ist die Action sendCommand(Item,Status) problematischer als die Methode Item.sendCommand(Status), weil die Definition der Action sendCommand(String,String) lautet, sprich, als Parameter werden zwingend zwei Strings erwartet. Das geht solange gut, bis man mal ein Primitive übergeben möchte, ein Primitive hat keine Eltern und erbt daher auch keine Methode .toString, welche openHAB ansonsten stillschweigend nutzt, um aus Nicht-Strings automatisch einen String zu erzeugen.
          Interessant ist, dass bei Dir die Methode nicht funktionieren soll. Ich habe verschiedentlich beobachtet, dass auch die Methode manchmal wählerisch ist, was den Parameter betrifft (die genauen Umstände harren noch einer Untersuchung...).

          Wichtig ist halt, dass Du die exakte Schreibweise verwendest, also camelCase, soweit es um Methoden oder Actions geht, UPPER wenn es um benannte Status oder Befehle geht (OFF, ON, UP, DOWN, INCREASE, DECREASE, OPEN, CLOSED...) und die exakte sCHreibwEiSe aller anderen Worte, wie z.B. Items. Leerzeichen hinter sendCommand sind auch eher unüblich, sprich, die Klammern gehören unmittelbar an das Wort dran.

          Kommentar

          Lädt...
          X