Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Compile-Fehler eines eigenen Logikbausteins im Debug

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

    HS/FS - √ - Compile-Fehler eines eigenen Logikbausteins im Debug

    Hallo zusammen,

    aktuell macht mich der HS echt fertsch. Er mosert im Debug über eine Zeile eines selbstgeschriebenen Logikbausteins, und ich kann den Fehler nicht finden.

    Die Zeile des Logikbausteins ist:
    Code:
    5012|0|""|"SN[3] or (SN[2]>0 and SN[1]=SN[2] and ((SN[2]=1 and EC[2]) or (SN[2]=2 and EC[4]) or (SN[2]=3 and EC[6])))"|""|0|0|3|0
    Als Exception meldet der HS im Debug daraufhin:
    Code:
    File "/hs/compile/hs_logik.py", line 119, in addFormel
    File "formula", line 1
    SN[3] or (SN[2]]0 and SN[1]=SN[2] and ((SN[2]=1 and EC[2]) or (SN[2]=2 and EC[4]) or (SN[2]=3 and EC[6])))
    ^
    SyntaxError: invalid syntax
    [5012L, 13162L, 0L, '', 'SN[3] or (SN[2]]0 and SN[1]=SN[2] and ((SN[2]=1 and EC[2]) or (SN[2]=2 and EC[4]) or (SN[2]=3 and EC[6])))', '', 0L, 0L, 3L, 0L]
    Wieso macht der HS aus "SN[2]>0" den Ausdruck "SN[2]]0"? Es handelt sich definitiv um die richtige Sourcecode-Zeile, da nach Auskommentieren derselben keine Exception geschmissen wird.

    Any idea?

    Ein vollkommen ratloser
    Marcus
    openHAB 4.2

    #2
    Zitat von Tokamak Beitrag anzeigen
    Code:
    5012|0|""|"SN[3] or (SN[2]>0 and SN[1]=SN[2] and ((SN[2]=1 and EC[2]) or (SN[2]=2 and EC[4]) or (SN[2]=3 and EC[6])))"|""|0|0|3|0
    Versuchs mal mit:
    5012|0|""|"SN[3] or (SN[2]>0 and SN[1]==SN[2] and ((SN[2]==1 and EC[2]) or (SN[2]==2 and EC[4]) or (SN[2]==3 and EC[6])))"|""|0|0|3|0

    Kommentar


      #3
      Hallo Markus,

      ich meine der Vergleich muesste "==" und nicht "=" lauten, sonst ist das eine Zuweisung.

      Soll die Speichervariable 3 boole-sch verknuepft werden? Probier doch mal (SN[3]==1). Ich meine der HS behandelt alle internen Datentypen als float-Values...

      Ist in der 5001-Zeile Speicher bis mindestens 3 definiert?

      mfg

      PS: Und wieder zu langsam, Mönsch.......
      2 Objekte, 6 Linien + KNX/IP-Bereich, HS 3 SW 2.8, Visu mit 2x 15"-Touch, Softwaregateway KNX/IP für 2x Novelan Wärmepumpe, viele Ideen und wenig Zeit

      Kommentar


        #4
        *argh* Danke, das == war's. Da habe ich den letzten Wochen wohl zu viel Excel-VBA programmiert, der kennt das == nicht.

        Die Abfrage "SN[3]==1" mag ich persönlich nicht. Boolean ist boolean. Den Vergleichsoperator versuche ich nur bei numerischen Werten zu nutzen.
        openHAB 4.2

        Kommentar

        Lädt...
        X