Ankündigung

Einklappen
Keine Ankündigung bisher.

Syntaxfehler beim Schreiben von Variable

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

    Syntaxfehler beim Schreiben von Variable

    Hallo Zusammen,

    hab ein Problem, und komm nicht weiter.
    Ich errechne mir meine tatsächliche Temperatur vom Flur, da der Temp-Fühler fast an der Deck sitzt.
    Die erste Zeile vom Code funktioniert noch, aber die zweite, wo ich die korrigierte Temp wieder auf den Bus schicke funktioniert nicht... -> Syntaxfehler.
    Was ist falsch?

    if change ("Flur IstWert-3/1/24") then IstTempFlur=(("Flur IstWert-3/1/24")-2.0) endif
    if change IstTempFlur then write ("Flur errechneter IstWert-3/1/28",IstTempFlur) endif

    viele Grüße
    Bernhard

    #2
    Klammer um das change
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      und man könnte das noch schön in eine Zeile packen, falls Du die berechnete Temp nicht noch anderweitig brauchst:

      if change("Flur IstWert-3/1/24") then write("Flur errechneter IstWert-3/1/28", "Flur IstWert-3/1/24" - 2.0) endif
      ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

      Kommentar


        #4
        Danke euch beiden für den Tip! Werd ich gleich ausprobieren.

        Kommentar


          #5
          Also Klammer um das change hat auch nix gebracht, noch immer Syntaxfehler.
          Der Code von Uwe funktioniert.
          Ich würd nur gern verstehen warum der Code von Zeile 1 funktioniert und Zeile 2 nicht...

          Kommentar


            #6
            Zitat von encymon Beitrag anzeigen
            Also Klammer um das change hat auch nix gebracht, noch immer Syntaxfehler.
            Moment, du hast aber die Variable IstTempFlur auch vorher definiert, oder (vgl. Handbuch ab S. 49)
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              zeig doch mal, wie deine Zeile jetzt aussieht. Und vor allem die komplette Fehlermeldung.
              ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

              Kommentar


                #8
                Guten Morgen,

                der Code von dem ganzen Abschnitt sieht so aus:

                //Heizung Flur OG================================================ ================================================== ================================================== ==
                // Leseanforderung der Temperatur vom Rauchmelder Flur OG
                IstTempFlur=0.0
                if stime(30) then read ("Flur IstWert-3/1/24") endif
                if change ("Flur IstWert-3/1/24") then IstTempFlur=(("Flur IstWert-3/1/24")-2.0) endif
                //if (change IstTempFlur) then write ("Flur errechneter IstWert-3/1/28",IstTempFlur) endif
                if change("Flur IstWert-3/1/24") then write("Flur errechneter IstWert-3/1/28", "Flur IstWert-3/1/24" - 2.0) endif


                die Auskommentierte Zeile funktioniert nicht.

                die Fehlermeldung wenn ich sie aktiviere sieht so aus:

                Syntaxfehler in Zeile:[216]
                >if (change IstTempFlur) then write ("Flur errechneter IstWert-3/1/28",IstTempFlur) endif< in der Datei "C:/Users/zion/Desktop/EIB Studio EIB PC/v3.21/EibStudio-win/EibstudioData/tmpApp.txt"
                Gültig bis Spaltenposition: {0}
                STOP Parser --> if (change IstTempFlur) then write ("Flur errechneter IstWert-3/1/28",IstTempFlur) endif


                ID:4
                EibParser wurde mit Fehler beendet.

                Kommentar


                  #9
                  Noch ein Hinweis: in der Variablen IstTempFlur steht auch der richtige Wert drin!

                  Kommentar


                    #10
                    Klammer falsch gesetzt!

                    nicht
                    Code:
                    if (change IstTempFlur) then write
                    sondern
                    Code:
                    if change( IstTempFlur) then write
                    Wer lesen kann ist klar im Vorteil. hier stand grad noch was wegen auskommentiert, jetzt hab ich aber verstanden, wie Du es meinst

                    Und was ganz anderes:
                    liest Du die Temp von einem Gira dual RM? Hast Du den 230V Sockel. Das häufige Auslesen der Temp saugt Dir sonst die Batterie leer!
                    Zuletzt geändert von Uwe!; 01.04.2016, 10:30.
                    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                    Kommentar


                      #11
                      Danke Uwe so gehts. Wusste nicht, dass ich auch für die Vaiablen Klammern verwenden muss.
                      Ja ich hab den Gira Rauchmelder ohne 230V Sockel. Batterie war Weihnachten zwei Jahre drin, mal schauen wie lange sie hält. evtl schalte ich das auslesen im Sommer aus, hatte die Temperatur zur Regulierung meiner Wandheizung verwedet.
                      Batterie ist eine normale Varta, keine Lio

                      Kommentar


                        #12
                        nicht die Variabel braucht die Klammern, sondern die Funktion! Die Funktion heißt "change()". Falls Du Dich damit auskennst, so wie z. B. in MS-Excel "=Summe()"

                        Fast alle EibPC (oder alle???) haben ein Klammernpaar am Ende, wo die zu übergebenden Werte drin stehen.

                        Wegen RM: Hast Du FBH? Dann reicht sicher die Temp all 15 Min zu lesen! Auch bei HK sollte alle 5 Min reichen!
                        ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                        Kommentar


                          #13
                          ich habe eine Wandheizung, sollte ähnlich wie ein FBH sein, vlt ein bißchen schneller.
                          Aber in der Küche steht ein Holzofen und ich wollte sehen, wie sich die Temp im Flur im Verhältnis zur Küche verhält.
                          Ist eine gute Idee das ich das Intervall veringere!

                          Kommentar


                            #14
                            KlugscheisserMode 'ON'

                            Erhöhen der Intervalle, wäre aber hier besser. Wie Uwe schreibt, sonst ist die Batterie schnell leer.

                            Interval= Zeitraum zwischen zwei Zeitpunkten.
                            Daher
                            kleiner Interval = mehr Zeitpunkte pro Zeiteinheit,
                            großer Interval = weniger Zeitpunkte pro Zeiteinheit.

                            KlugscheisserMode 'OFF'
                            Aber du meintest sicher das Richtige.
                            Zuletzt geändert von spassbird; 05.04.2016, 06:47.
                            „Der Horizont der meisten Menschen ist ein Kreis mit dem Radius 0 und das nennen sie ihren Standpunkt.“ und " Das Wissen entsteht aus Erfahrung, alles andere ist nur Information" Albert Einstein.

                            Kommentar

                            Lädt...
                            X