Ankündigung

Einklappen
Keine Ankündigung bisher.

Helios KWL mittels RS485 an KNX

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

    #61
    Das Script ist nicht ganz auf dem "Stand der Technik" (der LSB Header fehlt?). Wird aber wohl funktionieren. Bastle gerade an einer up2date Version. Muss mich aber in das init-Script Zeugs auch erst wieder einlesen.
    Zuletzt geändert von tuxedo; 04.05.2015, 13:58.

    Kommentar


      #62
      Besteht eigentlich Bedarf an einer "ohne ser2net" Lösung?

      Habe ser2net als "einfachen" Seriell->Netzwerk Wandler genutzt. Aber es würde, mit weiteren Abhängigkeiten zu DLLs/SOs auch ohne ser2net gehen. Dann frägt das Tool die serielle (USB) Schnittstelle direkt ab.
      Fand aber ser2net eigentlich ganz praktisch. Da kann man einen einfachen Raspi mit x-USB Schnittstellen bestücken und auf einen x-beliebigen Rechner im Netzwerk die Schnittstelle nutzen.

      Kommentar


        #63
        Als Schritt zum Init-Script habe ich das Logging mal "erweitert". Es kommt jetzt eine log.properties-File mit, die das Logging konfiguriert. Damit dieser Mechanismus aber greift, muss man beim Start von Java einen Parameter mit angeben. Diesen hab ich in der run.sh mal exemplarisch eingebaut

        Die mitgelieferte log.properties lässt die Anwendung im INFO Loglevel loggen. Wenn man mehr braucht, kann man das umkonfigurieren.

        Kommentar


          #64
          Zitat von tuxedo Beitrag anzeigen
          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.
          Ich glaube ich hab das StandBy Problem langsam im Griff. Gab seit Tagen keine standbybedingte, falsche Lüftereinstellung mehr.

          Marino

          Hast du die Ursache für die doppelte Adressierung mittlerweile gefunden?

          Kommentar


            #65
            Moin Alex,

            ne, habe ich bisher nicht gefunden. Ich habe aber auch noch nicht lange danach gesucht. Ich wusste nicht wo, da diese Adresse ja nicht existiert, auch nicht in ETS.

            Ich habe mittlerweile eine Logik, welche zwischen 6 Stufen schaltet. Der HS darf also je nach maximalem ppm-Wert der VOC's (danke für den Tipp), die Lüfterstufe steuern. Im Nachtmodus ist momentan nur Stufe 2 erlaubt.
            Das funktioniert recht gut. Ich werde aber wohl die Prozente der einzelnen Stufen nochmal anpassen und ihn etwas besser regeln lassen. Probieren kann man es ja mal, denn er überspringt ab und an eine Stufe, da der VOC-Wert selten gesendet wird. Ich probiere also nochmal feiner Stufen und häufiger Senden.

            Kommentar


              #66
              Ich wusste nicht wo, da diese Adresse ja nicht existiert, auch nicht in ETS.
              Dir bleibt nur das stückweise abklemmen des Busses um das heraus zu finden. Anfangen würde ich aber im IP-Segment: Da mal für's erste den ETS-Rechner direkt mit dem IP-Router verbinden um andere IP-Quellen auszuschließen.

              Ich habe mittlerweile eine Logik, welche zwischen 6 Stufen schaltet. Der HS darf also je nach maximalem ppm-Wert der VOC's (danke für den Tipp), die Lüfterstufe steuern. Im Nachtmodus ist momentan nur Stufe 2 erlaubt.
              Das funktioniert recht gut. Ich werde aber wohl die Prozente der einzelnen Stufen nochmal anpassen und ihn etwas besser regeln lassen. Probieren kann man es ja mal, denn er überspringt ab und an eine Stufe, da der VOC-Wert selten gesendet wird. Ich probiere also nochmal feiner Stufen und häufiger Senden.
              Klingt gut. "Kämpfe" noch etwas mit meinem VOC Sensor. Wenn der aber stabil und zuverlässig Werte liefert, werde ich eine Regelung noch in HeliosKwlRemote einbauen.
              Grundlage wird wohl eine Kurve sein: Auf der X-Achse der PPM-Wert und auf der Y-Achse die Lüfterstufe. Dazu noch einen Offset mit dem man die Kurve individuell hoch und runter schieben kann.
              Also ähnlich wie man's bei der Heizung meist vorfindet.

              Kommentar


                #67
                So hier ist ein besseres Script.
                ### BEGIN INIT INFO
                # Provides: HeliosKwlRemote_daemon
                # Required-Start: networking
                # Required-Stop: networking
                # Default-Start: 2 3 4 5
                # Default-Stop: 0 1 6
                # Short-Description: Helios KWL remote daemon
                # Description: This is Helios KWL remote daemon
                # This provides remote control over Helios KWLs
                # by using a RS485 protocol.
                ### END INIT INFO

                # Using the lsb functions to perform the operations.
                . /lib/lsb/init-functions
                # Process name ( For display )
                NAME=heliosKwlRemote-daemon
                # Daemon name, where is the actual executable
                DAEMON=/opt/HeliosKwlRemote/HeliosKwlRemote-1.0.0-SNAPSHOT-jar-with-dependencies.jar



                # pid file for the daemon
                PIDFILE=/var/run/heliosKwlRemote_daemon.pid

                # If the daemon is not there, then exit.
                test -r $DAEMON || exit 5

                case $1 in
                start)
                # Checked the PID file exists and check the actual status of process
                if [ -e $PIDFILE ]; then
                status_of_proc -p $PIDFILE $DAEMON "$NAME process" && status="0" || status="$?"
                # If the status is SUCCESS then don't need to start again.
                if [ $status = "0" ]; then
                exit # Exit
                fi
                fi
                # Start the daemon.
                log_daemon_msg "Starting the process" "$NAME"
                # Start the daemon with the help of start-stop-daemon
                # Log the message appropriately
                if start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --exec /usr/bin/java -- -jar $DAEMON ; then
                log_end_msg 0
                else
                log_end_msg 1
                fi
                ;;
                stop)
                # Stop the daemon.
                if [ -e $PIDFILE ]; then
                status_of_proc -p $PIDFILE $DAEMON "Stoppping the $NAME process" && status="0" || status="$?"
                if [ "$status" = 0 ]; then
                start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
                /bin/rm -rf $PIDFILE
                fi
                else
                log_daemon_msg "$NAME process is not running"
                log_end_msg 0
                fi
                ;;
                restart)
                # Restart the daemon.
                $0 stop && sleep 2 && $0 start
                ;;
                status)
                # Check the status of the process.
                if [ -e $PIDFILE ]; then
                status_of_proc -p $PIDFILE $DAEMON "$NAME process" && exit 0 || exit $?
                else
                log_daemon_msg "$NAME Process is not running"
                log_end_msg 0
                fi
                ;;
                reload)
                # Reload the process. Basically sending some signal to a daemon to reload
                # it configurations.
                if [ -e $PIDFILE ]; then
                start-stop-daemon --stop --signal USR1 --quiet --pidfile $PIDFILE --name $NAME
                log_success_msg "$NAME process reloaded successfully"
                else
                log_failure_msg "$PIDFILE does not exists"
                fi
                ;;
                *)
                # For invalid arguments, print the usage message.
                echo "Usage: $0 {start|stop|restart|reload|status}"
                exit 2
                ;;
                esac
                Was aber noch nicht funktioniert, das config file wird damit nicht mehr gefunden, ich denke es wir nicht der absolute Pfad sondern ein relativer genutzt. Hier müsste vielleicht noch etwas geändert werden, vielleicht als übergabeparameter beim start?

                Gruß,
                Christian

                Kommentar


                  #68
                  Ja, das mit der Config-File ist da allerdings das Problem. Aktuell wird davon ausgegangen dass die File im aktuellen Arbeitsverzeichnis zu finden ist.

                  Im Zuge der Umstellung auf "Multiple-Instanzen" werde ich das aber ncht korrigieren. Vielleicht heute noch. Dann kann man den Pfad zur Config-File angeben. Als Fallback gibt's dann vielleicht noch eine Option dass in /etc/helioskwlremote/ nach einer Config gesucht wird. Mal schauen.

                  Gruß
                  Alex

                  Kommentar


                    #69
                    So, neue Version gebaut und hochgeladen. Mit "-f /mein/pfad/zur/config.properties" am Ende des Java-Aufrufs kann man nun angeben mit welcher config-file gestartet wird.

                    Wird der Parameter nicht angegeben, wird zuerst in /etc/helioskwlremote/config.properties, und dann im aktuellen Arbeitsverzeichnis nach einer "config.properties" gesucht. Wird nichts gefunden gibt's eine Fehlermeldung.

                    Das Start-Script integriere ich dann als nächstes.



                    [update]
                    So, hab das Init-Script ein wenig angepasst:

                    1) Man kann darin jetzt angeben wohin geloggt werden soll. Default: /var/log/helioskwlremote.log
                    2) Man kann den Pfad zur Config-Datei angeben

                    Was noch nicht ohne Modifikation geht: Laufen lassen von mehreren Instanzen über das Init-Script. Von der Kommandozele (oder screen) geht das aber.

                    in der ZIP-Datei liegt nun ein Verzeichnis "etc/init.d/" das das Startscript enthält.
                    Zur Verwendung/Installation:

                    Script nach /etc/init.d kopieren. Danach am besten mit dem Text-Gui-Tool "rcconf" (apt-get install rcconf) das Script "helioskwlremote" anhaken.

                    Spätestens nach einem Reboot ist HeliosKwlRemote dann aktiv. Falls was schief geht: Nachschauen in /var/log/helioskwlremote.log

                    Die Log-File füllt sich immer weiter. Man sollte ggf. noch logrotate anpassen so dass die File rotiert wird.
                    Oder man schaltet diese Art von Logfile ab und verwendet daas Java Logging wo man Log-Größe und Anzahl Files angeben kann.

                    Tut man hier nichts, läuft irgendwann die Platte voll....

                    Zuletzt geändert von tuxedo; 11.05.2015, 10:36.

                    Kommentar


                      #70
                      Ein Nachbar hat mich auf eine Idee gebracht die man mal ausprobieren müsste:

                      Im Sommer (also jetzt), wenn es Nachts draußen Kühler ist als im Haus: Statt einfach nur den Bypass zu aktivieren und Zu- und Abluft über die Leitungen der laufen zu lassen:

                      Zuluft-Ventilator abschalten (FanIn-Percent -> 0%), den Abluftventilator wie gewohnt mit 100% laufen lassen, sowie eine belibige Lüftungsstufe einstellen, und, jetzt kommt das eigentlich wichtige, die Fenster in den Schlafräumen öffnen/kippen.

                      Der Effekt sollte sein: Die kühlere Außenluft sollte direkt durch die Fenster in die Räume gezogen werden. In der Anlage meines Nachbars nennt sich diese Funktion "Passive Kühlung" und lässt sich recht flexibel (Temperatur- und Zeitbedingung, ...) einstellen.

                      Vorteile sollen sein:
                      * Die kühle Luft kommt besser/schneller in die entsprechenden Räume
                      * Stromsparen: Nur einer der beiden Ventilatoren läuft

                      In der Theorie klingt das gut. Ob das in der Praxis aber so toll funktioniert, konnte mir mein Nachbar (noch) nicht sagen.

                      Mag das vielleicht jemand mal ausprobieren und berichten? Ich komme leider aktuell nicht zu solchen Experimenten.
                      Wenn das aber wirklich "was taugt", dann kann ich das bei Gelegenheit in die Software integrieren.

                      Gruß
                      Alex

                      Kommentar


                        #71
                        Hallo Helios-Freunde,

                        ich bin gerade dabei mir diese wunderbare Helios-KNX Bridge aufzusetzen.

                        Ich kämpfe aktuell mit dem Phänomen, dass ich bereits Werte (z.B. die Temperaturen) vom Bus lesen kann - das Schreiben schlägt jedoch fehl bzw. hat keinen Effekt .

                        Mein Setup:
                        - ein original Wiregate als IP Router
                        - ein Futro A250 auf dem die Bridge läuft und an dem der RS485/USB-Wandler hängt (ICP CON I-7561)
                        - ser2net macht den RS485 per Socket zugreifbar

                        Im Log gibt es keine Fehlermeldung. Die Requests (z.B. lese temp) sind protokolliert - jedoch scheinen keine Wertänderungen (z.B. fanspeed=5) bei der Bridge anzukommen.

                        Hat hierzu jemand eine Idee?

                        Kommentar


                          #72
                          Hallo,

                          ich komm jetzt gerade nicht ganz mit:

                          Siehst du im Log dein KNX Telegram das den Fanspeed auf 5 stellen soll und die Anlage führt das einfach nicht aus,
                          oder
                          ist selbst das KNX Telegramm zum Fanspeed-Einstellen im Log nicht zu sehen?

                          Kopier das Log doch mal hier in den Thread. Dann wird's klarer.

                          Kommentar


                            #73
                            Hi,
                            im Log sehe ich bei beschriebener Konstellation keine send Events (setzen des Wertes auf 5 via UI), sehr wohl jedoch read requests (UI versucht den Status zu lesen).

                            Ich habe mein Setup geändert: statt dem Wiregate als IP Router habe ich mir einen richtigen IP Router geliehen. So funktioniert es aktuell (ich stehe mit der Integration jedoch noch ganz am Anfang).

                            Das Log kann ich gerne nach reichen, sobald ich es wieder mit dem Wiregate versuche. Mag sein, dass ich das Wiregate nicht richtig konfiguriert habe.

                            Kommentar


                              #74
                              Wenn es mit dem richtigen IP Router funktioniert dann ist ja gut. Vielleicht hattest du im Wiregate Router-Teil nicht alle Telegramme/Adressen auf "weiterleiten" stehen?!

                              Kommentar


                                #75
                                Hallo Tuxedo,

                                bei der Suche für eine Lösung meine Systemair VR 400 DCV/DE auf den Bus zu bringen, bin ich auf deinen Beitrag gekommen: super Arbeit :-)
                                Ich versuche gerade den source code zu verstehen, so dass ich ihn für die Systemair anpassen kann.
                                Wenigstens hat Systemair die Adressen frei zugängig:
                                https://www.google.de/url?sa=t&rct=j...,d.bGg&cad=rja
                                Weiter so, echt ein super Projekt

                                Wenn ich die Lüftung geschafft habe, steht als nächstes meine Vitodens 300 an

                                Grüsse
                                Roland

                                Kommentar

                                Lädt...
                                X