Ankündigung

Einklappen
Keine Ankündigung bisher.

EibPC: Problem mit Interpretation Datentyp f16

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

    EibPC: Problem mit Interpretation Datentyp f16

    Hallo Team!

    Ein Schaltaktor mit Strommessung liefert einen Stromwert. Er wurde in der ETS/4 angelegt als DPT 7.012.
    Ist eine Leuchte angeschlossen und eingeschaltet, so wird im ETS-Gruppenmonitor der Wert 00 76 (118mA) geliefert. -> OK

    Das ETS-Projekt als *.knxproj exportiert, ins Wiregate importiert, wird dort korrekt dargestellt:
    Aktualisieren 4/1/16 Licht geschaltetSteckdosen Sensor EG SD Staubsauger SV current (mA) DPT_UElCurrentmA 7.012 -
    In der Comet Visu erscheint die Anzeige "118 mA" (genutzter Formatstring: "%.0f mA") -> OK

    Das ETS-Projekt als *.esf exportiert, ins EibStudio importiert, wird in der GA-Anzeige korrekt dargestellt:
    4/1/16 EG SD Staubsauger SV f 16 (InitGA aktiviert)
    Wert aus Eibpc lesen liefert: 00 76 00 00, Wert: 1.18 (-> nicht ok, Wert scheint um Faktor 100 zu klein).

    Aktion: Eine zusätzliche Leuchte aktiviert.

    ETS-Gruppenmonitor-Anzeige: 00 D3 (211mA) -> ok
    Comet-Visu-Anzeige: 211mA -> ok
    Wert aus Eibpc lesen liefert: 00 d3 00 00, Wert: 2.11 (-> nicht ok, wieder Faktor 100 zu klein)

    Aktion: Leuchten aus, Staubsauger angeschlossen.

    ETS-Gruppenmonitor-Anzeige: 13 91 (5009mA) -> ok
    Comet-Visu-Anzeige: 5009mA -> ok
    Wert aus Eibpc lesen liefert: 13 91 00 00, Wert 36.52 (erkenne keinen Zusammenhang)

    Die Byte scheinen identisch geliefert, die Interpretation scheint ein Problem zu haben.
    Ist das ein bekanntes Issue?

    Mein Anwendungsfall:
    Läuft an dieser Steckdose der Staubsauger (4.0A <= Stromwert <=7.4A) und meldet der Bewegungsmelder Präsenz, dann soll das Deckenlicht auf 100% gehen (Reinigungsmodus). Ist an dieser Steckdose jedoch ein Bügeleisen angeschlossen (7,4A < Stromwert), so soll nichts geschehen.

    Software:
    Firmwareversion des EibPCs: v3.019
    Patches: 3.019.ptc
    EibStudio: v3.015
    EibParser: v3.019

    Gruß, Joachim
    Zuletzt geändert von joda123; 27.04.2015, 12:14.
    EibPC - Wiregate

    #2
    Sehe ich das richtig: du hast 'nur' die .esf in den EibPC importiert und denn den Gruppenmonitor beobachtet? In der .esf stehen zwar die Gruppenadresse , aber kein DPT. Der EibPC weiß also nicht, wie er das interpretieren soll.
    Das ändert sich, wenn du ein Programm dazu anlegest und die GA verwendest. Dann geht aus dem Kontext hervor, was das sein soll.
    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

    Kommentar


      #3
      Hallo Uwe,
      Doch - ein Programm gibt es natürlich auch - ich wollte es hier nur so übersichtlich wie möglich darstellen. Der entsprechende Programmabschnitt lautet:

      [highlight=epc]
      // EG Staubsaugersteckdose: Staubsauger: >4A, Bügeleisen: 7,4A-7,6A
      EG_Staubsauger_aktiv_min=4.0f16
      EG_Staubsauger_aktiv_max=7.4f16
      EG_Staubsauger_aktiv=(EG_Staubsauger_aktiv_min < "EG SD Staubsauger SV-4/1/16" and "EG SD Staubsauger SV-4/1/16" < EG_Staubsauger_aktiv_max)
      if EG_Staubsauger_aktiv and "EG IF BM Auro motionout-2/1/9" then {
      write("EG IF Deckenlicht schalten-3/1/36", EIN);
      write("EG IF Deckenlicht Helligkeitswert-3/1/39",100%);
      } endif
      if !EG_Staubsauger_aktiv or !"EG IF BM Auro motionout-2/1/9" then {
      write("EG IF Deckenlicht schalten-3/1/36", AUS);
      } endif

      [/highlight]

      Doch dieser Programmabschnitt ist praktisch nicht aktiv. Alle Beispiele oben sind ja direkt mit dem EibPC-Debugger entstanden.
      Erläuterung der GAs:
      "EG SD Staubsauger SV-4/1/16" ist der Stromwert, den der Aktor liefert.
      "EG IF BM Auro motionout-2/1/9" liefert für 1 Minute EIN, sobald Bewegung im Raum erkannt wird, sonst AUS.

      Gruß, Joachim
      EibPC - Wiregate

      Kommentar


        #4
        DPT 7.012 ist "unsigend", also gibt nur positive Ganzzahlen. Du hast im EibPC f16 definiert, das ist Fließkommazahl mit Vorzeichen. Das bewirkt genau die "100stel-Darstellung", bei großen Werten würden sie auch plötzlich als negative Werte erscheinen.

        Mach da mal ein u16 draus!
        ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

        Kommentar


          #5
          Hallo Uwe!

          Du hast recht! Mein Fehler! Per default erkennt der eibpc 2-Byte-Werte als f (float) - und das kann so natürlich nicht funktionieren!

          Im Abschnitt [InitGA] einmalig die Zeile

          "EG SD Staubsauger SV-4/1/16"u16

          eingefügt und alle Vergleichswerte auf u16 umgestellt und kompiliert - schon springt die Anzeige im Eibstudio-Fenster "Adressen" von f (float) auf u (unsigned) um, und die Interpretation des Wertes passt. Danach kann der Datentyp in der InitGA-Zeile auch wieder entfallen. Die Stromwerte werden nun korrekt in (ganzen) mA angezeigt. Der korrigierte Codeabschnitt lautet nun:

          [highlight=epc]
          // EG Staubsaugersteckdose: Staubsauger: >4A, Bügeleisen: 7,4A-7,6A
          EG_Staubsauger_aktiv_min=4000u16
          EG_Staubsauger_aktiv_max=7400u16
          EG_Staubsauger_aktiv=(EG_Staubsauger_aktiv_min < "EG SD Staubsauger SV-4/1/16" and "EG SD Staubsauger SV-4/1/16" < EG_Staubsauger_aktiv_max)
          if EG_Staubsauger_aktiv and "EG IF BM Auro motionout-2/1/9" then {
          write("EG IF Deckenlicht schalten-3/1/36", EIN);
          write("EG IF Deckenlicht Helligkeitswert-3/1/39",100%);
          } endif
          if !EG_Staubsauger_aktiv or !"EG IF BM Auro motionout-2/1/9" then {
          write("EG IF Deckenlicht schalten-3/1/36", AUS);
          } endif
          [/highlight]


          Herzlichen Dank.
          Das Thema ist damit gelöst.

          Gruß, Joachim
          EibPC - Wiregate

          Kommentar


            #6
            Hallo an Alle!

            Dieser Beitrag hat ein Problem gelöst an dem ich schon seit Tagen verzweifle.

            Es geht jetzt, aber verstehen kann ich es noch nicht. Vieleicht kann mir jemand eine Hilfe geben.
            In meinem Eibstudio nutze ich das Wunderground-Wettermakro seit Monaten.
            In einer SmartVisu - Anwendung wollte ich jetzt einige Werte sichtbar machen ohne den Wetterdienst erneut aufzurufen.
            Also habe ich mir Dummy-Adressen in der ETS4 angelegt, diese Exportiert und im EibStudio importiert und die neunen GA's mit den Daten des Wettermakros beschickt.
            Diese GAs konnte ich dann in der SmartVisu anzeigen.
            Soweit alles "Gut", bis auf ein kleines Problem. Dazu einige Bilder:

            Im Bild 1 sind die Gruppenadressen in der ETS4 angelegt und im Bild2 mit einem Dummy-Aktor jeweils auf den gewünschten Datentyp verbunden.

            4/4/2 und einige weitere /0, /4, /12, / 16, /20, /24 sind mit dem Typ 7, 2 Byte unsigned verbunden.

            Danach habe ich die GA exportiert und im EibStudio importiert. Seltsamerweise werden alle Werte als u16 übernommen, nur 4/4/2 bleibt ein f16. (bild 3)

            Hier habe ich Stunden verbracht durch dverse Tricks (löschen, neuanlegen,ändern der Reihenfolge, 4/4/2 auf eigene Zeile) das Problem zu umgehen.

            Im Bild 4 sind die geänderten INITGA-Einträge zu sehen, die letztlich den Erfolg brachten. Danke an "joda123" im Beitrag zuvor!

            Erst jetzt wird aus dem f16 ein u16 nach der erneuten Umwandlung.

            Wie schon zuvor gesagt, Problem gelöst, verstanden nein!

            Warum wirkt der Dummy auf alle gewünschten GAs mit u16 nur auf 4/4/2 nicht. Der write(wugro_xx-4/4/2, feldname) war wegen des Fehlers immer auskommentiert!!

            Wo liegt das Problem? in der ETS4 oder im Eibstudio?

            Die erzeugte OPC-Datei füge ich einmal hinzu.

            Danke für die schon erbrachte Lösung, aber vielleicht könnt Ihr einem Blinden noch aus der Dunkelheit heraushelfen!

            Liebe Maigrüße

            Wolfgang

            Nachtrag; Bild 2 liegt vor Bild 1



            ETS4-B2.jpg ETS4-B3.jpg ETS4-B4.jpg ETS4-B5.jpg ETS4-B6.jpg

            ETS4-B1.jpg
            Zuletzt geändert von schloessl; 30.04.2015, 17:59.

            Kommentar


              #7
              Lies mal im Handbuch ab S. 39,40 sowie S.165 ff. Da wird das genauer und ausführlicher beschrieben
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar

              Lädt...
              X