Ankündigung

Einklappen
Keine Ankündigung bisher.

Pluggit Lüftungsanlage anbinden

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

    Software ist fertig

    Hallo,

    ich habe nun den Fehler in der Software gefunden. Die Antwort der P300 kam zu spät und ein Timeout hat ausgelöst.

    Die Software ist nun dort zu finden: https://github.com/d00616/P300
    Lizenztechnisch habe ich mich für die GPL v3 entschieden.

    In den nächsten Tagen werde ich noch eine Anleitung zur Installation und zum Ein-/Nachbau verfassen.

    Wenn jemand etwas zum Projekt beitragen möchte, so schalte ich den zugehörigen Github-Benutzer gerne frei.

    Viele Grüße

    Frank

    Kommentar


      Wer mit der Software experimentieren möchte sollte die Programm-Taste rausführen. Ich darf nun meine Lüftungsanlage zerlegen um die Taste zu drücken.

      Ich baue noch etwas ein damit die Software automatisch in den Programmiermodus wechselt wenn die Setup-Funktion nicht durchläuft. Nach der Initialisierung kann man auch ohne die Taste zu drücken programmieren.

      Kommentar


        Hallo,

        zusammen, hab auch eine P300 und hab gestern den Thread gefunden und mit Freude alle Seiten inhaliert. :-)

        Hatte mir extra in der Bauphase ein 60-Adriges Kabel von der Verteilung zum P300 mit verlegen lassen um mir noch selbst P100's zu verbauen um die Temperaturen auf den BUS zu bekommen.

        Das hier ist natürlich die none-plus Ultra Lösung, werd ich auf jeden Fall nachbauen! Respekt und Hut ab vor der Leistung (und für das Bereitstellen)!



        viele Grüsse

        Jan

        Kommentar


          @Jan: Danke und viel Spaß beim Nachbauen. Richte dich bei den Platinenmaßen nach den Fotos und nicht nach der Zeichnung.

          Ich habe die Software mal aktualisiert. Es gibt jetzt mehrere Mechanismen um einen Crash zu verhindern/erkennen. Bei Problemen beim Start sowie bei einem reboot innherhalb der ersten 10 Sekunden geht die Schaltung in den Programmiermodus. Damit müsste man auch bei eigenen Softwareveränderungen ohne eine herausgezogene Programmiertaste auskommen.

          Der Gas-Sensor begeistert mich immer mehr. Wenn ich unter der Ansaugöffnung eine Kerze auspuste ist das zu messen. Genial ist aber das Verhalten wenn dort ganz andere Gase ran gelangen. Ich habe ein Kühlspray da ist bei einem kleinen Stoß in die Öffnung der gemessene Wert sofort von 7730 auf 37780 hoch gegangen. Damit kann man sehr gut verhindern, dass etwas unerwünschtes in die Anlage kommt.

          Ich werde nun eine Ermittlung eines Luftqualitätswertes einbauen. Der nächste Schritt ist dann eine automatische Abschaltung bei einer Luftverschlechterung.

          Kommentar


            Nachbau erfolgreich

            Hallo zusammen,
            ich hab hier schon seit geraumer Zeit eifrig mitgelesen. Ich habe seit März auch eine P300 in meinem neuen Haus.
            Jetzt wollte ich mal berichten, dass ich die Modbus-Weiche erfolgreich nachgebaut habe (vielen Dank an Frank für die wirklich sehr verständliche Anleitung). Angeschlossen ist das Ganze an einen Sheevaplug.
            Hier ist es ja mittlerweile etwas ruhig geworden. Seid ihr noch dran an dem Thema, gibt es neue Erkenntnisse bzgl. der Analysen? Eine Weile hab ich nun auch schon den Datenverkehr belauscht. Aber ich habe auch nicht mehr rausbekommen, als hier schon bekannt, außer:

            Wochentag ist nicht in Register 0x0406, sondern im High-Byte von Register 0x0401 (Bitmaske wie bei den Programmen: Mo=0x01, Di=0x02, Mi=0x04, Do=0x08, Fr=0x10, Sa=0x20, So=0x40)

            Einige Register ändern sich nie, sind aber anders als bei Euch (z.B: 0x0402H=0x07, 0x0403L=9c).

            Komisch ist: sowohl Kalibrieren als auch Sommer-Modus benutzen Setz-Register 0x007 (beim Lesen dann auch Wert in 0x0403L).
            - nach Einschalten: 0x00
            - nach Kalibrieren: 0x01
            - nach Sommer-Modus ein: 0x21
            - nach Sommer-Modus aus: 0x20

            Noch eine Frage zum Ein-/Ausschalten und Kalibrieren: Nach Aus/Ein ist ja das Kalibrier-Flag auf 0 und der 2h-Countdown zählt los. Aber in der Fernbedienung wird kein Fehler 01 angezeigt. Ich kann mich auch nicht erinnern dass das Gerät schon mal 2h nach Einschalten aus ging, obwohl ich es schon öfter vom Netz genommen habe. Hat da jemand ne Erklärung?

            Ansonsten kann ich noch berichten, dass die Software auch sehr gut funktioniert. Einziges Problem: wenn kein HT-Sensor angeschlossen ist, dann gibt es in readHYT eine Endlosscheife und der Watchdog schlägt zu und will pausenlos neu booten.
            Sehr schön ist auch die FLASH-Funktion im laufenden Betrieb.
            Übersetzen erfolgt auf dem PC, dann HEX-File auf den Sheevaplug laden, in einem Terminalfenster teensy_loader_cli starten und im anderen dann per minicom oder Skript FLASH zum Teensy schicken.

            Viele Grüße
            Uwe

            Kommentar


              Hallo Uwe,

              Zitat von ufo dd Beitrag anzeigen
              Hier ist es ja mittlerweile etwas ruhig geworden. Seid ihr noch dran an dem Thema, gibt es neue Erkenntnisse bzgl. der Analysen?
              Ich habe für mich das Projekt bis zum Einsetzen der Heizperiode auf Eis gelegt da ich noch einige dringendere Themen habe.

              Meinerseits sind die nächsten Schritte die Anlage auszuschalten wenn die Luft schlecht wird. Dazu logge ich schon mal die Daten des Sensors in eine Datenbank mit. Wenn ich eine Luftveränderung bemerke notiere ich das. Die Daten stelle ich gerne mal zur Verfügung falls sich jemand an einem Algorithmus zur Auswertung versuchen möchte.

              Mehr ist meinerseits im Moment nicht geplant.

              Zitat von ufo dd Beitrag anzeigen
              Einige Register ändern sich nie, sind aber anders als bei Euch (z.B: 0x0402H=0x07, 0x0403L=9c).
              Ist das vielleicht die Seriennummer? Ein Installationsdatum? Die Seriennummer der Fernbedieung damit man nicht was anderes bedienen kann?

              Zitat von ufo dd Beitrag anzeigen
              Noch eine Frage zum Ein-/Ausschalten und Kalibrieren: Nach Aus/Ein ist ja das Kalibrier-Flag auf 0 und der 2h-Countdown zählt los. Aber in der Fernbedienung wird kein Fehler 01 angezeigt. Ich kann mich auch nicht erinnern dass das Gerät schon mal 2h nach Einschalten aus ging, obwohl ich es schon öfter vom Netz genommen habe. Hat da jemand ne Erklärung?
              Das Kalibieren ist nur nach der Erstinstallation notwendig. Ich hatte den Zustand mal nach einem Umbau. Ein Log dazu liegt vor.

              Zitat von ufo dd Beitrag anzeigen
              Ansonsten kann ich noch berichten, dass die Software auch sehr gut funktioniert. Einziges Problem: wenn kein HT-Sensor angeschlossen ist, dann gibt es in readHYT eine Endlosscheife und der Watchdog schlägt zu und will pausenlos neu booten.
              Den Code hatte ich mehrfach angepasst. Da wartet das System auf die Antwort einer Leseanfrage. Da die nicht kommt hängt das System. Ich dachte eigentlich der aktuelle Code fängt das ab.

              Man kann die Software auch so bauen, dass der Sensor nicht abgefragt wird. (config.h)

              Zitat von ufo dd Beitrag anzeigen
              Sehr schön ist auch die FLASH-Funktion im laufenden Betrieb.
              Wenn die Software sich mal komplett auf gehangen hat kann man die Schaltung bis zu 5 Sekunden nach dem Einschalten wieder vom Strom trennen und landet dann beim nächsten Einschalten beim bootloader. Das habe ich eingebaut da ich die P300 mal zum Drücken der "FLASH"-Taste auseinander bauen musste.

              Kommentar


                WOW! Das ist hier ja richtig weitergegangen. Als ich das letzte Mal vorbei schaute, ging es noch um die Analyse des Protokolls. RESPEKT!

                Nun habe ich aber auch direkt eine Frage. Meine P300 wird derzeit mit einem Schaltaktor gesteuert. Über FHEM (auf nem RasPi) kann ich damit recht simpel zwischen den Lüftungsstufen umschalten.

                Vermisst habe ich bisher halt nur immer das Auslesen der P300. Und das mit dem Luftgüte und Luftfeuchtigkeitssensor ist der Hammer! Nun zu meiner Frage:

                Wie spreche ich die Steuerung über meinen RasPi an? Brauchts dafür irgendwelche Module, Programme, oder sonst was? In welchem Format liegen die abgefragten Werte vor? Ich würde die halt gerne in FHEM darstellen/abfragen und zur Steuerung verwenden sowie von FHEM Steuerungsbefehle an die P300 senden. Aus den bisherigen Infos konnte ich da nichts für mich ableiten.

                Wäre super wenn ihr mir da weiterhelfen könnt.

                Viele Grüße,
                Dennis

                Kommentar


                  Hallo Dennis,

                  die Schaltung kann theoretisch bis zu vier Temperatur/Feuchtesensoren ansteuern. Diese können per Text-Protokoll über den USB-Serial-Port des Teensy ausgelesen werden. Getestet habe ich das nur mit einem Sensor. Ich habe auch keine Idee wie man ohne Geräteveränderungen weitere Sensoren dicht Verkabeln kann.

                  Wenn man die Anlage auslesen möchte, so muss man über den USB-Serial-Port das Modbus-Protokoll (s. Thread) sprechen. Darüber kann man dann alles machen/auslesen was die Fernbedienung auch kann.

                  Aus Zeitgründen wird meinerseits das Projekt bis zum Einsetzen der Heizperiode still liegen. Dann werde ich den Luftgütesensor mit einer Funktion zum Stoppen der Anlage ausrüsten. Vielleicht fällt dann auch eine Text-Schnittstelle zur Lüftungsanlage dabei ab.

                  Ich halte niemanden davon ab meine Software zu erweitern oder Linux-Software zur Modbus-Ansteuerung zu entwickeln und zu veröffentlichen. ;-)

                  Viele Grüße

                  Frank

                  Kommentar


                    Hallo Frank,

                    also wenn ich Dich recht verstehe, müsste ich auf für FHEM quasi ein Modul haben (basteln), welches per Text-Protokoll die Sensoren (Luftfeuchte / Luftgüte) ausliest und per Modbus die Temperatursensoren und sonstige Einstellungen der Anlage sowie per Modbus Befehle Steuerbefehle sendet?

                    Puh! Mal sehen ob ich da irgendwie hinbekomme.

                    Vielen Dank erstmal!

                    PS: Du sagtest, man könnte bis zu vier Sensoren anschließen. Wo kann man denn ein zweites Sensor-Board anschließen? Müsste man dafür auf dem "Mainboard" eine weitere Wannenstiftleiste anbringen und mit dem Teensy verbinden? Wenn ja, mit welchen Pins?

                    Viele Grüße,
                    Dennis

                    Kommentar


                      Zitat von spunky78 Beitrag anzeigen
                      also wenn ich Dich recht verstehe, müsste ich auf für FHEM quasi ein Modul haben (basteln), welches per Text-Protokoll die Sensoren (Luftfeuchte / Luftgüte) ausliest und per Modbus die Temperatursensoren und sonstige Einstellungen der Anlage sowie per Modbus Befehle Steuerbefehle sendet?
                      Genau so ist es. Für das Text-Protokoll gibt es eine Hilfe "?". Es wird automatisch erkannt ob ASCII oder Modbus gesprochen wird, wobei ich Modbus über die USB Schnittstelle nicht zu 100% testen konnte da mir eine Applikation fehlt.

                      Wenn du in C/C++ programmieren kannst, so kannst du ja den Modbus-Teil im Teensy implementieren. Damit wird das integrieren in andere Anwendungen einfacher. Ein Teil der Modbus-Funktionalität wird ja später sowieso für die Steuerung per Gas- oder Feuchte-Sensor gebraucht.

                      Den CRC-Code für den Modbus habe ich schon implementiert. (s. test.cpp) Das Senden und Empfangen von Kommandos ist auch schon im Code vorbereitet. Dafür gibt es "proxy_intern". Es gibt allerdings noch keine Ende-Erkennung einer Antwort außer einem Timeout (sollte aber ausreichend sein). Die Antwort landet einfach im Puffer und muss ausgewertet werden.

                      Zitat von spunky78 Beitrag anzeigen
                      PS: Du sagtest, man könnte bis zu vier Sensoren anschließen. Wo kann man denn ein zweites Sensor-Board anschließen? Müsste man dafür auf dem "Mainboard" eine weitere Wannenstiftleiste anbringen und mit dem Teensy verbinden? Wenn ja, mit welchen Pins?
                      Die Feuchtesensoren sprechen I2C, die Adresse wird in der Konfiguration eingetragen (config.h, SENSOR_HYT). Im Datenblatt gibt es eine Anleitung wie die Adresse zu setzen ist. Das geht über I2C Kommunikation unmittelbar nach dem Einschalten des Sensors. Da muss ein extra-Programm her.

                      Die Gas-Sensoren werden über einen AD fähigen PIN angesprochen (config.h, SENSOR_GAS).

                      Der Anschluss für die Sensor-Platine ist schon so gestaltet, dass ein zweiter AD-PIN anliegt. Damit sollten ein zweiter Gas-Sensor und mehrere Feuchtesensoren angeschlossen werden können.

                      Kommentar


                        Hui! Das wird was dauern, bis das läuft. Habe leider keinerlei Programmierkenntnisse. Muss erst mal schauen, wie ich in FHEM ein Modul gebastelt bekomme. Die werden ja in PERL geschrieben. Vielleicht kann mir in der FHEM-Community jemand dabei helfen.
                        Mit dem "Modbusteil per C/C++ im Teensy" implementieren hörts dann auf . Dafür fehlen mir neben den Programmierkenntnissen auch die notwendigen Grundlagen bzgl. der Schnittstellen und wie man diese anspricht.

                        Kommentar


                          Zitat von spunky78 Beitrag anzeigen
                          Hui! Das wird was dauern, bis das läuft. Habe leider keinerlei Programmierkenntnisse. Muss erst mal schauen, wie ich in FHEM ein Modul gebastelt bekomme. Die werden ja in PERL geschrieben. Vielleicht kann mir in der FHEM-Community jemand dabei helfen.
                          Da wünsche ich viel Erfolg. Das Abfragen des Zusatzsensors ist ja zumindest einfach möglich.

                          Zitat von spunky78 Beitrag anzeigen
                          Mit dem "Modbusteil per C/C++ im Teensy" implementieren hörts dann auf . Dafür fehlen mir neben den Programmierkenntnissen auch die notwendigen Grundlagen bzgl. der Schnittstellen und wie man diese anspricht.
                          Das dürfte dann in der Tat schwer werden.

                          Kommentar


                            Hi Frank,

                            irgendwie bekomme ich immer Compilierungsfehler, wenn ich deinen Code auf den Teensy spielen will.

                            Code:
                              This report would have more information with
                              "Show verbose output during compilation"
                              enabled in File > Preferences.
                            Arduino: 1.0.5 (Windows 7), Board: "Teensy 3.0"
                            IntervalTimer.cpp.o: In function `IntervalTimer::end()':
                            C:\Program Files (x86)\Arduino\hardware\teensy\cores\teensy3/IntervalTimer.cpp:39: multiple definition of `pit0_isr'
                            PITimer.cpp.o:C:\Users\dennis\AppData\Local\Temp\build8718450665310676947.tmp/PITimer.cpp:33: first defined here
                            IntervalTimer.cpp.o: In function `IntervalTimer::disable_PIT()':
                            C:\Program Files (x86)\Arduino\hardware\teensy\cores\teensy3/IntervalTimer.cpp:40: multiple definition of `pit1_isr'
                            PITimer.cpp.o:C:\Users\dennis\AppData\Local\Temp\build8718450665310676947.tmp/PITimer.cpp:34: first defined here
                            IntervalTimer.cpp.o: In function `IntervalTimer::start_PIT(unsigned long)':
                            C:\Program Files (x86)\Arduino\hardware\teensy\cores\teensy3/IntervalTimer.cpp:41: multiple definition of `pit2_isr'
                            PITimer.cpp.o:C:\Users\dennis\AppData\Local\Temp\build8718450665310676947.tmp/PITimer.cpp:35: first defined here
                            collect2.exe: error: ld returned 1 exit status

                            Kommentar


                              Zitat von spunky78 Beitrag anzeigen
                              Hi Frank,

                              irgendwie bekomme ich immer Compilierungsfehler, wenn ich deinen Code auf den Teensy spielen will.
                              Das Problem scheinen auch andere zu haben:
                              Timer interrupt problem

                              Die Lösung soll diese Library sein: https://github.com/loglow/IntervalTimer

                              Fürs Erste versuche mal Arduino 1.0.4 und die Teensy-Software vom Juni: Index of /teensy/td_115 oder Index of /teensy/td_114

                              Kannst du bitte wenn der Fehler bestehen bleibt die im Log beschriebenen erweiterten Einstellungen setzen.

                              Kommentar


                                Das muss auch installiert sein: https://github.com/loglow/PITimer

                                Kommentar

                                Lädt...
                                X