Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Plugin sendet ständig?

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] - √ - Plugin sendet ständig?

    Hallo.

    Mein Wiregate im Neubau läuft nun schon etwa 4 Wochen einwandfrei und war bisher zur Temperaturerfassung und als Programmierschnittstelle tätig.

    Da nun die Heizungssaison losgeht habe ich mal die PI-Regler-Plugins aktiviert. Insgesamt sind das 9 Stück für die einzelnen Heizkreise.

    Wenn diese aktiv sind (my $aktiv_ga erhält eine 1), senden sie wie in der Taktzeit definiert nach 15 min den entsprechenden Wert. Wenn ich die Plugins allerdings deaktiviere, dann senden sie jede Minute (=60s Aufrufzyklus) den Wert 0%.

    Ist das so gewollt, oder ein Fehler bei mir? Die Plugins sind lediglich im Bereich der GA angepasst. Sie waren auch schon seit einer Weile eingefügt. Dabei kam es nicht zu diesem Sendeverhalten.

    MfG
    Eiko

    #2
    Hallo Eiko

    Ja das Verhalten ist "Normal" und wurde absichtlich im Plugin eingebaut damit die Ventiele beim deaktivieren der "Heizungssteuerung" schliessen.

    -> Deine Heizung im Keller heizt ja auch nicht, wenn du die Steureung ausschaltest

    Du kannst dieses Verhalten aber theoretisch durch anpassen des Codes auch so anpassen, dass bei AUS nicht mehr alle 60s eine 0 auf den BUS gesendet wird.
    Gruss Patrik alias swiss

    Kommentar


      #3
      Dann kann ich beruhigt sein. Die Telegrammhäufigkeit auf meinem sonst übersichtlichen Bus hat mich nur etwas verwirrt.

      Danke für die schnelle Antwort.

      MfG
      Eiko

      Kommentar


        #4
        Hallo Eiko

        Ich habe nochmal den Code durchgesehen. Eigentlich sollte in der aktuellen Version nur EINMAL eine 0 gesendet werden. Und immer dann wenn die Ventilstellung > 0 ist. Hier scheint ein fehler drinn zu stecken...

        Folgender Eintrag sollte auch bei dir in der Zeile 22-25 vorkommen:

        Code:
        if (!int($aktiviert)) {
            if (knx_read($ventil_ga_8bit) ne 0) { # nur wenn nicht bereits 0
                knx_write($ventil_ga_8bit,0,5); # Ventilstellung als DPT5 auf den Bus schreiben
            }
        Hier wird das Verhalten bei aktiv_ga = 0 gesteuert. Wenn das bei dir so drinn ist, liegt der Fehler bestimmt in dieser Zeile:

        Code:
        if (knx_read($ventil_ga_8bit) ne 0) { # nur wenn nicht bereits 0
        Kannst du das mal bei dir überprüfen?

        PS: Versuche mal volgendes...

        überschreibe mal die oben genannte Code-Passage durch diese:

        Code:
        if (!int($aktiviert)) {
            if (knx_read($ventil_ga_8bit) ne 0) { # nur wenn nicht bereits 0
                knx_write($ventil_ga_8bit,0,5); # Ventilstellung als DPT5 auf den Bus schreiben
                return knx_read($ventil_ga_8bit);
            }
        ...dann deaktiviere mal die Steurung über die aktiv_ga und schau in der Pluginübersicht was unter Rückgabewert erscheint. Kannst du mir diese Ausgabe dann mal angeben? Dann kann ich das Plugin fixen und die funktionierende Version im SVN einstellen.
        Gruss Patrik alias swiss

        Kommentar


          #5
          Hallo Patrik,

          danke für Dein Engagement. Ich war das Wochenende unterwegs und konnte erst gerade mal testen.

          Ich habe den RETURN-Befehl mal eingefügt und geschaut. Dabei fiel mir auf, dass beim Rückgabewert keine Angaben erschienen. Da kam mir in den Sinn, dass es an falschen DPT-Definitionen liegen könnte und festgestellt, dass die GA's erstmal ins Wiregate importiert werden müssen.

          Das habe ich nun getan. Beim Plugin mit dem RETURN erscheint jetzt bei der ersten Ausführung nach Deaktivierung eine "52". Bei der nächsten Ausführung blieb das Feld leer. Bei den Plugins ohne RETURN bleibt die Anzeige bei Rückgabewert nach Deaktivierung immer leer.

          Erfreulicherweise arbeiten die Plugins jetzt wie beschrieben und senden die "0" nach Deaktivierung nur noch, wenn Werte größer "0" auf den Bus geschrieben wurden.

          Übrigens steht bei Rückgabewert bei aktiviertem Plugin immer eine Null. Ist das normal? Sollte da nicht der errechnete Wert stehen? In dem Zusammenhang habe ich mal die importierten GAs für die Stellgröße bearbeitet. Diese waren als DPT 1.001 importiert und so funktioniert es auch. Wenn ich diese als DPT 5.001 definiere, habe ich zwar bei Rückgabewert einen Wert stehen, die Plugins senden nach Deaktivierung allerdings wieder mit jedem Aufruf eine "0".

          MfG
          Eiko

          Kommentar


            #6
            Hallo Eiko

            Dass du da im Normalfall immer eine 0 stehen hast ist normal, da sich der Return ja auch in einem ateil des Programms befindet der nur im reaktivierten Zustand ausgeführt wir. Im aktiven Zustand wird also ganz einfach die Anheige nicht aktualisiert. Mit Return muss man allerdings sehr vorsichtig sein. Es spielt eine große Rolle wo es eingefügt wird wenn man es am falschen Ort einbaut funktioniert das Plugin nichtmehr korrekt. Also bitte nicht einfach überall im Programm fröhlich returns einbauen. Da sollte man schon wissen was man tut.
            Gruss Patrik alias swiss

            Kommentar

            Lädt...
            X