Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX Heizungstellwerte in Prozent anzeigen

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

    KNX Heizungstellwerte in Prozent anzeigen

    Hallo,
    mit Hilfe aus diesem Forum kopierter Codeschnipsel bin ich schon recht weit in der Verbindung meiner OpenHab Installation und meinem KNX.
    Inzwischen sind die Temperaturen draussen soweit gefallen, dass ich mir über die Anbindung meiner Heizung Gedanken mache.
    Ich verwende MDT Heizungsaktoren. Diese können pro Kanal den aktuellen Stellwert (als DPT 5.001) senden.

    Openhab bekommt inzwischen den aktuellen Stellwert.
    Leider kommt der Stellwert als Kommazahl zwischen 0 und 1 an.

    Als Thing habe ich konfiguriert:
    Type number : HeizStellwertGastWC "HeizStellwertGastWC" [ ga="5.001:<2/2/24" ]
    Als Item folgendes:
    Number HeizStellwertGastWC "HeizStellwertGastWC[%.2f %%]" {channel="knx:device:knx-ip-gateway:knx3:HeizStellwertGastWC"}


    Openhab zeigt mir mit dieser Formatierung [%.2f %%] z.B. 0,13% für 13% an.
    Ich hätte aber lieber echte 13% auf der Anzeigt.

    Ich habe im Netz ein paar Anleitungen gefunden in denen ein zusätzliches Item angelegt wird.
    Diesem ZusatzItem wird per Rule (bei Änderung des OriginalItems) ein neu berechneter Wert (Wert*100) übergeben.

    Im Prinzip würde doch ausreichen (für die Anzeige) nur die ersten Nachkommastellen anzuzeigen.
    Das muss doch eleganter gehen?

    hat jemand eine Idee dazu?

    Grüße aus Sachsen
    tigermurmel

    #2
    Du könntest eine JS-Transformation dazu verwenden:
    Code:
    Number HeizStellwertGastWC "HeizStellwertGastWC [JS(convert-to-percent.js):%.2f %%]" {channel="knx:device:knx-ip-gateway:knx3:HeizStellwertGastWC"}
    ./transform/convert-to-percent.js
    Code:
    (function(dataNumber) {
        val reply = dataNumber * 100;
        return reply;
    })(input)
    ungetestet, daher ohne Garantie

    Eventuell könnte auch noch ein anderer Weg zum Erfolg führen, den ich aber auch noch nicht ausprobiert habe, nämlich das Item mit UoM zu definieren:
    Code:
    Number:Dimensionless HeizStellwertGastWC "HeizStellwertGastWC [%.2f %%]" {channel="knx:device:knx-ip-gateway:knx3:HeizStellwertGastWC"}

    Kommentar


      #3
      Versich mal als Typ Dimmer zu verwenden. Das funktioniert bei mir. Ich setze auch MDT ein.
      Gruß

      Guido

      Kommentar


        #4
        Hallo nochmal und Danke für die beiden Ideen!
        Ich habe testweise beide Lösungsansätze durchprobiert und komme mit beiden zu einer Lösung:

        Höhlenbär :
        Den Typ auf Dimmer zu stellen funktioniert auf Anhieb.
        Die PaperUI zeigt den Wert korrekt und dazu einen graphischen Schieberegler.
        Aber genaugenommen es ist das ja trotzdem ein Workaround...
        Thing:
        Type number :HeizStellwertKueche"HeizStellwertKueche" [ ga="5.001:<2/2/44" ]
        Item:
        DimmerHeizStellwertKueche"HeizStellwertKueche[%.2f %%]" {channel="knx:device:knx-ip-gateway:knx3:HeizStellwertKueche"}


        udo1toni :
        Vom Ansatz her gefällt mir die Transformationslösung besser, allerdings hat Openhab hier paar seltsame Probleme:
        Die Übergabe vom Item an die Transformation wird (Obwohl das Item als Number deklariert ist) als String durchgeführt.
        Damit kann man nicht direkt rechnen, sondern muss innerhalb der Transformation den Übergabewert erst auf Number casten.
        Am Ende der Rechnung muss dann jedoch wieder ein String zurückgeschickt werden.
        Auch das Prozentzeichenmusste ich direkt in der Transformation einbauen - Über die Itemformatierung hab ich es nicht dranbekommen.
        Zusätzlich besteht ein Problem in der PaperUI (im Controlbereich). Dort wird der Wert nicht (oder nur untransformiert?) angezeigt.
        Da kann man schonmal stundenlang verzweifelt suchen...
        In einer SiteMap geht dagegen alles problemlos!
        Dieses Problem haben andere scheinbar auch: (https://community.openhab.org/t/open...sform/35428/13)

        Hier meine Konfiguration
        Thing:
        Type number :HeizStellwertGastWC"HeizStellwertGastWC" [ ga="5.001:<2/2/24" ]
        Item: NumberHeizStellwertGastWC"HeizStellwertGastWC[JS(convert-to-percent.js):%d]" {channel="knx:device:knx-ip-gateway:knx3:HeizStellwertGastWC"}

        convert-to-percent.js:
        (function(i) { ausgabestring=Number(i)*100+1;
        returnausgabestring.toString() +" %";
        })(input)


        Grüße aus Sachsen
        Martin

        Kommentar


          #5
          Stimmt, an das Problem mit String hatte ich gar nicht gedacht.

          Was Paper UI Control betrifft: Kai hatte aus lauter Verzweiflung diesen Teil von Paper UI schon mal komplett deaktiviert, um Missverständnissen vorzubeugen (das war als OH2.0 noch nicht released war).
          Diese Ansicht ist keinesfalls dazu gedacht, als Steueroberfläche zu dienen. Es soll vielmehr dem Admin eine schnelle Möglichkeit geben, sich den aktuellen Status anzuschauen und eventuell zu beeinflussen.
          Paper UI Control unterstützt keinerlei weitergehende Konfiguration, sei es nun Transformation oder auch nur die Auswahl, was für einen Channel gerendert wird. Es ist auch nicht vergesehen, daran etwas zu ändern, weil, wie gesagt, das Ganze nicht als UI gedacht ist.
          Es gab aber mal Pläne, eine UI zu entwickeln, die sich am Material Design orientiert, also zumindest ähnlich wie Paper UI Control aussieht.
          Wie wir alle wissen, gibt es eine große Menge anderer (wichtigerer) Baustellen in openHAB - mit Basic UI und HABpanel stehen zwei zeitgemäße UI zur Verfügung, die weitreichend und komfortabel konfigurierbar sind.

          Kommentar


            #6
            Hallo,

            ich häng mich mal hier mit ran, da ich gerade dabei bin meine OH-Installation auf die neuste Version zu bringen. Ich erstelle gerade die Channels für die MDT-Heizungsaktoren. Aktuell habe ich für jeden Kanal des Aktors folgende Channels angelegt:

            Code:
            Type switch : Kanal_A_Notbetrieb "Küche Notbetrieb" [ga="1.005:<8/1/91"]
            Type switch : Kanal_A_Frostalarm "Küche Frostalamr" [ga="1.005:<8/1/92"]
            Type switch : Kanal_A_Hitzealarm "Küche Hitzealarm" [ga="1.005:<8/1/93"]
            Type number : Kanal_A_Status_Stellwert "Küche Stellwert" [ga="5.001:<2/1/72"]
            Type switch : Kanal_A_Sperren "Küche sperren" [ga="2/1/73"]
            Type number : Kanal_A_Sollwert "Küche Sollwert Komfort" [ga="9.00.1:<2/1/63"]
            Type number : Kanal_A_Aktueller_Sollwert "Küche Aktueller Sollwert Komfort" [ga="9.00.1:<2/1/64"]
            Type number : Kanal_A_Sollwertverschiebung "Küche Sollwertverschiebung" [ga="9.002:2/1/65"]
            Type switch : Kanal_A_Betriebsart_Konfort "Küche Betriebsart Komfort" [ga="<2/1/69"]
            Type switch : Kanal_A_Betriebsart_Nacht "Küche Betriebsart Nacht" [ga="<2/1/70"]
            Type switch : Kanal_A_Betriebsart_Schutz "Küche Betriebsart Frost/Hitzeschutz" [ga="<2/1/71"]
            Jetzt stehe ich aber gerade auf dem Schlauch was für ein Item ich jetzt anlegen muss um z.B. die Solltemperatur über ein KNOB-Widget im HABPanel zu verändern.
            Im grunde muss ich "Kanal_X_Sollwert" setzen aber gleichzeitig "Kanal_X_Aktueller_Sollwert" auslesen.
            Könnt ihr mir auf die Sprünge helfen?

            Vielen Dank
            Marcus

            Kommentar


              #7
              Zitat von mannmawg Beitrag anzeigen
              m grunde muss ich "Kanal_X_Sollwert" setzen aber gleichzeitig "Kanal_X_Aktueller_Sollwert" auslesen.
              Die MDT kenne ich nicht, aber ich verstehe Deine Aufgabenstellung so,dass die beiden Werte eigentlich immer gleich sind, das eine Register wird zum Lesen verwendet, das andere zum Schreiben. Dann solltest Du das genauso konfigurieren können, wie z.B. bei einem Dimmer.
              Code:
              Type number : Kanal_A_Sollwert "Küche Sollwert Komfort" [ga="9.00.1:2/1/63+<2/1/64"]
              Wenn über 2/1/63 oder 2/1/64 eine Wertänderung herein kommt, wird der Channel auf diesen Wert aktualisiert. Wenn in openHAB der Channel geändert wird, wird dieser Wert über 2/1/63 an knx geschickt. Wenn openHAB gestartet wird, fragt openHAB auf 2/1/64 nach dem aktuellen Wert (und bekommt hoffentlich vom Bus eine Antwort).

              Damit Du den Channel über openHAB steuern kannst, musst Du ihn mit einem passenden Item verbinden, welches natürlich vom Typ Number sein muss.
              Dieses Item wiederum kannst Du dann in HABpanel an einen Knob binden.

              Da Du vermutlich von OH1.x kommst: Mach nicht zu viele Baustellen auf einmal auf. Soll heißen: Stelle erstmal alle Items und Bindings um, so dass das Ganze wie gewohnt über Classic UI funktioniert. Schau Dir wahlweise mal die Basic UI an, die ist schon wesentlich gefälliger, sie funktioniert aber mit den identischen Einstellungen wie die Classic UI.
              Wenn dann alles läuft, kannst Du anfangen, eine UI mittels HABpanel zu bauen, da musst Du dann nur die Items entsprechend einbinden, die auch in CLassic/Basic UI genutzt werden.

              Kommentar


                #8
                Hallo,

                vielen Dank, das hilft mir weiter. Ich stand da auf dem Schlauch.

                Bezüglich HABPanel und Baustellen. Ich habe den Umstieg realtiv leicht geschafft, da ich die Things-Datei und die items offline erstellt habe und nach dem Update nur noch einspielen musste. Somit war der Umstieg relativ leicht. Die Heizungs-Items hatte ich nur zuvor schon nicht erstellt und wollte das Thema jetzt endlich mal angehen.

                Gruß Marcus

                Kommentar


                  #9
                  Hallo,

                  ich hatte das gleiche Problem (mit der Dartstellung der Prozentwerte) und hab es hier mit gelöst.

                  Ich hab in der Things ein "Type number-control" angelegt. Damit scheint es zu funktionieren.

                  Kommentar


                    #10
                    Hi,
                    ich bin gerade dabei die Heizung bei mir mal zusammen zu bauen. Ich möchte die Termperatur aus einem MDT glastater nehmen und den wert im MDT Heizungsaktor an und aus schalten.
                    Hat jemand eine Beispiel Konfig für mich? Meine Stellmotoren können nur an und aus, Spannungslos sind sie geschlossen.
                    Vielleicht hat auch jemand ein paar Konfig bespiele in der ETS, bin gerade etwas überfordert was ich im Heizungsaktor einstellen soll -.-
                    So habe jetzt mal über den Glastaster Smart Probiert, scheint mit "Sollwertverschiebung" und "Status aktuelle Sollwertverschiebung" + "aktuelle Temperatur" zu gehen, er blinkt wenn die Temperatur hoch gestellt wird und nicht mehr wenn Sie runter gestellt wird, ob der Stellmotor hoch geht muss ich noch schauen, ich hoffe ;D
                    Wie bringe ich das jetzt ins die items in OH rein? ohne Glastaster

                    Gruß
                    Zuletzt geändert von stenfr; 30.09.2018, 00:22.

                    Kommentar


                      #11
                      stenfr guck dir am besten die Bedienungsanleitung vom MDT Heizunsaktor an da gibt es auch mehrere Beispiele wie alles einzustellen ist. Das der Stellmotor nur an/aus kann ist kein Problem denn dafür hast du den Aktor der steuert den Motor per PWM an und du brauchst dich darum nicht kümmern. MDT hat in der Downloads Rubrik auf deren Seite auch noch ein zusätzliches Dokument zur Heizungssteuerung.

                      @all: Ich habe die Sollwertproblematik aktuell auch gelöst indem in ich der Sitemap ein Dimmer Item draus gemacht habe. Das schmeckt mir aber auch nicht. Da ich es aktuell aber nur nutzen möchte um mir in einem Diagramm den zeitlichen Verlauf der Heizungsansteuerung anzeigen zu lassen, reicht das für mich. Die Lösung von alexsdd verstehe ich nicht ganz. Ein Control Item nutzt man ja nur wenn man von OH auf den BUS etwas senden will und es kein Gerät gibt welches diese GA hält. Beispiel bei mir: Ich sende die Aussentemperatur per Weather Binding an eine GA und das funktioniert nur per Number-Control Item.

                      Kommentar


                        #12
                        Hi,
                        Heizung läuft jetzt über MDT SDollwert und aktuelle sollwertverschiebung
                        Aber wie bekomme ich das in die Openhab app? Wie mache ich das damit ich die werte auslesen und anpassen kann? Ich nurtze nur die normale App und die basic UI.

                        Gruß

                        Kommentar


                          #13
                          Zitat von Julian0o Beitrag anzeigen
                          Ein Control Item nutzt man ja nur wenn man von OH auf den BUS etwas senden will und es kein Gerät gibt welches diese GA hält.
                          Andersrum wird ein Schuh daraus. Sobald es kein Device am knx Bus gibt, welches den "echten" Status hält, sollte es ein -control Channel sein. z.B. die Uhrzeit, die durchgereicht wird, aber genauso ein Dimmer, der in Wirklichkeit nicht am knx Bus hängt, aber von knx-Seite gesteuert werden soll.

                          Kommentar


                            #14
                            Ja stimmt so ist es etwas besser beschrieben. Das erklärt für mich aber noch nicht wieso ich ein Control Item beim Stellwert brauche. Denn der Stellwert wird ja vom Heizaktor gehalten.

                            Kommentar


                              #15
                              Zitat von Julian0o Beitrag anzeigen
                              Denn der Stellwert wird ja vom Heizaktor gehalten.
                              Ist das so? Dann müsstest Du den Wert aus dem Aktor auslesen können.

                              Kommentar

                              Lädt...
                              X