Ankündigung

Einklappen
Keine Ankündigung bisher.

Helios KWL mittels RS485 an KNX

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

    #46
    Hast du mal deinen PI neu gestartet? Vielleicht läuft noch eine Instanz von HeliosKwlRemote verdeckt im Hintergrund? Wobei es da Probleme mit dem gleichzeitigen Zugriff auf das USB Interface geben müsste. Neustart sollte hier aber klarheit schaffen.

    Kommentar


      #47
      Moin Alex,

      Der wurde in der Zeit schon mehrfach neu gestartet. Die 1.2.61 geistert bei mir ab und an noch rum.

      Lüfterstufen, Standby und Powerstate funktionieren schonmal sehr gut mit Tablet gesteuert.
      Meine Anlage war auf min. Fanspeed 4 und wenn das mal genervt hat, musste man sich ewig durch das Menü klicken. Zudem war ab 22 Uhr Stufe 2, doof, wenn man da am Wochenende noch wach ist.

      Sehe ich das richtig, dass man die Leistung (%) der einzelnen Lüfterstufen mit dem Kabelmodul machen muss, welches an der Anlage ist? Muss ja nur einmal, nur vom Verständnis her.

      Und noch eine Frage hätte ich: Wäre es möglich, mehrere USB-Module für mehrere Lüftungen zu verwenden? Oder ist das mit sehr viel Aufwand verbunden? Man kann ja nicht mehrfach das Tool starten. Eine andere Möglichkeit wäre, Zentral mehrere PI's nebeneinander zu stellen, die eigentlich alle das gleiche machen. Daher mal meine Frage.

      Das Tool an sich läuft nun seit knapp 2 Tagen ohne größere Probleme, wenn man mal von Tabletsteuerung absieht.

      Momentan versuche ich, wenn ich nicht gerade draußen damit beschäftigt bin Schotter auf dem Grundstück zu verteilen, dass auch die Temperaturwerte ausgelesen werden. Eile mit weile.

      Ein schönes langes Wochenende wünsche ich auf jeden Fall.

      Viele Grüße
      Nils

      PS: Sind dir Fehler am Tool aufgefallen? Soll ich auf irgendetwas besonderes achten?

      Kommentar


        #48
        Zitat von Marino Beitrag anzeigen
        Moin Alex,

        Der wurde in der Zeit schon mehrfach neu gestartet. Die 1.2.61 geistert bei mir ab und an noch rum.
        Sehr seltsam. Riecht aber immer noch nach Fehlkonfiguration.

        Lüfterstufen, Standby und Powerstate funktionieren schonmal sehr gut mit Tablet gesteuert.
        Meine Anlage war auf min. Fanspeed 4 und wenn das mal genervt hat, musste man sich ewig durch das Menü klicken. Zudem war ab 22 Uhr Stufe 2, doof, wenn man da am Wochenende noch wach ist.
        Wie gesagt: Hab das Stanyby aus einer Ver-UND-ung von "Zeit zwischen 22:00 und 09:00" sowie "Präsenzstatus der Präsenzmelder im Haus". Das haut sehr gut hin.

        Sehe ich das richtig, dass man die Leistung (%) der einzelnen Lüfterstufen mit dem Kabelmodul machen muss, welches an der Anlage ist? Muss ja nur einmal, nur vom Verständnis her.
        Verstehe die Frage nicht. An der Kabelfernbedieung kann ich die Lüfterstufe 1-8 einstellen. Aber keine %.

        Und noch eine Frage hätte ich: Wäre es möglich, mehrere USB-Module für mehrere Lüftungen zu verwenden? Oder ist das mit sehr viel Aufwand verbunden? Man kann ja nicht mehrfach das Tool starten. Eine andere Möglichkeit wäre, Zentral mehrere PI's nebeneinander zu stellen, die eigentlich alle das gleiche machen. Daher mal meine Frage.
        Doch, das Tool kann man mehrfach starten. Aber aktuell müsstest du das ganze Verzeichnis duplizieren und pro Verzeichnis eine eigene Config-File haben. Werde das aber dahingehend ändern, dass man beim Start eine Config-File angeben kann. Dann kannst du z.B. 2 oder mehr Config-Files zusammen mit der JAR in einem Verzeichnis haben und kannst das Tool zweimal mit einer anderen Config starten.
        Zwei Lüftersteuerungen in einer Programminstanz finde ich irgendwie doof.

        PS: Sind dir Fehler am Tool aufgefallen? Soll ich auf irgendetwas besonderes achten?
        Ja, aktuell zickt ab und zu die Standby-Steuerung. Z.b. wird in Standby geschaltet, obwohl der Boost gerade aktiv ist. Oder ich finde plötzlich die Anlage in einer falschen Lüfterstufe wieder.
        Bin da aber aktuell dran. Wenn du dahingehend auch etwas auffälliges findest: Log-Abschnitt kopieren und melden.

        Gruß
        Alex

        Kommentar


          #49
          Ich wollte heute anfangen und die Anwendung testen, da ich noch einen Kabelbruch suchen musste =( hab ich erst dieses Wochenende anfangen können.

          Hat eigentlich jemand momentan eine lauffähige Version ? Ich bekomme bei mir derzeit immer eine NumberFormatException, weil im HeliosRemoteKwl versucht wird ein Int in einen long zu speichern Zeile 150

          Oder hab ich da noch einen Fehler in der Konfiguration?

          Gruß,
          Christian

          Kommentar


            #50
            Kopiert mir mal die komplette Fehlermeldung/stacktrace hier rein. Lauffähig ist die Version schon jetzt. Läuft bei mir seit Tagen.

            Kommentar


              #51
              Moin Alex,

              an meiner Fernbedienung wähle ich auch die Lüfterstufen 1-8. Im Menü der Fernbedienung kann ich die Lüfterstufen konfigurieren. Dort kann ich angeben, wieviel % die Lüfterstufe haben soll. So wäre es auch möglich, den am meisten genutzten Bereich etwas feiner abzustufen. Scheint aber wohl nur eine Konfiguration in der Fernbedienung zu sein. Ich werde mal testen, ob sich die Einstellungen auf die gesamte Anlage auswirken.

              Momentan läuft bei mir die Anlage auf Stufe 4 und im Nachtmodus auf 2. Dann geht sie wenigstens nicht stur um 22 Uhr auf Stufe 2, sondern wenn wirklich alle im Bett sind.

              Ich werde mit Standby noch etwas rumspielen. Ich habe nun Standby nun auf Lüfterstufe 1 konfiguriert, sonst könnte ich ja auch die Anlage ausschalten und möchte noch eine geeignete Logik mit mehreren offenen Fenster realisieren, da muss ich ja dann testen, wie sie reagiert und werde auf merkwürdiges Verhalten prüfen

              Mehrere Lüftungen:
              Das ist gut, dass das funktioniert. Später könnten wir dann mal testen, wie es sich mit 5-6 Steuerungen gleichzeitig schlägt



              Moin Christian,

              Im Post #23 ist ein Link zu einer noch nicht fertigen Anleitung, falls Du es noch nicht gesehen haben solltest. Diese befindet sich noch im Aufbau.

              Die funktionierende Version findest Du im ersten Post. Rot markiert, dass es einen neuen Link gibt. Im Archiv befinden sich 4 Dateien. Am besten kopierst Du diese z.B. nach /opt/HeliosKwlRemote/
              In der config.properties gibtst Du die IP vom Raspberry Pi an, die PA für KNX und die GA's.
              Schaue sonst mal in die Anleitung.

              Wenn es Dir hilft, kann ich Dir gerne meine config.properties schicken. Ich kann aber nicht versprechen, dass das hilft, da ich den Fehler nicht kenne.

              Was hast Du denn bisher gemacht?


              Viele Grüße
              Nils



              Kommentar


                #52
                Hab eben nochmal in den Code geschaut. Um Zeile 150 herum kann eine NumberFormatException nur dann auftreten, wenn in der Config keine Zahl steht. In Zeile 150 müsste "cache_keep" gelesen werden. Schau mal dass du da auch tatsächlich eine Zahl drin stehen hast die nicht größer als 2147483647 ist.

                Gruß
                Alex

                Kommentar


                  #53
                  So, hab den Code nochmal umgebaut: Wenn ein Wert nicht richtig aus der Config gelesen werden kann, dann wird eine entsprechende Fehlermeldung (Angabe des Config-Parameters mit dem fehlerhaften Wert) ausgegeben und es wird mit einem default-Wert weiter gemacht.

                  Hier der Link zum aktuellen Build: http://jenkins.root1.de/job/HeliosKwlRemote/22/de.root1$HeliosKwlRemote/

                  Der Link im ersten Post bleibt nach wie vor gültig und kann ebenso verwendet werden.

                  Kommentar


                    #54
                    Dort kann ich angeben, wieviel % die Lüfterstufe haben soll.
                    Ich glaube eher das ist das, was hier als "fan_in_percent" und "fan_out_percent" gesetzt und ausgelesen werden kann. Wenn ich richtig liege, kannst du damit den jeweiligen Lüfter limitieren. Default-Wert ist hier 100%.

                    Kommentar


                      #55
                      Moin Alex,

                      Lese ich "Fan out percent" und "Fan in percent" aus, bekomme ich bei beiden 100%.
                      Der Monteur hatte beim Einmessen noch erzählt, dass er bei einigen Anlagen andere Einstellungen für die beiden Lüfter (In und Out) vornehmen muss, damit er die errechneten Werte erreicht, um die Anlage einzustellen. Bei uns musste er dies nicht tun.
                      Ich vermute daher, dass die 100% bedeuten, dass beide immer gleich funktionieren.

                      Laut der Einstellung in der Fernbedienung ist mein Lüfter bei Stufe 4 bei 57%. Auslesen gibt 100%/100%. Ich denke, wenn der Out-Lüfter (sollte es so konfiguriert sein, damit die Anlage richtig läuft) beispielsweise gedrosselt sein, auf 50%, würde der IN-Lüfter bei Stufe 4 auf 57% laufen und der OUT-Lüfter auf 28,5%. So hatte ich es verstanden, als der Monteur es mir erklärte.
                      Somit könnte ich die gewünschte Lüfterleistung nur mit der Fernbedienung für die Stufen einstellen und dann so nutzen oder die Anlage immer auf voller Stufe betreiben und die beiden "Fan In/Out percent" steuern.



                      Ich habe nun mal die Anleitung weiter angepasst. Ich bin auf die Anmerkungen eingegangen, habe erklärt, wie man dem root ein Passwort gibt und sich als root anmeldet. Die Eingaben habe ich umgeändert, damit sie als root gegeben werden konnten, wodurch auch das ewige vorangestellte sudo rausfiel.
                      Zudem habe ich die Einstellungen und das kopieren des Tools erläutert und den screen-Befehl.
                      Das ist natürlich erst die erste Fassung und im Autostart ist das Tool so auch noch nicht, das habe ich noch nicht hinbekommen . Ich habe aber auch nicht lange probiert.
                      So sollte es aber erstmal nach Anleitung möglich sein, einen Raspberry Pi einzurichten und das Tool zu starten.


                      Viele Grüße
                      Nils

                      Kommentar


                        #56
                        Ach so, jetzt weiß ich was du meinst. Lüfter auf Stufe 8 lassen und allein mit den %-Angaben einstellen. Damit ließe sich das ganze evtl. noch feingranularer einstellen.
                        Ob man das braucht sei jetzt mal dahin gestellt. Mit 8 Stufen ist das ganze wohl "geschickter" da man auch mal von der Kabelfernbedienung aus schnell etwas korrigieren kann ohne ins Untermenü abzutauchen.
                        Würde es bei der 8-Stufen-Einstellung belassen. Das ist intuitiver auch auch so vom Hersteller vorgesehen.

                        Start-Script: Da muss man eine File in /etc/init.d erstellen und entsprechend im System als Start-File registrieren. Denke bis Mittwoch hab ich da was gebastelt.

                        Kommentar


                          #57
                          Ich habe auch überlegt, wie feinfühlig man die Anlage macht. Man könnte ja auch Stufe 8 als 100% nutzen und dann von 0-100% regeln und per Hand könnte man die Stufen wählen. Meine Fernbedienung kommt aber evtl. eh ab, wenn alles läuft. Die hängt da nur dumm in der Gegend rum.
                          Wenn man die KWL aber dann regelt, frage ich mich, wie oft ich eine Änderung senden darf. Er muss ja nicht unnötig jede Minute die Lüftergeschwindigkeit ändern.

                          Startscript hört sich gut an. Bei /etc/init.d war ich auch, aber das registrieren haperte noch etwas


                          EDIT:
                          Mir ist gerade noch etwas zur Steuerung mehrerer KWL's mit einem System eingefallen. Da müsste man ja auch mehrere Konverter (USB<>RS485 verwenden). Da diese in der config von ser2net eingestellt werden, würde es da überhaupt reichen mit mehreren Instanzen des Tools? Müsste dann nicht in der config.properties auf die entsprechende Schnittstelle verwiesen werden?
                          Zuletzt geändert von Marino; 03.05.2015, 14:08.

                          Kommentar


                            #58
                            Ich hab mal weiter getestet, und hab jetzt rausgefunden, wenn ich in der conf datei den Eintrag "standby_speed" auf -1 setze, dann sehe ich folgendes auf der Console:
                            ^Chelios@heliosKWL:~/HeliosKwlRemote$ java -jar HeliosKwlRemote-1.0.0-SNAPSHOT-jar-with-depdencies.jar
                            2015-05-03 15:17:56.417 INFO [main] de.root1.helios.HeliosKwlRemote.<init>: Connecting to Helios KWL on 127.0.0.1:4000
                            2015-05-03 15:17:56.429 INFO [main] de.root1.helios.Helios.connect: Connecting...
                            2015-05-03 15:17:56.442 INFO [main] de.root1.helios.Helios.connect: Connected!
                            2015-05-03 15:17:56.529 INFO [main] de.root1.helios.HeliosKwlRemote.<init>: Initialize cache variables with 1000ms cache-keep-time
                            Exception in thread "main" java.lang.NumberFormatException: For input string: "-1 "
                            at java.lang.NumberFormatException.forInputString(Num berFormatException.java:65)
                            at java.lang.Integer.parseInt(Integer.java:580)
                            at java.lang.Integer.parseInt(Integer.java:615)
                            at de.root1.helios.HeliosKwlRemote.<init>(HeliosKwlRe mote.java:149)
                            at de.root1.helios.HeliosKwlRemote.main(HeliosKwlRemo te.java:406)
                            helios@heliosKWL:~/HeliosKwlRemote$
                            Kommentiere ich den Eintrag aus, läuft es soweit ich sehen kann.

                            #################
                            ## RS485 config
                            #################
                            host = 127.0.0.1
                            port = 4000

                            cache_keep = 1000
                            send_on_update = true

                            # Stellt die L\u00fcftergeschwindigkeit nach einer Sto\u00dfl\u00fcftung wieder her
                            restore_fanspeed_after_boost = true

                            # StandBy L\u00fcftergeschwindigkeit [-1..8]
                            # wobei
                            # -1="kein idle"
                            # 0="L\u00fcftung aus"
                            # 1..8=L\u00fcftergeschwindigkeit
                            standby_speed = -1

                            # StandBy Verz\u00f6gerung
                            # Tritt nur ein, wenn innerhalb standby_delay Millisekunden ein erneuter Standby Wechsel eingeht
                            standby_delay = 3000000

                            ##############################################
                            ## Defaults which are set on programstart
                            ##############################################

                            default.fanspeed=3
                            #default.bypass_temp=10
                            Da fällt mir noch ein, ich verwende das Oracle JRE, falls ihr hauptsächlich das OpenJRE nutzen solltet.

                            Gruß,
                            Christian
                            Zuletzt geändert von christianCR; 03.05.2015, 15:18.

                            Kommentar


                              #59
                              Zitat von Marino Beitrag anzeigen
                              Ich habe auch überlegt, wie feinfühlig man die Anlage macht. Man könnte ja auch Stufe 8 als 100% nutzen und dann von 0-100% regeln und per Hand könnte man die Stufen wählen. Meine Fernbedienung kommt aber evtl. eh ab, wenn alles läuft. Die hängt da nur dumm in der Gegend rum.
                              Wenn man die KWL aber dann regelt, frage ich mich, wie oft ich eine Änderung senden darf. Er muss ja nicht unnötig jede Minute die Lüftergeschwindigkeit ändern.
                              Nein. Minütlich macht wenig Sinn. Das System is so oder so träge. Im Forum hier wird bereits 10min als Regelintervall genutzt. Würde das so erstmal übernehmen.
                              Bzgl. feinfühlig... Denke 8 Stufen sind da wirklich absolut ausreichend.

                              EDIT:
                              Mir ist gerade noch etwas zur Steuerung mehrerer KWL's mit einem System eingefallen. Da müsste man ja auch mehrere Konverter (USB<>RS485 verwenden). Da diese in der config von ser2net eingestellt werden, würde es da überhaupt reichen mit mehreren Instanzen des Tools? Müsste dann nicht in der config.properties auf die entsprechende Schnittstelle verwiesen werden?
                              Natürlich brauchst du für jeden USb-Adapter einen EIntrag in der ser2net Konfiguration. Kannst ja den ersten mit Port 4000 (wie bisher) machen, und jeden weiteren dann +1 ... Also 4001, 4002, ...

                              In der HeliosKwlRemote Konfiguration musst du dann natürlich den entsprechenden Port berücksichtigen.

                              java.lang.NumberFormatException: For input string: "-1 "
                              Schau mal in die Anführungszeichen. Da sitzt nach -1 ein Leerzeichen das da nicht hin gehört. Werde die Anwendung noch erwietern damit solche Leerzeichen gar nicht erst mit gelesen werden.

                              Gruß
                              Alex


                              [update]
                              Neuste Version hier: http://jenkins.root1.de/job/HeliosKwlRemote/23/de.root1$HeliosKwlRemote/
                              Zuletzt geändert von tuxedo; 03.05.2015, 16:30.

                              Kommentar


                                #60
                                Ich habe mal ein Start/Stop Script zusammen gestellt, so das man das ganze nachher als Dienst nutzen kann. Bitte mal testen, ich kann das erst heute Abend wenn ich wieder an den Rechner komme.
                                #!/bin/bash
                                INSTANZ="Helios KWL Remote"
                                BPDIR=/opt/HeliosKwlRemote
                                Pidfile=/opt/HeliosKwlRemote/HeliosKwlRemote.pid

                                START="java -Dname=HeliosKwlRemote -jar HeliosKwlRemote-1.0.0-SNAPSHOT-jar-with-dependencies.jar"




                                if [ -f $Pidfile ]
                                then
                                Pid=`cat $Pidfile`
                                fi

                                case "$1" in
                                'start')
                                if [ -f $Pidfile ] ; then
                                if test `ps -e | grep -c $Pid` = 1; then
                                echo "Not starting $INSTANZ - instance already running with PID: $Pid"
                                else
                                echo "Starting $INSTANZ"
                                cd $BPDIR
                                nohup $START &
                                echo $! > $Pidfile
                                fi
                                else
                                echo "Starting $INSTANZ"
                                cd $BPDIR
                                nohup $START &
                                echo $! > $Pidfile
                                fi
                                ;;

                                'stop')
                                if [ -f $Pidfile ] ; then
                                echo "stopping $INSTANZ"
                                kill -15 $Pid
                                else
                                echo "Cannot stop $INSTANZ - no Pidfile found!"
                                fi
                                ;;

                                'restart')
                                $0 stop
                                sleep 5
                                $0 start
                                ;;

                                'status')
                                if [ -f $Pidfile ] ; then
                                if test `ps -e | grep -c $Pid` = 0; then
                                echo "$INSTANZ not running"
                                else
                                echo "$INSTANZ running with PID: [$Pid]"
                                fi
                                else
                                echo "$Pidfile does not exist! Cannot process $INSTANZ status!"
                                exit 1
                                fi
                                ;;

                                *)
                                echo "usage: $0 { start | stop | restart | status }"
                                ;;

                                esac
                                exit 0

                                Kommentar

                                Lädt...
                                X